diff options
| author | Paul Reilly | 1994-09-16 17:37:03 +0000 |
|---|---|---|
| committer | Paul Reilly | 1994-09-16 17:37:03 +0000 |
| commit | dfdcaf49f33bff5d0582fbd7647c48b30d5d6950 (patch) | |
| tree | fcd3f90f7ac7974463c07e1eb6a895e4f152db28 | |
| parent | c7c9ca979f1d0f510e275a9039ebde8291570bb2 (diff) | |
| download | emacs-dfdcaf49f33bff5d0582fbd7647c48b30d5d6950.tar.gz emacs-dfdcaf49f33bff5d0582fbd7647c48b30d5d6950.zip | |
*** empty log message ***
| -rw-r--r-- | lwlib/lwlib-Xm.c | 25 | ||||
| -rw-r--r-- | lwlib/lwlib.h | 58 |
2 files changed, 59 insertions, 24 deletions
diff --git a/lwlib/lwlib-Xm.c b/lwlib/lwlib-Xm.c index 13d28862697..f56d22bf288 100644 --- a/lwlib/lwlib-Xm.c +++ b/lwlib/lwlib-Xm.c | |||
| @@ -37,8 +37,10 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | |||
| 37 | #include <Xm/FileSB.h> | 37 | #include <Xm/FileSB.h> |
| 38 | #include <Xm/Label.h> | 38 | #include <Xm/Label.h> |
| 39 | #include <Xm/List.h> | 39 | #include <Xm/List.h> |
| 40 | #include <Xm/MainW.h> | ||
| 40 | #include <Xm/MenuShell.h> | 41 | #include <Xm/MenuShell.h> |
| 41 | #include <Xm/MessageB.h> | 42 | #include <Xm/MessageB.h> |
| 43 | #include <Xm/PanedW.h> | ||
| 42 | #include <Xm/PushB.h> | 44 | #include <Xm/PushB.h> |
| 43 | #include <Xm/PushBG.h> | 45 | #include <Xm/PushBG.h> |
| 44 | #include <Xm/ArrowB.h> | 46 | #include <Xm/ArrowB.h> |
| @@ -84,8 +86,8 @@ make_destroyed_instance (char* name, char* type, Widget widget, Widget parent, | |||
| 84 | { | 86 | { |
| 85 | destroyed_instance* instance = | 87 | destroyed_instance* instance = |
| 86 | (destroyed_instance*)malloc (sizeof (destroyed_instance)); | 88 | (destroyed_instance*)malloc (sizeof (destroyed_instance)); |
| 87 | instance->name = strdup (name); | 89 | instance->name = safe_strdup (name); |
| 88 | instance->type = strdup (type); | 90 | instance->type = safe_strdup (type); |
| 89 | instance->widget = widget; | 91 | instance->widget = widget; |
| 90 | instance->parent = parent; | 92 | instance->parent = parent; |
| 91 | instance->pop_up_p = pop_up_p; | 93 | instance->pop_up_p = pop_up_p; |
| @@ -635,7 +637,7 @@ xm_update_one_value (widget_instance* instance, Widget widget, | |||
| 635 | { | 637 | { |
| 636 | if (val->value) | 638 | if (val->value) |
| 637 | free (val->value); | 639 | free (val->value); |
| 638 | val->value = strdup (XtName (toggle)); | 640 | val->value = safe_strdup (XtName (toggle)); |
| 639 | } | 641 | } |
| 640 | } | 642 | } |
| 641 | val->edited = True; | 643 | val->edited = True; |
| @@ -659,7 +661,7 @@ xm_update_one_value (widget_instance* instance, Widget widget, | |||
| 659 | if (pos_list [j] == i) | 661 | if (pos_list [j] == i) |
| 660 | { | 662 | { |
| 661 | cur->selected = True; | 663 | cur->selected = True; |
| 662 | val->value = strdup (cur->name); | 664 | val->value = safe_strdup (cur->name); |
| 663 | } | 665 | } |
| 664 | } | 666 | } |
| 665 | val->edited = 1; | 667 | val->edited = 1; |
| @@ -1152,6 +1154,20 @@ make_popup_menu (widget_instance* instance) | |||
| 1152 | parent->core.window = parent_window; | 1154 | parent->core.window = parent_window; |
| 1153 | return result; | 1155 | return result; |
| 1154 | } | 1156 | } |
| 1157 | static Widget | ||
| 1158 | make_main (widget_instance* instance) | ||
| 1159 | { | ||
| 1160 | Widget parent = instance->parent; | ||
| 1161 | Widget result; | ||
| 1162 | Arg al[2]; | ||
| 1163 | int ac; | ||
| 1164 | |||
| 1165 | ac = 0; | ||
| 1166 | XtSetArg (al[ac], XtNborderWidth, 0); ac++; | ||
| 1167 | XtSetArg (al[ac], XmNspacing, 0); ac++; | ||
| 1168 | result = XmCreateMainWindow (parent, instance->info->name, al, ac); | ||
| 1169 | return result; | ||
| 1170 | } | ||
| 1155 | 1171 | ||
| 1156 | /* Table of functions to create widgets */ | 1172 | /* Table of functions to create widgets */ |
| 1157 | 1173 | ||
| @@ -1260,6 +1276,7 @@ xm_creation_table [] = | |||
| 1260 | { | 1276 | { |
| 1261 | {"menubar", make_menubar}, | 1277 | {"menubar", make_menubar}, |
| 1262 | {"popup", make_popup_menu}, | 1278 | {"popup", make_popup_menu}, |
| 1279 | {"main", make_main}, | ||
| 1263 | #ifdef ENERGIZE | 1280 | #ifdef ENERGIZE |
| 1264 | {"project_p_sheet", make_project_p_sheet}, | 1281 | {"project_p_sheet", make_project_p_sheet}, |
| 1265 | {"debugger_p_sheet", make_debugger_p_sheet}, | 1282 | {"debugger_p_sheet", make_debugger_p_sheet}, |
diff --git a/lwlib/lwlib.h b/lwlib/lwlib.h index f52e257bd7a..607695ccb48 100644 --- a/lwlib/lwlib.h +++ b/lwlib/lwlib.h | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | ** radio: ("name" NULL NULL T/F data (selectable thing...)) | 19 | ** radio: ("name" NULL NULL T/F data (selectable thing...)) |
| 20 | ** strings: ("name" NULL NULL T/F data (selectable thing...)) | 20 | ** strings: ("name" NULL NULL T/F data (selectable thing...)) |
| 21 | ** text: ("name" "string" <ign> T/F data) | 21 | ** text: ("name" "string" <ign> T/F data) |
| 22 | ** main: ("name") | ||
| 22 | */ | 23 | */ |
| 23 | 24 | ||
| 24 | typedef unsigned long LWLIB_ID; | 25 | typedef unsigned long LWLIB_ID; |
| @@ -66,31 +67,48 @@ typedef struct _widget_value | |||
| 66 | } widget_value; | 67 | } widget_value; |
| 67 | 68 | ||
| 68 | 69 | ||
| 69 | typedef void (*lw_callback) (); | 70 | typedef void (*lw_callback) (/* Widget w, LWLIB_ID id, void* data */); |
| 70 | 71 | ||
| 71 | void lw_register_widget (); | 72 | void lw_register_widget (/* char* type, char* name, LWLIB_ID id, |
| 72 | Widget lw_get_widget (); | 73 | widget_value* val, lw_callback pre_activate_cb, |
| 73 | Widget lw_make_widget (); | 74 | lw_callback selection_cb, |
| 74 | Widget lw_create_widget (); | 75 | lw_callback post_activate_cb */); |
| 75 | LWLIB_ID lw_get_widget_id (); | 76 | Widget lw_get_widget (/* LWLIB_ID id, Widget parent, Boolean pop_up_p */); |
| 76 | void lw_modify_all_widgets (); | 77 | Widget lw_make_widget (/* LWLIB_ID id, Widget parent, Boolean pop_up_p */); |
| 77 | void lw_destroy_widget (); | 78 | Widget lw_create_widget (/* char* type, char* name, LWLIB_ID id, |
| 78 | void lw_destroy_all_widgets (); | 79 | widget_value* val, Widget parent, Boolean pop_up_p, |
| 79 | void lw_destroy_everything (); | 80 | lw_callback pre_activate_cb, |
| 80 | void lw_destroy_all_pop_ups (); | 81 | lw_callback selection_cb, |
| 81 | Widget lw_raise_all_pop_up_widgets (); | 82 | lw_callback post_activate_cb */); |
| 82 | widget_value* lw_get_all_values (); | 83 | LWLIB_ID lw_get_widget_id (/* Widget w */); |
| 83 | Boolean lw_get_some_values (); | 84 | void lw_modify_all_widgets (/* LWLIB_ID id, widget_value* val, Boolean deep_p */); |
| 84 | void lw_pop_up_all_widgets (); | 85 | void lw_destroy_widget (/* Widget w */); |
| 85 | void lw_pop_down_all_widgets (); | 86 | void lw_destroy_all_widgets (/* LWLIB_ID id */); |
| 87 | void lw_destroy_everything (/* void */); | ||
| 88 | void lw_destroy_all_pop_ups (/* void */); | ||
| 89 | Widget lw_raise_all_pop_up_widgets (/* void */); | ||
| 90 | widget_value* lw_get_all_values (/* LWLIB_ID id */); | ||
| 91 | Boolean lw_get_some_values (/* LWLIB_ID id, widget_value* val */); | ||
| 92 | void lw_pop_up_all_widgets (/* LWLIB_ID id */); | ||
| 93 | void lw_pop_down_all_widgets (/* LWLIB_ID id */); | ||
| 86 | widget_value *malloc_widget_value (); | 94 | widget_value *malloc_widget_value (); |
| 87 | void free_widget_value (); | 95 | void free_widget_value (/* widget_value * */); |
| 88 | void lw_popup_menu (); | 96 | void lw_popup_menu (/* Widget */); |
| 89 | 97 | ||
| 90 | /* Toolkit independent way of focusing on a Widget at the Xt level. */ | 98 | /* Toolkit independent way of focusing on a Widget at the Xt level. */ |
| 91 | void lw_set_keyboard_focus (); | 99 | void lw_set_keyboard_focus (/* Widget parent, Widget w */); |
| 92 | 100 | ||
| 93 | /* Silly Energize hack to invert the "sheet" button */ | 101 | /* Silly Energize hack to invert the "sheet" button */ |
| 94 | void lw_show_busy (); | 102 | void lw_show_busy (/* Widget w, Boolean busy */); |
| 103 | |||
| 104 | /* Silly hack to assist with Lucid/Athena geometry management. */ | ||
| 105 | void lw_refigure_widget (/* Widget w, Boolan doit */); | ||
| 106 | |||
| 107 | /* Toolkit independent way of determining if an event occurred on a | ||
| 108 | menubar. */ | ||
| 109 | Boolean lw_window_is_in_menubar (/* Window win, Widget menubar_widget */); | ||
| 110 | |||
| 111 | /* Manage resizing: TRUE permits resizing widget w; FALSE disallows it. */ | ||
| 112 | void lw_allow_resizing (/* Widget w, Boolean flag */); | ||
| 95 | 113 | ||
| 96 | #endif /* LWLIB_H */ | 114 | #endif /* LWLIB_H */ |