2 Copyright (C) 1992, 1993 Lucid, Inc.
3 Copyright (C) 1994, 1999-2015 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 1, 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. If not, see <http://www.gnu.org/licenses/>. */
20 /* This part is separate from lwlib.h because it does not need X,
21 and thus can be used by non-X code in Emacs proper. */
23 #ifndef LWLIB_WIDGET_H
24 #define LWLIB_WIDGET_H
41 typedef struct _widget_value
47 /* Value (meaning depend on widget type). */
50 /* Keyboard equivalent. no implications for XtTranslations. */
54 /* Help string or nil if none.
55 GC finds this string through the frame's menu_bar_vector
56 or through menu_items. */
59 /* True if enabled. */
62 /* True if selected. */
65 /* True if was edited (maintained by get_value). */
69 /* True if menu title. */
73 /* The type of a button. */
74 enum button_type button_type
;
76 /* Contents of the sub-widgets, also selected slot for checkbox. */
77 struct _widget_value
*contents
;
79 /* Data passed to callback. */
82 /* Next one in the list. */
83 struct _widget_value
*next
;
86 /* Type of change (maintained by lw library). */
89 /* Type of this widget's change, but not counting the other widgets
90 found in the `next' field. */
91 change_type this_one_change
;
93 /* Slot for the toolkit dependent part. Always initialize to NULL. */
96 /* Whether we should free the toolkit data slot when freeing the
97 widget_value itself. */
98 bool free_toolkit_data
;