1 /***********************************************************
3 Copyright 1987, 1988, 1994, 1998 The Open Group
5 Permission to use, copy, modify, distribute, and sell this software and its
6 documentation for any purpose is hereby granted without fee, provided that
7 the above copyright notice appear in all copies and that both that
8 copyright notice and this permission notice appear in supporting
11 The above copyright notice and this permission notice shall be included in
12 all copies or substantial portions of the Software.
14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 Except as contained in this notice, the name of The Open Group shall not be
22 used in advertising or otherwise to promote the sale, use or other dealings
23 in this Software without prior written authorization from The Open Group.
26 Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
30 Permission to use, copy, modify, and distribute this software and its
31 documentation for any purpose and without fee is hereby granted,
32 provided that the above copyright notice appear in all copies and that
33 both that copyright notice and this permission notice appear in
34 supporting documentation, and that the name of Digital not be
35 used in advertising or publicity pertaining to distribution of the
36 software without specific, written prior permission.
38 DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
39 ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
40 DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
41 ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
42 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
43 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
46 ******************************************************************/
49 * ShellP.h - Private definitions for Shell widget
52 * Digital Equipment Corporation
53 * Western Software Laboratory
54 * Date: Thu Dec 3, 1987
57 #ifndef _XtShellPrivate_h
58 #define _XtShellPrivate_h
60 #include <X11/Shell.h>
63 * ***** VendorP.h is included later on; it needs fields defined in the first
64 * ***** part of this header file
70 /***********************************************************************
72 * Shell Widget Private Data
74 ***********************************************************************/
76 /* New fields for the Shell widget class record */
79 XtPointer extension; /* pointer to extension record */
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;
90 #define XtShellExtensionVersion 1L
91 #define XtInheritRootGeometryManager ((XtGeometryHandler)_XtInherit)
93 typedef struct _ShellClassRec {
94 CoreClassPart core_class;
95 CompositeClassPart composite_class;
96 ShellClassPart shell_class;
99 externalref ShellClassRec shellClassRec;
101 /* New fields for the shell widget */
105 XtCreatePopupChildProc create_popup_child_proc;
106 XtGrabKind grab_kind;
107 Boolean spring_loaded;
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))
116 Boolean override_redirect;
118 XtCallbackList popup_callback;
119 XtCallbackList popdown_callback;
125 CompositePart composite;
127 } ShellRec, *ShellWidget;
129 /***********************************************************************
131 * OverrideShell Widget Private Data
133 ***********************************************************************/
135 /* New fields for the OverrideShell widget class record */
138 XtPointer extension; /* pointer to extension record */
139 } OverrideShellClassPart;
141 typedef struct _OverrideShellClassRec {
142 CoreClassPart core_class;
143 CompositeClassPart composite_class;
144 ShellClassPart shell_class;
145 OverrideShellClassPart override_shell_class;
146 } OverrideShellClassRec;
148 externalref OverrideShellClassRec overrideShellClassRec;
150 /* No new fields for the override shell widget */
152 typedef struct {int frabjous;} OverrideShellPart;
156 CompositePart composite;
158 OverrideShellPart override;
159 } OverrideShellRec, *OverrideShellWidget;
161 /***********************************************************************
163 * WMShell Widget Private Data
165 ***********************************************************************/
167 /* New fields for the WMShell widget class record */
170 XtPointer extension; /* pointer to extension record */
173 typedef struct _WMShellClassRec {
174 CoreClassPart core_class;
175 CompositeClassPart composite_class;
176 ShellClassPart shell_class;
177 WMShellClassPart wm_shell_class;
180 externalref WMShellClassRec wmShellClassRec;
182 /* New fields for the WM shell widget */
190 Widget client_leader;
192 struct _OldXSizeHints { /* pre-R4 Xlib structure */
196 int min_width, min_height;
197 int max_width, max_height;
198 int width_inc, height_inc;
202 } min_aspect, max_aspect;
205 int base_width, base_height;
212 CompositePart composite;
215 } WMShellRec, *WMShellWidget;
219 #include <X11/VendorP.h>
223 /***********************************************************************
225 * TransientShell Widget Private Data
227 ***********************************************************************/
229 /* New fields for the TransientShell widget class record */
232 XtPointer extension; /* pointer to extension record */
233 } TransientShellClassPart;
235 typedef 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;
244 externalref TransientShellClassRec transientShellClassRec;
246 /* New fields for the transient shell widget */
249 Widget transient_for;
250 } TransientShellPart;
254 CompositePart composite;
257 VendorShellPart vendor;
258 TransientShellPart transient;
259 } TransientShellRec, *TransientShellWidget;
261 /***********************************************************************
263 * TopLevelShell Widget Private Data
265 ***********************************************************************/
267 /* New fields for the TopLevelShell widget class record */
270 XtPointer extension; /* pointer to extension record */
271 } TopLevelShellClassPart;
273 typedef 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;
282 externalref TopLevelShellClassRec topLevelShellClassRec;
284 /* New fields for the top level shell widget */
289 Atom icon_name_encoding;
294 CompositePart composite;
297 VendorShellPart vendor;
298 TopLevelShellPart topLevel;
299 } TopLevelShellRec, *TopLevelShellWidget;
301 /***********************************************************************
303 * ApplicationShell Widget Private Data
305 ***********************************************************************/
307 /* New fields for the ApplicationShell widget class record */
310 XtPointer extension; /* pointer to extension record */
311 } ApplicationShellClassPart;
313 typedef 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;
323 externalref ApplicationShellClassRec applicationShellClassRec;
325 /* New fields for the application shell widget */
328 #if defined(__cplusplus) || defined(c_plusplus)
336 } ApplicationShellPart;
340 CompositePart composite;
343 VendorShellPart vendor;
344 TopLevelShellPart topLevel;
345 ApplicationShellPart application;
346 } ApplicationShellRec, *ApplicationShellWidget;
348 /***********************************************************************
350 * SessionShell Widget Private Data
352 ***********************************************************************/
354 /* New fields for the SessionShell widget class record */
357 XtPointer extension; /* pointer to extension record */
358 } SessionShellClassPart;
360 typedef 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;
371 externalref SessionShellClassRec sessionShellClassRec;
373 typedef struct _XtSaveYourselfRec *XtSaveYourself; /* implementation-private */
375 /* New fields for the session shell widget */
380 String* restart_command;
381 String* clone_command;
382 String* discard_command;
383 String* resign_command;
384 String* shutdown_command;
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;
423 CompositePart composite;
426 VendorShellPart vendor;
427 TopLevelShellPart topLevel;
428 ApplicationShellPart application;
429 SessionShellPart session;
430 } SessionShellRec, *SessionShellWidget;
434 #endif /* _XtShellPrivate_h */