*** empty log message ***
[emacs.git] / lwlib / xlwmenuP.h
blobf6aa0f4a58c8a3e48c8fe21cc41e9762e0fc1be8
1 #ifndef _XlwMenuP_h
2 #define _XlwMenuP_h
4 #include "xlwmenu.h"
5 #include <X11/CoreP.h>
7 /* Elements in the stack arrays. */
8 typedef struct _window_state
10 Window window;
11 Position x;
12 Position y;
13 Dimension width;
14 Dimension height;
15 Dimension label_width;
17 /* Width of toggle buttons or radio buttons. */
18 Dimension button_width;
19 } window_state;
22 /* New fields for the XlwMenu widget instance record */
23 typedef struct _XlwMenu_part
25 /* slots set by the resources */
26 XFontStruct* font;
27 Pixel foreground;
28 Pixel disabled_foreground;
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;
39 Cursor cursor_shape;
40 XtCallbackList open;
41 XtCallbackList select, highlight;
42 widget_value* contents;
43 int horizontal;
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;
49 /* State of the XlwMenu */
50 int top_depth;
51 int old_depth;
52 widget_value** old_stack;
53 int old_stack_length;
55 /* New state after the user moved */
56 int new_depth;
57 widget_value** new_stack;
58 int new_stack_length;
60 /* Window resources */
61 window_state* windows;
62 int windows_length;
64 /* Internal part, set by the XlwMenu */
65 GC foreground_gc;
66 GC button_gc;
67 GC background_gc;
68 GC disabled_gc;
69 GC inactive_button_gc;
70 GC shadow_top_gc;
71 GC shadow_bottom_gc;
72 Cursor cursor;
73 Boolean popped_up;
74 Pixmap gray_pixmap;
75 } XlwMenuPart;
77 /* Full instance record declaration */
78 typedef struct _XlwMenuRec
80 CorePart core;
81 XlwMenuPart menu;
82 } XlwMenuRec;
84 /* New fields for the XlwMenu widget class record */
85 typedef struct
87 int dummy;
88 } XlwMenuClassPart;
90 /* Full class record declaration. */
91 typedef struct _XlwMenuClassRec
93 CoreClassPart core_class;
94 XlwMenuClassPart menu_class;
95 } XlwMenuClassRec;
97 /* Class pointer. */
98 extern XlwMenuClassRec xlwMenuClassRec;
100 #endif /* _XlwMenuP_h */
102 /* arch-tag: 18d7fc41-ffa0-47a3-a49f-3469900c7a25
103 (do not change this comment) */