(widget_value, XtPointer, Boolean, enum button_type): Define here.
authorJason Rumney <jasonr@gnu.org>
Mon, 9 Jun 2008 12:36:01 +0000 (12:36 +0000)
committerJason Rumney <jasonr@gnu.org>
Mon, 9 Jun 2008 12:36:01 +0000 (12:36 +0000)
src/w32gui.h

index e712aa3..c738f9b 100644 (file)
@@ -33,6 +33,66 @@ typedef struct _XCharStruct
   short descent;
 } XCharStruct;
 
+/* Emulate widget_value from ../lwlib/lwlib.h, modified for Windows.  */
+typedef void * XtPointer;
+typedef char Boolean;
+enum button_type
+{
+  BUTTON_TYPE_NONE,
+  BUTTON_TYPE_TOGGLE,
+  BUTTON_TYPE_RADIO
+};
+typedef struct _widget_value
+{
+  /* name of widget */
+  Lisp_Object   lname;
+  char*                name;
+  /* value (meaning depend on widget type) */
+  char*                value;
+  /* keyboard equivalent. no implications for XtTranslations */
+  Lisp_Object   lkey;
+  char*                key;
+  /* Help string or nil if none.
+     GC finds this string through the frame's menu_bar_vector
+     or through menu_items.  */
+  Lisp_Object  help;
+  /* true if enabled */
+  Boolean      enabled;
+  /* true if selected */
+  Boolean      selected;
+  /* The type of a button.  */
+  enum button_type button_type;
+  /* true if menu title */
+  Boolean       title;
+#if 0
+  /* true if was edited (maintained by get_value) */
+  Boolean      edited;
+  /* true if has changed (maintained by lw library) */
+  change_type  change;
+  /* true if this widget itself has changed,
+     but not counting the other widgets found in the `next' field.  */
+  change_type   this_one_change;
+#endif
+  /* Contents of the sub-widgets, also selected slot for checkbox */
+  struct _widget_value*        contents;
+  /* data passed to callback */
+  XtPointer    call_data;
+  /* next one in the list */
+  struct _widget_value*        next;
+#if 0
+  /* slot for the toolkit dependent part.  Always initialize to NULL. */
+  void* toolkit_data;
+  /* tell us if we should free the toolkit data slot when freeing the
+     widget_value itself. */
+  Boolean free_toolkit_data;
+
+  /* we resource the widget_value structures; this points to the next
+     one on the free list if this one has been deallocated.
+   */
+  struct _widget_value *free_list;
+#endif
+} widget_value;
+
 enum w32_char_font_type
 {
   UNKNOWN_FONT = 0 /* FONT_TYPE_UNKNOWN */,