screen.h revision 645f5050
1645f5050Syouri/*
2645f5050Syouri * Copyright 1989 Massachusetts Institute of Technology
3645f5050Syouri *
4645f5050Syouri * Permission to use, copy, modify, and distribute this software and its
5645f5050Syouri * documentation for any purpose and without fee is hereby granted, provided
6645f5050Syouri * that the above copyright notice appear in all copies and that both that
7645f5050Syouri * copyright notice and this permission notice appear in supporting
8645f5050Syouri * documentation, and that the name of M.I.T. not be used in advertising
9645f5050Syouri * or publicity pertaining to distribution of the software without specific,
10645f5050Syouri * written prior permission.  M.I.T. makes no representations about the
11645f5050Syouri * suitability of this software for any purpose.  It is provided "as is"
12645f5050Syouri * without express or implied warranty.
13645f5050Syouri *
14645f5050Syouri * M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
15645f5050Syouri * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T.
16645f5050Syouri * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
17645f5050Syouri * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
18645f5050Syouri * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
19645f5050Syouri * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
20645f5050Syouri */
21645f5050Syouri/*
22645f5050Syouri *  [ ctwm ]
23645f5050Syouri *
24645f5050Syouri *  Copyright 1992 Claude Lecommandeur.
25645f5050Syouri *
26645f5050Syouri * Permission to use, copy, modify  and distribute this software  [ctwm] and
27645f5050Syouri * its documentation for any purpose is hereby granted without fee, provided
28645f5050Syouri * that the above  copyright notice appear  in all copies and that both that
29645f5050Syouri * copyright notice and this permission notice appear in supporting documen-
30645f5050Syouri * tation, and that the name of  Claude Lecommandeur not be used in adverti-
31645f5050Syouri * sing or  publicity  pertaining to  distribution of  the software  without
32645f5050Syouri * specific, written prior permission. Claude Lecommandeur make no represen-
33645f5050Syouri * tations  about the suitability  of this software  for any purpose.  It is
34645f5050Syouri * provided "as is" without express or implied warranty.
35645f5050Syouri *
36645f5050Syouri * Claude Lecommandeur DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
37645f5050Syouri * INCLUDING ALL  IMPLIED WARRANTIES OF  MERCHANTABILITY AND FITNESS.  IN NO
38645f5050Syouri * EVENT SHALL  Claude Lecommandeur  BE LIABLE FOR ANY SPECIAL,  INDIRECT OR
39645f5050Syouri * CONSEQUENTIAL  DAMAGES OR ANY  DAMAGES WHATSOEVER  RESULTING FROM LOSS OF
40645f5050Syouri * USE, DATA  OR PROFITS,  WHETHER IN AN ACTION  OF CONTRACT,  NEGLIGENCE OR
41645f5050Syouri * OTHER  TORTIOUS ACTION,  ARISING OUT OF OR IN  CONNECTION WITH THE USE OR
42645f5050Syouri * PERFORMANCE OF THIS SOFTWARE.
43645f5050Syouri *
44645f5050Syouri * Author:  Claude Lecommandeur [ lecom@sic.epfl.ch ][ April 1992 ]
45645f5050Syouri */
46645f5050Syouri
47645f5050Syouri/***********************************************************************
48645f5050Syouri *
49645f5050Syouri * $XConsortium: screen.h,v 1.62 91/05/01 17:33:09 keith Exp $
50645f5050Syouri *
51645f5050Syouri * twm per-screen data include file
52645f5050Syouri *
53645f5050Syouri * 11-3-88 Dave Payne, Apple Computer			File created
54645f5050Syouri *
55645f5050Syouri ***********************************************************************/
56645f5050Syouri
57645f5050Syouri#ifndef _SCREEN_
58645f5050Syouri#define _SCREEN_
59645f5050Syouri
60645f5050Syouri#ifdef VMS
61645f5050Syouri#include <decw$include/Xlib.h>
62645f5050Syouri#include <decw$include/Xutil.h>
63645f5050Syouri#include <decw$include/cursorfont.h>
64645f5050Syouri#else
65645f5050Syouri#include <X11/Xlib.h>
66645f5050Syouri#include <X11/Xutil.h>
67645f5050Syouri#include <X11/cursorfont.h>
68645f5050Syouri#endif
69645f5050Syouri
70645f5050Syouri#ifdef GNOME
71645f5050Syouri#  include "gnome.h"
72645f5050Syouri#endif /* GNOME */
73645f5050Syouri#include "list.h"
74645f5050Syouri#include "menus.h"
75645f5050Syouri#include "iconmgr.h"
76645f5050Syouri#include "vscreen.h"
77645f5050Syouri#include "workmgr.h"
78645f5050Syouri
79645f5050Syouri#define ICONIFY_NORMAL  0
80645f5050Syouri#define ICONIFY_MOSAIC  1
81645f5050Syouri#define ICONIFY_ZOOMIN  2
82645f5050Syouri#define ICONIFY_ZOOMOUT 3
83645f5050Syouri#define ICONIFY_SWEEP   4
84645f5050Syouri
85645f5050Syouristruct _StdCmap {
86645f5050Syouri    struct _StdCmap *next;		/* next link in chain */
87645f5050Syouri    Atom atom;				/* property from which this came */
88645f5050Syouri    int nmaps;				/* number of maps below */
89645f5050Syouri    XStandardColormap *maps;		/* the actual maps */
90645f5050Syouri};
91645f5050Syouri
92645f5050Syouri#define SIZE_HINDENT 10
93645f5050Syouri#define SIZE_VINDENT 2
94645f5050Syouri
95645f5050Syouristruct _TitlebarPixmaps {
96645f5050Syouri    Pixmap xlogo;
97645f5050Syouri    Pixmap resize;
98645f5050Syouri    Pixmap question;
99645f5050Syouri    Pixmap menu;
100645f5050Syouri    Pixmap delete;
101645f5050Syouri};
102645f5050Syouri
103645f5050Syouristruct ScreenInfo
104645f5050Syouri{
105645f5050Syouri    int screen;			/* the default screen */
106645f5050Syouri    int d_depth;		/* copy of DefaultDepth(dpy, screen) */
107645f5050Syouri    Visual *d_visual;		/* copy of DefaultVisual(dpy, screen) */
108645f5050Syouri    int Monochrome;		/* is the display monochrome ? */
109645f5050Syouri    int rootx;		        /* The x coordinate of the root window (virtual screen) relative to RealRoot */
110645f5050Syouri    int rooty;		        /* The y coordinate of the root window (virtual screen) relative to RealRoot */
111645f5050Syouri    int rootw;		        /* my copy of DisplayWidth(dpy, screen) */
112645f5050Syouri    int rooth;	                /* my copy of DisplayHeight(dpy, screen) */
113645f5050Syouri
114645f5050Syouri    int crootx;		        /* The x coordinate of the captive root window if any */
115645f5050Syouri    int crooty;		        /* The y coordinate of the captive root window if any */
116645f5050Syouri    int crootw;		        /* my copy of DisplayWidth(dpy, screen) */
117645f5050Syouri    int crooth;	                /* my copy of DisplayHeight(dpy, screen) */
118645f5050Syouri
119645f5050Syouri    int MaxWindowWidth;		/* largest window to allow */
120645f5050Syouri    int MaxWindowHeight;	/* ditto */
121645f5050Syouri
122645f5050Syouri    TwmWindow *FirstWindow;	/* the head of the twm window list */
123645f5050Syouri    Colormaps RootColormaps;	/* the colormaps of the root window */
124645f5050Syouri
125645f5050Syouri    Window Root;		/* the root window: the current virual screen */
126645f5050Syouri    Window XineramaRoot;	/* the root window, may be CaptiveRoot or otherwise RealRoot */
127645f5050Syouri    Window CaptiveRoot;		/* the captive root window, if any, or 0 */
128645f5050Syouri    Window RealRoot;		/* the actual root window of the display */
129645f5050Syouri
130645f5050Syouri/*
131645f5050Syouri *  +--RealRoot-----------------------------------------------------------+
132645f5050Syouri *  | the root of the display (most uses of this are probably incorrect!) |
133645f5050Syouri *  |                                                                     |
134645f5050Syouri *  |   +--CaptiveRoot--------------------------------------------------+ |
135645f5050Syouri *  |   | when captive window is used (most uses are likely incorrect!) | |
136645f5050Syouri *  |   |                                                               | |
137645f5050Syouri *  |   | +--XineramaRoot---------------------------------------------+ | |
138645f5050Syouri *  |   | | the root that encompasses all virual screens              | | |
139645f5050Syouri *  |   | |                                                           | | |
140645f5050Syouri *  |   | | +--Root-----------+ +--Root--------+ +--Root------------+ | | |
141645f5050Syouri *  |   | | | one or more     | | Most cases   | |                  | | | |
142645f5050Syouri *  |   | | | virtual screens | | use Root.    | |                  | | | |
143645f5050Syouri *  |   | | |                 | |              | |                  | | | |
144645f5050Syouri *  |   | | |                 | |              | |                  | | | |
145645f5050Syouri *  |   | | +-----------------+ +--------------+ +------------------+ | | |
146645f5050Syouri *  |   | +-----------------------------------------------------------+ | |
147645f5050Syouri *  |   +---------------------------------------------------------------+ |
148645f5050Syouri *  +---------------------------------------------------------------------+
149645f5050Syouri */
150645f5050Syouri
151645f5050Syouri    Window SizeWindow;		/* the resize dimensions window */
152645f5050Syouri    Window InfoWindow;		/* the information window */
153645f5050Syouri    Window WindowMask;		/* the window masking the screen at startup */
154645f5050Syouri    Window ShapeWindow;		/* an utilitary window for animated icons */
155645f5050Syouri
156645f5050Syouri    Image   *WelcomeImage;
157645f5050Syouri    GC       WelcomeGC;
158645f5050Syouri    Colormap WelcomeCmap;
159645f5050Syouri    Visual  *WelcomeVisual;
160645f5050Syouri
161645f5050Syouri    name_list *ImageCache;	/* list of pixmaps */
162645f5050Syouri    TitlebarPixmaps tbpm;	/* titlebar pixmaps */
163645f5050Syouri    Image *UnknownImage;	/* the unknown icon pixmap */
164645f5050Syouri    Pixmap siconifyPm;		/* the icon manager iconify pixmap */
165645f5050Syouri    Pixmap pullPm;		/* pull right menu icon */
166645f5050Syouri    unsigned int pullW, pullH;	/* size of pull right menu icon */
167645f5050Syouri    char *HighlightPixmapName;	/* name of the hilite image if any */
168645f5050Syouri
169645f5050Syouri    MenuRoot *MenuList;		/* head of the menu list */
170645f5050Syouri    MenuRoot *LastMenu;		/* the last menu (mostly unused?) */
171645f5050Syouri    MenuRoot *Windows;		/* the TwmWindows menu */
172645f5050Syouri    MenuRoot *Icons;		/* the TwmIcons menu */
173645f5050Syouri    MenuRoot *Workspaces;	/* the TwmWorkspaces menu */
174645f5050Syouri    MenuRoot *AllWindows;	/* the TwmAllWindows menu */
175645f5050Syouri
176645f5050Syouri  /*Added by dl 2004 */
177645f5050Syouri    MenuRoot *AllIcons;         /* the TwmAllIcons menu */
178645f5050Syouri
179645f5050Syouri  /******************************************************/
180645f5050Syouri  /* Added by Dan Lilliehorn (dl@dl.nu) 2000-02-29)     */
181645f5050Syouri    MenuRoot *Keys;             /* the TwmKeys menu     */
182645f5050Syouri    MenuRoot *Visible;          /* thw TwmVisible menu  */
183645f5050Syouri
184645f5050Syouri    TwmWindow *Ring;		/* one of the windows in window ring */
185645f5050Syouri    TwmWindow *RingLeader;	/* current window in ring */
186645f5050Syouri
187645f5050Syouri    MouseButton DefaultFunction;
188645f5050Syouri    MouseButton WindowFunction;
189645f5050Syouri    MouseButton ChangeWorkspaceFunction;
190645f5050Syouri    MouseButton DeIconifyFunction;
191645f5050Syouri    MouseButton IconifyFunction;
192645f5050Syouri
193645f5050Syouri    struct {
194645f5050Syouri      Colormaps *cmaps; 	/* current list of colormap windows */
195645f5050Syouri      int maxCmaps;		/* maximum number of installed colormaps */
196645f5050Syouri      unsigned long first_req;	/* seq # for first XInstallColormap() req in
197645f5050Syouri				   pass thru loading a colortable list */
198645f5050Syouri      int root_pushes;		/* current push level to install root
199645f5050Syouri				   colormap windows */
200645f5050Syouri      Colormaps *pushed_cmaps;	/* saved colormaps to install when pushes
201645f5050Syouri				   drops to zero */
202645f5050Syouri    } cmapInfo;
203645f5050Syouri
204645f5050Syouri    struct {
205645f5050Syouri	StdCmap *head, *tail;		/* list of maps */
206645f5050Syouri	StdCmap *mru;			/* most recently used in list */
207645f5050Syouri	int mruindex;			/* index of mru in entry */
208645f5050Syouri    } StdCmapInfo;
209645f5050Syouri
210645f5050Syouri    struct {
211645f5050Syouri	int nleft, nright;		/* numbers of buttons in list */
212645f5050Syouri	TitleButton *head;		/* start of list */
213645f5050Syouri	int border;			/* button border */
214645f5050Syouri	int pad;			/* button-padding */
215645f5050Syouri	int width;			/* width of single button & border */
216645f5050Syouri	int leftx;			/* start of left buttons */
217645f5050Syouri	int titlex;			/* start of title */
218645f5050Syouri	int rightoff;			/* offset back from right edge */
219645f5050Syouri	int titlew;			/* width of title part */
220645f5050Syouri    } TBInfo;
221645f5050Syouri    ColorPair BorderTileC;	/* border tile colors */
222645f5050Syouri    ColorPair TitleC;		/* titlebar colors */
223645f5050Syouri    ColorPair MenuC;		/* menu colors */
224645f5050Syouri    ColorPair MenuTitleC;	/* menu title colors */
225645f5050Syouri    ColorPair IconC;		/* icon colors */
226645f5050Syouri    ColorPair IconManagerC;	/* icon manager colors */
227645f5050Syouri    ColorPair DefaultC;		/* default colors */
228645f5050Syouri    ColorPair BorderColorC;	/* color of window borders */
229645f5050Syouri    Pixel MenuShadowColor;	/* menu shadow color */
230645f5050Syouri    Pixel IconBorderColor;	/* icon border color */
231645f5050Syouri    Pixel IconManagerHighlight;	/* icon manager highlight */
232645f5050Syouri    short ClearShadowContrast;  /* The contrast of the clear shadow */
233645f5050Syouri    short DarkShadowContrast;   /* The contrast of the dark shadow */
234645f5050Syouri    short IconJustification;	/* J_LEFT, J_CENTER or J_RIGHT */
235645f5050Syouri    short IconRegionJustification;	/* J_LEFT, J_CENTER J_RIGHT or J_BORDER */
236645f5050Syouri    short IconRegionAlignement;	/* J_TOP, J_CENTER, J_BOTTOM or J_BORDER */
237645f5050Syouri    short TitleJustification;	/* J_LEFT, J_CENTER or J_RIGHT */
238645f5050Syouri    short IconifyStyle;         /* ICONIFY_* */
239645f5050Syouri    int   MaxIconTitleWidth;	/* */
240645f5050Syouri
241645f5050Syouri    Cursor TitleCursor;		/* title bar cursor */
242645f5050Syouri    Cursor FrameCursor;		/* frame cursor */
243645f5050Syouri    Cursor IconCursor;		/* icon cursor */
244645f5050Syouri    Cursor IconMgrCursor;	/* icon manager cursor */
245645f5050Syouri    Cursor ButtonCursor;	/* title bar button cursor */
246645f5050Syouri    Cursor MoveCursor;		/* move cursor */
247645f5050Syouri    Cursor ResizeCursor;	/* resize cursor */
248645f5050Syouri    Cursor WaitCursor;		/* wait a while cursor */
249645f5050Syouri    Cursor MenuCursor;		/* menu cursor */
250645f5050Syouri    Cursor SelectCursor;	/* dot cursor for f.move, etc. from menus */
251645f5050Syouri    Cursor DestroyCursor;	/* skull and cross bones, f.destroy */
252645f5050Syouri    Cursor AlterCursor;		/* cursor for alternate keymaps */
253645f5050Syouri
254645f5050Syouri    WorkSpaceMgr workSpaceMgr;
255645f5050Syouri    short	workSpaceManagerActive;
256645f5050Syouri
257645f5050Syouri    virtualScreen *vScreenList;
258645f5050Syouri    virtualScreen *currentvs;
259645f5050Syouri    name_list     *VirtualScreens;
260645f5050Syouri
261645f5050Syouri    name_list	*OccupyAll;	/* list of window names occupying all workspaces at startup */
262645f5050Syouri    name_list	*UnmapByMovingFarAway;
263645f5050Syouri    name_list	*DontSetInactive;
264645f5050Syouri    name_list	*AutoSqueeze;
265645f5050Syouri    name_list	*StartSqueezed;
266645f5050Syouri    short 	use3Dmenus;
267645f5050Syouri    short 	use3Dtitles;
268645f5050Syouri    short 	use3Diconmanagers;
269645f5050Syouri    short 	use3Dborders;
270645f5050Syouri    short 	use3Dwmap;
271645f5050Syouri    short	use3Diconborders;
272645f5050Syouri    short	SunkFocusWindowTitle;
273645f5050Syouri    short	WMgrVertButtonIndent;
274645f5050Syouri    short	WMgrHorizButtonIndent;
275645f5050Syouri    short	WMgrButtonShadowDepth;
276645f5050Syouri    short	BeNiceToColormap;
277645f5050Syouri    short	BorderCursors;
278645f5050Syouri    short	BorderShadowDepth;
279645f5050Syouri    short	TitleButtonShadowDepth;
280645f5050Syouri    short	TitleShadowDepth;
281645f5050Syouri    short	MenuShadowDepth;
282645f5050Syouri    short	IconManagerShadowDepth;
283645f5050Syouri    short	ReallyMoveInWorkspaceManager;
284645f5050Syouri    short	ShowWinWhenMovingInWmgr;
285645f5050Syouri    short	ReverseCurrentWorkspace;
286645f5050Syouri    short	DontWarpCursorInWMap;
287645f5050Syouri    short	XMoveGrid, YMoveGrid;
288645f5050Syouri    short	FastServer;
289645f5050Syouri    short	CenterFeedbackWindow;
290645f5050Syouri    short	ShrinkIconTitles;
291645f5050Syouri    short	AutoRaiseIcons;
292645f5050Syouri    short       AutoFocusToTransients; /* kai */
293645f5050Syouri    short       PackNewWindows;
294645f5050Syouri
295645f5050Syouri    name_list *BorderColorL;
296645f5050Syouri    name_list *IconBorderColorL;
297645f5050Syouri    name_list *BorderTileForegroundL;
298645f5050Syouri    name_list *BorderTileBackgroundL;
299645f5050Syouri    name_list *TitleForegroundL;
300645f5050Syouri    name_list *TitleBackgroundL;
301645f5050Syouri    name_list *IconForegroundL;
302645f5050Syouri    name_list *IconBackgroundL;
303645f5050Syouri    name_list *IconManagerFL;
304645f5050Syouri    name_list *IconManagerBL;
305645f5050Syouri    name_list *IconMgrs;
306645f5050Syouri    name_list *NoBorder;	/* list of window without borders          */
307645f5050Syouri    name_list *NoIconTitle;	/* list of window names with no icon title */
308645f5050Syouri    name_list *NoTitle;		/* list of window names with no title bar */
309645f5050Syouri    name_list *MakeTitle;	/* list of window names with title bar */
310645f5050Syouri    name_list *AutoRaise;	/* list of window names to auto-raise */
311645f5050Syouri    name_list *AutoLower;	/* list of window names to auto-lower */
312645f5050Syouri    name_list *IconNames;	/* list of window names and icon names */
313645f5050Syouri    name_list *NoHighlight;	/* list of windows to not highlight */
314645f5050Syouri    name_list *NoStackModeL;	/* windows to ignore stack mode requests */
315645f5050Syouri    name_list *AlwaysOnTopL;	/* windows to keep on top */
316645f5050Syouri    name_list *NoTitleHighlight;/* list of windows to not highlight the TB*/
317645f5050Syouri    name_list *DontIconify;	/* don't iconify by unmapping */
318645f5050Syouri    name_list *IconMgrNoShow;	/* don't show in the icon manager */
319645f5050Syouri    name_list *IconMgrShow;	/* show in the icon manager */
320645f5050Syouri    name_list *IconifyByUn;	/* windows to iconify by unmapping */
321645f5050Syouri    name_list *StartIconified;	/* windows to start iconic */
322645f5050Syouri    name_list *IconManagerHighlightL;	/* icon manager highlight colors */
323645f5050Syouri    name_list *SqueezeTitleL;		/* windows of which to squeeze title */
324645f5050Syouri    name_list *DontSqueezeTitleL;	/* windows of which not to squeeze */
325645f5050Syouri    name_list *AlwaysSqueezeToGravityL;	/* windows which should squeeze toward gravity */
326645f5050Syouri    name_list *WindowRingL;	/* windows in ring */
327645f5050Syouri    name_list *WindowRingExcludeL;      /* windows excluded from ring */
328645f5050Syouri    name_list *WarpCursorL;	/* windows to warp cursor to on deiconify */
329645f5050Syouri    name_list *DontSave;
330645f5050Syouri    name_list *WindowGeometries;
331645f5050Syouri    name_list *IgnoreTransientL;
332645f5050Syouri
333645f5050Syouri    name_list *OpaqueMoveList;
334645f5050Syouri    name_list *NoOpaqueMoveList;
335645f5050Syouri    name_list *OpaqueResizeList;
336645f5050Syouri    name_list *NoOpaqueResizeList;
337645f5050Syouri    name_list *IconMenuDontShow;
338645f5050Syouri
339645f5050Syouri    GC NormalGC;		/* normal GC for everything */
340645f5050Syouri    GC MenuGC;			/* gc for menus */
341645f5050Syouri    GC DrawGC;			/* GC to draw lines for move and resize */
342645f5050Syouri    GC BorderGC;		/* for drawing 3D borders */
343645f5050Syouri    GC rootGC;                  /* used for allocating pixmaps in FindPixmap (util.c) */
344645f5050Syouri
345645f5050Syouri    unsigned long Black;
346645f5050Syouri    unsigned long White;
347645f5050Syouri    unsigned long XORvalue;	/* number to use when drawing xor'ed */
348645f5050Syouri    MyFont TitleBarFont;	/* title bar font structure */
349645f5050Syouri    MyFont MenuFont;		/* menu font structure */
350645f5050Syouri    MyFont IconFont;		/* icon font structure */
351645f5050Syouri    MyFont SizeFont;		/* resize font structure */
352645f5050Syouri    MyFont IconManagerFont;	/* window list font structure */
353645f5050Syouri    MyFont DefaultFont;
354645f5050Syouri    IconMgr *iconmgr;		/* default icon manager  */
355645f5050Syouri    struct IconRegion *FirstRegion;	/* pointer to icon regions */
356645f5050Syouri    struct IconRegion *LastRegion;	/* pointer to the last icon region */
357645f5050Syouri    struct WindowRegion *FirstWindowRegion;	/* pointer to window regions */
358645f5050Syouri    WindowBox *FirstWindowBox;	/* pointer to window boxes list */
359645f5050Syouri    char *IconDirectory;	/* icon directory to search */
360645f5050Syouri    char *PixmapDirectory;	/* Pixmap directory to search */
361645f5050Syouri    int SizeStringOffset;	/* x offset in size window for drawing */
362645f5050Syouri    int SizeStringWidth;	/* minimum width of size window */
363645f5050Syouri    int BorderWidth;		/* border width of twm windows */
364645f5050Syouri    int BorderLeft;
365645f5050Syouri    int BorderRight;
366645f5050Syouri    int BorderTop;
367645f5050Syouri    int BorderBottom;
368645f5050Syouri    int ThreeDBorderWidth;	/* 3D border width of twm windows */
369645f5050Syouri    int IconBorderWidth;	/* border width of icon windows */
370645f5050Syouri    int TitleHeight;		/* height of the title bar window */
371645f5050Syouri    TwmWindow *Focus;		/* the twm window that has focus */
372645f5050Syouri    int EntryHeight;		/* menu entry height */
373645f5050Syouri    int FramePadding;		/* distance between decorations and border */
374645f5050Syouri    int TitlePadding;		/* distance between items in titlebar */
375645f5050Syouri    int ButtonIndent;		/* amount to shrink buttons on each side */
376645f5050Syouri    int NumAutoRaises;		/* number of autoraise windows on screen */
377645f5050Syouri    int NumAutoLowers;		/* number of autolower windows on screen */
378645f5050Syouri    int TransientOnTop;		/* Percentage of the surface of it's leader */
379645f5050Syouri    short AutoRaiseDefault;	/* AutoRaise all windows if true */
380645f5050Syouri    short AutoLowerDefault;	/* AutoLower all windows if true */
381645f5050Syouri    short NoDefaults;		/* do not add in default UI stuff */
382645f5050Syouri    short UsePPosition;		/* what do with PPosition, see values below */
383645f5050Syouri    short UseSunkTitlePixmap;
384645f5050Syouri    short AutoRelativeResize;	/* start resize relative to position in quad */
385645f5050Syouri    short FocusRoot;		/* is the input focus on the root ? */
386645f5050Syouri    short WarpCursor;		/* warp cursor on de-iconify ? */
387645f5050Syouri    short ForceIcon;		/* force the icon to the user specified */
388645f5050Syouri    short NoGrabServer;		/* don't do server grabs */
389645f5050Syouri    short NoRaiseMove;		/* don't raise window following move */
390645f5050Syouri    short NoRaiseResize;	/* don't raise window following resize */
391645f5050Syouri    short NoRaiseDeicon;	/* don't raise window on deiconify */
392645f5050Syouri    short RaiseOnWarp;		/* do raise window on warp */
393645f5050Syouri    short DontMoveOff;		/* don't allow windows to be moved off */
394645f5050Syouri    int MoveOffResistance;	/* nb of pixel before moveOff gives up */
395645f5050Syouri    int MovePackResistance;	/* nb of pixel before f.movepack gives up */
396645f5050Syouri    short DoZoom;		/* zoom in and out of icons */
397645f5050Syouri    short TitleFocus;		/* focus on window in title bar ? */
398645f5050Syouri    short IconManagerFocus;	/* focus on iconified window ? */
399645f5050Syouri    short NoIconTitlebar;	/* put title bars on icons */
400645f5050Syouri    short NoTitlebar;		/* put title bars on windows */
401645f5050Syouri    short DecorateTransients;	/* put title bars on transients */
402645f5050Syouri    short IconifyByUnmapping;	/* simply unmap windows when iconifying */
403645f5050Syouri    short ShowIconManager;	/* display the window list */
404645f5050Syouri    short ShowWorkspaceManager;	/* display the workspace manager */
405645f5050Syouri    short IconManagerDontShow;	/* show nothing in the icon manager */
406645f5050Syouri    short AutoOccupy;		/* Do we automatically change occupation when name changes */
407645f5050Syouri    short TransientHasOccupation;	/* Do transient-for windows have their own occupation */
408645f5050Syouri    short DontPaintRootWindow;	/* don't paint anything on the root window */
409645f5050Syouri    short BackingStore;		/* use backing store for menus */
410645f5050Syouri    short SaveUnder;		/* use save under's for menus */
411645f5050Syouri    short RandomPlacement;	/* randomly place windows that no give hints */
412645f5050Syouri    short RandomDisplacementX;	/* randomly displace by this much horizontally */
413645f5050Syouri    short RandomDisplacementY;	/* randomly displace by this much vertically */
414645f5050Syouri    short OpaqueMove;		/* move the window rather than outline */
415645f5050Syouri    short DoOpaqueMove;		/* move the window rather than outline */
416645f5050Syouri    short OpaqueMoveThreshold;		/*  */
417645f5050Syouri    short DoOpaqueResize;		/* resize the window rather than outline */
418645f5050Syouri    short OpaqueResize;		/* resize the window rather than outline */
419645f5050Syouri    short OpaqueResizeThreshold;	/*  */
420645f5050Syouri    short Highlight;		/* should we highlight the window borders */
421645f5050Syouri    short StackMode;		/* should we honor stack mode requests */
422645f5050Syouri    short TitleHighlight;	/* should we highlight the titlebar */
423645f5050Syouri    short MoveDelta;		/* number of pixels before f.move starts */
424645f5050Syouri    short ZoomCount;		/* zoom outline count */
425645f5050Syouri    short SortIconMgr;		/* sort entries in the icon manager */
426645f5050Syouri    short Shadow;		/* show the menu shadow */
427645f5050Syouri    short InterpolateMenuColors;/* make pretty menus */
428645f5050Syouri    short StayUpMenus;		/* stay up menus */
429645f5050Syouri    short WarpToDefaultMenuEntry; /* warp cursor to default menu entry, if any  */
430645f5050Syouri    short ClickToFocus;		/* click to focus */
431645f5050Syouri    short SloppyFocus;		/* "sloppy" focus */
432645f5050Syouri    short SaveWorkspaceFocus;	/* Save and restore focus on workspace change. */
433645f5050Syouri    short NoIconManagers;	/* Don't create any icon managers */
434645f5050Syouri    short ClientBorderWidth;	/* respect client window border width */
435645f5050Syouri    short SqueezeTitle;		/* make title as small as possible */
436645f5050Syouri    short AlwaysSqueezeToGravity; /* squeeze toward gravity */
437645f5050Syouri    short HaveFonts;		/* set if fonts have been loaded */
438645f5050Syouri    short FirstTime;		/* first time we've read .twmrc */
439645f5050Syouri    short CaseSensitive;	/* be case-sensitive when sorting names */
440645f5050Syouri    short WarpUnmapped;		/* allow warping to unmapped windows */
441645f5050Syouri    short WindowRingAll;	/* add all windows to the ring */
442645f5050Syouri    short WarpRingAnyWhere;	/* warp to ring even if window is not visible */
443645f5050Syouri    short ShortAllWindowsMenus;	/* Eliminates Icon and Workspace Managers */
444645f5050Syouri    short OpenWindowTimeout;	/* Timeout when a window tries to open */
445645f5050Syouri    short RaiseWhenAutoUnSqueeze;
446645f5050Syouri    short RaiseOnClick;		/* Raise a window when clieked into */
447645f5050Syouri    short RaiseOnClickButton;		/* Raise a window when clieked into */
448645f5050Syouri    short IgnoreLockModifier;	/* Should we ignore the lock modifier */
449645f5050Syouri    unsigned int IgnoreModifier;
450645f5050Syouri    short IgnoreCaseInMenuSelection;	/* Should we ignore case in menu selection */
451645f5050Syouri    short NoWarpToMenuTitle; /* warp cursor to clipped menu title */
452645f5050Syouri    short NoImagesInWorkSpaceManager;   /* do not display mini images of the desktop background images on WSmap */
453645f5050Syouri
454645f5050Syouri    FuncKey FuncKeyRoot;
455645f5050Syouri    FuncButton FuncButtonRoot;
456645f5050Syouri
457645f5050Syouri#ifdef GNOME
458645f5050Syouri    GnomeData *gnomedata;
459645f5050Syouri#endif /* GNOME */
460645f5050Syouri};
461645f5050Syouri
462645f5050Syouriextern int captive;
463645f5050Syouriextern int MultiScreen;
464645f5050Syouriextern int NumScreens;
465645f5050Syouriextern ScreenInfo **ScreenList;
466645f5050Syouriextern ScreenInfo *Scr;
467645f5050Syouriextern int FirstScreen;
468645f5050Syouri
469645f5050Syouri#define PPOS_OFF 0
470645f5050Syouri#define PPOS_ON 1
471645f5050Syouri#define PPOS_NON_ZERO 2
472645f5050Syouri/* may eventually want an option for having the PPosition be the initial
473645f5050Syouri   location for the drag lines */
474645f5050Syouri
475645f5050Syouri#define RP_OFF 0
476645f5050Syouri#define RP_ALL 1
477645f5050Syouri#define RP_UNMAPPED 2
478645f5050Syouri
479645f5050Syouri#define ONTOP_MAX 16
480645f5050Syouri#define ONTOP_DEFAULT 8
481645f5050Syouri
482645f5050Syouri#endif /* _SCREEN_ */
483