Mercurial > emacs
annotate lwlib/lwlib-Xlw.c @ 110154:dd1cdc89c51a
Fix lisp/ChangeLog entries.
author | Jan D. <jan.h.d@swipnet.se> |
---|---|
date | Thu, 02 Sep 2010 18:06:51 +0200 |
parents | 33021b778d4d |
children | 417b1e4d63cd |
rev | line source |
---|---|
5626 | 1 /* The lwlib interface to "xlwmenu" menus. |
2 Copyright (C) 1992 Lucid, Inc. | |
106815 | 3 Copyright (C) 1994, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, |
4 2008, 2009, 2010 Free Software Foundation, Inc. | |
5626 | 5 |
6 This file is part of the Lucid Widget Library. | |
7 | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
41767
diff
changeset
|
8 The Lucid Widget Library is free software; you can redistribute it and/or |
5626 | 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. | |
12 | |
13 The Lucid Widget Library is distributed in the hope that it will be useful, | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
41767
diff
changeset
|
14 but WITHOUT ANY WARRANTY; without even the implied warranty of |
5626 | 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 GNU General Public License for more details. | |
17 | |
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 | |
64083 | 20 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
21 Boston, MA 02110-1301, USA. */ | |
5626 | 22 |
26087
e0d966fb548f
Add support for large files, plus some locale improvements.
Paul Eggert <eggert@twinsun.com>
parents:
14186
diff
changeset
|
23 #ifdef HAVE_CONFIG_H |
e0d966fb548f
Add support for large files, plus some locale improvements.
Paul Eggert <eggert@twinsun.com>
parents:
14186
diff
changeset
|
24 #include <config.h> |
e0d966fb548f
Add support for large files, plus some locale improvements.
Paul Eggert <eggert@twinsun.com>
parents:
14186
diff
changeset
|
25 #endif |
e0d966fb548f
Add support for large files, plus some locale improvements.
Paul Eggert <eggert@twinsun.com>
parents:
14186
diff
changeset
|
26 |
105669
68dd71358159
* alloc.c: Do not define struct catchtag.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
100957
diff
changeset
|
27 #include <setjmp.h> |
51142
45a8df254788
Include lisp.h, not ../src/lisp.h.
Dave Love <fx@gnu.org>
parents:
49600
diff
changeset
|
28 #include "lisp.h" |
41767 | 29 |
5626 | 30 #include "lwlib-Xlw.h" |
31 #include <X11/StringDefs.h> | |
32 #include <X11/IntrinsicP.h> | |
33 #include <X11/ObjectP.h> | |
34 #include <X11/CompositeP.h> | |
35 #include <X11/Shell.h> | |
36 #include "xlwmenu.h" | |
37 | |
36955
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
38 #if 0 |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
39 |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
40 #include <stdio.h> |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
41 |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
42 /* Print the complete X resource name of widget WIDGET to stderr. |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
43 This is sometimes handy to have available. */ |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
44 |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
45 void |
109173
33021b778d4d
Change function definition from K&R to prototype. Fix prototype warnings.
Jan D <jan.h.d@swipnet.se>
parents:
109171
diff
changeset
|
46 x_print_complete_resource_name (Widget widget) |
36955
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
47 { |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
48 int i; |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
49 String names[100]; |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
50 |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
51 for (i = 0; i < 100 && widget != NULL; ++i) |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
52 { |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
53 names[i] = XtName (widget); |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
54 widget = XtParent (widget); |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
55 } |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
56 |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
57 for (--i; i >= 1; --i) |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
58 fprintf (stderr, "%s.", names[i]); |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
59 fprintf (stderr, "%s\n", names[0]); |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
60 } |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
61 |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
62 #endif /* 0 */ |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
63 |
ebb6774c41db
(x_print_complete_resource_name) [0]: New function.
Gerd Moellmann <gerd@gnu.org>
parents:
29892
diff
changeset
|
64 |
5626 | 65 /* Menu callbacks */ |
27334
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
66 |
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
67 /* Callback XtNhighlightCallback for Lucid menus. W is the menu |
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
68 widget, CLIENT_DATA contains a pointer to the widget_instance |
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
69 for the menu, CALL_DATA contains a pointer to the widget_value |
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
70 structure for the highlighted menu item. The latter may be null |
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
71 if there isn't any highlighted menu item. */ |
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
72 |
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
73 static void |
109123
384b3408c143
Convert function definitions in lwlib files to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
106815
diff
changeset
|
74 highlight_hook (Widget w, XtPointer client_data, XtPointer call_data) |
27334
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
75 { |
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
76 widget_instance *instance = (widget_instance *) client_data; |
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
77 |
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
78 if (instance->info->highlight_cb |
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
79 && !w->core.being_destroyed) |
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
80 instance->info->highlight_cb (w, instance->info->id, call_data); |
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
81 } |
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
82 |
5626 | 83 static void |
109123
384b3408c143
Convert function definitions in lwlib files to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
106815
diff
changeset
|
84 enter_hook (Widget w, XtPointer client_data, XtPointer call_data) |
75019
6be52bf115d4
(enter_hook, leave_hook): New functions
Jan Djärv <jan.h.d@swipnet.se>
parents:
68640
diff
changeset
|
85 { |
6be52bf115d4
(enter_hook, leave_hook): New functions
Jan Djärv <jan.h.d@swipnet.se>
parents:
68640
diff
changeset
|
86 highlight_hook (w, client_data, call_data); |
6be52bf115d4
(enter_hook, leave_hook): New functions
Jan Djärv <jan.h.d@swipnet.se>
parents:
68640
diff
changeset
|
87 } |
6be52bf115d4
(enter_hook, leave_hook): New functions
Jan Djärv <jan.h.d@swipnet.se>
parents:
68640
diff
changeset
|
88 |
6be52bf115d4
(enter_hook, leave_hook): New functions
Jan Djärv <jan.h.d@swipnet.se>
parents:
68640
diff
changeset
|
89 static void |
109123
384b3408c143
Convert function definitions in lwlib files to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
106815
diff
changeset
|
90 leave_hook (Widget w, XtPointer client_data, XtPointer call_data) |
75019
6be52bf115d4
(enter_hook, leave_hook): New functions
Jan Djärv <jan.h.d@swipnet.se>
parents:
68640
diff
changeset
|
91 { |
6be52bf115d4
(enter_hook, leave_hook): New functions
Jan Djärv <jan.h.d@swipnet.se>
parents:
68640
diff
changeset
|
92 highlight_hook (w, client_data, NULL); |
6be52bf115d4
(enter_hook, leave_hook): New functions
Jan Djärv <jan.h.d@swipnet.se>
parents:
68640
diff
changeset
|
93 } |
6be52bf115d4
(enter_hook, leave_hook): New functions
Jan Djärv <jan.h.d@swipnet.se>
parents:
68640
diff
changeset
|
94 |
6be52bf115d4
(enter_hook, leave_hook): New functions
Jan Djärv <jan.h.d@swipnet.se>
parents:
68640
diff
changeset
|
95 |
6be52bf115d4
(enter_hook, leave_hook): New functions
Jan Djärv <jan.h.d@swipnet.se>
parents:
68640
diff
changeset
|
96 static void |
109123
384b3408c143
Convert function definitions in lwlib files to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
106815
diff
changeset
|
97 pre_hook (Widget w, XtPointer client_data, XtPointer call_data) |
5626 | 98 { |
99 widget_instance* instance = (widget_instance*)client_data; | |
100 widget_value* val; | |
101 | |
102 if (w->core.being_destroyed) | |
103 return; | |
104 | |
105 val = lw_get_widget_value_for_widget (instance, w); | |
106 if (instance->info->pre_activate_cb) | |
107 instance->info->pre_activate_cb (w, instance->info->id, | |
108 val ? val->call_data : NULL); | |
109 } | |
110 | |
111 static void | |
109123
384b3408c143
Convert function definitions in lwlib files to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
106815
diff
changeset
|
112 pick_hook (Widget w, XtPointer client_data, XtPointer call_data) |
5626 | 113 { |
114 widget_instance* instance = (widget_instance*)client_data; | |
115 widget_value* contents_val = (widget_value*)call_data; | |
116 widget_value* widget_val; | |
117 XtPointer widget_arg; | |
118 | |
119 if (w->core.being_destroyed) | |
120 return; | |
121 | |
122 if (instance->info->selection_cb && contents_val && contents_val->enabled | |
123 && !contents_val->contents) | |
124 instance->info->selection_cb (w, instance->info->id, | |
125 contents_val->call_data); | |
126 | |
127 widget_val = lw_get_widget_value_for_widget (instance, w); | |
128 widget_arg = widget_val ? widget_val->call_data : NULL; | |
129 if (instance->info->post_activate_cb) | |
130 instance->info->post_activate_cb (w, instance->info->id, widget_arg); | |
131 | |
132 } | |
133 | |
134 /* creation functions */ | |
5993
5feb28cb62c8
*** empty log message ***
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
5983
diff
changeset
|
135 |
5626 | 136 static Widget |
109123
384b3408c143
Convert function definitions in lwlib files to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
106815
diff
changeset
|
137 xlw_create_menubar (widget_instance *instance) |
5626 | 138 { |
5951
ddd8c555b2fc
*** empty log message ***
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
5708
diff
changeset
|
139 Widget widget; |
8786 | 140 Arg al[5]; |
6040
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
141 int ac = 0; |
5951
ddd8c555b2fc
*** empty log message ***
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
5708
diff
changeset
|
142 |
6040
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
143 XtSetArg (al[ac], XtNmenu, instance->info->val); ac++; |
8786 | 144 #ifdef emacs |
145 XtSetArg (al[ac], XtNshowGrip, 0); ac++; | |
146 XtSetArg (al[ac], XtNresizeToPreferred, 1); ac++; | |
147 XtSetArg (al[ac], XtNallowResize, 1); ac++; | |
148 #endif | |
5951
ddd8c555b2fc
*** empty log message ***
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
5708
diff
changeset
|
149 |
6040
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
150 /* This used to use XtVaCreateWidget, but an old Xt version |
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
151 has a bug in XtVaCreateWidget that frees instance->info->name. */ |
6009
f68004daa523
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5993
diff
changeset
|
152 widget |
6040
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
153 = XtCreateWidget (instance->info->name, xlwMenuWidgetClass, |
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
154 instance->parent, al, ac); |
5952
908e36c0235d
*** empty log message ***
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
5951
diff
changeset
|
155 |
5626 | 156 XtAddCallback (widget, XtNopen, pre_hook, (XtPointer)instance); |
157 XtAddCallback (widget, XtNselect, pick_hook, (XtPointer)instance); | |
75019
6be52bf115d4
(enter_hook, leave_hook): New functions
Jan Djärv <jan.h.d@swipnet.se>
parents:
68640
diff
changeset
|
158 XtAddCallback (widget, XtNleaveCallback, leave_hook, (XtPointer)instance); |
6be52bf115d4
(enter_hook, leave_hook): New functions
Jan Djärv <jan.h.d@swipnet.se>
parents:
68640
diff
changeset
|
159 XtAddCallback (widget, XtNenterCallback, enter_hook, (XtPointer)instance); |
5626 | 160 return widget; |
161 } | |
162 | |
163 static Widget | |
109123
384b3408c143
Convert function definitions in lwlib files to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
106815
diff
changeset
|
164 xlw_create_popup_menu (widget_instance *instance) |
5626 | 165 { |
6009
f68004daa523
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5993
diff
changeset
|
166 Widget popup_shell |
f68004daa523
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5993
diff
changeset
|
167 = XtCreatePopupShell (instance->info->name, overrideShellWidgetClass, |
f68004daa523
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5993
diff
changeset
|
168 instance->parent, NULL, 0); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
41767
diff
changeset
|
169 |
5952
908e36c0235d
*** empty log message ***
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
5951
diff
changeset
|
170 Widget widget; |
6040
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
171 Arg al[2]; |
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
172 int ac = 0; |
5952
908e36c0235d
*** empty log message ***
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
5951
diff
changeset
|
173 |
6040
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
174 XtSetArg (al[ac], XtNmenu, instance->info->val); ac++; |
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
175 XtSetArg (al[ac], XtNhorizontal, False); ac++; |
5952
908e36c0235d
*** empty log message ***
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
5951
diff
changeset
|
176 |
6040
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
177 /* This used to use XtVaManagedCreateWidget, but an old Xt version |
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
178 has a bug in XtVaManagedCreateWidget that frees instance->info->name. */ |
6009
f68004daa523
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5993
diff
changeset
|
179 widget |
6040
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
180 = XtCreateManagedWidget ("popup", xlwMenuWidgetClass, |
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
181 popup_shell, al, ac); |
5952
908e36c0235d
*** empty log message ***
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
5951
diff
changeset
|
182 |
5626 | 183 XtAddCallback (widget, XtNselect, pick_hook, (XtPointer)instance); |
75019
6be52bf115d4
(enter_hook, leave_hook): New functions
Jan Djärv <jan.h.d@swipnet.se>
parents:
68640
diff
changeset
|
184 XtAddCallback (widget, XtNleaveCallback, leave_hook, (XtPointer)instance); |
6be52bf115d4
(enter_hook, leave_hook): New functions
Jan Djärv <jan.h.d@swipnet.se>
parents:
68640
diff
changeset
|
185 XtAddCallback (widget, XtNenterCallback, enter_hook, (XtPointer)instance); |
53564
609ef1718642
Changes for lucid popup menus (keyboard traversal enabled) and dialogs
Jan Djärv <jan.h.d@swipnet.se>
parents:
52401
diff
changeset
|
186 |
5626 | 187 return popup_shell; |
188 } | |
189 | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
41767
diff
changeset
|
190 widget_creation_entry |
5626 | 191 xlw_creation_table [] = |
192 { | |
193 {"menubar", xlw_create_menubar}, | |
194 {"popup", xlw_create_popup_menu}, | |
195 {NULL, NULL} | |
196 }; | |
197 | |
198 Boolean | |
109123
384b3408c143
Convert function definitions in lwlib files to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
106815
diff
changeset
|
199 lw_lucid_widget_p (Widget widget) |
5626 | 200 { |
201 WidgetClass the_class = XtClass (widget); | |
6009
f68004daa523
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5993
diff
changeset
|
202 |
5626 | 203 if (the_class == xlwMenuWidgetClass) |
204 return True; | |
205 if (the_class == overrideShellWidgetClass) | |
6009
f68004daa523
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5993
diff
changeset
|
206 return (XtClass (((CompositeWidget)widget)->composite.children [0]) |
f68004daa523
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5993
diff
changeset
|
207 == xlwMenuWidgetClass); |
5626 | 208 return False; |
209 } | |
210 | |
211 void | |
51142
45a8df254788
Include lisp.h, not ../src/lisp.h.
Dave Love <fx@gnu.org>
parents:
49600
diff
changeset
|
212 xlw_update_one_widget (widget_instance* instance, Widget widget, |
45a8df254788
Include lisp.h, not ../src/lisp.h.
Dave Love <fx@gnu.org>
parents:
49600
diff
changeset
|
213 widget_value* val, Boolean deep_p) |
5626 | 214 { |
6040
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
215 Arg al[1]; |
5626 | 216 |
6040
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
217 /* This used to use XtVaSetValues, but some old Xt versions |
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
218 that have a bug in XtVaCreateWidget might have it here too. */ |
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
219 XtSetArg (al[0], XtNmenu, instance->info->val); |
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
220 |
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
221 XtSetValues (widget, al, 1); |
5626 | 222 } |
223 | |
224 void | |
109173
33021b778d4d
Change function definition from K&R to prototype. Fix prototype warnings.
Jan D <jan.h.d@swipnet.se>
parents:
109171
diff
changeset
|
225 xlw_update_one_value (widget_instance *instance, |
33021b778d4d
Change function definition from K&R to prototype. Fix prototype warnings.
Jan D <jan.h.d@swipnet.se>
parents:
109171
diff
changeset
|
226 Widget widget, |
33021b778d4d
Change function definition from K&R to prototype. Fix prototype warnings.
Jan D <jan.h.d@swipnet.se>
parents:
109171
diff
changeset
|
227 widget_value *val) |
5626 | 228 { |
229 return; | |
230 } | |
231 | |
232 void | |
51142
45a8df254788
Include lisp.h, not ../src/lisp.h.
Dave Love <fx@gnu.org>
parents:
49600
diff
changeset
|
233 xlw_pop_instance (widget_instance* instance, Boolean up) |
5626 | 234 { |
235 } | |
236 | |
237 void | |
109123
384b3408c143
Convert function definitions in lwlib files to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
106815
diff
changeset
|
238 xlw_popup_menu (Widget widget, XEvent *event) |
5626 | 239 { |
240 XlwMenuWidget mw; | |
241 | |
242 if (!XtIsShell (widget)) | |
243 return; | |
244 | |
245 mw = (XlwMenuWidget)((CompositeWidget)widget)->composite.children [0]; | |
246 | |
12745
4da8b8ac5211
(xlw_popup_menu): New arg event.
Richard M. Stallman <rms@gnu.org>
parents:
8786
diff
changeset
|
247 if (event) |
53564
609ef1718642
Changes for lucid popup menus (keyboard traversal enabled) and dialogs
Jan Djärv <jan.h.d@swipnet.se>
parents:
52401
diff
changeset
|
248 XtCallActionProc ((Widget) mw, "start", event, NULL, 0); |
12745
4da8b8ac5211
(xlw_popup_menu): New arg event.
Richard M. Stallman <rms@gnu.org>
parents:
8786
diff
changeset
|
249 else |
4da8b8ac5211
(xlw_popup_menu): New arg event.
Richard M. Stallman <rms@gnu.org>
parents:
8786
diff
changeset
|
250 { |
53564
609ef1718642
Changes for lucid popup menus (keyboard traversal enabled) and dialogs
Jan Djärv <jan.h.d@swipnet.se>
parents:
52401
diff
changeset
|
251 XEvent dummy; |
609ef1718642
Changes for lucid popup menus (keyboard traversal enabled) and dialogs
Jan Djärv <jan.h.d@swipnet.se>
parents:
52401
diff
changeset
|
252 XButtonPressedEvent *bd = &dummy.xbutton; |
5626 | 253 |
53564
609ef1718642
Changes for lucid popup menus (keyboard traversal enabled) and dialogs
Jan Djärv <jan.h.d@swipnet.se>
parents:
52401
diff
changeset
|
254 bd->type = ButtonPress; |
609ef1718642
Changes for lucid popup menus (keyboard traversal enabled) and dialogs
Jan Djärv <jan.h.d@swipnet.se>
parents:
52401
diff
changeset
|
255 bd->serial = 0; |
609ef1718642
Changes for lucid popup menus (keyboard traversal enabled) and dialogs
Jan Djärv <jan.h.d@swipnet.se>
parents:
52401
diff
changeset
|
256 bd->send_event = 0; |
609ef1718642
Changes for lucid popup menus (keyboard traversal enabled) and dialogs
Jan Djärv <jan.h.d@swipnet.se>
parents:
52401
diff
changeset
|
257 bd->display = XtDisplay (widget); |
609ef1718642
Changes for lucid popup menus (keyboard traversal enabled) and dialogs
Jan Djärv <jan.h.d@swipnet.se>
parents:
52401
diff
changeset
|
258 bd->window = XtWindow (XtParent (widget)); |
609ef1718642
Changes for lucid popup menus (keyboard traversal enabled) and dialogs
Jan Djärv <jan.h.d@swipnet.se>
parents:
52401
diff
changeset
|
259 bd->time = CurrentTime; |
609ef1718642
Changes for lucid popup menus (keyboard traversal enabled) and dialogs
Jan Djärv <jan.h.d@swipnet.se>
parents:
52401
diff
changeset
|
260 bd->button = 0; |
609ef1718642
Changes for lucid popup menus (keyboard traversal enabled) and dialogs
Jan Djärv <jan.h.d@swipnet.se>
parents:
52401
diff
changeset
|
261 XQueryPointer (bd->display, bd->window, &bd->root, |
609ef1718642
Changes for lucid popup menus (keyboard traversal enabled) and dialogs
Jan Djärv <jan.h.d@swipnet.se>
parents:
52401
diff
changeset
|
262 &bd->subwindow, &bd->x_root, &bd->y_root, |
609ef1718642
Changes for lucid popup menus (keyboard traversal enabled) and dialogs
Jan Djärv <jan.h.d@swipnet.se>
parents:
52401
diff
changeset
|
263 &bd->x, &bd->y, &bd->state); |
609ef1718642
Changes for lucid popup menus (keyboard traversal enabled) and dialogs
Jan Djärv <jan.h.d@swipnet.se>
parents:
52401
diff
changeset
|
264 |
609ef1718642
Changes for lucid popup menus (keyboard traversal enabled) and dialogs
Jan Djärv <jan.h.d@swipnet.se>
parents:
52401
diff
changeset
|
265 XtCallActionProc ((Widget) mw, "start", &dummy, NULL, 0); |
12745
4da8b8ac5211
(xlw_popup_menu): New arg event.
Richard M. Stallman <rms@gnu.org>
parents:
8786
diff
changeset
|
266 } |
5626 | 267 } |
268 | |
269 /* Destruction of instances */ | |
270 void | |
109123
384b3408c143
Convert function definitions in lwlib files to standard C.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
106815
diff
changeset
|
271 xlw_destroy_instance (widget_instance *instance) |
5626 | 272 { |
273 if (instance->widget) | |
274 XtDestroyWidget (instance->widget); | |
275 } | |
276 | |
52401 | 277 /* arch-tag: 541e3912-477d-406e-9bf2-dbf2b7ff8c3b |
278 (do not change this comment) */ |