# HG changeset patch # User Paul Reilly # Date 779737023 0 # Node ID 0166e4ab659a88bc5afc5cb2398794cd191f5aa6 # Parent 226c214398a6f4a6116d3219b4e9e4f8c4c1f3ad *** empty log message *** diff -r 226c214398a6 -r 0166e4ab659a lwlib/lwlib-Xm.c --- a/lwlib/lwlib-Xm.c Fri Sep 16 11:18:45 1994 +0000 +++ b/lwlib/lwlib-Xm.c Fri Sep 16 17:37:03 1994 +0000 @@ -37,8 +37,10 @@ #include #include #include +#include #include #include +#include #include #include #include @@ -84,8 +86,8 @@ { destroyed_instance* instance = (destroyed_instance*)malloc (sizeof (destroyed_instance)); - instance->name = strdup (name); - instance->type = strdup (type); + instance->name = safe_strdup (name); + instance->type = safe_strdup (type); instance->widget = widget; instance->parent = parent; instance->pop_up_p = pop_up_p; @@ -635,7 +637,7 @@ { if (val->value) free (val->value); - val->value = strdup (XtName (toggle)); + val->value = safe_strdup (XtName (toggle)); } } val->edited = True; @@ -659,7 +661,7 @@ if (pos_list [j] == i) { cur->selected = True; - val->value = strdup (cur->name); + val->value = safe_strdup (cur->name); } } val->edited = 1; @@ -1152,6 +1154,20 @@ parent->core.window = parent_window; return result; } +static Widget +make_main (widget_instance* instance) +{ + Widget parent = instance->parent; + Widget result; + Arg al[2]; + int ac; + + ac = 0; + XtSetArg (al[ac], XtNborderWidth, 0); ac++; + XtSetArg (al[ac], XmNspacing, 0); ac++; + result = XmCreateMainWindow (parent, instance->info->name, al, ac); + return result; +} /* Table of functions to create widgets */ @@ -1260,6 +1276,7 @@ { {"menubar", make_menubar}, {"popup", make_popup_menu}, + {"main", make_main}, #ifdef ENERGIZE {"project_p_sheet", make_project_p_sheet}, {"debugger_p_sheet", make_debugger_p_sheet}, diff -r 226c214398a6 -r 0166e4ab659a lwlib/lwlib.h --- a/lwlib/lwlib.h Fri Sep 16 11:18:45 1994 +0000 +++ b/lwlib/lwlib.h Fri Sep 16 17:37:03 1994 +0000 @@ -19,6 +19,7 @@ ** radio: ("name" NULL NULL T/F data (selectable thing...)) ** strings: ("name" NULL NULL T/F data (selectable thing...)) ** text: ("name" "string" T/F data) +** main: ("name") */ typedef unsigned long LWLIB_ID; @@ -66,31 +67,48 @@ } widget_value; -typedef void (*lw_callback) (); +typedef void (*lw_callback) (/* Widget w, LWLIB_ID id, void* data */); -void lw_register_widget (); -Widget lw_get_widget (); -Widget lw_make_widget (); -Widget lw_create_widget (); -LWLIB_ID lw_get_widget_id (); -void lw_modify_all_widgets (); -void lw_destroy_widget (); -void lw_destroy_all_widgets (); -void lw_destroy_everything (); -void lw_destroy_all_pop_ups (); -Widget lw_raise_all_pop_up_widgets (); -widget_value* lw_get_all_values (); -Boolean lw_get_some_values (); -void lw_pop_up_all_widgets (); -void lw_pop_down_all_widgets (); +void lw_register_widget (/* char* type, char* name, LWLIB_ID id, + widget_value* val, lw_callback pre_activate_cb, + lw_callback selection_cb, + lw_callback post_activate_cb */); +Widget lw_get_widget (/* LWLIB_ID id, Widget parent, Boolean pop_up_p */); +Widget lw_make_widget (/* LWLIB_ID id, Widget parent, Boolean pop_up_p */); +Widget lw_create_widget (/* char* type, char* name, LWLIB_ID id, + widget_value* val, Widget parent, Boolean pop_up_p, + lw_callback pre_activate_cb, + lw_callback selection_cb, + lw_callback post_activate_cb */); +LWLIB_ID lw_get_widget_id (/* Widget w */); +void lw_modify_all_widgets (/* LWLIB_ID id, widget_value* val, Boolean deep_p */); +void lw_destroy_widget (/* Widget w */); +void lw_destroy_all_widgets (/* LWLIB_ID id */); +void lw_destroy_everything (/* void */); +void lw_destroy_all_pop_ups (/* void */); +Widget lw_raise_all_pop_up_widgets (/* void */); +widget_value* lw_get_all_values (/* LWLIB_ID id */); +Boolean lw_get_some_values (/* LWLIB_ID id, widget_value* val */); +void lw_pop_up_all_widgets (/* LWLIB_ID id */); +void lw_pop_down_all_widgets (/* LWLIB_ID id */); widget_value *malloc_widget_value (); -void free_widget_value (); -void lw_popup_menu (); +void free_widget_value (/* widget_value * */); +void lw_popup_menu (/* Widget */); /* Toolkit independent way of focusing on a Widget at the Xt level. */ -void lw_set_keyboard_focus (); +void lw_set_keyboard_focus (/* Widget parent, Widget w */); /* Silly Energize hack to invert the "sheet" button */ -void lw_show_busy (); +void lw_show_busy (/* Widget w, Boolean busy */); + +/* Silly hack to assist with Lucid/Athena geometry management. */ +void lw_refigure_widget (/* Widget w, Boolan doit */); + +/* Toolkit independent way of determining if an event occurred on a + menubar. */ +Boolean lw_window_is_in_menubar (/* Window win, Widget menubar_widget */); + +/* Manage resizing: TRUE permits resizing widget w; FALSE disallows it. */ +void lw_allow_resizing (/* Widget w, Boolean flag */); #endif /* LWLIB_H */