Mercurial > emacs
annotate lwlib/lwlib-Xlw.c @ 28923:dcafe3c9cd6c
(sh-while-getopts) <sh>: Handle case that
user-specified option string is empty.
| author | Gerd Moellmann <gerd@gnu.org> |
|---|---|
| date | Mon, 15 May 2000 20:14:39 +0000 |
| parents | b0f7b611a20e |
| children | 7730ae862134 |
| rev | line source |
|---|---|
| 5626 | 1 /* The lwlib interface to "xlwmenu" menus. |
| 2 Copyright (C) 1992 Lucid, Inc. | |
| 3 | |
| 4 This file is part of the Lucid Widget Library. | |
| 5 | |
| 6 The Lucid Widget Library is free software; you can redistribute it and/or | |
| 7 modify it under the terms of the GNU General Public License as published by | |
| 8 the Free Software Foundation; either version 1, or (at your option) | |
| 9 any later version. | |
| 10 | |
| 11 The Lucid Widget Library is distributed in the hope that it will be useful, | |
| 12 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 14 GNU General Public License for more details. | |
| 15 | |
| 16 You should have received a copy of the GNU General Public License | |
| 17 along with GNU Emacs; see the file COPYING. If not, write to | |
|
14186
ee40177f6c68
Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents:
12745
diff
changeset
|
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
|
ee40177f6c68
Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents:
12745
diff
changeset
|
19 Boston, MA 02111-1307, USA. */ |
| 5626 | 20 |
|
26087
e0d966fb548f
Add support for large files, plus some locale improvements.
Paul Eggert <eggert@twinsun.com>
parents:
14186
diff
changeset
|
21 #ifdef HAVE_CONFIG_H |
|
e0d966fb548f
Add support for large files, plus some locale improvements.
Paul Eggert <eggert@twinsun.com>
parents:
14186
diff
changeset
|
22 #include <config.h> |
|
e0d966fb548f
Add support for large files, plus some locale improvements.
Paul Eggert <eggert@twinsun.com>
parents:
14186
diff
changeset
|
23 #endif |
|
e0d966fb548f
Add support for large files, plus some locale improvements.
Paul Eggert <eggert@twinsun.com>
parents:
14186
diff
changeset
|
24 |
| 5626 | 25 #include "lwlib-Xlw.h" |
| 26 #include <X11/StringDefs.h> | |
| 27 #include <X11/IntrinsicP.h> | |
| 28 #include <X11/ObjectP.h> | |
| 29 #include <X11/CompositeP.h> | |
| 30 #include <X11/Shell.h> | |
| 31 #include "xlwmenu.h" | |
| 32 | |
| 33 /* Menu callbacks */ | |
|
27334
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
34 |
|
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
35 /* Callback XtNhighlightCallback for Lucid menus. W is the menu |
|
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
36 widget, CLIENT_DATA contains a pointer to the widget_instance |
|
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
37 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
|
38 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
|
39 if there isn't any highlighted menu item. */ |
|
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
40 |
|
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
41 static void |
|
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
42 highlight_hook (w, client_data, call_data) |
|
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
43 Widget w; |
|
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
44 XtPointer client_data; |
|
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
45 XtPointer call_data; |
|
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
46 { |
|
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
47 widget_instance *instance = (widget_instance *) client_data; |
|
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
48 |
|
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
49 if (instance->info->highlight_cb |
|
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
50 && !w->core.being_destroyed) |
|
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
51 instance->info->highlight_cb (w, instance->info->id, call_data); |
|
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
52 } |
|
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
53 |
| 5626 | 54 static void |
|
5708
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
55 pre_hook (w, client_data, call_data) |
|
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
56 Widget w; |
|
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
57 XtPointer client_data; |
|
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
58 XtPointer call_data; |
| 5626 | 59 { |
| 60 widget_instance* instance = (widget_instance*)client_data; | |
| 61 widget_value* val; | |
| 62 | |
| 63 if (w->core.being_destroyed) | |
| 64 return; | |
| 65 | |
| 66 val = lw_get_widget_value_for_widget (instance, w); | |
| 67 if (instance->info->pre_activate_cb) | |
| 68 instance->info->pre_activate_cb (w, instance->info->id, | |
| 69 val ? val->call_data : NULL); | |
| 70 } | |
| 71 | |
| 72 static void | |
|
5708
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
73 pick_hook (w, client_data, call_data) |
|
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
74 Widget w; |
|
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
75 XtPointer client_data; |
|
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
76 XtPointer call_data; |
| 5626 | 77 { |
| 78 widget_instance* instance = (widget_instance*)client_data; | |
| 79 widget_value* contents_val = (widget_value*)call_data; | |
| 80 widget_value* widget_val; | |
| 81 XtPointer widget_arg; | |
| 82 | |
| 83 if (w->core.being_destroyed) | |
| 84 return; | |
| 85 | |
| 86 if (instance->info->selection_cb && contents_val && contents_val->enabled | |
| 87 && !contents_val->contents) | |
| 88 instance->info->selection_cb (w, instance->info->id, | |
| 89 contents_val->call_data); | |
| 90 | |
| 91 widget_val = lw_get_widget_value_for_widget (instance, w); | |
| 92 widget_arg = widget_val ? widget_val->call_data : NULL; | |
| 93 if (instance->info->post_activate_cb) | |
| 94 instance->info->post_activate_cb (w, instance->info->id, widget_arg); | |
| 95 | |
| 96 } | |
| 97 | |
| 98 /* creation functions */ | |
|
5993
5feb28cb62c8
*** empty log message ***
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
5983
diff
changeset
|
99 |
| 5626 | 100 static Widget |
|
5708
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
101 xlw_create_menubar (instance) |
|
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
102 widget_instance* instance; |
| 5626 | 103 { |
|
5951
ddd8c555b2fc
*** empty log message ***
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
5708
diff
changeset
|
104 Widget widget; |
| 8786 | 105 Arg al[5]; |
|
6040
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
106 int ac = 0; |
|
5951
ddd8c555b2fc
*** empty log message ***
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
5708
diff
changeset
|
107 |
|
6040
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
108 XtSetArg (al[ac], XtNmenu, instance->info->val); ac++; |
| 8786 | 109 #ifdef emacs |
| 110 XtSetArg (al[ac], XtNshowGrip, 0); ac++; | |
| 111 XtSetArg (al[ac], XtNresizeToPreferred, 1); ac++; | |
| 112 XtSetArg (al[ac], XtNallowResize, 1); ac++; | |
| 113 #endif | |
|
5951
ddd8c555b2fc
*** empty log message ***
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
5708
diff
changeset
|
114 |
|
6040
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
115 /* This used to use XtVaCreateWidget, but an old Xt version |
|
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
116 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
|
117 widget |
|
6040
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
118 = XtCreateWidget (instance->info->name, xlwMenuWidgetClass, |
|
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
119 instance->parent, al, ac); |
|
5952
908e36c0235d
*** empty log message ***
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
5951
diff
changeset
|
120 |
| 5626 | 121 XtAddCallback (widget, XtNopen, pre_hook, (XtPointer)instance); |
| 122 XtAddCallback (widget, XtNselect, pick_hook, (XtPointer)instance); | |
|
27334
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
123 XtAddCallback (widget, XtNhighlightCallback, highlight_hook, |
|
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
124 (XtPointer)instance); |
| 5626 | 125 return widget; |
| 126 } | |
| 127 | |
| 128 static Widget | |
|
5708
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
129 xlw_create_popup_menu (instance) |
|
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
130 widget_instance* instance; |
| 5626 | 131 { |
|
6009
f68004daa523
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5993
diff
changeset
|
132 Widget popup_shell |
|
f68004daa523
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5993
diff
changeset
|
133 = XtCreatePopupShell (instance->info->name, overrideShellWidgetClass, |
|
f68004daa523
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5993
diff
changeset
|
134 instance->parent, NULL, 0); |
| 5626 | 135 |
|
5952
908e36c0235d
*** empty log message ***
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
5951
diff
changeset
|
136 Widget widget; |
|
6040
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
137 Arg al[2]; |
|
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
138 int ac = 0; |
|
5952
908e36c0235d
*** empty log message ***
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
5951
diff
changeset
|
139 |
|
6040
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
140 XtSetArg (al[ac], XtNmenu, instance->info->val); ac++; |
|
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
141 XtSetArg (al[ac], XtNhorizontal, False); ac++; |
|
5952
908e36c0235d
*** empty log message ***
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
5951
diff
changeset
|
142 |
|
6040
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
143 /* This used to use XtVaManagedCreateWidget, but an old Xt version |
|
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
144 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
|
145 widget |
|
6040
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
146 = XtCreateManagedWidget ("popup", xlwMenuWidgetClass, |
|
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
147 popup_shell, al, ac); |
|
5952
908e36c0235d
*** empty log message ***
Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
parents:
5951
diff
changeset
|
148 |
| 5626 | 149 XtAddCallback (widget, XtNselect, pick_hook, (XtPointer)instance); |
|
27334
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
150 XtAddCallback (widget, XtNhighlightCallback, highlight_hook, |
|
b0f7b611a20e
(highlight_hook): New function.
Gerd Moellmann <gerd@gnu.org>
parents:
26087
diff
changeset
|
151 (XtPointer)instance); |
| 5626 | 152 return popup_shell; |
| 153 } | |
| 154 | |
| 155 widget_creation_entry | |
| 156 xlw_creation_table [] = | |
| 157 { | |
| 158 {"menubar", xlw_create_menubar}, | |
| 159 {"popup", xlw_create_popup_menu}, | |
| 160 {NULL, NULL} | |
| 161 }; | |
| 162 | |
| 163 Boolean | |
|
5708
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
164 lw_lucid_widget_p (widget) |
|
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
165 Widget widget; |
| 5626 | 166 { |
| 167 WidgetClass the_class = XtClass (widget); | |
|
6009
f68004daa523
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5993
diff
changeset
|
168 |
| 5626 | 169 if (the_class == xlwMenuWidgetClass) |
| 170 return True; | |
| 171 if (the_class == overrideShellWidgetClass) | |
|
6009
f68004daa523
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5993
diff
changeset
|
172 return (XtClass (((CompositeWidget)widget)->composite.children [0]) |
|
f68004daa523
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5993
diff
changeset
|
173 == xlwMenuWidgetClass); |
| 5626 | 174 return False; |
| 175 } | |
| 176 | |
| 177 void | |
|
5708
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
178 xlw_update_one_widget (instance, widget, val, deep_p) |
|
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
179 widget_instance* instance; |
|
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
180 Widget widget; |
|
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
181 widget_value* val; |
|
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
182 Boolean deep_p; |
| 5626 | 183 { |
| 184 XlwMenuWidget mw; | |
|
6040
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
185 Arg al[1]; |
| 5626 | 186 |
| 187 if (XtIsShell (widget)) | |
| 188 mw = (XlwMenuWidget)((CompositeWidget)widget)->composite.children [0]; | |
| 189 else | |
| 190 mw = (XlwMenuWidget)widget; | |
|
6040
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
191 |
|
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
192 /* This used to use XtVaSetValues, but some old Xt versions |
|
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
193 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
|
194 XtSetArg (al[0], XtNmenu, instance->info->val); |
|
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
195 |
|
7988b8acd29f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
6009
diff
changeset
|
196 XtSetValues (widget, al, 1); |
| 5626 | 197 } |
| 198 | |
| 199 void | |
|
5708
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
200 xlw_update_one_value (instance, widget, val) |
|
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
201 widget_instance* instance; |
|
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
202 Widget widget; |
|
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
203 widget_value* val; |
| 5626 | 204 { |
| 205 return; | |
| 206 } | |
| 207 | |
| 208 void | |
|
5708
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
209 xlw_pop_instance (instance, up) |
|
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
210 widget_instance* instance; |
|
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
211 Boolean up; |
| 5626 | 212 { |
| 213 } | |
| 214 | |
| 215 void | |
|
12745
4da8b8ac5211
(xlw_popup_menu): New arg event.
Richard M. Stallman <rms@gnu.org>
parents:
8786
diff
changeset
|
216 xlw_popup_menu (widget, event) |
|
5708
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
217 Widget widget; |
|
12745
4da8b8ac5211
(xlw_popup_menu): New arg event.
Richard M. Stallman <rms@gnu.org>
parents:
8786
diff
changeset
|
218 XEvent *event; |
| 5626 | 219 { |
| 220 XButtonPressedEvent dummy; | |
| 221 XlwMenuWidget mw; | |
| 222 | |
| 223 if (!XtIsShell (widget)) | |
| 224 return; | |
| 225 | |
| 226 mw = (XlwMenuWidget)((CompositeWidget)widget)->composite.children [0]; | |
| 227 | |
|
12745
4da8b8ac5211
(xlw_popup_menu): New arg event.
Richard M. Stallman <rms@gnu.org>
parents:
8786
diff
changeset
|
228 if (event) |
|
4da8b8ac5211
(xlw_popup_menu): New arg event.
Richard M. Stallman <rms@gnu.org>
parents:
8786
diff
changeset
|
229 pop_up_menu (mw, event); |
|
4da8b8ac5211
(xlw_popup_menu): New arg event.
Richard M. Stallman <rms@gnu.org>
parents:
8786
diff
changeset
|
230 else |
|
4da8b8ac5211
(xlw_popup_menu): New arg event.
Richard M. Stallman <rms@gnu.org>
parents:
8786
diff
changeset
|
231 { |
|
4da8b8ac5211
(xlw_popup_menu): New arg event.
Richard M. Stallman <rms@gnu.org>
parents:
8786
diff
changeset
|
232 dummy.type = ButtonPress; |
|
4da8b8ac5211
(xlw_popup_menu): New arg event.
Richard M. Stallman <rms@gnu.org>
parents:
8786
diff
changeset
|
233 dummy.serial = 0; |
|
4da8b8ac5211
(xlw_popup_menu): New arg event.
Richard M. Stallman <rms@gnu.org>
parents:
8786
diff
changeset
|
234 dummy.send_event = 0; |
|
4da8b8ac5211
(xlw_popup_menu): New arg event.
Richard M. Stallman <rms@gnu.org>
parents:
8786
diff
changeset
|
235 dummy.display = XtDisplay (widget); |
|
4da8b8ac5211
(xlw_popup_menu): New arg event.
Richard M. Stallman <rms@gnu.org>
parents:
8786
diff
changeset
|
236 dummy.window = XtWindow (XtParent (widget)); |
|
4da8b8ac5211
(xlw_popup_menu): New arg event.
Richard M. Stallman <rms@gnu.org>
parents:
8786
diff
changeset
|
237 dummy.time = CurrentTime; |
|
4da8b8ac5211
(xlw_popup_menu): New arg event.
Richard M. Stallman <rms@gnu.org>
parents:
8786
diff
changeset
|
238 dummy.button = 0; |
|
4da8b8ac5211
(xlw_popup_menu): New arg event.
Richard M. Stallman <rms@gnu.org>
parents:
8786
diff
changeset
|
239 XQueryPointer (dummy.display, dummy.window, &dummy.root, |
|
4da8b8ac5211
(xlw_popup_menu): New arg event.
Richard M. Stallman <rms@gnu.org>
parents:
8786
diff
changeset
|
240 &dummy.subwindow, &dummy.x_root, &dummy.y_root, |
|
4da8b8ac5211
(xlw_popup_menu): New arg event.
Richard M. Stallman <rms@gnu.org>
parents:
8786
diff
changeset
|
241 &dummy.x, &dummy.y, &dummy.state); |
| 5626 | 242 |
|
12745
4da8b8ac5211
(xlw_popup_menu): New arg event.
Richard M. Stallman <rms@gnu.org>
parents:
8786
diff
changeset
|
243 pop_up_menu (mw, &dummy); |
|
4da8b8ac5211
(xlw_popup_menu): New arg event.
Richard M. Stallman <rms@gnu.org>
parents:
8786
diff
changeset
|
244 } |
| 5626 | 245 } |
| 246 | |
| 247 /* Destruction of instances */ | |
| 248 void | |
|
5708
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
249 xlw_destroy_instance (instance) |
|
4870efc489ea
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
5626
diff
changeset
|
250 widget_instance* instance; |
| 5626 | 251 { |
| 252 if (instance->widget) | |
| 253 XtDestroyWidget (instance->widget); | |
| 254 } | |
| 255 |
