summaryrefslogtreecommitdiffstats
path: root/Panel.h
diff options
context:
space:
mode:
Diffstat (limited to 'Panel.h')
-rw-r--r--Panel.h26
1 files changed, 19 insertions, 7 deletions
diff --git a/Panel.h b/Panel.h
index d1aaec36..2e9c5ad3 100644
--- a/Panel.h
+++ b/Panel.h
@@ -13,16 +13,24 @@ in the source distribution for its full text.
#include "Object.h"
#include "Vector.h"
+#include "FunctionBar.h"
typedef struct Panel_ Panel;
typedef enum HandlerResult_ {
- HANDLED,
- IGNORED,
- BREAK_LOOP
+ HANDLED = 0x01,
+ IGNORED = 0x02,
+ BREAK_LOOP = 0x04,
+ REDRAW = 0x08,
+ RESCAN = 0x10,
+ SYNTH_KEY = 0x20,
} HandlerResult;
-#define EVENT_SETSELECTED -1
+#define EVENT_SET_SELECTED -1
+
+#define EVENT_HEADER_CLICK(x_) (-10000 + x_)
+#define EVENT_IS_HEADER_CLICK(ev_) (ev_ >= -10000 && ev_ <= -9000)
+#define EVENT_HEADER_CLICK_GET_X(ev_) (ev_ + 10000)
typedef HandlerResult(*Panel_EventHandler)(Panel*, int);
@@ -42,13 +50,17 @@ struct Panel_ {
Vector* items;
int selected;
int oldSelected;
- char* eventHandlerBuffer;
+ void* eventHandlerState;
int scrollV;
short scrollH;
bool needsRedraw;
+ FunctionBar* currentBar;
+ FunctionBar* defaultBar;
RichString header;
};
+#define Panel_setDefaultBar(this_) do{ (this_)->currentBar = (this_)->defaultBar; }while(0)
+
#ifndef MIN
#define MIN(a,b) ((a)<(b)?(a):(b))
@@ -64,11 +76,11 @@ struct Panel_ {
extern PanelClass Panel_class;
-Panel* Panel_new(int x, int y, int w, int h, bool owner, ObjectClass* type);
+Panel* Panel_new(int x, int y, int w, int h, bool owner, ObjectClass* type, FunctionBar* fuBar);
void Panel_delete(Object* cast);
-void Panel_init(Panel* this, int x, int y, int w, int h, ObjectClass* type, bool owner);
+void Panel_init(Panel* this, int x, int y, int w, int h, ObjectClass* type, bool owner, FunctionBar* fuBar);
void Panel_done(Panel* this);