| 1 |
|
|---|
| 2 |
|
|---|
| 3 |
|
|---|
| 4 |
|
|---|
| 5 |
|
|---|
| 6 |
|
|---|
| 7 |
|
|---|
| 8 |
|
|---|
| 9 |
|
|---|
| 10 |
|
|---|
| 11 |
|
|---|
| 12 |
|
|---|
| 13 |
|
|---|
| 14 |
|
|---|
| 15 |
|
|---|
| 16 |
|
|---|
| 17 |
|
|---|
| 18 |
|
|---|
| 19 |
|
|---|
| 20 |
|
|---|
| 21 |
|
|---|
| 22 |
|
|---|
| 23 |
|
|---|
| 24 |
#ifndef LWLIB_H |
|---|
| 25 |
#define LWLIB_H |
|---|
| 26 |
|
|---|
| 27 |
#include <X11/Intrinsic.h> |
|---|
| 28 |
|
|---|
| 29 |
|
|---|
| 30 |
|
|---|
| 31 |
|
|---|
| 32 |
|
|---|
| 33 |
|
|---|
| 34 |
|
|---|
| 35 |
|
|---|
| 36 |
|
|---|
| 37 |
|
|---|
| 38 |
|
|---|
| 39 |
|
|---|
| 40 |
|
|---|
| 41 |
|
|---|
| 42 |
|
|---|
| 43 |
|
|---|
| 44 |
|
|---|
| 45 |
|
|---|
| 46 |
|
|---|
| 47 |
|
|---|
| 48 |
typedef unsigned long LWLIB_ID; |
|---|
| 49 |
|
|---|
| 50 |
typedef enum _change_type |
|---|
| 51 |
{ |
|---|
| 52 |
NO_CHANGE = 0, |
|---|
| 53 |
INVISIBLE_CHANGE = 1, |
|---|
| 54 |
VISIBLE_CHANGE = 2, |
|---|
| 55 |
STRUCTURAL_CHANGE = 3 |
|---|
| 56 |
} change_type; |
|---|
| 57 |
|
|---|
| 58 |
enum button_type |
|---|
| 59 |
{ |
|---|
| 60 |
BUTTON_TYPE_NONE, |
|---|
| 61 |
BUTTON_TYPE_TOGGLE, |
|---|
| 62 |
BUTTON_TYPE_RADIO |
|---|
| 63 |
}; |
|---|
| 64 |
|
|---|
| 65 |
|
|---|
| 66 |
|
|---|
| 67 |
enum menu_separator |
|---|
| 68 |
{ |
|---|
| 69 |
|
|---|
| 70 |
SEPARATOR_NO_LINE, |
|---|
| 71 |
SEPARATOR_SINGLE_LINE, |
|---|
| 72 |
SEPARATOR_DOUBLE_LINE, |
|---|
| 73 |
SEPARATOR_SINGLE_DASHED_LINE, |
|---|
| 74 |
SEPARATOR_DOUBLE_DASHED_LINE, |
|---|
| 75 |
SEPARATOR_SHADOW_ETCHED_IN, |
|---|
| 76 |
SEPARATOR_SHADOW_ETCHED_OUT, |
|---|
| 77 |
SEPARATOR_SHADOW_ETCHED_IN_DASH, |
|---|
| 78 |
SEPARATOR_SHADOW_ETCHED_OUT_DASH, |
|---|
| 79 |
|
|---|
| 80 |
|
|---|
| 81 |
SEPARATOR_SHADOW_DOUBLE_ETCHED_IN, |
|---|
| 82 |
SEPARATOR_SHADOW_DOUBLE_ETCHED_OUT, |
|---|
| 83 |
SEPARATOR_SHADOW_DOUBLE_ETCHED_IN_DASH, |
|---|
| 84 |
SEPARATOR_SHADOW_DOUBLE_ETCHED_OUT_DASH |
|---|
| 85 |
}; |
|---|
| 86 |
|
|---|
| 87 |
typedef struct _widget_value |
|---|
| 88 |
{ |
|---|
| 89 |
|
|---|
| 90 |
Lisp_Object lname; |
|---|
| 91 |
char* name; |
|---|
| 92 |
|
|---|
| 93 |
char* value; |
|---|
| 94 |
|
|---|
| 95 |
Lisp_Object lkey; |
|---|
| 96 |
char* key; |
|---|
| 97 |
|
|---|
| 98 |
|
|---|
| 99 |
|
|---|
| 100 |
Lisp_Object help; |
|---|
| 101 |
|
|---|
| 102 |
Boolean enabled; |
|---|
| 103 |
|
|---|
| 104 |
Boolean selected; |
|---|
| 105 |
|
|---|
| 106 |
Boolean edited; |
|---|
| 107 |
|
|---|
| 108 |
enum button_type button_type; |
|---|
| 109 |
|
|---|
| 110 |
change_type change; |
|---|
| 111 |
|
|---|
| 112 |
|
|---|
| 113 |
change_type this_one_change; |
|---|
| 114 |
|
|---|
| 115 |
struct _widget_value* contents; |
|---|
| 116 |
|
|---|
| 117 |
XtPointer call_data; |
|---|
| 118 |
|
|---|
| 119 |
struct _widget_value* next; |
|---|
| 120 |
|
|---|
| 121 |
void* toolkit_data; |
|---|
| 122 |
|
|---|
| 123 |
|
|---|
| 124 |
Boolean free_toolkit_data; |
|---|
| 125 |
|
|---|
| 126 |
|
|---|
| 127 |
|
|---|
| 128 |
|
|---|
| 129 |
struct _widget_value *free_list; |
|---|
| 130 |
} widget_value; |
|---|
| 131 |
|
|---|
| 132 |
|
|---|
| 133 |
typedef void (*lw_callback) __P ((Widget w, LWLIB_ID id, void* data)); |
|---|
| 134 |
|
|---|
| 135 |
void lw_register_widget __P ((char* type, char* name, LWLIB_ID id, |
|---|
| 136 |
widget_value* val, lw_callback pre_activate_cb, |
|---|
| 137 |
lw_callback selection_cb, |
|---|
| 138 |
lw_callback post_activate_cb, |
|---|
| 139 |
lw_callback highlight_cb)); |
|---|
| 140 |
Widget lw_get_widget __P ((LWLIB_ID id, Widget parent, Boolean pop_up_p)); |
|---|
| 141 |
Widget lw_make_widget __P ((LWLIB_ID id, Widget parent, Boolean pop_up_p)); |
|---|
| 142 |
Widget lw_create_widget __P ((char* type, char* name, LWLIB_ID id, |
|---|
| 143 |
widget_value* val, Widget parent, Boolean pop_up_p, |
|---|
| 144 |
lw_callback pre_activate_cb, |
|---|
| 145 |
lw_callback selection_cb, |
|---|
| 146 |
lw_callback post_activate_cb, |
|---|
| 147 |
lw_callback highlight_cb)); |
|---|
| 148 |
LWLIB_ID lw_get_widget_id __P ((Widget w)); |
|---|
| 149 |
int lw_modify_all_widgets __P ((LWLIB_ID id, widget_value* val, Boolean deep_p)); |
|---|
| 150 |
void lw_destroy_widget __P ((Widget w)); |
|---|
| 151 |
void lw_destroy_all_widgets __P ((LWLIB_ID id)); |
|---|
| 152 |
void lw_destroy_everything __P ((void)); |
|---|
| 153 |
void lw_destroy_all_pop_ups __P ((void)); |
|---|
| 154 |
Widget lw_raise_all_pop_up_widgets __P ((void)); |
|---|
| 155 |
widget_value* lw_get_all_values __P ((LWLIB_ID id)); |
|---|
| 156 |
Boolean lw_get_some_values __P ((LWLIB_ID id, widget_value* val)); |
|---|
| 157 |
void lw_pop_up_all_widgets __P ((LWLIB_ID id)); |
|---|
| 158 |
void lw_pop_down_all_widgets __P ((LWLIB_ID id)); |
|---|
| 159 |
widget_value *malloc_widget_value (); |
|---|
| 160 |
void free_widget_value __P ((widget_value *)); |
|---|
| 161 |
void lw_popup_menu __P ((Widget, XEvent *)); |
|---|
| 162 |
|
|---|
| 163 |
|
|---|
| 164 |
void lw_set_keyboard_focus __P ((Widget parent, Widget w)); |
|---|
| 165 |
|
|---|
| 166 |
|
|---|
| 167 |
void lw_show_busy __P ((Widget w, Boolean busy)); |
|---|
| 168 |
|
|---|
| 169 |
|
|---|
| 170 |
void lw_refigure_widget __P ((Widget w, Boolean doit)); |
|---|
| 171 |
|
|---|
| 172 |
|
|---|
| 173 |
|
|---|
| 174 |
Boolean lw_window_is_in_menubar __P ((Window win, Widget menubar_widget)); |
|---|
| 175 |
|
|---|
| 176 |
|
|---|
| 177 |
void lw_allow_resizing __P ((Widget w, Boolean flag)); |
|---|
| 178 |
|
|---|
| 179 |
|
|---|
| 180 |
void lw_set_main_areas __P ((Widget parent, |
|---|
| 181 |
Widget menubar, |
|---|
| 182 |
Widget work_area)); |
|---|
| 183 |
|
|---|
| 184 |
|
|---|
| 185 |
|
|---|
| 186 |
|
|---|
| 187 |
|
|---|
| 188 |
|
|---|
| 189 |
int lw_separator_p __P ((char *label, enum menu_separator *type, |
|---|
| 190 |
int motif_p)); |
|---|
| 191 |
|
|---|
| 192 |
void lwlib_bcopy __P ((char*, char*, int)); |
|---|
| 193 |
|
|---|
| 194 |
#endif |
|---|
| 195 |
|
|---|
| 196 |
|
|---|
| 197 |
|
|---|