summaryrefslogtreecommitdiff
path: root/lwlib
diff options
context:
space:
mode:
authorPaul Reilly <pmr@pajato.com>1994-09-16 17:37:03 +0000
committerPaul Reilly <pmr@pajato.com>1994-09-16 17:37:03 +0000
commit5f66976685e22c338885d3aff6247d56779e206e (patch)
tree75a466cd4d75bdd55a051365400f4a92d7329e71 /lwlib
parentdc61a15fda46aee194299868b6c5497ab80d088d (diff)
downloademacs-5f66976685e22c338885d3aff6247d56779e206e.tar.gz
*** empty log message ***
Diffstat (limited to 'lwlib')
-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. */
#include <Xm/FileSB.h>
#include <Xm/Label.h>
#include <Xm/List.h>
+#include <Xm/MainW.h>
#include <Xm/MenuShell.h>
#include <Xm/MessageB.h>
+#include <Xm/PanedW.h>
#include <Xm/PushB.h>
#include <Xm/PushBG.h>
#include <Xm/ArrowB.h>
@@ -84,8 +86,8 @@ make_destroyed_instance (char* name, char* type, Widget widget, Widget parent,
{
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 @@ xm_update_one_value (widget_instance* instance, Widget widget,
{
if (val->value)
free (val->value);
- val->value = strdup (XtName (toggle));
+ val->value = safe_strdup (XtName (toggle));
}
}
val->edited = True;
@@ -659,7 +661,7 @@ xm_update_one_value (widget_instance* instance, Widget widget,
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 @@ make_popup_menu (widget_instance* instance)
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 @@ xm_creation_table [] =
{
{"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 --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 @@
** radio: ("name" NULL NULL T/F data (selectable thing...))
** strings: ("name" NULL NULL T/F data (selectable thing...))
** text: ("name" "string" <ign> T/F data)
+** main: ("name")
*/
typedef unsigned long LWLIB_ID;
@@ -66,31 +67,48 @@ typedef struct _widget_value
} 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 */