This commit was generated by cvs2svn to compensate for changes in r1705,
[chise/xemacs-chise.git.1] / lwlib / lwlib.h
index b770831..76d3241 100644 (file)
@@ -1,17 +1,8 @@
-#ifndef LWLIB_H
-#define LWLIB_H
-
-#undef CONST
+#ifndef INCLUDED_lwlib_h_
+#define INCLUDED_lwlib_h_
 
 #include <X11/Intrinsic.h>
 
-/* To eliminate use of `const' in the lwlib sources, define CONST_IS_LOSING. */
-#ifdef CONST_IS_LOSING
-# define CONST
-#else
-# define CONST const
-#endif
-
 #if defined (LWLIB_MENUBARS_LUCID) || defined (LWLIB_MENUBARS_MOTIF) || defined (LWLIB_MENUBARS_ATHENA)
 #define NEED_MENUBARS
 #endif
@@ -106,6 +97,17 @@ typedef struct _scrollbar_values
   int scrollbar_x, scrollbar_y;
 } scrollbar_values;
 
+typedef struct _widget_args
+{
+  /* some things are only possible at creation time. args are applied
+     to widgets at creation time.  */
+  ArgList args;
+  int  nargs;
+  /* Copying args is impossible so we make the caller give us heap allocated
+     args and free them when on-one wants them any more. */
+  int  ref_count;
+} widget_args;
+
 typedef struct _widget_value
 {
   /* This slot is only partially utilized right now. */
@@ -147,10 +149,12 @@ typedef struct _widget_value
   /* data defining a scrollbar; only valid if type == "scrollbar" */
   scrollbar_values *scrollbar_data;
 
+  /* A reference counted arg structure. */
+  struct _widget_args *args;
   /* we resource the widget_value structures; this points to the next
-     one on the free list if this one has been deallocated.
-   */
+     one on the free list if this one has been deallocated.  */
   struct _widget_value *free_list;
+
 } widget_value;
 
 
@@ -176,13 +180,17 @@ extern int lw_menu_active;
 /* do this for the other toolkits too */
 #endif /* LWLIB_MENUBARS_LUCID */
 
-void  lw_register_widget (CONST char* type, CONST char* name, LWLIB_ID id,
+#if defined (LWLIB_TABS_LUCID)
+#include "xlwtabs.h"
+#endif
+
+void  lw_register_widget (const char* type, const 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 (CONST char* type, CONST char* name, LWLIB_ID id,
+Widget lw_create_widget (const char* type, const char* name, LWLIB_ID id,
                         widget_value* val, Widget parent, Boolean pop_up_p,
                         lw_callback pre_activate_cb,
                         lw_callback selection_cb,
@@ -201,9 +209,14 @@ 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);
+void lw_add_value_args_to_args (widget_value* wv, ArgList addto, int* offset);
+void lw_add_widget_value_arg (widget_value* wv, String name, XtArgVal value);
+void lw_copy_widget_value_args (widget_value* copy, widget_value* val);
+widget_value * copy_widget_value_tree (widget_value *val, change_type change);
 
 widget_value *malloc_widget_value (void);
 void free_widget_value (widget_value *);
+void free_widget_value_tree (widget_value *wv);
 widget_value *replace_widget_value_tree (widget_value*, widget_value*);
 
 void lw_popup_menu (Widget, XEvent *);
@@ -214,4 +227,6 @@ void lw_set_keyboard_focus (Widget parent, Widget w);
  /* Silly Energize hack to invert the "sheet" button */
 void lw_show_busy (Widget w, Boolean busy);
 
-#endif /* LWLIB_H */
+void lw_remove_accelerator_spec (char *val);
+
+#endif /* INCLUDED_lwlib_h_ */