comparison src/gui.h @ 272:c5d627a313b1 r21-0b34

Import from CVS: tag r21-0b34
author cvs
date Mon, 13 Aug 2007 10:28:48 +0200
parents b2472a1930f2
children 57709be46d1b
comparison
equal deleted inserted replaced
271:c7b7086b0a39 272:c5d627a313b1
54 * gui_item is a struct containing a bunch of Lisp_Object 54 * gui_item is a struct containing a bunch of Lisp_Object
55 * members. We need to GC-protect all the member slots. 55 * members. We need to GC-protect all the member slots.
56 * Rather than build a long chain of individual gcpro structs 56 * Rather than build a long chain of individual gcpro structs
57 * that protect the slots individually, we protect all the 57 * that protect the slots individually, we protect all the
58 * member slots by pretending the struct is an array. ANSI C 58 * member slots by pretending the struct is an array. ANSI C
59 * requires tihs hack to work, ugly though it is. 59 * requires this hack to work, ugly though it is.
60 */ 60 */
61 #define GCPRO_GUI_ITEM(pgui_item) \ 61 #define GCPRO_GUI_ITEM(pgui_item) \
62 do { \ 62 do { \
63 Lisp_Object *gui_item_array = (Lisp_Object *) pgui_item; \ 63 Lisp_Object *gui_item_array = (Lisp_Object *) pgui_item; \
64 GCPRO1 (gui_item_array[0]); \ 64 GCPRO1 (gui_item_array[0]); \
65 gcpro1.nvars = GUI_ITEM_GCPRO_COUNT; \ 65 gcpro1.nvars = GUI_ITEM_GCPRO_COUNT; \
66 } while (0); 66 } while (0);
67 67
68 extern Lisp_Object Q_accelerator, Q_active, Q_config, Q_filter, Q_included;
69 extern Lisp_Object Q_keys, Q_selected, Q_suffix, Qradio, Qtoggle;
70
68 void gui_item_init (struct gui_item *pgui_item); 71 void gui_item_init (struct gui_item *pgui_item);
69 void gui_item_add_keyval_pair (struct gui_item *pgui_item, 72 void gui_item_add_keyval_pair (struct gui_item *pgui_item,
70 Lisp_Object key, Lisp_Object val); 73 Lisp_Object key, Lisp_Object val);
71 void gui_parse_item_keywords (Lisp_Object item, struct gui_item *pgui_item); 74 void gui_parse_item_keywords (Lisp_Object item, struct gui_item *pgui_item);
72 int gui_item_active_p (CONST struct gui_item *pgui_item); 75 int gui_item_active_p (CONST struct gui_item *pgui_item);
73 int gui_item_included_p (CONST struct gui_item *pgui_item, Lisp_Object into); 76 int gui_item_included_p (CONST struct gui_item *pgui_item, Lisp_Object into);
74 unsigned int gui_item_display_flush_left (CONST struct gui_item *pgui_item, 77 unsigned int gui_item_display_flush_left (CONST struct gui_item *pgui_item,
75 char* buf, unsigned int buf_len); 78 char* buf, Bytecount buf_len);
76 unsigned int gui_item_display_flush_right (CONST struct gui_item *pgui_item, 79 unsigned int gui_item_display_flush_right (CONST struct gui_item *pgui_item,
77 char* buf, unsigned int buf_len); 80 char* buf, Bytecount buf_len);
78 81
79 #endif /* HAVE_POPUPS */ 82 #endif /* HAVE_POPUPS */
80 83
81 #endif /* _XEMACS_GUI_H_ */ 84 #endif /* _XEMACS_GUI_H_ */