From 466d4da0c6e7255a38b8de3c3b9dc0373805cc41 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Tue, 12 Jan 2016 06:00:58 -0200 Subject: refactor *Screen classes, add InfoScreen superclass --- InfoScreen.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 InfoScreen.h (limited to 'InfoScreen.h') diff --git a/InfoScreen.h b/InfoScreen.h new file mode 100644 index 00000000..2e1599f9 --- /dev/null +++ b/InfoScreen.h @@ -0,0 +1,53 @@ +/* Do not edit this file. It was automatically generated. */ + +#ifndef HEADER_InfoScreen +#define HEADER_InfoScreen + +#include "Process.h" +#include "Panel.h" +#include "FunctionBar.h" +#include "IncSet.h" + +typedef struct InfoScreen_ InfoScreen; + +typedef void(*InfoScreen_Scan)(InfoScreen*); +typedef void(*InfoScreen_Draw)(InfoScreen*); +typedef void(*InfoScreen_OnErr)(InfoScreen*); +typedef bool(*InfoScreen_OnKey)(InfoScreen*, int); + +typedef struct InfoScreenClass_ { + ObjectClass super; + const InfoScreen_Scan scan; + const InfoScreen_Draw draw; + const InfoScreen_OnErr onErr; + const InfoScreen_OnKey onKey; +} InfoScreenClass; + +#define As_InfoScreen(this_) ((InfoScreenClass*)(((InfoScreen*)(this_))->super.klass)) +#define InfoScreen_scan(this_) As_InfoScreen(this_)->scan((InfoScreen*)(this_)) +#define InfoScreen_draw(this_) As_InfoScreen(this_)->draw((InfoScreen*)(this_)) +#define InfoScreen_onErr(this_) As_InfoScreen(this_)->onErr((InfoScreen*)(this_)) +#define InfoScreen_onKey(this_, ch_) As_InfoScreen(this_)->onKey((InfoScreen*)(this_), ch_) + +struct InfoScreen_ { + Object super; + Process* process; + Panel* display; + FunctionBar* bar; + IncSet* inc; + Vector* lines; +}; + +InfoScreen* InfoScreen_init(InfoScreen* this, Process* process, FunctionBar* bar, int height, char* panelHeader); + +InfoScreen* InfoScreen_done(InfoScreen* this); + +void InfoScreen_drawTitled(InfoScreen* this, char* fmt, ...); + +void InfoScreen_addLine(InfoScreen* this, const char* line); + +void InfoScreen_appendLine(InfoScreen* this, const char* line); + +void InfoScreen_run(InfoScreen* this); + +#endif -- cgit v1.2.3