440
|
1 #ifndef INCLUDED_lwlib_internal_h_
|
|
2 #define INCLUDED_lwlib_internal_h_
|
428
|
3
|
|
4 #include "lwlib.h"
|
|
5
|
448
|
6 #ifdef USE_ASSERTIONS
|
|
7 /* Highly dubious kludge */
|
|
8 /* (thanks, Jamie, I feel better now -- ben) */
|
1650
|
9 EXTERN_C void assert_failed (const char *, int, const char *);
|
448
|
10 # define abort() (assert_failed (__FILE__, __LINE__, "abort()"))
|
3025
|
11 # define assert(x) ((x) ? (void) 0 : assert_failed (__FILE__, __LINE__, #x))
|
448
|
12 #else
|
|
13 # ifdef DEBUG_XEMACS
|
3025
|
14 # define assert(x) ((x) ? (void) 0 : (void) abort ())
|
448
|
15 # else
|
3025
|
16 # define assert(x) ((void) 0)
|
448
|
17 # endif
|
|
18 #endif
|
|
19
|
428
|
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. */
|
|
23
|
|
24 typedef struct _widget_instance
|
|
25 {
|
|
26 Widget widget;
|
|
27 Widget parent;
|
|
28 Boolean pop_up_p;
|
|
29 struct _widget_info* info;
|
|
30 struct _widget_instance* next;
|
|
31 } widget_instance;
|
|
32
|
|
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. */
|
|
36
|
|
37 typedef struct _widget_info
|
|
38 {
|
|
39 char* type;
|
|
40 char* name;
|
|
41 LWLIB_ID id;
|
|
42 widget_value* val;
|
|
43 Boolean busy;
|
|
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;
|
|
49 } widget_info;
|
|
50
|
|
51 typedef Widget
|
|
52 (*widget_creation_function) (widget_instance* instance);
|
|
53
|
|
54 typedef struct _widget_creation_entry
|
|
55 {
|
442
|
56 const char* type;
|
428
|
57 widget_creation_function function;
|
|
58 } widget_creation_entry;
|
|
59
|
|
60 /* update all other instances of a widget. Can be used in a callback when
|
442
|
61 a widget has been used by the user */
|
428
|
62 void
|
|
63 lw_internal_update_other_instances (Widget widget, XtPointer closure,
|
|
64 XtPointer call_data);
|
|
65
|
|
66 /* get the widget_value for a widget in a given instance */
|
|
67 widget_value*
|
|
68 lw_get_widget_value_for_widget (widget_instance* instance, Widget w);
|
|
69
|
|
70 widget_info *lw_get_widget_info (LWLIB_ID id);
|
|
71
|
440
|
72 #endif /* INCLUDED_lwlib_internal_h_ */
|