ShellP.h revision 9e7bcd65
1444c061aSmrg/*********************************************************** 2444c061aSmrg 3444c061aSmrgCopyright 1987, 1988, 1994, 1998 The Open Group 4444c061aSmrg 5444c061aSmrgPermission to use, copy, modify, distribute, and sell this software and its 6444c061aSmrgdocumentation for any purpose is hereby granted without fee, provided that 7444c061aSmrgthe above copyright notice appear in all copies and that both that 8444c061aSmrgcopyright notice and this permission notice appear in supporting 9444c061aSmrgdocumentation. 10444c061aSmrg 11444c061aSmrgThe above copyright notice and this permission notice shall be included in 12444c061aSmrgall copies or substantial portions of the Software. 13444c061aSmrg 14444c061aSmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15444c061aSmrgIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16444c061aSmrgFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17444c061aSmrgOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 18444c061aSmrgAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 19444c061aSmrgCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 20444c061aSmrg 21444c061aSmrgExcept as contained in this notice, the name of The Open Group shall not be 22444c061aSmrgused in advertising or otherwise to promote the sale, use or other dealings 23444c061aSmrgin this Software without prior written authorization from The Open Group. 24444c061aSmrg 25444c061aSmrg 26444c061aSmrgCopyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts. 27444c061aSmrg 28444c061aSmrg All Rights Reserved 29444c061aSmrg 309e7bcd65SmrgPermission to use, copy, modify, and distribute this software and its 319e7bcd65Smrgdocumentation for any purpose and without fee is hereby granted, 32444c061aSmrgprovided that the above copyright notice appear in all copies and that 339e7bcd65Smrgboth that copyright notice and this permission notice appear in 34444c061aSmrgsupporting documentation, and that the name of Digital not be 35444c061aSmrgused in advertising or publicity pertaining to distribution of the 369e7bcd65Smrgsoftware without specific, written prior permission. 37444c061aSmrg 38444c061aSmrgDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 39444c061aSmrgALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL 40444c061aSmrgDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR 41444c061aSmrgANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 42444c061aSmrgWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 43444c061aSmrgARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 44444c061aSmrgSOFTWARE. 45444c061aSmrg 46444c061aSmrg******************************************************************/ 47444c061aSmrg 489e7bcd65Smrg/* 49444c061aSmrg * ShellP.h - Private definitions for Shell widget 509e7bcd65Smrg * 51444c061aSmrg * Author: Paul Asente 52444c061aSmrg * Digital Equipment Corporation 53444c061aSmrg * Western Software Laboratory 54444c061aSmrg * Date: Thu Dec 3, 1987 55444c061aSmrg */ 56444c061aSmrg 57444c061aSmrg#ifndef _XtShellPrivate_h 58444c061aSmrg#define _XtShellPrivate_h 59444c061aSmrg 60444c061aSmrg#include <X11/Shell.h> 61444c061aSmrg 62444c061aSmrg/* ***** 63444c061aSmrg * ***** VendorP.h is included later on; it needs fields defined in the first 64444c061aSmrg * ***** part of this header file 65444c061aSmrg * ***** 66444c061aSmrg */ 67444c061aSmrg 682265a131Smrg_XFUNCPROTOBEGIN 692265a131Smrg 70444c061aSmrg/*********************************************************************** 71444c061aSmrg * 72444c061aSmrg * Shell Widget Private Data 73444c061aSmrg * 74444c061aSmrg ***********************************************************************/ 75444c061aSmrg 76444c061aSmrg/* New fields for the Shell widget class record */ 77444c061aSmrg 78444c061aSmrgtypedef struct { 79444c061aSmrg XtPointer extension; /* pointer to extension record */ 80444c061aSmrg} ShellClassPart; 81444c061aSmrg 82444c061aSmrgtypedef struct { 83444c061aSmrg XtPointer next_extension; /* 1st 4 mandated for all extension records */ 84444c061aSmrg XrmQuark record_type; /* NULLQUARK; on ShellClassPart */ 85444c061aSmrg long version; /* must be XtShellExtensionVersion */ 86444c061aSmrg Cardinal record_size; /* sizeof(ShellClassExtensionRec) */ 87444c061aSmrg XtGeometryHandler root_geometry_manager; 88444c061aSmrg} ShellClassExtensionRec, *ShellClassExtension; 89444c061aSmrg 90444c061aSmrg#define XtShellExtensionVersion 1L 91444c061aSmrg#define XtInheritRootGeometryManager ((XtGeometryHandler)_XtInherit) 92444c061aSmrg 93444c061aSmrgtypedef struct _ShellClassRec { 94444c061aSmrg CoreClassPart core_class; 95444c061aSmrg CompositeClassPart composite_class; 96444c061aSmrg ShellClassPart shell_class; 97444c061aSmrg} ShellClassRec; 98444c061aSmrg 99444c061aSmrgexternalref ShellClassRec shellClassRec; 100444c061aSmrg 101444c061aSmrg/* New fields for the shell widget */ 102444c061aSmrg 103444c061aSmrgtypedef struct { 104444c061aSmrg char *geometry; 105444c061aSmrg XtCreatePopupChildProc create_popup_child_proc; 106444c061aSmrg XtGrabKind grab_kind; 107444c061aSmrg Boolean spring_loaded; 108444c061aSmrg Boolean popped_up; 109444c061aSmrg Boolean allow_shell_resize; 110444c061aSmrg Boolean client_specified; /* re-using old name */ 111444c061aSmrg#define _XtShellPositionValid ((Boolean)(1<<0)) 112444c061aSmrg#define _XtShellNotReparented ((Boolean)(1<<1)) 113444c061aSmrg#define _XtShellPPositionOK ((Boolean)(1<<2)) 114444c061aSmrg#define _XtShellGeometryParsed ((Boolean)(1<<3)) 115444c061aSmrg Boolean save_under; 116444c061aSmrg Boolean override_redirect; 117444c061aSmrg 118444c061aSmrg XtCallbackList popup_callback; 119444c061aSmrg XtCallbackList popdown_callback; 120444c061aSmrg Visual* visual; 121444c061aSmrg} ShellPart; 122444c061aSmrg 123444c061aSmrgtypedef struct { 124444c061aSmrg CorePart core; 125444c061aSmrg CompositePart composite; 126444c061aSmrg ShellPart shell; 127444c061aSmrg} ShellRec, *ShellWidget; 128444c061aSmrg 129444c061aSmrg/*********************************************************************** 130444c061aSmrg * 131444c061aSmrg * OverrideShell Widget Private Data 132444c061aSmrg * 133444c061aSmrg ***********************************************************************/ 134444c061aSmrg 135444c061aSmrg/* New fields for the OverrideShell widget class record */ 136444c061aSmrg 137444c061aSmrgtypedef struct { 138444c061aSmrg XtPointer extension; /* pointer to extension record */ 139444c061aSmrg} OverrideShellClassPart; 140444c061aSmrg 141444c061aSmrgtypedef struct _OverrideShellClassRec { 142444c061aSmrg CoreClassPart core_class; 143444c061aSmrg CompositeClassPart composite_class; 144444c061aSmrg ShellClassPart shell_class; 145444c061aSmrg OverrideShellClassPart override_shell_class; 146444c061aSmrg} OverrideShellClassRec; 147444c061aSmrg 148444c061aSmrgexternalref OverrideShellClassRec overrideShellClassRec; 149444c061aSmrg 150444c061aSmrg/* No new fields for the override shell widget */ 151444c061aSmrg 152444c061aSmrgtypedef struct {int frabjous;} OverrideShellPart; 153444c061aSmrg 154444c061aSmrgtypedef struct { 155444c061aSmrg CorePart core; 156444c061aSmrg CompositePart composite; 157444c061aSmrg ShellPart shell; 158444c061aSmrg OverrideShellPart override; 159444c061aSmrg} OverrideShellRec, *OverrideShellWidget; 160444c061aSmrg 161444c061aSmrg/*********************************************************************** 162444c061aSmrg * 163444c061aSmrg * WMShell Widget Private Data 164444c061aSmrg * 165444c061aSmrg ***********************************************************************/ 166444c061aSmrg 167444c061aSmrg/* New fields for the WMShell widget class record */ 168444c061aSmrg 169444c061aSmrgtypedef struct { 170444c061aSmrg XtPointer extension; /* pointer to extension record */ 171444c061aSmrg} WMShellClassPart; 172444c061aSmrg 173444c061aSmrgtypedef struct _WMShellClassRec { 174444c061aSmrg CoreClassPart core_class; 175444c061aSmrg CompositeClassPart composite_class; 176444c061aSmrg ShellClassPart shell_class; 177444c061aSmrg WMShellClassPart wm_shell_class; 178444c061aSmrg} WMShellClassRec; 179444c061aSmrg 180444c061aSmrgexternalref WMShellClassRec wmShellClassRec; 181444c061aSmrg 182444c061aSmrg/* New fields for the WM shell widget */ 183444c061aSmrg 184444c061aSmrgtypedef struct { 185444c061aSmrg char *title; 186444c061aSmrg int wm_timeout; 187444c061aSmrg Boolean wait_for_wm; 188444c061aSmrg Boolean transient; 189444c061aSmrg Boolean urgency; 190444c061aSmrg Widget client_leader; 191444c061aSmrg String window_role; 192444c061aSmrg struct _OldXSizeHints { /* pre-R4 Xlib structure */ 193444c061aSmrg long flags; 194444c061aSmrg int x, y; 195444c061aSmrg int width, height; 196444c061aSmrg int min_width, min_height; 197444c061aSmrg int max_width, max_height; 198444c061aSmrg int width_inc, height_inc; 199444c061aSmrg struct { 200444c061aSmrg int x; 201444c061aSmrg int y; 202444c061aSmrg } min_aspect, max_aspect; 203444c061aSmrg } size_hints; 204444c061aSmrg XWMHints wm_hints; 205444c061aSmrg int base_width, base_height; 206444c061aSmrg int win_gravity; 207444c061aSmrg Atom title_encoding; 208444c061aSmrg} WMShellPart; 209444c061aSmrg 210444c061aSmrgtypedef struct { 211444c061aSmrg CorePart core; 212444c061aSmrg CompositePart composite; 213444c061aSmrg ShellPart shell; 214444c061aSmrg WMShellPart wm; 215444c061aSmrg} WMShellRec, *WMShellWidget; 216444c061aSmrg 2172265a131Smrg_XFUNCPROTOEND 2182265a131Smrg 219444c061aSmrg#include <X11/VendorP.h> 220444c061aSmrg 2212265a131Smrg_XFUNCPROTOBEGIN 2222265a131Smrg 223444c061aSmrg/*********************************************************************** 224444c061aSmrg * 225444c061aSmrg * TransientShell Widget Private Data 226444c061aSmrg * 227444c061aSmrg ***********************************************************************/ 228444c061aSmrg 229444c061aSmrg/* New fields for the TransientShell widget class record */ 230444c061aSmrg 231444c061aSmrgtypedef struct { 232444c061aSmrg XtPointer extension; /* pointer to extension record */ 233444c061aSmrg} TransientShellClassPart; 234444c061aSmrg 235444c061aSmrgtypedef struct _TransientShellClassRec { 236444c061aSmrg CoreClassPart core_class; 237444c061aSmrg CompositeClassPart composite_class; 238444c061aSmrg ShellClassPart shell_class; 239444c061aSmrg WMShellClassPart wm_shell_class; 240444c061aSmrg VendorShellClassPart vendor_shell_class; 241444c061aSmrg TransientShellClassPart transient_shell_class; 242444c061aSmrg} TransientShellClassRec; 243444c061aSmrg 244444c061aSmrgexternalref TransientShellClassRec transientShellClassRec; 245444c061aSmrg 246444c061aSmrg/* New fields for the transient shell widget */ 247444c061aSmrg 248444c061aSmrgtypedef struct { 249444c061aSmrg Widget transient_for; 250444c061aSmrg} TransientShellPart; 251444c061aSmrg 252444c061aSmrgtypedef struct { 253444c061aSmrg CorePart core; 254444c061aSmrg CompositePart composite; 255444c061aSmrg ShellPart shell; 256444c061aSmrg WMShellPart wm; 257444c061aSmrg VendorShellPart vendor; 2589e7bcd65Smrg TransientShellPart transient; 259444c061aSmrg} TransientShellRec, *TransientShellWidget; 260444c061aSmrg 261444c061aSmrg/*********************************************************************** 262444c061aSmrg * 263444c061aSmrg * TopLevelShell Widget Private Data 264444c061aSmrg * 265444c061aSmrg ***********************************************************************/ 266444c061aSmrg 267444c061aSmrg/* New fields for the TopLevelShell widget class record */ 268444c061aSmrg 269444c061aSmrgtypedef struct { 270444c061aSmrg XtPointer extension; /* pointer to extension record */ 271444c061aSmrg} TopLevelShellClassPart; 272444c061aSmrg 273444c061aSmrgtypedef struct _TopLevelShellClassRec { 274444c061aSmrg CoreClassPart core_class; 275444c061aSmrg CompositeClassPart composite_class; 276444c061aSmrg ShellClassPart shell_class; 277444c061aSmrg WMShellClassPart wm_shell_class; 278444c061aSmrg VendorShellClassPart vendor_shell_class; 279444c061aSmrg TopLevelShellClassPart top_level_shell_class; 280444c061aSmrg} TopLevelShellClassRec; 281444c061aSmrg 282444c061aSmrgexternalref TopLevelShellClassRec topLevelShellClassRec; 283444c061aSmrg 284444c061aSmrg/* New fields for the top level shell widget */ 285444c061aSmrg 286444c061aSmrgtypedef struct { 287444c061aSmrg char *icon_name; 288444c061aSmrg Boolean iconic; 289444c061aSmrg Atom icon_name_encoding; 290444c061aSmrg} TopLevelShellPart; 291444c061aSmrg 292444c061aSmrgtypedef struct { 293444c061aSmrg CorePart core; 294444c061aSmrg CompositePart composite; 295444c061aSmrg ShellPart shell; 296444c061aSmrg WMShellPart wm; 297444c061aSmrg VendorShellPart vendor; 298444c061aSmrg TopLevelShellPart topLevel; 299444c061aSmrg} TopLevelShellRec, *TopLevelShellWidget; 300444c061aSmrg 301444c061aSmrg/*********************************************************************** 302444c061aSmrg * 303444c061aSmrg * ApplicationShell Widget Private Data 304444c061aSmrg * 305444c061aSmrg ***********************************************************************/ 306444c061aSmrg 307444c061aSmrg/* New fields for the ApplicationShell widget class record */ 308444c061aSmrg 309444c061aSmrgtypedef struct { 310444c061aSmrg XtPointer extension; /* pointer to extension record */ 311444c061aSmrg} ApplicationShellClassPart; 312444c061aSmrg 313444c061aSmrgtypedef struct _ApplicationShellClassRec { 314444c061aSmrg CoreClassPart core_class; 315444c061aSmrg CompositeClassPart composite_class; 316444c061aSmrg ShellClassPart shell_class; 317444c061aSmrg WMShellClassPart wm_shell_class; 318444c061aSmrg VendorShellClassPart vendor_shell_class; 319444c061aSmrg TopLevelShellClassPart top_level_shell_class; 320444c061aSmrg ApplicationShellClassPart application_shell_class; 321444c061aSmrg} ApplicationShellClassRec; 322444c061aSmrg 323444c061aSmrgexternalref ApplicationShellClassRec applicationShellClassRec; 324444c061aSmrg 325444c061aSmrg/* New fields for the application shell widget */ 326444c061aSmrg 327444c061aSmrgtypedef struct { 328444c061aSmrg#if defined(__cplusplus) || defined(c_plusplus) 329444c061aSmrg char *c_class; 330444c061aSmrg#else 331444c061aSmrg char *class; 332444c061aSmrg#endif 333444c061aSmrg XrmClass xrm_class; 334444c061aSmrg int argc; 335444c061aSmrg char **argv; 336444c061aSmrg} ApplicationShellPart; 337444c061aSmrg 338444c061aSmrgtypedef struct { 339444c061aSmrg CorePart core; 340444c061aSmrg CompositePart composite; 341444c061aSmrg ShellPart shell; 342444c061aSmrg WMShellPart wm; 343444c061aSmrg VendorShellPart vendor; 344444c061aSmrg TopLevelShellPart topLevel; 345444c061aSmrg ApplicationShellPart application; 346444c061aSmrg} ApplicationShellRec, *ApplicationShellWidget; 347444c061aSmrg 348444c061aSmrg/*********************************************************************** 349444c061aSmrg * 350444c061aSmrg * SessionShell Widget Private Data 351444c061aSmrg * 352444c061aSmrg ***********************************************************************/ 353444c061aSmrg 354444c061aSmrg/* New fields for the SessionShell widget class record */ 355444c061aSmrg 356444c061aSmrgtypedef struct { 357444c061aSmrg XtPointer extension; /* pointer to extension record */ 358444c061aSmrg} SessionShellClassPart; 359444c061aSmrg 360444c061aSmrgtypedef struct _SessionShellClassRec { 361444c061aSmrg CoreClassPart core_class; 362444c061aSmrg CompositeClassPart composite_class; 363444c061aSmrg ShellClassPart shell_class; 364444c061aSmrg WMShellClassPart wm_shell_class; 365444c061aSmrg VendorShellClassPart vendor_shell_class; 366444c061aSmrg TopLevelShellClassPart top_level_shell_class; 367444c061aSmrg ApplicationShellClassPart application_shell_class; 368444c061aSmrg SessionShellClassPart session_shell_class; 369444c061aSmrg} SessionShellClassRec; 370444c061aSmrg 371444c061aSmrgexternalref SessionShellClassRec sessionShellClassRec; 372444c061aSmrg 373444c061aSmrgtypedef struct _XtSaveYourselfRec *XtSaveYourself; /* implementation-private */ 374444c061aSmrg 375444c061aSmrg/* New fields for the session shell widget */ 376444c061aSmrg 377444c061aSmrgtypedef struct { 378444c061aSmrg SmcConn connection; 379444c061aSmrg String session_id; 380444c061aSmrg String* restart_command; 381444c061aSmrg String* clone_command; 382444c061aSmrg String* discard_command; 383444c061aSmrg String* resign_command; 384444c061aSmrg String* shutdown_command; 385444c061aSmrg String* environment; 386444c061aSmrg String current_dir; 387444c061aSmrg String program_path; 388444c061aSmrg unsigned char restart_style; 389444c061aSmrg unsigned char checkpoint_state; 390444c061aSmrg Boolean join_session; 391444c061aSmrg XtCallbackList save_callbacks; 392444c061aSmrg XtCallbackList interact_callbacks; 393444c061aSmrg XtCallbackList cancel_callbacks; 394444c061aSmrg XtCallbackList save_complete_callbacks; 395444c061aSmrg XtCallbackList die_callbacks; 396444c061aSmrg XtCallbackList error_callbacks; 397444c061aSmrg XtSaveYourself save; 398444c061aSmrg XtInputId input_id; 399444c061aSmrg XtPointer ses20; 400444c061aSmrg XtPointer ses19; 401444c061aSmrg XtPointer ses18; 402444c061aSmrg XtPointer ses17; 403444c061aSmrg XtPointer ses16; 404444c061aSmrg XtPointer ses15; 405444c061aSmrg XtPointer ses14; 406444c061aSmrg XtPointer ses13; 407444c061aSmrg XtPointer ses12; 408444c061aSmrg XtPointer ses11; 409444c061aSmrg XtPointer ses10; 410444c061aSmrg XtPointer ses9; 411444c061aSmrg XtPointer ses8; 412444c061aSmrg XtPointer ses7; 413444c061aSmrg XtPointer ses6; 414444c061aSmrg XtPointer ses5; 415444c061aSmrg XtPointer ses4; 416444c061aSmrg XtPointer ses3; 417444c061aSmrg XtPointer ses2; 418444c061aSmrg XtPointer ses1; 419444c061aSmrg} SessionShellPart; 420444c061aSmrg 421444c061aSmrgtypedef struct { 422444c061aSmrg CorePart core; 423444c061aSmrg CompositePart composite; 424444c061aSmrg ShellPart shell; 425444c061aSmrg WMShellPart wm; 426444c061aSmrg VendorShellPart vendor; 427444c061aSmrg TopLevelShellPart topLevel; 428444c061aSmrg ApplicationShellPart application; 429444c061aSmrg SessionShellPart session; 430444c061aSmrg} SessionShellRec, *SessionShellWidget; 431444c061aSmrg 4322265a131Smrg_XFUNCPROTOEND 4332265a131Smrg 434444c061aSmrg#endif /* _XtShellPrivate_h */ 435