Rearrange an entry (test commit to bzr++ssh).
[emacs.git] / lwlib / lwlib-int.h
blobe84d7fb9956db8861c976e2cd2245ff5781bc4c8
1 /*
2 Copyright (C) 1992 Lucid, Inc.
3 Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
4 2010 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)
11 any later version.
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
20 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 Boston, MA 02110-1301, USA. */
24 #ifndef LWLIB_INTERNAL_H
25 #define LWLIB_INTERNAL_H
27 #include "lwlib.h"
29 extern char *safe_strdup (const char *);
31 struct widget_xft_data;
33 typedef struct _widget_instance
35 Widget widget;
36 Widget parent;
37 Boolean pop_up_p;
38 #ifdef HAVE_XFT
39 struct widget_xft_data *xft_data;
40 int nr_xft_data;
41 #endif
42 struct _widget_info* info;
43 struct _widget_instance* next;
44 } widget_instance;
46 typedef struct _widget_info
48 char* type;
49 char* name;
50 LWLIB_ID id;
51 widget_value* val;
52 Boolean busy;
53 lw_callback pre_activate_cb;
54 lw_callback selection_cb;
55 lw_callback post_activate_cb;
56 lw_callback highlight_cb;
57 struct _widget_instance* instances;
58 struct _widget_info* next;
59 } widget_info;
61 typedef Widget (*widget_creation_function) (widget_instance *instance);
63 typedef struct _widget_creation_entry
65 char* type;
66 widget_creation_function function;
67 } widget_creation_entry;
69 /* update all other instances of a widget. Can be used in a callback when
70 a widget has been used by the user */
71 void
72 lw_internal_update_other_instances (Widget, XtPointer, XtPointer);
74 /* get the widget_value for a widget in a given instance */
75 widget_value*
76 lw_get_widget_value_for_widget (widget_instance *, Widget);
78 widget_info *lw_get_widget_info (LWLIB_ID);
79 widget_instance * lw_get_widget_instance (Widget);
81 #endif /* LWLIB_INTERNAL_H */
83 /* arch-tag: ae02f67d-ef25-421c-b956-b01a4b0aac76
84 (do not change this comment) */