]> code.delx.au - gnu-emacs/blob - lwlib/lwlib-int.h
Initial revision
[gnu-emacs] / lwlib / lwlib-int.h
1 #ifndef LWLIB_INTERNAL_H
2 #define LWLIB_INTERNAL_H
3
4 #include "lwlib.h"
5
6 /*
7 extern char *strdup (const char *);
8 extern int strcasecmp (const char *, const char *);
9 */
10
11 typedef struct _widget_instance
12 {
13 Widget widget;
14 Widget parent;
15 Boolean pop_up_p;
16 struct _widget_info* info;
17 struct _widget_instance* next;
18 } widget_instance;
19
20 typedef struct _widget_info
21 {
22 char* type;
23 char* name;
24 LWLIB_ID id;
25 widget_value* val;
26 Boolean busy;
27 lw_callback pre_activate_cb;
28 lw_callback selection_cb;
29 lw_callback post_activate_cb;
30 struct _widget_instance* instances;
31 struct _widget_info* next;
32 } widget_info;
33
34 typedef Widget
35 (*widget_creation_function) (widget_instance* instance);
36
37 typedef struct _widget_creation_entry
38 {
39 char* type;
40 widget_creation_function function;
41 } widget_creation_entry;
42
43 /* update all other instances of a widget. Can be used in a callback when
44 a wiget has been used by the user */
45 void
46 lw_internal_update_other_instances (Widget widget, XtPointer closure,
47 XtPointer call_data);
48
49 /* get the widget_value for a widget in a given instance */
50 widget_value*
51 lw_get_widget_value_for_widget (widget_instance* instance, Widget w);
52
53 #endif /* LWLIB_INTERNAL_H */
54