aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Reilly1994-09-16 17:37:03 +0000
committerPaul Reilly1994-09-16 17:37:03 +0000
commitdfdcaf49f33bff5d0582fbd7647c48b30d5d6950 (patch)
treefcd3f90f7ac7974463c07e1eb6a895e4f152db28
parentc7c9ca979f1d0f510e275a9039ebde8291570bb2 (diff)
downloademacs-dfdcaf49f33bff5d0582fbd7647c48b30d5d6950.tar.gz
emacs-dfdcaf49f33bff5d0582fbd7647c48b30d5d6950.zip
*** empty log message ***
-rw-r--r--lwlib/lwlib-Xm.c25
-rw-r--r--lwlib/lwlib.h58
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}
1157static Widget
1158make_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
24typedef unsigned long LWLIB_ID; 25typedef unsigned long LWLIB_ID;
@@ -66,31 +67,48 @@ typedef struct _widget_value
66} widget_value; 67} widget_value;
67 68
68 69
69typedef void (*lw_callback) (); 70typedef void (*lw_callback) (/* Widget w, LWLIB_ID id, void* data */);
70 71
71void lw_register_widget (); 72void lw_register_widget (/* char* type, char* name, LWLIB_ID id,
72Widget lw_get_widget (); 73 widget_value* val, lw_callback pre_activate_cb,
73Widget lw_make_widget (); 74 lw_callback selection_cb,
74Widget lw_create_widget (); 75 lw_callback post_activate_cb */);
75LWLIB_ID lw_get_widget_id (); 76Widget lw_get_widget (/* LWLIB_ID id, Widget parent, Boolean pop_up_p */);
76void lw_modify_all_widgets (); 77Widget lw_make_widget (/* LWLIB_ID id, Widget parent, Boolean pop_up_p */);
77void lw_destroy_widget (); 78Widget lw_create_widget (/* char* type, char* name, LWLIB_ID id,
78void lw_destroy_all_widgets (); 79 widget_value* val, Widget parent, Boolean pop_up_p,
79void lw_destroy_everything (); 80 lw_callback pre_activate_cb,
80void lw_destroy_all_pop_ups (); 81 lw_callback selection_cb,
81Widget lw_raise_all_pop_up_widgets (); 82 lw_callback post_activate_cb */);
82widget_value* lw_get_all_values (); 83LWLIB_ID lw_get_widget_id (/* Widget w */);
83Boolean lw_get_some_values (); 84void lw_modify_all_widgets (/* LWLIB_ID id, widget_value* val, Boolean deep_p */);
84void lw_pop_up_all_widgets (); 85void lw_destroy_widget (/* Widget w */);
85void lw_pop_down_all_widgets (); 86void lw_destroy_all_widgets (/* LWLIB_ID id */);
87void lw_destroy_everything (/* void */);
88void lw_destroy_all_pop_ups (/* void */);
89Widget lw_raise_all_pop_up_widgets (/* void */);
90widget_value* lw_get_all_values (/* LWLIB_ID id */);
91Boolean lw_get_some_values (/* LWLIB_ID id, widget_value* val */);
92void lw_pop_up_all_widgets (/* LWLIB_ID id */);
93void lw_pop_down_all_widgets (/* LWLIB_ID id */);
86widget_value *malloc_widget_value (); 94widget_value *malloc_widget_value ();
87void free_widget_value (); 95void free_widget_value (/* widget_value * */);
88void lw_popup_menu (); 96void 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. */
91void lw_set_keyboard_focus (); 99void 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 */
94void lw_show_busy (); 102void lw_show_busy (/* Widget w, Boolean busy */);
103
104/* Silly hack to assist with Lucid/Athena geometry management. */
105void lw_refigure_widget (/* Widget w, Boolan doit */);
106
107/* Toolkit independent way of determining if an event occurred on a
108 menubar. */
109Boolean lw_window_is_in_menubar (/* Window win, Widget menubar_widget */);
110
111/* Manage resizing: TRUE permits resizing widget w; FALSE disallows it. */
112void lw_allow_resizing (/* Widget w, Boolean flag */);
95 113
96#endif /* LWLIB_H */ 114#endif /* LWLIB_H */