diff options
Diffstat (limited to 'textscreen/txt_widget.h')
-rw-r--r-- | textscreen/txt_widget.h | 20 |
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 */ |