# HG changeset patch # User Richard M. Stallman # Date 890974363 0 # Node ID 41ed45a7387324fae051e3bab0b01f40f1972506 # Parent 25db4bc0e67ecd5f0c8b072c61bfc7a62305fe9b (item_properties): New variable. (ITEM_PROPERTY_...): New macros. diff -r 25db4bc0e67e -r 41ed45a73873 src/keyboard.h --- a/src/keyboard.h Fri Mar 27 03:49:56 1998 +0000 +++ b/src/keyboard.h Fri Mar 27 04:52:43 1998 +0000 @@ -203,6 +203,36 @@ generated by the next character. */ extern Lisp_Object internal_last_event_frame; +/* This holds a Lisp vector that holds the properties of a single + menu item while decoding it in parse_menu_item. + Using a Lisp vector to hold this information while we decode it + takes care of protecting all the data from GC. */ +extern Lisp_Object item_properties; + +/* This describes the elements of item_properties. + The first element is not a property, it is a pointer to the item properties + that is saved for GC protection. */ +#define ITEM_PROPERTY_ITEM 0 +/* The item string. */ +#define ITEM_PROPERTY_NAME 1 +/* Start of initilize to nil */ +/* The binding: nil, a command or a keymap. */ +#define ITEM_PROPERTY_DEF 2 +/* The keymap if the binding is a keymap, otherwise nil. */ +#define ITEM_PROPERTY_MAP 3 +/* Nil, :radio or :toggle. */ +#define ITEM_PROPERTY_TYPE 4 +/* Nil or a string describing an equivalent key binding. */ +#define ITEM_PROPERTY_KEYEQ 5 +/* Not nil if a selected toggle box or radio button, otherwise nil. */ +#define ITEM_PROPERTY_SELECTED 6 +/* Place for a help string. Not yet used. */ +#define ITEM_PROPERTY_HELP 7 +/* Start of initilize to t */ +/* Last property. */ +/* Not nil if item is enabled. */ +#define ITEM_PROPERTY_ENABLE 8 + /* Macros for dealing with lispy events. */ /* True iff EVENT has data fields describing it (i.e. a mouse click). */ @@ -261,6 +291,9 @@ extern Lisp_Object map_prompt P_ ((Lisp_Object)); + +extern int parse_menu_item (); + extern void echo_now P_ ((void)); extern void init_kboard P_ ((KBOARD *)); extern void delete_kboard P_ ((KBOARD *));