2 Copyright (C) 1992 Lucid, Inc.
3 Copyright (C) 2000-2013 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/>. */
21 #ifndef LWLIB_INTERNAL_H
22 #define LWLIB_INTERNAL_H
26 extern char *safe_strdup (const char *);
28 struct widget_xft_data
;
30 typedef struct _widget_instance
36 struct widget_xft_data
*xft_data
;
39 struct _widget_info
* info
;
40 struct _widget_instance
* next
;
43 typedef struct _widget_info
50 lw_callback pre_activate_cb
;
51 lw_callback selection_cb
;
52 lw_callback post_activate_cb
;
53 lw_callback highlight_cb
;
54 struct _widget_instance
* instances
;
55 struct _widget_info
* next
;
58 typedef Widget (*widget_creation_function
) (widget_instance
*instance
);
60 typedef struct _widget_creation_entry
63 widget_creation_function function
;
64 } widget_creation_entry
;
66 /* update all other instances of a widget. Can be used in a callback when
67 a widget has been used by the user */
69 lw_internal_update_other_instances (Widget
, XtPointer
, XtPointer
);
71 /* get the widget_value for a widget in a given instance */
73 lw_get_widget_value_for_widget (widget_instance
*, Widget
);
75 widget_info
*lw_get_widget_info (LWLIB_ID
);
76 widget_instance
* lw_get_widget_instance (Widget
);
78 #endif /* LWLIB_INTERNAL_H */