added the initial version of the XOrg support. still lots of cleaning up that needs...
[openwrt/svn-archive/archive.git] / XOrg / headers / native / src / X11 / ShellP.h
1 /* $Xorg: ShellP.h,v 1.4 2001/02/09 02:03:58 xorgcvs Exp $ */
2
3 /***********************************************************
4
5 Copyright 1987, 1988, 1994, 1998 The Open Group
6
7 Permission to use, copy, modify, distribute, and sell this software and its
8 documentation for any purpose is hereby granted without fee, provided that
9 the above copyright notice appear in all copies and that both that
10 copyright notice and this permission notice appear in supporting
11 documentation.
12
13 The above copyright notice and this permission notice shall be included in
14 all copies or substantial portions of the Software.
15
16 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
20 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
23 Except as contained in this notice, the name of The Open Group shall not be
24 used in advertising or otherwise to promote the sale, use or other dealings
25 in this Software without prior written authorization from The Open Group.
26
27
28 Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
29
30 All Rights Reserved
31
32 Permission to use, copy, modify, and distribute this software and its
33 documentation for any purpose and without fee is hereby granted,
34 provided that the above copyright notice appear in all copies and that
35 both that copyright notice and this permission notice appear in
36 supporting documentation, and that the name of Digital not be
37 used in advertising or publicity pertaining to distribution of the
38 software without specific, written prior permission.
39
40 DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
41 ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
42 DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
43 ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
44 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
45 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
46 SOFTWARE.
47
48 ******************************************************************/
49
50 /*
51 * ShellP.h - Private definitions for Shell widget
52 *
53 * Author: Paul Asente
54 * Digital Equipment Corporation
55 * Western Software Laboratory
56 * Date: Thu Dec 3, 1987
57 */
58
59 #ifndef _XtShellPrivate_h
60 #define _XtShellPrivate_h
61
62 #include <X11/Shell.h>
63
64 /* *****
65 * ***** VendorP.h is included later on; it needs fields defined in the first
66 * ***** part of this header file
67 * *****
68 */
69
70 /***********************************************************************
71 *
72 * Shell Widget Private Data
73 *
74 ***********************************************************************/
75
76 /* New fields for the Shell widget class record */
77
78 typedef struct {
79 XtPointer extension; /* pointer to extension record */
80 } ShellClassPart;
81
82 typedef struct {
83 XtPointer next_extension; /* 1st 4 mandated for all extension records */
84 XrmQuark record_type; /* NULLQUARK; on ShellClassPart */
85 long version; /* must be XtShellExtensionVersion */
86 Cardinal record_size; /* sizeof(ShellClassExtensionRec) */
87 XtGeometryHandler root_geometry_manager;
88 } ShellClassExtensionRec, *ShellClassExtension;
89
90 #define XtShellExtensionVersion 1L
91 #define XtInheritRootGeometryManager ((XtGeometryHandler)_XtInherit)
92
93 typedef struct _ShellClassRec {
94 CoreClassPart core_class;
95 CompositeClassPart composite_class;
96 ShellClassPart shell_class;
97 } ShellClassRec;
98
99 externalref ShellClassRec shellClassRec;
100
101 /* New fields for the shell widget */
102
103 typedef struct {
104 char *geometry;
105 XtCreatePopupChildProc create_popup_child_proc;
106 XtGrabKind grab_kind;
107 Boolean spring_loaded;
108 Boolean popped_up;
109 Boolean allow_shell_resize;
110 Boolean client_specified; /* re-using old name */
111 #define _XtShellPositionValid ((Boolean)(1<<0))
112 #define _XtShellNotReparented ((Boolean)(1<<1))
113 #define _XtShellPPositionOK ((Boolean)(1<<2))
114 #define _XtShellGeometryParsed ((Boolean)(1<<3))
115 Boolean save_under;
116 Boolean override_redirect;
117
118 XtCallbackList popup_callback;
119 XtCallbackList popdown_callback;
120 Visual* visual;
121 } ShellPart;
122
123 typedef struct {
124 CorePart core;
125 CompositePart composite;
126 ShellPart shell;
127 } ShellRec, *ShellWidget;
128
129 /***********************************************************************
130 *
131 * OverrideShell Widget Private Data
132 *
133 ***********************************************************************/
134
135 /* New fields for the OverrideShell widget class record */
136
137 typedef struct {
138 XtPointer extension; /* pointer to extension record */
139 } OverrideShellClassPart;
140
141 typedef struct _OverrideShellClassRec {
142 CoreClassPart core_class;
143 CompositeClassPart composite_class;
144 ShellClassPart shell_class;
145 OverrideShellClassPart override_shell_class;
146 } OverrideShellClassRec;
147
148 externalref OverrideShellClassRec overrideShellClassRec;
149
150 /* No new fields for the override shell widget */
151
152 typedef struct {int frabjous;} OverrideShellPart;
153
154 typedef struct {
155 CorePart core;
156 CompositePart composite;
157 ShellPart shell;
158 OverrideShellPart override;
159 } OverrideShellRec, *OverrideShellWidget;
160
161 /***********************************************************************
162 *
163 * WMShell Widget Private Data
164 *
165 ***********************************************************************/
166
167 /* New fields for the WMShell widget class record */
168
169 typedef struct {
170 XtPointer extension; /* pointer to extension record */
171 } WMShellClassPart;
172
173 typedef struct _WMShellClassRec {
174 CoreClassPart core_class;
175 CompositeClassPart composite_class;
176 ShellClassPart shell_class;
177 WMShellClassPart wm_shell_class;
178 } WMShellClassRec;
179
180 externalref WMShellClassRec wmShellClassRec;
181
182 /* New fields for the WM shell widget */
183
184 typedef struct {
185 char *title;
186 int wm_timeout;
187 Boolean wait_for_wm;
188 Boolean transient;
189 Boolean urgency;
190 Widget client_leader;
191 String window_role;
192 struct _OldXSizeHints { /* pre-R4 Xlib structure */
193 long flags;
194 int x, y;
195 int width, height;
196 int min_width, min_height;
197 int max_width, max_height;
198 int width_inc, height_inc;
199 struct {
200 int x;
201 int y;
202 } min_aspect, max_aspect;
203 } size_hints;
204 XWMHints wm_hints;
205 int base_width, base_height;
206 int win_gravity;
207 Atom title_encoding;
208 } WMShellPart;
209
210 typedef struct {
211 CorePart core;
212 CompositePart composite;
213 ShellPart shell;
214 WMShellPart wm;
215 } WMShellRec, *WMShellWidget;
216
217 #include <X11/VendorP.h>
218
219 /***********************************************************************
220 *
221 * TransientShell Widget Private Data
222 *
223 ***********************************************************************/
224
225 /* New fields for the TransientShell widget class record */
226
227 typedef struct {
228 XtPointer extension; /* pointer to extension record */
229 } TransientShellClassPart;
230
231 typedef struct _TransientShellClassRec {
232 CoreClassPart core_class;
233 CompositeClassPart composite_class;
234 ShellClassPart shell_class;
235 WMShellClassPart wm_shell_class;
236 VendorShellClassPart vendor_shell_class;
237 TransientShellClassPart transient_shell_class;
238 } TransientShellClassRec;
239
240 externalref TransientShellClassRec transientShellClassRec;
241
242 /* New fields for the transient shell widget */
243
244 typedef struct {
245 Widget transient_for;
246 } TransientShellPart;
247
248 typedef struct {
249 CorePart core;
250 CompositePart composite;
251 ShellPart shell;
252 WMShellPart wm;
253 VendorShellPart vendor;
254 TransientShellPart transient;
255 } TransientShellRec, *TransientShellWidget;
256
257 /***********************************************************************
258 *
259 * TopLevelShell Widget Private Data
260 *
261 ***********************************************************************/
262
263 /* New fields for the TopLevelShell widget class record */
264
265 typedef struct {
266 XtPointer extension; /* pointer to extension record */
267 } TopLevelShellClassPart;
268
269 typedef struct _TopLevelShellClassRec {
270 CoreClassPart core_class;
271 CompositeClassPart composite_class;
272 ShellClassPart shell_class;
273 WMShellClassPart wm_shell_class;
274 VendorShellClassPart vendor_shell_class;
275 TopLevelShellClassPart top_level_shell_class;
276 } TopLevelShellClassRec;
277
278 externalref TopLevelShellClassRec topLevelShellClassRec;
279
280 /* New fields for the top level shell widget */
281
282 typedef struct {
283 char *icon_name;
284 Boolean iconic;
285 Atom icon_name_encoding;
286 } TopLevelShellPart;
287
288 typedef struct {
289 CorePart core;
290 CompositePart composite;
291 ShellPart shell;
292 WMShellPart wm;
293 VendorShellPart vendor;
294 TopLevelShellPart topLevel;
295 } TopLevelShellRec, *TopLevelShellWidget;
296
297 /***********************************************************************
298 *
299 * ApplicationShell Widget Private Data
300 *
301 ***********************************************************************/
302
303 /* New fields for the ApplicationShell widget class record */
304
305 typedef struct {
306 XtPointer extension; /* pointer to extension record */
307 } ApplicationShellClassPart;
308
309 typedef struct _ApplicationShellClassRec {
310 CoreClassPart core_class;
311 CompositeClassPart composite_class;
312 ShellClassPart shell_class;
313 WMShellClassPart wm_shell_class;
314 VendorShellClassPart vendor_shell_class;
315 TopLevelShellClassPart top_level_shell_class;
316 ApplicationShellClassPart application_shell_class;
317 } ApplicationShellClassRec;
318
319 externalref ApplicationShellClassRec applicationShellClassRec;
320
321 /* New fields for the application shell widget */
322
323 typedef struct {
324 #if defined(__cplusplus) || defined(c_plusplus)
325 char *c_class;
326 #else
327 char *class;
328 #endif
329 XrmClass xrm_class;
330 int argc;
331 char **argv;
332 } ApplicationShellPart;
333
334 typedef struct {
335 CorePart core;
336 CompositePart composite;
337 ShellPart shell;
338 WMShellPart wm;
339 VendorShellPart vendor;
340 TopLevelShellPart topLevel;
341 ApplicationShellPart application;
342 } ApplicationShellRec, *ApplicationShellWidget;
343
344 /***********************************************************************
345 *
346 * SessionShell Widget Private Data
347 *
348 ***********************************************************************/
349
350 /* New fields for the SessionShell widget class record */
351
352 typedef struct {
353 XtPointer extension; /* pointer to extension record */
354 } SessionShellClassPart;
355
356 typedef struct _SessionShellClassRec {
357 CoreClassPart core_class;
358 CompositeClassPart composite_class;
359 ShellClassPart shell_class;
360 WMShellClassPart wm_shell_class;
361 VendorShellClassPart vendor_shell_class;
362 TopLevelShellClassPart top_level_shell_class;
363 ApplicationShellClassPart application_shell_class;
364 SessionShellClassPart session_shell_class;
365 } SessionShellClassRec;
366
367 externalref SessionShellClassRec sessionShellClassRec;
368
369 typedef struct _XtSaveYourselfRec *XtSaveYourself; /* implementation-private */
370
371 /* New fields for the session shell widget */
372
373 typedef struct {
374 SmcConn connection;
375 String session_id;
376 String* restart_command;
377 String* clone_command;
378 String* discard_command;
379 String* resign_command;
380 String* shutdown_command;
381 String* environment;
382 String current_dir;
383 String program_path;
384 unsigned char restart_style;
385 unsigned char checkpoint_state;
386 Boolean join_session;
387 XtCallbackList save_callbacks;
388 XtCallbackList interact_callbacks;
389 XtCallbackList cancel_callbacks;
390 XtCallbackList save_complete_callbacks;
391 XtCallbackList die_callbacks;
392 XtCallbackList error_callbacks;
393 XtSaveYourself save;
394 XtInputId input_id;
395 XtPointer ses20;
396 XtPointer ses19;
397 XtPointer ses18;
398 XtPointer ses17;
399 XtPointer ses16;
400 XtPointer ses15;
401 XtPointer ses14;
402 XtPointer ses13;
403 XtPointer ses12;
404 XtPointer ses11;
405 XtPointer ses10;
406 XtPointer ses9;
407 XtPointer ses8;
408 XtPointer ses7;
409 XtPointer ses6;
410 XtPointer ses5;
411 XtPointer ses4;
412 XtPointer ses3;
413 XtPointer ses2;
414 XtPointer ses1;
415 } SessionShellPart;
416
417 typedef struct {
418 CorePart core;
419 CompositePart composite;
420 ShellPart shell;
421 WMShellPart wm;
422 VendorShellPart vendor;
423 TopLevelShellPart topLevel;
424 ApplicationShellPart application;
425 SessionShellPart session;
426 } SessionShellRec, *SessionShellWidget;
427
428 #endif /* _XtShellPrivate_h */