summaryrefslogtreecommitdiff
path: root/textscreen/txt_widget.h
diff options
context:
space:
mode:
Diffstat (limited to 'textscreen/txt_widget.h')
-rw-r--r--textscreen/txt_widget.h20
1 files changed, 16 insertions, 4 deletions
diff --git a/textscreen/txt_widget.h b/textscreen/txt_widget.h
index 46fd3745..ee18fd14 100644
--- a/textscreen/txt_widget.h
+++ b/textscreen/txt_widget.h
@@ -48,11 +48,13 @@ typedef struct txt_widget_class_s txt_widget_class_t;
typedef struct txt_widget_s txt_widget_t;
typedef struct txt_callback_table_s txt_callback_table_t;
-typedef void (*TxtWidgetSizeCalc)(TXT_UNCAST_ARG(widget), int *w, int *h);
-typedef void (*TxtWidgetDrawer)(TXT_UNCAST_ARG(widget), int w, int selected);
+typedef void (*TxtWidgetSizeCalc)(TXT_UNCAST_ARG(widget));
+typedef void (*TxtWidgetDrawer)(TXT_UNCAST_ARG(widget), int selected);
typedef void (*TxtWidgetDestroy)(TXT_UNCAST_ARG(widget));
typedef int (*TxtWidgetKeyPress)(TXT_UNCAST_ARG(widget), int key);
typedef void (*TxtWidgetSignalFunc)(TXT_UNCAST_ARG(widget), void *user_data);
+typedef void (*TxtMousePressFunc)(TXT_UNCAST_ARG(widget), int x, int y, int b);
+typedef void (*TxtWidgetLayoutFunc)(TXT_UNCAST_ARG(widget));
struct txt_widget_class_s
{
@@ -60,6 +62,8 @@ struct txt_widget_class_s
TxtWidgetDrawer drawer;
TxtWidgetKeyPress key_press;
TxtWidgetDestroy destructor;
+ TxtMousePressFunc mouse_press;
+ TxtWidgetLayoutFunc layout;
};
struct txt_widget_s
@@ -69,17 +73,25 @@ struct txt_widget_s
int selectable;
int visible;
txt_horiz_align_t align;
+
+ // These are set automatically when the window is drawn and should
+ // not be set manually.
+
+ int x, y;
+ int w, h;
};
void TXT_InitWidget(TXT_UNCAST_ARG(widget), txt_widget_class_t *widget_class);
-void TXT_CalcWidgetSize(TXT_UNCAST_ARG(widget), int *w, int *h);
-void TXT_DrawWidget(TXT_UNCAST_ARG(widget), int w, int selected);
+void TXT_CalcWidgetSize(TXT_UNCAST_ARG(widget));
+void TXT_DrawWidget(TXT_UNCAST_ARG(widget), int selected);
void TXT_SignalConnect(TXT_UNCAST_ARG(widget), char *signal_name,
TxtWidgetSignalFunc func, void *user_data);
void TXT_EmitSignal(TXT_UNCAST_ARG(widget), char *signal_name);
int TXT_WidgetKeyPress(TXT_UNCAST_ARG(widget), int key);
+void TXT_WidgetMousePress(TXT_UNCAST_ARG(widget), int x, int y, int b);
void TXT_DestroyWidget(TXT_UNCAST_ARG(widget));
void TXT_SetWidgetAlign(TXT_UNCAST_ARG(widget), txt_horiz_align_t horiz_align);
+void TXT_LayoutWidget(TXT_UNCAST_ARG(widget));
#endif /* #ifndef TXT_WIDGET_H */