ShellP.h revision 9e7bcd65
1/***********************************************************
2
3Copyright 1987, 1988, 1994, 1998  The Open Group
4
5Permission to use, copy, modify, distribute, and sell this software and its
6documentation for any purpose is hereby granted without fee, provided that
7the above copyright notice appear in all copies and that both that
8copyright notice and this permission notice appear in supporting
9documentation.
10
11The above copyright notice and this permission notice shall be included in
12all copies or substantial portions of the Software.
13
14THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
17OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
21Except as contained in this notice, the name of The Open Group shall not be
22used in advertising or otherwise to promote the sale, use or other dealings
23in this Software without prior written authorization from The Open Group.
24
25
26Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
27
28                        All Rights Reserved
29
30Permission to use, copy, modify, and distribute this software and its
31documentation for any purpose and without fee is hereby granted,
32provided that the above copyright notice appear in all copies and that
33both that copyright notice and this permission notice appear in
34supporting documentation, and that the name of Digital not be
35used in advertising or publicity pertaining to distribution of the
36software without specific, written prior permission.
37
38DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
39ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
40DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
41ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
42WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
43ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
44SOFTWARE.
45
46******************************************************************/
47
48/*
49 * ShellP.h - Private definitions for Shell widget
50 *
51 * Author:	Paul Asente
52 * 		Digital Equipment Corporation
53 * 		Western Software Laboratory
54 * Date:	Thu Dec 3, 1987
55 */
56
57#ifndef _XtShellPrivate_h
58#define _XtShellPrivate_h
59
60#include <X11/Shell.h>
61
62/* *****
63 * ***** VendorP.h is included later on; it needs fields defined in the first
64 * ***** part of this header file
65 * *****
66 */
67
68_XFUNCPROTOBEGIN
69
70/***********************************************************************
71 *
72 * Shell Widget Private Data
73 *
74 ***********************************************************************/
75
76/* New fields for the Shell widget class record */
77
78typedef struct {
79    XtPointer       extension;          /* pointer to extension record      */
80} ShellClassPart;
81
82typedef 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
93typedef struct _ShellClassRec {
94  	CoreClassPart      core_class;
95	CompositeClassPart composite_class;
96	ShellClassPart  shell_class;
97} ShellClassRec;
98
99externalref ShellClassRec shellClassRec;
100
101/* New fields for the shell widget */
102
103typedef 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
123typedef  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
137typedef struct {
138    XtPointer       extension;          /* pointer to extension record      */
139} OverrideShellClassPart;
140
141typedef struct _OverrideShellClassRec {
142  	CoreClassPart      core_class;
143	CompositeClassPart composite_class;
144	ShellClassPart  shell_class;
145	OverrideShellClassPart  override_shell_class;
146} OverrideShellClassRec;
147
148externalref OverrideShellClassRec overrideShellClassRec;
149
150/* No new fields for the override shell widget */
151
152typedef struct {int frabjous;} OverrideShellPart;
153
154typedef  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
169typedef struct {
170    XtPointer       extension;          /* pointer to extension record      */
171} WMShellClassPart;
172
173typedef struct _WMShellClassRec {
174  	CoreClassPart      core_class;
175	CompositeClassPart composite_class;
176	ShellClassPart  shell_class;
177	WMShellClassPart wm_shell_class;
178} WMShellClassRec;
179
180externalref WMShellClassRec wmShellClassRec;
181
182/* New fields for the WM shell widget */
183
184typedef 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
210typedef  struct {
211	CorePart 	core;
212	CompositePart 	composite;
213	ShellPart 	shell;
214	WMShellPart	wm;
215} WMShellRec, *WMShellWidget;
216
217_XFUNCPROTOEND
218
219#include <X11/VendorP.h>
220
221_XFUNCPROTOBEGIN
222
223/***********************************************************************
224 *
225 * TransientShell Widget Private Data
226 *
227 ***********************************************************************/
228
229/* New fields for the TransientShell widget class record */
230
231typedef struct {
232    XtPointer       extension;          /* pointer to extension record      */
233} TransientShellClassPart;
234
235typedef struct _TransientShellClassRec {
236  	CoreClassPart      core_class;
237	CompositeClassPart composite_class;
238	ShellClassPart  shell_class;
239	WMShellClassPart   wm_shell_class;
240	VendorShellClassPart vendor_shell_class;
241	TransientShellClassPart transient_shell_class;
242} TransientShellClassRec;
243
244externalref TransientShellClassRec transientShellClassRec;
245
246/* New fields for the transient shell widget */
247
248typedef struct {
249	Widget transient_for;
250} TransientShellPart;
251
252typedef  struct {
253	CorePart 	core;
254	CompositePart 	composite;
255	ShellPart 	shell;
256	WMShellPart	wm;
257	VendorShellPart	vendor;
258	TransientShellPart transient;
259} TransientShellRec, *TransientShellWidget;
260
261/***********************************************************************
262 *
263 * TopLevelShell Widget Private Data
264 *
265 ***********************************************************************/
266
267/* New fields for the TopLevelShell widget class record */
268
269typedef struct {
270    XtPointer       extension;          /* pointer to extension record      */
271} TopLevelShellClassPart;
272
273typedef struct _TopLevelShellClassRec {
274  	CoreClassPart      core_class;
275	CompositeClassPart composite_class;
276	ShellClassPart  shell_class;
277	WMShellClassPart   wm_shell_class;
278	VendorShellClassPart vendor_shell_class;
279	TopLevelShellClassPart top_level_shell_class;
280} TopLevelShellClassRec;
281
282externalref TopLevelShellClassRec topLevelShellClassRec;
283
284/* New fields for the top level shell widget */
285
286typedef struct {
287	char	   *icon_name;
288	Boolean	    iconic;
289	Atom	    icon_name_encoding;
290} TopLevelShellPart;
291
292typedef  struct {
293	CorePart 	core;
294	CompositePart 	composite;
295	ShellPart 	shell;
296	WMShellPart	wm;
297	VendorShellPart	vendor;
298	TopLevelShellPart topLevel;
299} TopLevelShellRec, *TopLevelShellWidget;
300
301/***********************************************************************
302 *
303 * ApplicationShell Widget Private Data
304 *
305 ***********************************************************************/
306
307/* New fields for the ApplicationShell widget class record */
308
309typedef struct {
310    XtPointer       extension;          /* pointer to extension record      */
311} ApplicationShellClassPart;
312
313typedef struct _ApplicationShellClassRec {
314  	CoreClassPart      core_class;
315	CompositeClassPart composite_class;
316	ShellClassPart  shell_class;
317	WMShellClassPart   wm_shell_class;
318	VendorShellClassPart vendor_shell_class;
319	TopLevelShellClassPart top_level_shell_class;
320	ApplicationShellClassPart application_shell_class;
321} ApplicationShellClassRec;
322
323externalref ApplicationShellClassRec applicationShellClassRec;
324
325/* New fields for the application shell widget */
326
327typedef struct {
328#if defined(__cplusplus) || defined(c_plusplus)
329    char *c_class;
330#else
331    char *class;
332#endif
333    XrmClass xrm_class;
334    int argc;
335    char **argv;
336} ApplicationShellPart;
337
338typedef  struct {
339	CorePart 	core;
340	CompositePart 	composite;
341	ShellPart 	shell;
342	WMShellPart	wm;
343	VendorShellPart	vendor;
344	TopLevelShellPart topLevel;
345	ApplicationShellPart application;
346} ApplicationShellRec, *ApplicationShellWidget;
347
348/***********************************************************************
349 *
350 * SessionShell Widget Private Data
351 *
352 ***********************************************************************/
353
354/* New fields for the SessionShell widget class record */
355
356typedef struct {
357    XtPointer       extension;          /* pointer to extension record */
358} SessionShellClassPart;
359
360typedef struct _SessionShellClassRec {
361  	CoreClassPart      core_class;
362	CompositeClassPart composite_class;
363	ShellClassPart  shell_class;
364	WMShellClassPart   wm_shell_class;
365	VendorShellClassPart vendor_shell_class;
366	TopLevelShellClassPart top_level_shell_class;
367	ApplicationShellClassPart application_shell_class;
368	SessionShellClassPart session_shell_class;
369} SessionShellClassRec;
370
371externalref SessionShellClassRec sessionShellClassRec;
372
373typedef struct _XtSaveYourselfRec *XtSaveYourself; /* implementation-private */
374
375/* New fields for the session shell widget */
376
377typedef struct {
378    SmcConn         connection;
379    String          session_id;
380    String*         restart_command;
381    String*         clone_command;
382    String*         discard_command;
383    String*         resign_command;
384    String*         shutdown_command;
385    String*         environment;
386    String          current_dir;
387    String          program_path;
388    unsigned char   restart_style;
389    unsigned char   checkpoint_state;
390    Boolean         join_session;
391    XtCallbackList  save_callbacks;
392    XtCallbackList  interact_callbacks;
393    XtCallbackList  cancel_callbacks;
394    XtCallbackList  save_complete_callbacks;
395    XtCallbackList  die_callbacks;
396    XtCallbackList  error_callbacks;
397    XtSaveYourself  save;
398    XtInputId       input_id;
399    XtPointer       ses20;
400    XtPointer       ses19;
401    XtPointer       ses18;
402    XtPointer       ses17;
403    XtPointer       ses16;
404    XtPointer       ses15;
405    XtPointer       ses14;
406    XtPointer       ses13;
407    XtPointer       ses12;
408    XtPointer       ses11;
409    XtPointer       ses10;
410    XtPointer       ses9;
411    XtPointer       ses8;
412    XtPointer       ses7;
413    XtPointer       ses6;
414    XtPointer       ses5;
415    XtPointer       ses4;
416    XtPointer       ses3;
417    XtPointer       ses2;
418    XtPointer       ses1;
419} SessionShellPart;
420
421typedef  struct {
422	CorePart 	core;
423	CompositePart 	composite;
424	ShellPart 	shell;
425	WMShellPart	wm;
426	VendorShellPart	vendor;
427	TopLevelShellPart topLevel;
428	ApplicationShellPart application;
429	SessionShellPart session;
430} SessionShellRec, *SessionShellWidget;
431
432_XFUNCPROTOEND
433
434#endif /* _XtShellPrivate_h */
435