1 /* Internals of a lightweight menubar widget.
2 Copyright (C) 1999, 2000, 2002, 2003, 2004,
3 2005, 2006 Free Software Foundation, Inc.
5 This file is part of the Lucid Widget Library.
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)
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.
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
19 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 Boston, MA 02110-1301, USA. */
26 #include <X11/CoreP.h>
28 /* Elements in the stack arrays. */
29 typedef struct _window_state
36 Dimension label_width
;
38 /* Width of toggle buttons or radio buttons. */
39 Dimension button_width
;
43 /* New fields for the XlwMenu widget instance record */
44 typedef struct _XlwMenu_part
46 /* slots set by the resources */
49 XFontSetExtents
*font_extents
;
53 Pixel disabled_foreground
;
54 Pixel button_foreground
;
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
;
66 XtCallbackList select
, highlight
;
67 XtCallbackList enter
, leave
;
68 widget_value
* contents
;
71 /* True means top_shadow_color and/or bottom_shadow_color must be freed. */
72 unsigned free_top_shadow_color_p
: 1;
73 unsigned free_bottom_shadow_color_p
: 1;
75 /* State of the XlwMenu */
78 widget_value
** old_stack
;
80 widget_value
* inside_entry
;
82 /* New state after the user moved */
84 widget_value
** new_stack
;
87 /* Window resources */
88 window_state
* windows
;
91 /* Internal part, set by the XlwMenu */
96 GC inactive_button_gc
;
104 /* Full instance record declaration */
105 typedef struct _XlwMenuRec
111 /* New fields for the XlwMenu widget class record */
117 /* Full class record declaration. */
118 typedef struct _XlwMenuClassRec
120 CoreClassPart core_class
;
121 XlwMenuClassPart menu_class
;
125 extern XlwMenuClassRec xlwMenuClassRec
;
127 #endif /* _XlwMenuP_h */
129 /* arch-tag: 18d7fc41-ffa0-47a3-a49f-3469900c7a25
130 (do not change this comment) */