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

Import from CVS: tag r21-0b34
author cvs
date Mon, 13 Aug 2007 10:28:48 +0200
parents f220cc83d72e
children 4f79e16b1112
comparison
equal deleted inserted replaced
271:c7b7086b0a39 272:c5d627a313b1
1 #ifndef LWLIB_H 1 #ifndef LWLIB_H
2 #define LWLIB_H 2 #define LWLIB_H
3 3
4 #include <X11/Intrinsic.h> 4 #include <X11/Intrinsic.h>
5
6 /* To eliminate use of `const' in the lwlib sources, define CONST_IS_LOSING. */
7 #undef CONST
8 #ifdef CONST_IS_LOSING
9 # define CONST
10 #else
11 # define CONST const
12 #endif
13 5
14 #if defined (LWLIB_MENUBARS_LUCID) || defined (LWLIB_MENUBARS_MOTIF) || defined (LWLIB_MENUBARS_ATHENA) 6 #if defined (LWLIB_MENUBARS_LUCID) || defined (LWLIB_MENUBARS_MOTIF) || defined (LWLIB_MENUBARS_ATHENA)
15 #define NEED_MENUBARS 7 #define NEED_MENUBARS
16 #endif 8 #endif
17 #if defined (LWLIB_SCROLLBARS_LUCID) || defined (LWLIB_SCROLLBARS_MOTIF) || defined (LWLIB_SCROLLBARS_ATHENA) 9 #if defined (LWLIB_SCROLLBARS_LUCID) || defined (LWLIB_SCROLLBARS_MOTIF) || defined (LWLIB_SCROLLBARS_ATHENA)
21 #define NEED_DIALOGS 13 #define NEED_DIALOGS
22 #endif 14 #endif
23 15
24 /* 16 /*
25 ** Widget values depend on the Widget type: 17 ** Widget values depend on the Widget type:
26 ** 18 **
27 ** widget: (name value key enabled data contents/selected) 19 ** widget: (name value key enabled data contents/selected)
28 ** 20 **
29 ** label: ("name" "string" NULL NULL NULL NULL) 21 ** label: ("name" "string" NULL NULL NULL NULL)
30 ** BUTTON: ("name" "string" "key" T/F data <default-button-p>) 22 ** BUTTON: ("name" "string" "key" T/F data <default-button-p>)
31 ** CASCADE (button w/menu): 23 ** CASCADE (button w/menu):
32 ** ("name" "string" "key" T/F data (label|button|button w/menu...)) 24 ** ("name" "string" "key" T/F data (label|button|button w/menu...))
33 ** INCREMENTAL (button w/menu construction callback): 25 ** INCREMENTAL (button w/menu construction callback):
34 ** ("name" "string" NULL T/F <opaque pointer>) 26 ** ("name" "string" NULL T/F <opaque pointer>)
35 ** menubar: ("name" NULL NULL T/F data (button w/menu)) 27 ** menubar: ("name" NULL NULL T/F data (button w/menu))
36 ** scrollbar:("name" NULL NULL T/F NULL NULL) 28 ** scrollbar:("name" NULL NULL T/F NULL NULL)
37 ** selectable thing: 29 ** selectable thing:
38 ** ("name" "string" "key" T/F data T/F) 30 ** ("name" "string" "key" T/F data T/F)
41 ** strings: ("name" NULL NULL T/F data (selectable thing...)) 33 ** strings: ("name" NULL NULL T/F data (selectable thing...))
42 ** TEXT: ("name" "string" <ign> T/F data) 34 ** TEXT: ("name" "string" <ign> T/F data)
43 ** 35 **
44 ** Note that the above is EXTREMELY bogus. The "type" of the various entities 36 ** Note that the above is EXTREMELY bogus. The "type" of the various entities
45 ** that a widget_value structure can represent is implicit in the contents of 37 ** that a widget_value structure can represent is implicit in the contents of
46 ** half a dozen slots, instead of there simply being a type field. This 38 ** half a dozen slots, instead of there simply being a type field. This
47 ** should all be rethunk. I've added a type field, but for now it's only used 39 ** should all be rethunk. I've added a type field, but for now it's only used
48 ** by the new xlwmenu code. 40 ** by the new xlwmenu code.
49 */ 41 */
50 42
51 typedef unsigned long LWLIB_ID; 43 typedef unsigned long LWLIB_ID;
112 104
113 /* name of widget */ 105 /* name of widget */
114 char* name; 106 char* name;
115 /* value (meaning BOGUSLY depend on widget type) */ 107 /* value (meaning BOGUSLY depend on widget type) */
116 char* value; 108 char* value;
117 /* keyboard equivalent. no implications for XtTranslations */ 109 /* keyboard equivalent. no implications for XtTranslations */
118 char* key; 110 char* key;
119 /* accelerator key. For XEmacs, this should be a Lisp_Object holding a 111 /* accelerator key. For XEmacs, this should be a Lisp_Object holding a
120 char or symbol suitable for passing to event_matches_key_specifier_p. 112 char or symbol suitable for passing to event_matches_key_specifier_p.
121 Outside of emacs, this can be anything: an X KeySym is a good idea. 113 Outside of emacs, this can be anything: an X KeySym is a good idea.
122 lwlib provides support functions for keyboard traversal of menus. Actual 114 lwlib provides support functions for keyboard traversal of menus. Actual