chiark / gitweb /
debian/changelog: start -4~
[vtwm.git] / screen.h
1 /*
2  * Copyright 1989 Massachusetts Institute of Technology
3  *
4  * Permission to use, copy, modify, and distribute this software and its
5  * documentation for any purpose and without fee is hereby granted, provided
6  * that the above copyright notice appear in all copies and that both that
7  * copyright notice and this permission notice appear in supporting
8  * documentation, and that the name of M.I.T. not be used in advertising
9  * or publicity pertaining to distribution of the software without specific,
10  * written prior permission.  M.I.T. makes no representations about the
11  * suitability of this software for any purpose.  It is provided "as is"
12  * without express or implied warranty.
13  *
14  * M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T.
16  * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
17  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
18  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
19  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
20  */
21
22 /***********************************************************************
23  *
24  * $XConsortium: screen.h,v 1.62 91/05/01 17:33:09 keith Exp $
25  *
26  * twm per-screen data include file
27  *
28  * 11-3-88 Dave Payne, Apple Computer                   File created
29  *
30  ***********************************************************************/
31
32 #ifndef _SCREEN_
33 #define _SCREEN_
34
35 #include <X11/Xlib.h>
36 #include <X11/Xutil.h>
37 #include <X11/cursorfont.h>
38 #include "list.h"
39 #include "menus.h"
40 #include "iconmgr.h"
41 #include "doors.h"
42
43 /* djhjr - 5/17/98 */
44 #ifndef ORIGINAL_PIXMAPS
45 #include "util.h" /* for Image structure */
46 #endif
47
48 typedef struct _StdCmap {
49     struct _StdCmap *next;              /* next link in chain */
50     Atom atom;                          /* property from which this came */
51     int nmaps;                          /* number of maps below */
52     XStandardColormap *maps;            /* the actual maps */
53 } StdCmap;
54
55 #define SIZE_HINDENT 10
56
57 #ifdef ORIGINAL_SIZEVINDENT
58 #define SIZE_VINDENT 2
59 #else
60 #define SIZE_VINDENT 5
61 #endif
62
63 typedef struct ScreenInfo
64 {
65     int screen;                 /* the default screen */
66     int d_depth;                /* copy of DefaultDepth(dpy, screen) */
67     Visual *d_visual;           /* copy of DefaultVisual(dpy, screen) */
68     int Monochrome;             /* is the display monochrome ? */
69     int MyDisplayWidth;         /* my copy of DisplayWidth(dpy, screen) */
70     int MyDisplayHeight;        /* my copy of DisplayHeight(dpy, screen) */
71     int MaxWindowWidth;         /* largest window to allow */
72     int MaxWindowHeight;        /* ditto */
73
74         /* djhjr - 5/15/96 */
75         int ResizeX;            /* coordinate of resize/position window */
76         int ResizeY;            /* ditto */
77
78     int VirtualDesktopMaxWidth;         /* max width of virtual desktop */
79     int VirtualDesktopMaxHeight;        /* max height of virtual desktop */
80     int VirtualDesktopWidth;    /* width of virtual desktop */
81     int VirtualDesktopHeight;   /* height of virtual desktop */
82     int VirtualDesktopX;        /* top left x of my screen on the desktop */
83     int VirtualDesktopY;        /* top left y of my screen on the desktop */
84     int VirtualDesktopPanDistanceX; /* distance to pan screen */
85     int VirtualDesktopPanDistanceY; /* distance to pan screen */
86
87     /* these are for the little vd display */
88     int VirtualDesktopDScale;   /* scale of the virtual desktop display */
89     int VirtualDesktopDX;       /* position of the vd display */
90     int VirtualDesktopDY;       /* position of the vd display */
91
92     /* the autopan stuff */
93     int AutoPanX;               /* how far should autopan travel */
94                 /* AutoPanX is also "whether autopan configured". */
95     int AutoPanY;               /* how far should autopan travel */
96     Window VirtualDesktopAutoPan[4]; /* the autopan windows */
97                                 /* 0 = left, 1 = right, 2 = top, 3 = bottom */
98
99     /* djhjr - 9/8/98 */
100     int VirtualDesktopPanResistance;    /* how much effort it takes to pan */
101
102     TwmWindow TwmRoot;          /* the head of the twm window list */
103
104     Window Root;                /* the root window */
105     Window SizeWindow;          /* the resize dimensions window */
106     Window InfoWindow;          /* the information window */
107     Window VirtualDesktopDisplayOuter; /* wrapper for display of the virtual desktop */
108     Window VirtualDesktopDisplay; /* display of the virtual desktop */
109     Window VirtualDesktopDScreen; /* display of the real screen on the vd */
110     TwmWindow *VirtualDesktopDisplayTwin; /* twm window for the above */
111
112     name_list *ImageCache;  /* list of pixmaps */
113     name_list *Icons;           /* list of icon pixmaps */
114
115     int pullW, pullH;           /* size of pull right menu icon */
116
117 /* djhjr - 5/17/98 */
118 /* added the unknowns - djhjr - 8/13/98 */
119 #ifdef ORIGINAL_PIXMAPS
120     Pixmap UnknownPm;           /* the unknown icon pixmap */
121     int UnknownWidth;           /* width of the unknown icon */
122     int UnknownHeight;          /* height of the unknown icon */
123     Pixmap hilitePm;            /* focus highlight window background */
124     int hilite_pm_width, hilite_pm_height;  /* cache the size */
125     Pixmap virtualPm;           /* panner background pixmap RFB PIXMAP */
126     int virtual_pm_width, virtual_pm_height; /* RFB PIXMAP */
127     Pixmap RealScreenPm;                /* panner background pixmap RFB PIXMAP */
128     int RealScreen_pm_width, RealScreen_pm_height; /* RFB PIXMAP */
129 #else /* ORIGINAL_PIXMAPS */
130     char *unknownName;          /* name of unknown icon pixmap */
131
132     /* djhjr - 10/25/02 */
133     char *hiliteName;           /* name of built-in focus highlight pixmap */
134     /* two more - djhjr - 10/30/02 */
135     char *iconMgrIconName;      /* name of built-in iconmgr iconify pixmap */
136     char *menuIconName;         /* name of built-in pull right menu pixmap */
137
138 /* depreciated - djhjr - 10/30/02
139     Image *siconifyPm;          * the icon manager iconify pixmap *
140     Image *pullPm;              * pull right menu icon *
141 */
142
143     Image *hilitePm;            /* focus highlight window image structure */
144     Image *virtualPm;           /* panner background window image structure */
145     Image *realscreenPm;        /* real screen window image structure */
146 #endif /* ORIGINAL_PIXMAPS */
147
148     MenuRoot *MenuList;         /* head of the menu list */
149     MenuRoot *LastMenu;         /* the last menu (mostly unused?) */
150     MenuRoot *Windows;          /* the TwmWindows menu */
151
152     TwmWindow *Ring;            /* one of the windows in window ring */
153     TwmWindow *RingLeader;      /* current winodw in ring */
154
155     MouseButton Mouse[MAX_BUTTONS+1][NUM_CONTEXTS][MOD_SIZE];
156     MouseButton DefaultFunction;
157     MouseButton WindowFunction;
158
159     struct {
160       Colormaps *cmaps;         /* current list of colormap windows */
161       int maxCmaps;             /* maximum number of installed colormaps */
162       unsigned long first_req;  /* seq # for first XInstallColormap() req in
163                                    pass thru loading a colortable list */
164       int root_pushes;          /* current push level to install root
165                                    colormap windows */
166       TwmWindow *pushed_window; /* saved window to install when pushes drops
167                                    to zero */
168     } cmapInfo;
169
170     struct {
171         StdCmap *head, *tail;           /* list of maps */
172         StdCmap *mru;                   /* most recently used in list */
173         int mruindex;                   /* index of mru in entry */
174     } StdCmapInfo;
175
176     struct {
177         int nleft, nright;              /* numbers of buttons in list */
178         TitleButton *head;              /* start of list */
179         int border;                     /* button border */
180         int pad;                        /* button-padding */
181         int width;                      /* width of single button & border */
182         int leftx;                      /* start of left buttons */
183         int titlex;                     /* start of title string */
184         int rightoff;                   /* offset back from right edge */
185     } TBInfo;
186     ColorPair BorderTileC;      /* border tile colors */
187     ColorPair TitleC;           /* titlebar colors */
188     ColorPair MenuC;            /* menu colors */
189     ColorPair MenuTitleC;       /* menu title colors */
190     ColorPair IconC;            /* icon colors */
191     ColorPair IconManagerC;     /* icon manager colors */
192     ColorPair DefaultC;         /* default colors */
193
194     /* djhjr - 4/19/96 */
195     ColorPair BorderColorC;     /* color of window borders */
196
197     ColorPair VirtualDesktopDisplayC; /* desktop display color */
198     ColorPair DoorC;            /* default door colors */
199     ColorPair VirtualC;     /* default virtual colors *//*RFB VCOLOR*/
200         ColorPair RealScreenC;  /* "real screen" in panner RFB 4/92 */
201     Pixel VirtualDesktopDisplayBorder; /* desktop display default border */
202     Pixel BorderColor;          /* color of window borders */
203     Pixel MenuShadowColor;      /* menu shadow color */
204     Pixel IconBorderColor;      /* icon border color */
205     Pixel IconManagerHighlight; /* icon manager highlight */
206
207     /* djhjr - 4/19/96 */
208     short ClearBevelContrast;  /* The contrast of the clear shadow */
209     short DarkBevelContrast;   /* The contrast of the dark shadow */
210
211     Cursor TitleCursor;         /* title bar cursor */
212     Cursor FrameCursor;         /* frame cursor */
213     Cursor IconCursor;          /* icon cursor */
214     Cursor IconMgrCursor;       /* icon manager cursor */
215     Cursor ButtonCursor;        /* title bar button cursor */
216     Cursor MoveCursor;          /* move cursor */
217     Cursor ResizeCursor;        /* resize cursor */
218     Cursor WaitCursor;          /* wait a while cursor */
219     Cursor MenuCursor;          /* menu cursor */
220     Cursor SelectCursor;        /* dot cursor for f.move, etc. from menus */
221     Cursor DestroyCursor;       /* skull and cross bones, f.destroy */
222         Cursor DoorCursor;/*RFBCURSOR*/
223         Cursor VirtualCursor;/*RFBCURSOR*/
224         Cursor DesktopCursor;/*RFBCURSOR*/
225     Cursor NoCursor;            /* a black cursor - used on desktop display */
226
227     name_list *BorderColorL;
228     name_list *IconBorderColorL;
229     name_list *BorderTileForegroundL;
230     name_list *BorderTileBackgroundL;
231     name_list *TitleForegroundL;
232     name_list *TitleBackgroundL;
233     name_list *IconForegroundL;
234     name_list *IconBackgroundL;
235     name_list *IconManagerFL;
236     name_list *IconManagerBL;
237     name_list *IconMgrs;
238
239         /* djhjr - 4/19/96 */
240     name_list *NoBorder;        /* list of window without borders          */
241
242         /* djhjr - 4/7/98 */
243         name_list *OpaqueMoveL;         /* list of windows moved as a solid */
244         name_list *NoOpaqueMoveL;       /* list of windows moved as an outline */
245         name_list *OpaqueResizeL;       /* list of windows resized as a solid */
246         name_list *NoOpaqueResizeL;     /* list of windows resized as an outline */
247
248     name_list *NoTitle;         /* list of window names with no title bar */
249     name_list *MakeTitle;       /* list of window names with title bar */
250     name_list *AutoRaise;       /* list of window names to auto-raise */
251     name_list *IconNames;       /* list of window names and icon names */
252     name_list *NoHighlight;     /* list of windows to not highlight */
253     name_list *NoStackModeL;    /* windows to ignore stack mode requests */
254     name_list *NoTitleHighlight;/* list of windows to not highlight the TB*/
255     name_list *DontIconify;     /* don't iconify by unmapping */
256     name_list *IconMgrNoShow;   /* don't show in the icon manager */
257     name_list *IconMgrShow;     /* show in the icon manager */
258     name_list *IconifyByUn;     /* windows to iconify by unmapping */
259     name_list *StartIconified;  /* windows to start iconic */
260     name_list *IconManagerHighlightL;   /* icon manager highlight colors */
261     name_list *SqueezeTitleL;           /* windows of which to squeeze title */
262     name_list *DontSqueezeTitleL;       /* windows of which not to squeeze */
263     name_list *WindowRingL;     /* windows in ring */
264
265     /* submitted by Jonathan Paisley - 10/27/02 */
266     name_list *NoWindowRingL;   /* windows not added to ring */
267
268     name_list *WarpCursorL;     /* windows to warp cursor to on deiconify */
269     name_list *NailedDown;      /* windows that are nailed down */
270     name_list *VirtualDesktopColorFL;  /* color of representations on the vd display */
271     name_list *VirtualDesktopColorBL;  /* color of representations on the vd display */
272     name_list *VirtualDesktopColorBoL; /* color of representations on the vd display */
273     name_list *DontShowInDisplay;      /* don't show these in the desktop display */
274
275         /* Submitted by Erik Agsjo <erik.agsjo@aktiedirekt.com> */
276     name_list *DontShowInTWMWindows;   /* don't show these in the TWMWindows menu */
277
278     name_list *DoorForegroundL; /* doors foreground */
279     name_list *DoorBackgroundL; /* doors background */
280
281     /* djhjr - 9/24/02 */
282     name_list *UsePPositionL;   /* windows with UsePPosition set */
283
284     GC NormalGC;                /* normal GC for everything */
285     GC MenuGC;                  /* gc for menus */
286     GC DrawGC;                  /* GC to draw lines for move and resize */
287
288     /* djhjr - 4/19/96 */
289     GC GreyGC;                  /* for shadowing on monochrome displays */
290     GC ShadGC;                  /* for shadowing on with patterns */
291
292     unsigned long Black;
293     unsigned long White;
294     unsigned long XORvalue;     /* number to use when drawing xor'ed */
295     MyFont TitleBarFont;        /* title bar font structure */
296     MyFont MenuFont;            /* menu font structure */
297     MyFont IconFont;            /* icon font structure */
298     MyFont SizeFont;            /* resize font structure */
299     MyFont IconManagerFont;     /* window list font structure */
300     MyFont VirtualFont;         /* virtual display windows */
301     MyFont DoorFont;            /* for drawing in doors */
302     MyFont MenuTitleFont;   /* DSE -- for menu titles */
303     MyFont InfoFont;        /* for the info window */
304     MyFont DefaultFont;
305     IconMgr iconmgr;            /* default icon manager */
306     struct RootRegion *FirstIconRegion; /* pointer to icon regions */
307     struct RootRegion *LastIconRegion;  /* pointer to the last icon region */
308     char *IconDirectory;        /* icon directory to search */
309
310         /* djhjr - 4/26/99 */
311         struct RootRegion *FirstAppletRegion;   /* pointer to applet regions */
312         struct RootRegion *LastAppletRegion;    /* pointer to the last applet region */
313
314         /* djhjr - 12/26/98 */
315         char *BitmapFilePath;   /* local copy of the X database resource */
316
317     int SizeStringOffset;       /* x offset in size window for drawing */
318     int SizeStringWidth;        /* minimum width of size window */
319     int BorderWidth;            /* border width of twm windows */
320
321 /* djhjr - 8/11/98
322     * djhjr - 4/18/96 *
323     int ThreeDBorderWidth;      * 3D border width of twm windows *
324 */
325
326     /* widths of the various 3D shadows - djhjr - 5/2/98 */
327     int BorderBevelWidth;
328     int TitleBevelWidth;
329     int MenuBevelWidth;
330     int IconMgrBevelWidth;
331     int InfoBevelWidth;
332
333     /* djhjr - 8/11/98 */
334     int IconBevelWidth;
335     int ButtonBevelWidth;
336
337     /* djhjr - 2/7/99 */
338     int DoorBevelWidth;
339     int VirtualDesktopBevelWidth;
340
341     /* djhjr - 5/22/00 */
342     int MenuScrollBorderWidth;  /* top and bottom margins for menu scrolling */
343     int MenuScrollJump;         /* number of entries for menu scroll */
344
345     int IconBorderWidth;        /* border width of icon windows */
346     int TitleHeight;            /* height of the title bar window */
347     TwmWindow *Focus;           /* the twm window that has focus */
348     TwmWindow *Newest;          /* the most newly added twm window -- PF */
349     int EntryHeight;            /* menu entry height */
350     int FramePadding;           /* distance between decorations and border */
351     int TitlePadding;           /* distance between items in titlebar */
352     int ButtonIndent;           /* amount to shrink buttons on each side */
353     int NumAutoRaises;          /* number of autoraise windows on screen */
354
355     short SqueezeTitle;         /* make title as small as possible */
356     short MoveDelta;            /* number of pixels before f.move starts */
357     short ZoomCount;            /* zoom outline count */
358
359     /* djhjr - 6/22/01 */
360     int PauseOnExit;            /* delay before shutting down via Done() */
361     int PauseOnQuit;            /* delay before shuttind down via f.quit */
362
363 /* djhjr - 5/17/96 */
364 #ifdef ORIGINAL_SHORTS
365         /* short NoDefaults; - DSE */
366         short NoDefaultMouseOrKeyboardBindings; /* do not add default UI mouse and keyboard stuff - DSE */
367         short NoDefaultTitleButtons; /* do not add default resize and iconify title buttons - DSE */
368     short UsePPosition;         /* what do with PPosition, see values below */
369     short OldFashionedTwmWindowsMenu;
370
371 /* djhjr - 2/15/99
372         short UseRealScreenBorder;
373 */
374
375     short AutoRelativeResize;   /* start resize relative to position in quad */
376     short FocusRoot;            /* is the input focus on the root ? */
377
378     /* djhjr - 10/16/02 */
379     short WarpCentered;         /* warp to center of windows? */
380
381     short WarpCursor;           /* warp cursor on de-iconify? */
382     short ForceIcon;            /* force the icon to the user specified */
383     short NoGrabServer;         /* don't do server grabs */
384     short NoRaiseMove;          /* don't raise window following move */
385     short NoRaiseResize;        /* don't raise window following resize */
386     short NoRaiseDeicon;        /* don't raise window on deiconify */
387     short NoRaiseWarp;          /* don't raise window on warp */
388     short DontMoveOff;          /* don't allow windows to be moved off */
389     short DoZoom;               /* zoom in and out of icons */
390     short TitleFocus;           /* focus on window in title bar ? */
391
392     /* djhjr - 5/27/98 */
393     short IconManagerFocus;     /* focus on window of the icon manager entry? */
394
395     /* djhjr - 12/14/98 */
396     short StaticIconPositions;  /* non-nailed icons stay put */
397
398     /* djhjr - 10/2/01 */
399     short StrictIconManager;    /* show only the iconified */
400
401     /* djhjr - 8/23/02 */
402     short NoBorders;            /* put borders on windows */
403
404     short NoTitlebar;           /* put title bars on windows */
405     short DecorateTransients;   /* put title bars on transients */
406     short IconifyByUnmapping;   /* simply unmap windows when iconifying */
407     short ShowIconManager;      /* display the window list */
408     short IconManagerDontShow;  /* show nothing in the icon manager */
409     short NoIconifyIconManagers; /* don't iconify the icon manager -- PF */
410     short BackingStore;         /* use backing store for menus */
411     short SaveUnder;            /* use save under's for menus */
412     short RandomPlacement;      /* randomly place windows that no give hints */
413     short PointerPlacement;     /* place near mouse pointer */
414     short OpaqueMove;           /* move the window rather than outline */
415
416         /* djhjr - 4/6/98 */
417         short OpaqueResize;             /* resize the window rather than outline */
418
419     short Highlight;            /* should we highlight the window borders */
420
421     /* djhjr - 1/27/98 */
422     short IconMgrHighlight;     /* should we highlight icon manager entries */
423
424     short StackMode;            /* should we honor stack mode requests */
425     short TitleHighlight;       /* should we highlight the titlebar */
426     short SortIconMgr;          /* sort entries in the icon manager */
427     short Shadow;               /* show the menu shadow */
428     short InterpolateMenuColors;/* make pretty menus */
429     short NoIconManagers;       /* Don't create any icon managers */
430     short ClientBorderWidth;    /* respect client window border width */
431     short HaveFonts;            /* set if fonts have been loaded */
432     short FirstTime;            /* first time we've read .twmrc */
433     short CaseSensitive;        /* be case-sensitive when sorting names */
434     short WarpUnmapped;         /* allow warping to unmapped windows */
435     short DeIconifyToScreen;    /* if deiconified, should this goto the screen ? */
436     short WarpWindows;          /* should windows or the screen be warped ? */
437     short snapRealScreen;       /* should the real screen snap to a pandistance grid ? */
438     short GeometriesAreVirtual; /* should geometries be interpreted as virtual or real ? */
439     short Virtual;              /* are we virtual ? (like, hey man....) */
440     short NamesInVirtualDesktop;/* show names in virtual desktop display ? */
441     short AutoRaiseDefault;   /* AutoRaise all windows if true *//*RAISEDELAY*/
442         short UseWindowRing;   /* put all windows in the ring? */
443         short StayUpMenus;
444     short StayUpOptionalMenus; /* PF */
445     short WarpToTransients;    /* PF */
446         short EnhancedExecResources;      /* instead of normal behavior - DSE */
447         short RightHandSidePulldownMenus; /* instead of left-right center - DSE */
448         short LessRandomZoomZoom;         /* makes zoomzoom a better visual bell - DSE */
449         short PrettyZoom;                 /* nicer-looking animation - DSE */
450         short StickyAbove;                /* sticky windows above other windows - DSE */
451         short DontInterpolateTitles;      /* menu titles are excluded from color interpolation - DSE */
452
453         /* djhjr - 1/6/98 */
454         short FixManagedVirtualGeometries; /* bug workaround */
455
456         short FixTransientVirtualGeometries; /* bug workaround - DSE */
457         short WarpSnug;                   /* make sure entire window is on screen when warping - DSE */
458
459         /* djhjr - 6/25/96 */
460         short   ShallowReliefWindowButton;
461
462 /* obsoleted by the *BevelWidth resources - djhjr - 8/11/98
463     * djhjr - 4/18/96 *
464     short       use3Dmenus;
465     short       use3Dtitles;
466     short       use3Diconmanagers;
467     short       use3Dborders;
468 */
469
470     short       BeNiceToColormap;
471
472 /* obsoleted by the *BevelWidth resources - djhjr - 8/11/98
473     * djhjr - 5/5/98 *
474     short       use3Dicons;
475 */
476
477 /* obsoleted by the ":xpm:*" built-in pixmaps - djhjr - 10/26/02
478         * djhjr - 4/25/96 *
479         short SunkFocusWindowTitle;
480 */
481
482         /* for rader - djhjr - 2/9/99 */
483         short NoPrettyTitles;
484
485         /* djhjr - 9/21/96 */
486         short ButtonColorIsFrame;
487
488         /* djhjr - 4/17/98 */
489         short VirtualReceivesMotionEvents;
490         short VirtualSendsMotionEvents;
491
492         /* djhjr - 6/22/99 */
493         short DontDeiconifyTransients;
494
495         /* submitted by Ugen Antsilevitch - 5/28/00 */
496         short WarpVisible;
497
498         /* djhjr - 10/11/01 */
499         short ZoomZoom;         /* fallback on random zooms on iconify */
500
501         /* djhjr - 10/20/02 */
502         short NoBorderDecorations;
503
504         /* djhjr - 11/3/03 */
505         short RaiseOnStart;
506 #else
507         struct
508         {
509                 unsigned int NoDefaultMouseOrKeyboardBindings   : 1;
510                 unsigned int NoDefaultTitleButtons                              : 1;
511                 unsigned int UsePPosition                                               : 2;
512         unsigned int OldFashionedTwmWindowsMenu                 : 1;
513
514 /* djhjr - 2/15/99
515                 unsigned int UseRealScreenBorder                                : 1;
516 */
517
518         unsigned int AutoRelativeResize                                 : 1;
519         unsigned int FocusRoot                                                  : 1;
520
521         /* djhjr - 10/16/02 */
522         unsigned int WarpCentered                                               : 2;
523
524         unsigned int WarpCursor                                                 : 1;
525         unsigned int ForceIcon                                                  : 1;
526         unsigned int NoGrabServer                                               : 1;
527         unsigned int NoRaiseMove                                                : 1;
528         unsigned int NoRaiseResize                                              : 1;
529         unsigned int NoRaiseDeicon                                              : 1;
530         unsigned int NoRaiseWarp                                                : 1;
531         unsigned int DontMoveOff                                                : 1;
532         unsigned int DoZoom                                                             : 1;
533         unsigned int TitleFocus                                                 : 1;
534
535         /* djhjr - 5/27/98 */
536         unsigned int IconManagerFocus                                   : 1;
537
538         /* djhjr - 12/14/98 */
539         unsigned int StaticIconPositions                                : 1;
540
541         /* djhjr - 10/2/01 */
542         unsigned int StrictIconManager                                  : 1;
543
544         /* djhjr - 8/23/02 */
545         unsigned int NoBorders                                          : 1;
546
547         unsigned int NoTitlebar                                                 : 1;
548         unsigned int DecorateTransients                                 : 1;
549         unsigned int IconifyByUnmapping                                 : 1;
550         unsigned int ShowIconManager                                    : 1;
551         unsigned int IconManagerDontShow                                : 1;
552         unsigned int NoIconifyIconManagers                              : 1;
553         unsigned int BackingStore                                               : 1;
554         unsigned int SaveUnder                                                  : 1;
555         unsigned int RandomPlacement                                    : 1;
556         unsigned int PointerPlacement                                   : 1;
557         unsigned int OpaqueMove                                                 : 1;
558
559         /* djhjr - 4/6/98 */
560         unsigned int OpaqueResize                                               : 1;
561
562         unsigned int Highlight                                                  : 1;
563
564         /* djhjr - 1/27/98 */
565         unsigned int IconMgrHighlight                                   : 1;
566
567         unsigned int StackMode                                                  : 1;
568         unsigned int TitleHighlight                                             : 1;
569         unsigned int SortIconMgr                                                : 1;
570         unsigned int Shadow                                                             : 1;
571         unsigned int InterpolateMenuColors                              : 1;
572         unsigned int NoIconManagers                                             : 1;
573         unsigned int ClientBorderWidth                                  : 1;
574         unsigned int HaveFonts                                                  : 1;
575         unsigned int FirstTime                                                  : 1;
576         unsigned int CaseSensitive                                              : 1;
577         unsigned int WarpUnmapped                                               : 1;
578         unsigned int DeIconifyToScreen                                  : 1;
579         unsigned int WarpWindows                                                : 1;
580         unsigned int snapRealScreen                                             : 1;
581         unsigned int GeometriesAreVirtual                               : 1;
582         unsigned int Virtual                                                    : 1;
583         unsigned int NamesInVirtualDesktop                              : 1;
584         unsigned int AutoRaiseDefault                                   : 1;
585                 unsigned int UseWindowRing                                              : 1;
586                 unsigned int StayUpMenus                                                : 1;
587         unsigned int StayUpOptionalMenus                                : 1;
588         unsigned int WarpToTransients                                   : 1;
589                 unsigned int EnhancedExecResources                              : 1;
590                 unsigned int RightHandSidePulldownMenus                 : 1;
591                 unsigned int LessRandomZoomZoom                                 : 1;
592                 unsigned int PrettyZoom                                                 : 1;
593                 unsigned int StickyAbove                                                : 1;
594                 unsigned int DontInterpolateTitles                              : 1;
595
596                 /* djhjr - 1/6/98 */
597                 unsigned int FixManagedVirtualGeometries                : 1;
598
599                 unsigned int FixTransientVirtualGeometries              : 1;
600                 unsigned int WarpSnug                                                   : 1;
601                 unsigned int ShallowReliefWindowButton                  : 2;
602
603 /* obsoleted by the *BevelWidth resources - djhjr - 8/11/98
604             unsigned int use3Dmenus                                                     : 1;
605         unsigned int use3Dtitles                                                : 1;
606         unsigned int use3Diconmanagers                                  : 1;
607         unsigned int use3Dborders                                               : 1;
608
609         * djhjr - 5/5/98 *
610         unsigned int use3Dicons                                                 : 1;
611 */
612
613         unsigned int BeNiceToColormap                                   : 1;
614
615 /* obsoleted by the ":xpm:*" built-in pixmaps - djhjr - 10/26/02
616                 unsigned int SunkFocusWindowTitle                               : 1;
617 */
618
619                 /* for rader - djhjr - 2/9/99 */
620                 unsigned int NoPrettyTitles                                             : 1;
621
622                 unsigned int ButtonColorIsFrame                                 : 1;
623
624                 /* djhjr - 4/17/98 */
625                 unsigned int VirtualReceivesMotionEvents                : 1;
626                 unsigned int VirtualSendsMotionEvents                   : 1;
627
628                 /* djhjr - 6/22/99 */
629                 unsigned int DontDeiconifyTransients                    : 1;
630
631                 /* submitted by Ugen Antsilevitch - 5/28/00 */
632                 unsigned int WarpVisible                                                : 1;
633
634                 /* djhjr - 10/11/01 */
635                 unsigned int ZoomZoom                                   : 1;
636
637                 /* djhjr - 10/20/02 */
638                 unsigned int NoBorderDecorations                        : 1;
639
640                 /* djhjr - 11/3/03 */
641                 unsigned int RaiseOnStart                               : 1;
642         } userflags;
643 #define NoDefaultMouseOrKeyboardBindings        userflags.NoDefaultMouseOrKeyboardBindings
644 #define NoDefaultTitleButtons                           userflags.NoDefaultTitleButtons
645 #define UsePPosition                                            userflags.UsePPosition
646 #define OldFashionedTwmWindowsMenu                      userflags.OldFashionedTwmWindowsMenu
647
648 /* djhjr - 2/15/99
649 #define UseRealScreenBorder                                     userflags.UseRealScreenBorder
650 */
651
652 #define AutoRelativeResize                                      userflags.AutoRelativeResize
653 #define FocusRoot                                                       userflags.FocusRoot
654
655 /* djhjr - 10/16/02 */
656 #define WarpCentered                                                    userflags.WarpCentered
657
658 #define WarpCursor                                                      userflags.WarpCursor
659 #define ForceIcon                                                       userflags.ForceIcon
660 #define NoGrabServer                                            userflags.NoGrabServer
661 #define NoRaiseMove                                                     userflags.NoRaiseMove
662 #define NoRaiseResize                                           userflags.NoRaiseResize
663 #define NoRaiseDeicon                                           userflags.NoRaiseDeicon
664 #define NoRaiseWarp                                                     userflags.NoRaiseWarp
665 #define DontMoveOff                                                     userflags.DontMoveOff
666 #define DoZoom                                                          userflags.DoZoom
667 #define TitleFocus                                                      userflags.TitleFocus
668
669 /* djhjr - 5/27/98 */
670 #define IconManagerFocus                                        userflags.IconManagerFocus
671
672 /* djhjr - 12/14/98 */
673 #define StaticIconPositions                                     userflags.StaticIconPositions
674
675 /* djhjr - 10/2/01 */
676 #define StrictIconManager                                       userflags.StrictIconManager
677
678 /* djhjr - 8/23/02 */
679 #define NoBorders                                               userflags.NoBorders
680
681 #define NoTitlebar                                                      userflags.NoTitlebar
682 #define DecorateTransients                                      userflags.DecorateTransients
683 #define IconifyByUnmapping                                      userflags.IconifyByUnmapping
684 #define ShowIconManager                                         userflags.ShowIconManager
685 #define IconManagerDontShow                                     userflags.IconManagerDontShow
686 #define NoIconifyIconManagers                           userflags.NoIconifyIconManagers
687 #define BackingStore                                            userflags.BackingStore
688 #define SaveUnder                                                       userflags.SaveUnder
689 #define RandomPlacement                                         userflags.RandomPlacement
690 #define PointerPlacement                                                userflags.PointerPlacement
691 #define OpaqueMove                                                      userflags.OpaqueMove
692
693 /* djhjr - 4/6/98 */
694 #define OpaqueResize                                            userflags.OpaqueResize
695
696 #define Highlight                                                       userflags.Highlight
697
698 /* djhjr - 1/27/98 */
699 #define IconMgrHighlight                                        userflags.IconMgrHighlight
700
701 #define StackMode                                                       userflags.StackMode
702 #define TitleHighlight                                          userflags.TitleHighlight
703 #define SortIconMgr                                                     userflags.SortIconMgr
704 #define Shadow                                                          userflags.Shadow
705 #define InterpolateMenuColors                           userflags.InterpolateMenuColors
706 #define NoIconManagers                                          userflags.NoIconManagers
707 #define ClientBorderWidth                                       userflags.ClientBorderWidth
708 #define HaveFonts                                                       userflags.HaveFonts
709 #define FirstTime                                                       userflags.FirstTime
710 #define CaseSensitive                                           userflags.CaseSensitive
711 #define WarpUnmapped                                            userflags.WarpUnmapped
712 #define DeIconifyToScreen                                       userflags.DeIconifyToScreen
713 #define WarpWindows                                                     userflags.WarpWindows
714 #define snapRealScreen                                          userflags.snapRealScreen
715 #define GeometriesAreVirtual                            userflags.GeometriesAreVirtual
716 #define Virtual                                                         userflags.Virtual
717 #define NamesInVirtualDesktop                           userflags.NamesInVirtualDesktop
718 #define AutoRaiseDefault                                        userflags.AutoRaiseDefault
719 #define UseWindowRing                                           userflags.UseWindowRing
720 #define StayUpMenus                                                     userflags.StayUpMenus
721 #define StayUpOptionalMenus                                     userflags.StayUpOptionalMenus
722 #define WarpToTransients                                        userflags.WarpToTransients
723 #define EnhancedExecResources                           userflags.EnhancedExecResources
724 #define RightHandSidePulldownMenus                      userflags.RightHandSidePulldownMenus
725 #define LessRandomZoomZoom                                      userflags.LessRandomZoomZoom
726 #define PrettyZoom                                                      userflags.PrettyZoom
727 #define StickyAbove                                                     userflags.StickyAbove
728 #define DontInterpolateTitles                           userflags.DontInterpolateTitles
729
730 /* djhjr - 1/6/98 */
731 #define FixManagedVirtualGeometries                     userflags.FixManagedVirtualGeometries
732
733 #define FixTransientVirtualGeometries           userflags.FixTransientVirtualGeometries
734 #define WarpSnug                                                        userflags.WarpSnug
735 #define ShallowReliefWindowButton                       userflags.ShallowReliefWindowButton
736
737 /* obsoleted by the *BevelWidth resources - djhjr - 8/11/98
738 #define use3Dmenus                                                      userflags.use3Dmenus
739 #define use3Dtitles                                                     userflags.use3Dtitles
740 #define use3Diconmanagers                                       userflags.use3Diconmanagers
741 #define use3Dborders                                            userflags.use3Dborders
742
743 * djhjr - 5/5/98 *
744 #define use3Dicons                                                      userflags.use3Dicons
745 */
746
747 #define BeNiceToColormap                                        userflags.BeNiceToColormap
748
749 /* obsoleted by the ":xpm:*" built-in pixmaps - djhjr - 10/26/02
750 #define SunkFocusWindowTitle                            userflags.SunkFocusWindowTitle
751 */
752
753 /* for rader - djhjr - 2/9/99 */
754 #define NoPrettyTitles                                          userflags.NoPrettyTitles
755
756 #define ButtonColorIsFrame                                      userflags.ButtonColorIsFrame
757
758 /* djhjr - 4/17/98 */
759 #define VirtualReceivesMotionEvents                     userflags.VirtualReceivesMotionEvents
760 #define VirtualSendsMotionEvents                        userflags.VirtualSendsMotionEvents
761
762 /* djhjr - 6/22/99 */
763 #define DontDeiconifyTransients                         userflags.DontDeiconifyTransients
764
765 /* submitted by Ugen Antsilevitch - 5/28/00 */
766 #define WarpVisible                                                     userflags.WarpVisible
767
768 /* djhjr - 10/11/01 */
769 #define ZoomZoom                                        userflags.ZoomZoom
770
771 /* djhjr - 10/20/02 */
772 #define NoBorderDecorations                             userflags.NoBorderDecorations
773
774 /* djhjr - 11/3/03 */
775 #define RaiseOnStart                                    userflags.RaiseOnStart
776 #endif
777
778     /* djhjr - 9/10/03 */
779     int IgnoreModifiers;        /* binding modifiers to ignore */
780
781     FuncKey FuncKeyRoot;
782     TwmDoor *Doors;             /* a list of doors on this screen */
783
784         int AutoPanBorderWidth;           /* of autopan windows, really - DSE */
785         int AutoPanExtraWarp;             /* # of extra pixels to warp - DSE */
786         int RealScreenBorderWidth;        /* in virtual desktop - DSE */
787         int AutoPanWarpWithRespectToRealScreen; /* percent - DSE */
788 } ScreenInfo;
789
790 extern int MultiScreen;
791 extern int NumScreens;
792 extern ScreenInfo **ScreenList;
793 extern ScreenInfo *Scr;
794 extern int FirstScreen;
795
796 #define PPOS_OFF 0
797 #define PPOS_ON 1
798 #define PPOS_NON_ZERO 2
799 /* may eventually want an option for having the PPosition be the initial
800    location for the drag lines */
801
802 /* djhjr - 10/16/02 */
803 #define WARPC_OFF       0
804 #define WARPC_TITLED    1
805 #define WARPC_UNTITLED  2
806 #define WARPC_ON        3
807
808 #endif /* _SCREEN_ */