]> git.eshelyaron.com Git - emacs.git/commitdiff
(item_properties): New variable.
authorRichard M. Stallman <rms@gnu.org>
Fri, 27 Mar 1998 04:52:43 +0000 (04:52 +0000)
committerRichard M. Stallman <rms@gnu.org>
Fri, 27 Mar 1998 04:52:43 +0000 (04:52 +0000)
(ITEM_PROPERTY_...): New macros.

src/keyboard.h

index 73aec908e2c9a8464750368e50a80ac7c0bd2294..71247c9e9501970e506aeb6d9f2602840da57c3e 100644 (file)
@@ -203,6 +203,36 @@ extern int this_command_key_count;
    generated by the next character.  */
 extern Lisp_Object internal_last_event_frame;
 \f
+/* 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
+\f
 /* 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 Vkeyboard_translate_table;
 
 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 *));