diff src/gui.h @ 251:677f6a0ee643 r20-5b24

Import from CVS: tag r20-5b24
author cvs
date Mon, 13 Aug 2007 10:19:59 +0200
parents 557eaa0339bf
children b2472a1930f2
line wrap: on
line diff
--- a/src/gui.h	Mon Aug 13 10:19:12 2007 +0200
+++ b/src/gui.h	Mon Aug 13 10:19:59 2007 +0200
@@ -30,6 +30,37 @@
 #ifdef HAVE_POPUPS
 int separator_string_p (CONST char *s);
 extern int popup_up_p;
+
+/* This structure describes gui button,
+   menu item or submenu properties */
+struct gui_item
+{
+  Lisp_Object name;		/* String */
+  Lisp_Object callback;		/* Symbol or form */
+  Lisp_Object suffix;		/* String */
+  Lisp_Object active;		/* Form */
+  Lisp_Object included;		/* Form */
+  Lisp_Object config;		/* Anything EQable */
+  Lisp_Object filter;		/* Form */
+  Lisp_Object style;		/* Symbol */
+  Lisp_Object selected;		/* Form */
+  Lisp_Object keys;		/* String */
+};
+#define GUI_ITEM_LAST_GCPROED keys
+#define GUI_ITEM_GCPRO_COUNT \
+  (slot_offset(struct gui_item, GUI_ITEM_LAST_GCPROED) / sizeof(Lisp_Object) + 1)
+
+void gui_item_init (struct gui_item *pgui_item);
+void gui_item_add_keyval_pair (struct gui_item *pgui_item,
+			       Lisp_Object key, Lisp_Object val);
+void gui_parse_item_keywords (Lisp_Object item, struct gui_item *pgui_item);
+int  gui_item_active_p (CONST struct gui_item *pgui_item);
+int  gui_item_included_p (CONST struct gui_item *pgui_item, Lisp_Object into);
+unsigned int gui_item_display_flush_left  (CONST struct gui_item *pgui_item,
+					   char* buf, unsigned int buf_len);
+unsigned int gui_item_display_flush_right (CONST struct gui_item *pgui_item,
+					   char* buf, unsigned int buf_len);
+
 #endif /* HAVE_POPUPS */
 
 #endif /* _XEMACS_GUI_H_ */