1 /* Internals of a lightweight menubar widget.
2 Copyright (C) 1992 Lucid, Inc.
3 Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
4 Free Software Foundation, Inc.
6 This file is part of the Lucid Widget Library.
8 The Lucid Widget Library is free software; you can redistribute it and/or
9 modify it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 1, or (at your option)
13 The Lucid Widget Library is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with GNU Emacs; see the file COPYING. If not, write to the
20 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 Boston, MA 02110-1301, USA. */
27 #include <X11/CoreP.h>
29 /* Elements in the stack arrays. */
30 typedef struct _window_state
37 Dimension label_width
;
39 /* Width of toggle buttons or radio buttons. */
40 Dimension button_width
;
44 /* New fields for the XlwMenu widget instance record */
45 typedef struct _XlwMenu_part
47 /* slots set by the resources */
50 XFontSetExtents
*font_extents
;
54 Pixel disabled_foreground
;
55 Pixel button_foreground
;
57 Dimension horizontal_spacing
;
58 Dimension vertical_spacing
;
59 Dimension arrow_spacing
;
60 Dimension shadow_thickness
;
61 Pixel top_shadow_color
;
62 Pixel bottom_shadow_color
;
63 Pixmap top_shadow_pixmap
;
64 Pixmap bottom_shadow_pixmap
;
67 XtCallbackList select
, highlight
;
68 XtCallbackList enter
, leave
;
69 widget_value
* contents
;
72 /* True means top_shadow_color and/or bottom_shadow_color must be freed. */
73 unsigned free_top_shadow_color_p
: 1;
74 unsigned free_bottom_shadow_color_p
: 1;
76 /* State of the XlwMenu */
79 widget_value
** old_stack
;
81 widget_value
* inside_entry
;
83 /* New state after the user moved */
85 widget_value
** new_stack
;
88 /* Window resources */
89 window_state
* windows
;
92 /* Internal part, set by the XlwMenu */
97 GC inactive_button_gc
;
105 /* Full instance record declaration */
106 typedef struct _XlwMenuRec
112 /* New fields for the XlwMenu widget class record */
118 /* Full class record declaration. */
119 typedef struct _XlwMenuClassRec
121 CoreClassPart core_class
;
122 XlwMenuClassPart menu_class
;
126 extern XlwMenuClassRec xlwMenuClassRec
;
128 #endif /* _XlwMenuP_h */
130 /* arch-tag: 18d7fc41-ffa0-47a3-a49f-3469900c7a25
131 (do not change this comment) */