annotate lwlib/lwlib-int.h @ 109790:c34b730eb583

Potential buffer overrun and uninit variable fixed, bug 6855. * keyboard.c (parse_tool_bar_item): malloc buf. Set TOOL_BAR_ITEM_LABEL to empty string if not set to new_lbl (Bug#6855).
author Jan D <jan.h.d@swipnet.se>
date Sun, 15 Aug 2010 10:13:02 +0200
parents 33021b778d4d
children 417b1e4d63cd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
76178
9f78501bf1f3 Add Lucid and FSF copyrights and GPL text.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
1 /*
9f78501bf1f3 Add Lucid and FSF copyrights and GPL text.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
2 Copyright (C) 1992 Lucid, Inc.
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 100957
diff changeset
3 Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 100957
diff changeset
4 2010 Free Software Foundation, Inc.
76178
9f78501bf1f3 Add Lucid and FSF copyrights and GPL text.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
5
9f78501bf1f3 Add Lucid and FSF copyrights and GPL text.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
6 This file is part of the Lucid Widget Library.
9f78501bf1f3 Add Lucid and FSF copyrights and GPL text.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
7
9f78501bf1f3 Add Lucid and FSF copyrights and GPL text.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
8 The Lucid Widget Library is free software; you can redistribute it and/or
9f78501bf1f3 Add Lucid and FSF copyrights and GPL text.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
9 modify it under the terms of the GNU General Public License as published by
9f78501bf1f3 Add Lucid and FSF copyrights and GPL text.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
10 the Free Software Foundation; either version 1, or (at your option)
9f78501bf1f3 Add Lucid and FSF copyrights and GPL text.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
11 any later version.
9f78501bf1f3 Add Lucid and FSF copyrights and GPL text.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
12
9f78501bf1f3 Add Lucid and FSF copyrights and GPL text.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
13 The Lucid Widget Library is distributed in the hope that it will be useful,
9f78501bf1f3 Add Lucid and FSF copyrights and GPL text.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
9f78501bf1f3 Add Lucid and FSF copyrights and GPL text.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9f78501bf1f3 Add Lucid and FSF copyrights and GPL text.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
16 GNU General Public License for more details.
9f78501bf1f3 Add Lucid and FSF copyrights and GPL text.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
17
9f78501bf1f3 Add Lucid and FSF copyrights and GPL text.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
18 You should have received a copy of the GNU General Public License
9f78501bf1f3 Add Lucid and FSF copyrights and GPL text.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
19 along with GNU Emacs; see the file COPYING. If not, write to
9f78501bf1f3 Add Lucid and FSF copyrights and GPL text.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
20 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
9f78501bf1f3 Add Lucid and FSF copyrights and GPL text.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
21 Boston, MA 02110-1301, USA. */
9f78501bf1f3 Add Lucid and FSF copyrights and GPL text.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
22
9f78501bf1f3 Add Lucid and FSF copyrights and GPL text.
Glenn Morris <rgm@gnu.org>
parents: 52401
diff changeset
23
5626
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
24 #ifndef LWLIB_INTERNAL_H
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
25 #define LWLIB_INTERNAL_H
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
26
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
27 #include "lwlib.h"
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
28
109099
e16f43875a48 Remove P_ and __P macros.
Jan D <jan.h.d@swipnet.se>
parents: 107827
diff changeset
29 extern char *safe_strdup (const char *);
5626
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
30
107827
aa85632b7860 Use XFT in Lucid dialogs if available.
Jan D. <jan.h.d@swipnet.se>
parents: 106815
diff changeset
31 struct widget_xft_data;
aa85632b7860 Use XFT in Lucid dialogs if available.
Jan D. <jan.h.d@swipnet.se>
parents: 106815
diff changeset
32
5626
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
33 typedef struct _widget_instance
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
34 {
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
35 Widget widget;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
36 Widget parent;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
37 Boolean pop_up_p;
107827
aa85632b7860 Use XFT in Lucid dialogs if available.
Jan D. <jan.h.d@swipnet.se>
parents: 106815
diff changeset
38 #ifdef HAVE_XFT
aa85632b7860 Use XFT in Lucid dialogs if available.
Jan D. <jan.h.d@swipnet.se>
parents: 106815
diff changeset
39 struct widget_xft_data *xft_data;
aa85632b7860 Use XFT in Lucid dialogs if available.
Jan D. <jan.h.d@swipnet.se>
parents: 106815
diff changeset
40 int nr_xft_data;
aa85632b7860 Use XFT in Lucid dialogs if available.
Jan D. <jan.h.d@swipnet.se>
parents: 106815
diff changeset
41 #endif
5626
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
42 struct _widget_info* info;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
43 struct _widget_instance* next;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
44 } widget_instance;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
45
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
46 typedef struct _widget_info
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
47 {
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
48 char* type;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
49 char* name;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
50 LWLIB_ID id;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
51 widget_value* val;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
52 Boolean busy;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
53 lw_callback pre_activate_cb;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
54 lw_callback selection_cb;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
55 lw_callback post_activate_cb;
27336
397da07a6912 Add prototype for lw_get_widget_instance.
Gerd Moellmann <gerd@gnu.org>
parents: 14018
diff changeset
56 lw_callback highlight_cb;
5626
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
57 struct _widget_instance* instances;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
58 struct _widget_info* next;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
59 } widget_info;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
60
109173
33021b778d4d Change function definition from K&R to prototype. Fix prototype warnings.
Jan D <jan.h.d@swipnet.se>
parents: 109099
diff changeset
61 typedef Widget (*widget_creation_function) (widget_instance *instance);
5626
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
62
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
63 typedef struct _widget_creation_entry
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
64 {
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
65 char* type;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
66 widget_creation_function function;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
67 } widget_creation_entry;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
68
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
69 /* update all other instances of a widget. Can be used in a callback when
14018
0a94cd2c51c4 Comment fixes.
Karl Heuer <kwzh@gnu.org>
parents: 10079
diff changeset
70 a widget has been used by the user */
5626
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
71 void
109099
e16f43875a48 Remove P_ and __P macros.
Jan D <jan.h.d@swipnet.se>
parents: 107827
diff changeset
72 lw_internal_update_other_instances (Widget, XtPointer, XtPointer);
5626
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
73
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
74 /* get the widget_value for a widget in a given instance */
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
75 widget_value*
109099
e16f43875a48 Remove P_ and __P macros.
Jan D <jan.h.d@swipnet.se>
parents: 107827
diff changeset
76 lw_get_widget_value_for_widget (widget_instance *, Widget);
5626
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
77
109099
e16f43875a48 Remove P_ and __P macros.
Jan D <jan.h.d@swipnet.se>
parents: 107827
diff changeset
78 widget_info *lw_get_widget_info (LWLIB_ID);
e16f43875a48 Remove P_ and __P macros.
Jan D <jan.h.d@swipnet.se>
parents: 107827
diff changeset
79 widget_instance * lw_get_widget_instance (Widget);
8723
10af98fd7fa4 entered into RCS
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
80
5626
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
81 #endif /* LWLIB_INTERNAL_H */
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 29466
diff changeset
82
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 29466
diff changeset
83 /* arch-tag: ae02f67d-ef25-421c-b956-b01a4b0aac76
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 29466
diff changeset
84 (do not change this comment) */