(ibuffer-aif): Use `make-symbol' instead of
[bpt/emacs.git] / lwlib / xlwmenuP.h
CommitLineData
07c30a5c
RS
1#ifndef _XlwMenuP_h
2#define _XlwMenuP_h
3
4#include "xlwmenu.h"
5#include <X11/CoreP.h>
6
7/* Elements in the stack arrays. */
8typedef struct _window_state
9{
10 Window window;
11 Position x;
12 Position y;
13 Dimension width;
14 Dimension height;
15 Dimension label_width;
7c2eb6d1
GM
16
17 /* Width of toggle buttons or radio buttons. */
18 Dimension button_width;
07c30a5c
RS
19} window_state;
20
21
22/* New fields for the XlwMenu widget instance record */
ba755702 23typedef struct _XlwMenu_part
07c30a5c
RS
24{
25 /* slots set by the resources */
26 XFontStruct* font;
98270d54 27 Pixel foreground;
ba755702 28 Pixel disabled_foreground;
07c30a5c
RS
29 Pixel button_foreground;
30 Dimension margin;
31 Dimension horizontal_spacing;
32 Dimension vertical_spacing;
33 Dimension arrow_spacing;
34 Dimension shadow_thickness;
35 Pixel top_shadow_color;
36 Pixel bottom_shadow_color;
37 Pixmap top_shadow_pixmap;
38 Pixmap bottom_shadow_pixmap;
98270d54 39 Cursor cursor_shape;
07c30a5c 40 XtCallbackList open;
ad45c495 41 XtCallbackList select, highlight;
07c30a5c
RS
42 widget_value* contents;
43 int horizontal;
457d47f8
GM
44
45 /* True means top_shadow_color and/or bottom_shadow_color must be freed. */
46 unsigned free_top_shadow_color_p : 1;
47 unsigned free_bottom_shadow_color_p : 1;
ba755702 48
07c30a5c
RS
49 /* State of the XlwMenu */
50 int old_depth;
51 widget_value** old_stack;
52 int old_stack_length;
53
54 /* New state after the user moved */
55 int new_depth;
56 widget_value** new_stack;
57 int new_stack_length;
58
59 /* Window resources */
60 window_state* windows;
61 int windows_length;
62
63 /* Internal part, set by the XlwMenu */
64 GC foreground_gc;
65 GC button_gc;
66 GC background_gc;
ba755702 67 GC disabled_gc;
07c30a5c
RS
68 GC inactive_button_gc;
69 GC shadow_top_gc;
70 GC shadow_bottom_gc;
71 Cursor cursor;
72 Boolean popped_up;
73 Pixmap gray_pixmap;
74} XlwMenuPart;
75
76/* Full instance record declaration */
ba755702 77typedef struct _XlwMenuRec
07c30a5c
RS
78{
79 CorePart core;
80 XlwMenuPart menu;
81} XlwMenuRec;
82
83/* New fields for the XlwMenu widget class record */
ba755702 84typedef struct
07c30a5c
RS
85{
86 int dummy;
87} XlwMenuClassPart;
88
89/* Full class record declaration. */
ba755702 90typedef struct _XlwMenuClassRec
07c30a5c
RS
91{
92 CoreClassPart core_class;
93 XlwMenuClassPart menu_class;
94} XlwMenuClassRec;
95
96/* Class pointer. */
97extern XlwMenuClassRec xlwMenuClassRec;
98
99#endif /* _XlwMenuP_h */