* xselect.c: Integer and memory overflow issues.
[bpt/emacs.git] / lwlib / lwlib-int.h
... / ...
CommitLineData
1/*
2Copyright (C) 1992 Lucid, Inc.
3Copyright (C) 2000-2011 Free Software Foundation, Inc.
4
5This file is part of the Lucid Widget Library.
6
7The Lucid Widget Library is free software; you can redistribute it and/or
8modify it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 1, or (at your option)
10any later version.
11
12The Lucid Widget Library is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs; see the file COPYING. If not, write to
19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20Boston, MA 02110-1301, USA. */
21
22
23#ifndef LWLIB_INTERNAL_H
24#define LWLIB_INTERNAL_H
25
26#include "lwlib.h"
27
28extern char *safe_strdup (const char *);
29
30struct widget_xft_data;
31
32typedef struct _widget_instance
33{
34 Widget widget;
35 Widget parent;
36 Boolean pop_up_p;
37#ifdef HAVE_XFT
38 struct widget_xft_data *xft_data;
39 int nr_xft_data;
40#endif
41 struct _widget_info* info;
42 struct _widget_instance* next;
43} widget_instance;
44
45typedef struct _widget_info
46{
47 char* type;
48 char* name;
49 LWLIB_ID id;
50 widget_value* val;
51 Boolean busy;
52 lw_callback pre_activate_cb;
53 lw_callback selection_cb;
54 lw_callback post_activate_cb;
55 lw_callback highlight_cb;
56 struct _widget_instance* instances;
57 struct _widget_info* next;
58} widget_info;
59
60typedef Widget (*widget_creation_function) (widget_instance *instance);
61
62typedef struct _widget_creation_entry
63{
64 char* type;
65 widget_creation_function function;
66} widget_creation_entry;
67
68/* update all other instances of a widget. Can be used in a callback when
69 a widget has been used by the user */
70void
71lw_internal_update_other_instances (Widget, XtPointer, XtPointer);
72
73/* get the widget_value for a widget in a given instance */
74widget_value*
75lw_get_widget_value_for_widget (widget_instance *, Widget);
76
77widget_info *lw_get_widget_info (LWLIB_ID);
78widget_instance * lw_get_widget_instance (Widget);
79
80#endif /* LWLIB_INTERNAL_H */
81