Git init
[framework/uifw/xorg/lib/libxt.git] / include / X11 / ShellP.h
1 /***********************************************************
2
3 Copyright 1987, 1988, 1994, 1998  The Open Group
4
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
9 documentation.
10
11 The above copyright notice and this permission notice shall be included in
12 all copies or substantial portions of the Software.
13
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.
20
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.
24
25
26 Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
27
28                         All Rights Reserved
29
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.  
37
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
44 SOFTWARE.
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
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 _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
231 typedef struct {
232     XtPointer       extension;          /* pointer to extension record      */
233 } TransientShellClassPart;
234
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;
243
244 externalref TransientShellClassRec transientShellClassRec;
245
246 /* New fields for the transient shell widget */
247
248 typedef struct {
249         Widget transient_for;
250 } TransientShellPart;
251
252 typedef  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
269 typedef struct {
270     XtPointer       extension;          /* pointer to extension record      */
271 } TopLevelShellClassPart;
272
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;
281
282 externalref TopLevelShellClassRec topLevelShellClassRec;
283
284 /* New fields for the top level shell widget */
285
286 typedef struct {
287         char       *icon_name;
288         Boolean     iconic;
289         Atom        icon_name_encoding;
290 } TopLevelShellPart;
291
292 typedef  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
309 typedef struct {
310     XtPointer       extension;          /* pointer to extension record      */
311 } ApplicationShellClassPart;
312
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;
322
323 externalref ApplicationShellClassRec applicationShellClassRec;
324
325 /* New fields for the application shell widget */
326
327 typedef 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
338 typedef  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
356 typedef struct {
357     XtPointer       extension;          /* pointer to extension record */
358 } SessionShellClassPart;
359
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;
370
371 externalref SessionShellClassRec sessionShellClassRec;
372
373 typedef struct _XtSaveYourselfRec *XtSaveYourself; /* implementation-private */
374
375 /* New fields for the session shell widget */
376
377 typedef 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
421 typedef  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 */