1 #ifndef INCLUDED_lwlib_internal_h_
2 #define INCLUDED_lwlib_internal_h_
7 /* Highly dubious kludge */
8 /* (thanks, Jamie, I feel better now -- ben) */
9 void assert_failed (const char *, int, const char *);
10 # define abort() (assert_failed (__FILE__, __LINE__, "abort()"))
11 # define assert(x) ((x) ? (void) 0 : assert_failed (__FILE__, __LINE__, #x))
14 # define assert(x) ((x) ? (void) 0 : (void) abort ())
20 /* This represents a single widget within a widget tree. All the
21 widgets in a widget tree are chained through the `next' field.
22 `info' is a back pointer to the widget tree. */
24 typedef struct _widget_instance
29 struct _widget_info* info;
30 struct _widget_instance* next;
33 /* This represents a single widget tree, such as a single menubar.
34 The global variable `all_widget_info' lists all widget trees,
35 chained through the `next' field of this structure. */
37 typedef struct _widget_info
44 lw_callback pre_activate_cb;
45 lw_callback selection_cb;
46 lw_callback post_activate_cb;
47 struct _widget_instance* instances;
48 struct _widget_info* next;
52 (*widget_creation_function) (widget_instance* instance);
54 typedef struct _widget_creation_entry
57 widget_creation_function function;
58 } widget_creation_entry;
60 /* update all other instances of a widget. Can be used in a callback when
61 a widget has been used by the user */
63 lw_internal_update_other_instances (Widget widget, XtPointer closure,
66 /* get the widget_value for a widget in a given instance */
68 lw_get_widget_value_for_widget (widget_instance* instance, Widget w);
70 widget_info *lw_get_widget_info (LWLIB_ID id);
72 #endif /* INCLUDED_lwlib_internal_h_ */