60584
|
1 /* Internals of a lightweight menubar widget.
|
64769
|
2 Copyright (C) 1999, 2000, 2002, 2003, 2004,
|
|
3 2005 Free Software Foundation, Inc.
|
60584
|
4
|
|
5 This file is part of the Lucid Widget Library.
|
|
6
|
|
7 The Lucid Widget Library is free software; you can redistribute it and/or
|
|
8 modify it under the terms of the GNU General Public License as published by
|
|
9 the Free Software Foundation; either version 2, or (at your option)
|
|
10 any later version.
|
|
11
|
|
12 The Lucid Widget Library is distributed in the hope that it will be useful,
|
|
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
15 GNU General Public License for more details.
|
|
16
|
|
17 You should have received a copy of the GNU General Public License
|
|
18 along with GNU Emacs; see the file COPYING. If not, write to the
|
64083
|
19 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
20 Boston, MA 02110-1301, USA. */
|
60584
|
21
|
7359
|
22 #ifndef _XlwMenuP_h
|
|
23 #define _XlwMenuP_h
|
|
24
|
|
25 #include "xlwmenu.h"
|
|
26 #include <X11/CoreP.h>
|
|
27
|
|
28 /* Elements in the stack arrays. */
|
|
29 typedef struct _window_state
|
|
30 {
|
|
31 Window window;
|
|
32 Position x;
|
|
33 Position y;
|
|
34 Dimension width;
|
|
35 Dimension height;
|
|
36 Dimension label_width;
|
25033
|
37
|
|
38 /* Width of toggle buttons or radio buttons. */
|
|
39 Dimension button_width;
|
7359
|
40 } window_state;
|
|
41
|
|
42
|
|
43 /* New fields for the XlwMenu widget instance record */
|
45145
|
44 typedef struct _XlwMenu_part
|
7359
|
45 {
|
|
46 /* slots set by the resources */
|
60698
|
47 #ifdef HAVE_X_I18N
|
61210
|
48 XFontSet fontSet;
|
60698
|
49 XFontSetExtents *font_extents;
|
61210
|
50 #endif
|
7359
|
51 XFontStruct* font;
|
7360
|
52 Pixel foreground;
|
45145
|
53 Pixel disabled_foreground;
|
7359
|
54 Pixel button_foreground;
|
|
55 Dimension margin;
|
|
56 Dimension horizontal_spacing;
|
|
57 Dimension vertical_spacing;
|
|
58 Dimension arrow_spacing;
|
|
59 Dimension shadow_thickness;
|
|
60 Pixel top_shadow_color;
|
|
61 Pixel bottom_shadow_color;
|
|
62 Pixmap top_shadow_pixmap;
|
|
63 Pixmap bottom_shadow_pixmap;
|
7360
|
64 Cursor cursor_shape;
|
7359
|
65 XtCallbackList open;
|
27340
|
66 XtCallbackList select, highlight;
|
7359
|
67 widget_value* contents;
|
|
68 int horizontal;
|
29699
|
69
|
|
70 /* True means top_shadow_color and/or bottom_shadow_color must be freed. */
|
|
71 unsigned free_top_shadow_color_p : 1;
|
|
72 unsigned free_bottom_shadow_color_p : 1;
|
45145
|
73
|
7359
|
74 /* State of the XlwMenu */
|
53564
609ef1718642
Changes for lucid popup menus (keyboard traversal enabled) and dialogs
Jan Djärv <jan.h.d@swipnet.se>
diff
changeset
|
75 int top_depth;
|
7359
|
76 int old_depth;
|
|
77 widget_value** old_stack;
|
|
78 int old_stack_length;
|
|
79
|
|
80 /* New state after the user moved */
|
|
81 int new_depth;
|
|
82 widget_value** new_stack;
|
|
83 int new_stack_length;
|
|
84
|
|
85 /* Window resources */
|
|
86 window_state* windows;
|
|
87 int windows_length;
|
|
88
|
|
89 /* Internal part, set by the XlwMenu */
|
|
90 GC foreground_gc;
|
|
91 GC button_gc;
|
|
92 GC background_gc;
|
45145
|
93 GC disabled_gc;
|
7359
|
94 GC inactive_button_gc;
|
|
95 GC shadow_top_gc;
|
|
96 GC shadow_bottom_gc;
|
|
97 Cursor cursor;
|
|
98 Boolean popped_up;
|
|
99 Pixmap gray_pixmap;
|
|
100 } XlwMenuPart;
|
|
101
|
|
102 /* Full instance record declaration */
|
45145
|
103 typedef struct _XlwMenuRec
|
7359
|
104 {
|
|
105 CorePart core;
|
|
106 XlwMenuPart menu;
|
|
107 } XlwMenuRec;
|
|
108
|
|
109 /* New fields for the XlwMenu widget class record */
|
45145
|
110 typedef struct
|
7359
|
111 {
|
|
112 int dummy;
|
|
113 } XlwMenuClassPart;
|
|
114
|
|
115 /* Full class record declaration. */
|
45145
|
116 typedef struct _XlwMenuClassRec
|
7359
|
117 {
|
|
118 CoreClassPart core_class;
|
|
119 XlwMenuClassPart menu_class;
|
|
120 } XlwMenuClassRec;
|
|
121
|
|
122 /* Class pointer. */
|
|
123 extern XlwMenuClassRec xlwMenuClassRec;
|
|
124
|
|
125 #endif /* _XlwMenuP_h */
|
52401
|
126
|
|
127 /* arch-tag: 18d7fc41-ffa0-47a3-a49f-3469900c7a25
|
|
128 (do not change this comment) */
|