twm.h revision 3e747e6d
13e747e6dSmrg/*****************************************************************************/
23e747e6dSmrg/**       Copyright 1988 by Evans & Sutherland Computer Corporation,        **/
33e747e6dSmrg/**                          Salt Lake City, Utah                           **/
43e747e6dSmrg/**                                                                         **/
53e747e6dSmrg/**                           All Rights Reserved                           **/
63e747e6dSmrg/**                                                                         **/
73e747e6dSmrg/**    Permission to use, copy, modify, and distribute this software and    **/
83e747e6dSmrg/**    its documentation  for  any  purpose  and  without  fee is hereby    **/
93e747e6dSmrg/**    granted, provided that the above copyright notice appear  in  all    **/
103e747e6dSmrg/**    copies and that both  that  copyright  notice  and  this  permis-    **/
113e747e6dSmrg/**    sion  notice appear in supporting  documentation,  and  that  the    **/
123e747e6dSmrg/**    names of Evans & Sutherland not be used in advertising               **/
133e747e6dSmrg/**    in publicity pertaining to distribution of the  software  without    **/
143e747e6dSmrg/**    specific, written prior permission.                                  **/
153e747e6dSmrg/**                                                                         **/
163e747e6dSmrg/**    EVANS & SUTHERLAND AND DISCLAIMS ALL WARRANTIES WITH REGARD          **/
173e747e6dSmrg/**    TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES  OF  MERCHANT-    **/
183e747e6dSmrg/**    ABILITY  AND  FITNESS,  IN  NO  EVENT SHALL EVANS & SUTHERLAND       **/
193e747e6dSmrg/**    BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL  DAMAGES        **/
203e747e6dSmrg/**    OR  ANY DAMAGES WHATSOEVER  RESULTING FROM LOSS OF USE, DATA         **/
213e747e6dSmrg/**    OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER    **/
223e747e6dSmrg/**    TORTIOUS ACTION, ARISING OUT OF OR IN  CONNECTION  WITH  THE  USE    **/
233e747e6dSmrg/**    OR PERFORMANCE OF THIS SOFTWARE.                                     **/
243e747e6dSmrg/*****************************************************************************/
253e747e6dSmrg/*
263e747e6dSmrg
273e747e6dSmrgPortions Copyright 1989, 1998  The Open Group
283e747e6dSmrg
293e747e6dSmrgPermission to use, copy, modify, distribute, and sell this software and its
303e747e6dSmrgdocumentation for any purpose is hereby granted without fee, provided that
313e747e6dSmrgthe above copyright notice appear in all copies and that both that
323e747e6dSmrgcopyright notice and this permission notice appear in supporting
333e747e6dSmrgdocumentation.
343e747e6dSmrg
353e747e6dSmrgThe above copyright notice and this permission notice shall be included
363e747e6dSmrgin all copies or substantial portions of the Software.
373e747e6dSmrg
383e747e6dSmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
393e747e6dSmrgOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
403e747e6dSmrgMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
413e747e6dSmrgIN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
423e747e6dSmrgOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
433e747e6dSmrgARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
443e747e6dSmrgOTHER DEALINGS IN THE SOFTWARE.
453e747e6dSmrg
463e747e6dSmrgExcept as contained in this notice, the name of The Open Group shall
473e747e6dSmrgnot be used in advertising or otherwise to promote the sale, use or
483e747e6dSmrgother dealings in this Software without prior written authorization
493e747e6dSmrgfrom The Open Group.
503e747e6dSmrg
513e747e6dSmrg*/
523e747e6dSmrg
533e747e6dSmrg
543e747e6dSmrg/***********************************************************************
553e747e6dSmrg *
563e747e6dSmrg * $Xorg: twm.h,v 1.4 2001/02/09 02:05:37 xorgcvs Exp $
573e747e6dSmrg *
583e747e6dSmrg * twm include file
593e747e6dSmrg *
603e747e6dSmrg * 28-Oct-87 Thomas E. LaStrange	File created
613e747e6dSmrg * 10-Oct-90 David M. Sternlicht        Storeing saved colors on root
623e747e6dSmrg ***********************************************************************/
633e747e6dSmrg/* $XFree86: xc/programs/twm/twm.h,v 3.12 2001/12/14 20:01:10 dawes Exp $ */
643e747e6dSmrg
653e747e6dSmrg#ifndef _TWM_
663e747e6dSmrg#define _TWM_
673e747e6dSmrg
683e747e6dSmrg#include <X11/Xlib.h>
693e747e6dSmrg#include <X11/Xutil.h>
703e747e6dSmrg#include <X11/cursorfont.h>
713e747e6dSmrg#include <X11/extensions/shape.h>
723e747e6dSmrg#include <X11/Xfuncs.h>
733e747e6dSmrg#include <X11/StringDefs.h>
743e747e6dSmrg#include <X11/Intrinsic.h>
753e747e6dSmrg
763e747e6dSmrg#ifndef WithdrawnState
773e747e6dSmrg#define WithdrawnState 0
783e747e6dSmrg#endif
793e747e6dSmrg
803e747e6dSmrg#define PIXEL_ALREADY_TYPEDEFED		/* for Xmu/Drawing.h */
813e747e6dSmrg
823e747e6dSmrg#ifdef SIGNALRETURNSINT
833e747e6dSmrg#define SIGNAL_T int
843e747e6dSmrg#define SIGNAL_RETURN return 0
853e747e6dSmrg#else
863e747e6dSmrg#define SIGNAL_T void
873e747e6dSmrg#define SIGNAL_RETURN return
883e747e6dSmrg#endif
893e747e6dSmrg
903e747e6dSmrgtypedef SIGNAL_T (*SigProc)(int); /* type of function returned by signal() */
913e747e6dSmrg
923e747e6dSmrg#define BW 2			/* border width */
933e747e6dSmrg#define BW2 4			/* border width  * 2 */
943e747e6dSmrg
953e747e6dSmrg#ifndef TRUE
963e747e6dSmrg#define TRUE	1
973e747e6dSmrg#define FALSE	0
983e747e6dSmrg#endif
993e747e6dSmrg
1003e747e6dSmrg#define NULLSTR ((char *) NULL)
1013e747e6dSmrg
1023e747e6dSmrg#define MAX_BUTTONS	16	/* max mouse buttons supported */
1033e747e6dSmrg
1043e747e6dSmrg/* info stings defines */
1053e747e6dSmrg#define INFO_LINES 30
1063e747e6dSmrg#define INFO_SIZE 200
1073e747e6dSmrg
1083e747e6dSmrg/* contexts for button presses */
1093e747e6dSmrg#define C_NO_CONTEXT	-1
1103e747e6dSmrg#define C_WINDOW	0
1113e747e6dSmrg#define C_TITLE		1
1123e747e6dSmrg#define C_ICON		2
1133e747e6dSmrg#define C_ROOT		3
1143e747e6dSmrg#define C_FRAME		4
1153e747e6dSmrg#define C_ICONMGR	5
1163e747e6dSmrg#define C_NAME		6
1173e747e6dSmrg#define C_IDENTIFY      7
1183e747e6dSmrg#define NUM_CONTEXTS	8
1193e747e6dSmrg
1203e747e6dSmrg#define C_WINDOW_BIT	(1 << C_WINDOW)
1213e747e6dSmrg#define C_TITLE_BIT	(1 << C_TITLE)
1223e747e6dSmrg#define C_ICON_BIT	(1 << C_ICON)
1233e747e6dSmrg#define C_ROOT_BIT	(1 << C_ROOT)
1243e747e6dSmrg#define C_FRAME_BIT	(1 << C_FRAME)
1253e747e6dSmrg#define C_ICONMGR_BIT	(1 << C_ICONMGR)
1263e747e6dSmrg#define C_NAME_BIT	(1 << C_NAME)
1273e747e6dSmrg
1283e747e6dSmrg#define C_ALL_BITS	(C_WINDOW_BIT | C_TITLE_BIT | C_ICON_BIT |\
1293e747e6dSmrg			 C_ROOT_BIT | C_FRAME_BIT | C_ICONMGR_BIT)
1303e747e6dSmrg
1313e747e6dSmrg/* modifiers for button presses */
1323e747e6dSmrg#define MOD_SIZE	((ShiftMask | ControlMask | Mod1Mask \
1333e747e6dSmrg			  | Mod2Mask | Mod3Mask | Mod4Mask | Mod5Mask) + 1)
1343e747e6dSmrg
1353e747e6dSmrg#define TITLE_BAR_SPACE         1	/* 2 pixel space bordering chars */
1363e747e6dSmrg#define TITLE_BAR_FONT_HEIGHT   15	/* max of 15 pixel high chars */
1373e747e6dSmrg#define TITLE_BAR_HEIGHT        (TITLE_BAR_FONT_HEIGHT+(2*TITLE_BAR_SPACE))
1383e747e6dSmrg
1393e747e6dSmrg/* defines for zooming/unzooming */
1403e747e6dSmrg#define ZOOM_NONE 0
1413e747e6dSmrg
1423e747e6dSmrg#define FB(fix_fore, fix_back)\
1433e747e6dSmrg    Gcv.foreground = fix_fore;\
1443e747e6dSmrg    Gcv.background = fix_back;\
1453e747e6dSmrg    XChangeGC(dpy, Scr->NormalGC, GCForeground|GCBackground,&Gcv)
1463e747e6dSmrg
1473e747e6dSmrgtypedef struct MyFont
1483e747e6dSmrg{
1493e747e6dSmrg    char *name;			/* name of the font */
1503e747e6dSmrg    XFontStruct *font;		/* font structure */
1513e747e6dSmrg    XFontSet fontset;		/* fontset structure */
1523e747e6dSmrg    int height;			/* height of the font */
1533e747e6dSmrg    int y;			/* Y coordinate to draw characters */
1543e747e6dSmrg    int ascent;
1553e747e6dSmrg    int descent;
1563e747e6dSmrg} MyFont;
1573e747e6dSmrg
1583e747e6dSmrgtypedef struct ColorPair
1593e747e6dSmrg{
1603e747e6dSmrg    Pixel fore, back;
1613e747e6dSmrg} ColorPair;
1623e747e6dSmrg
1633e747e6dSmrgtypedef struct _TitleButton {
1643e747e6dSmrg    struct _TitleButton *next;		/* next link in chain */
1653e747e6dSmrg    char *name;				/* bitmap name in case of deferal */
1663e747e6dSmrg    Pixmap bitmap;			/* image to display in button */
1673e747e6dSmrg    int srcx, srcy;			/* from where to start copying */
1683e747e6dSmrg    unsigned int width, height;		/* size of pixmap */
1693e747e6dSmrg    int dstx, dsty;			/* to where to start copying */
1703e747e6dSmrg    int func;				/* function to execute */
1713e747e6dSmrg    char *action;			/* optional action arg */
1723e747e6dSmrg    struct MenuRoot *menuroot;		/* menu to pop on F_MENU */
1733e747e6dSmrg    Bool rightside;			/* t: on right, f: on left */
1743e747e6dSmrg} TitleButton;
1753e747e6dSmrg
1763e747e6dSmrgtypedef struct _TBWindow {
1773e747e6dSmrg    Window window;			/* which window in this frame */
1783e747e6dSmrg    TitleButton *info;			/* description of this window */
1793e747e6dSmrg} TBWindow;
1803e747e6dSmrg
1813e747e6dSmrgtypedef struct _SqueezeInfo {
1823e747e6dSmrg    int justify;			/* left, center, right */
1833e747e6dSmrg    int num;				/* signed pixel count or numerator */
1843e747e6dSmrg    int denom;				/* 0 for pix count or denominator */
1853e747e6dSmrg} SqueezeInfo;
1863e747e6dSmrg
1873e747e6dSmrg#define J_LEFT			1
1883e747e6dSmrg#define J_CENTER		2
1893e747e6dSmrg#define J_RIGHT			3
1903e747e6dSmrg
1913e747e6dSmrg/* Colormap window entry for each window in WM_COLORMAP_WINDOWS
1923e747e6dSmrg * ICCCM property.
1933e747e6dSmrg */
1943e747e6dSmrgtypedef struct TwmColormap
1953e747e6dSmrg{
1963e747e6dSmrg    Colormap c;			/* Colormap id */
1973e747e6dSmrg    int state;			/* install(ability) state */
1983e747e6dSmrg    unsigned long install_req;	/* request number which installed it */
1993e747e6dSmrg    Window w;			/* window causing load of color table */
2003e747e6dSmrg    int refcnt;
2013e747e6dSmrg} TwmColormap;
2023e747e6dSmrg
2033e747e6dSmrg#define CM_INSTALLABLE		1
2043e747e6dSmrg#define CM_INSTALLED		2
2053e747e6dSmrg#define CM_INSTALL		4
2063e747e6dSmrg
2073e747e6dSmrgtypedef struct ColormapWindow
2083e747e6dSmrg{
2093e747e6dSmrg    Window w;			/* Window id */
2103e747e6dSmrg    TwmColormap *colormap;	/* Colormap for this window */
2113e747e6dSmrg    int visibility;		/* Visibility of this window */
2123e747e6dSmrg    int refcnt;
2133e747e6dSmrg} ColormapWindow;
2143e747e6dSmrg
2153e747e6dSmrgtypedef struct Colormaps
2163e747e6dSmrg{
2173e747e6dSmrg    ColormapWindow **cwins;	/* current list of colormap windows */
2183e747e6dSmrg    int number_cwins;		/* number of elements in current list */
2193e747e6dSmrg    char *scoreboard;		/* conflicts between installable colortables */
2203e747e6dSmrg} Colormaps;
2213e747e6dSmrg
2223e747e6dSmrg#define ColormapsScoreboardLength(cm) ((cm)->number_cwins * \
2233e747e6dSmrg				       ((cm)->number_cwins - 1) / 2)
2243e747e6dSmrg
2253e747e6dSmrg/* for each window that is on the display, one of these structures
2263e747e6dSmrg * is allocated and linked into a list
2273e747e6dSmrg */
2283e747e6dSmrgtypedef struct TwmWindow
2293e747e6dSmrg{
2303e747e6dSmrg    struct TwmWindow *next;	/* next twm window */
2313e747e6dSmrg    struct TwmWindow *prev;	/* previous twm window */
2323e747e6dSmrg    Window w;			/* the child window */
2333e747e6dSmrg    int old_bw;			/* border width before reparenting */
2343e747e6dSmrg    Window frame;		/* the frame window */
2353e747e6dSmrg    Window title_w;		/* the title bar window */
2363e747e6dSmrg    Window hilite_w;		/* the hilite window */
2373e747e6dSmrg    Pixmap gray;
2383e747e6dSmrg    Window icon_w;		/* the icon window */
2393e747e6dSmrg    Window icon_bm_w;		/* the icon bitmap window */
2403e747e6dSmrg    int frame_x;		/* x position of frame */
2413e747e6dSmrg    int frame_y;		/* y position of frame */
2423e747e6dSmrg    int frame_width;		/* width of frame */
2433e747e6dSmrg    int frame_height;		/* height of frame */
2443e747e6dSmrg    int frame_bw;		/* borderwidth of frame */
2453e747e6dSmrg    int title_x;
2463e747e6dSmrg    int title_y;
2473e747e6dSmrg    int icon_x;			/* icon text x coordinate */
2483e747e6dSmrg    int icon_y;			/* icon text y coordiante */
2493e747e6dSmrg    int icon_w_width;		/* width of the icon window */
2503e747e6dSmrg    int icon_w_height;		/* height of the icon window */
2513e747e6dSmrg    int icon_width;		/* width of the icon bitmap */
2523e747e6dSmrg    int icon_height;		/* height of the icon bitmap */
2533e747e6dSmrg    int title_height;		/* height of the title bar */
2543e747e6dSmrg    int title_width;		/* width of the title bar */
2553e747e6dSmrg    char *full_name;		/* full name of the window */
2563e747e6dSmrg    char *name;			/* name of the window */
2573e747e6dSmrg    char *icon_name;		/* name of the icon */
2583e747e6dSmrg    int name_width;		/* width of name text */
2593e747e6dSmrg    int highlightx;		/* start of highlight window */
2603e747e6dSmrg    int rightx;			/* start of right buttons */
2613e747e6dSmrg    XWindowAttributes attr;	/* the child window attributes */
2623e747e6dSmrg    XSizeHints hints;		/* normal hints */
2633e747e6dSmrg    XWMHints *wmhints;		/* WM hints */
2643e747e6dSmrg    Window group;		/* group ID */
2653e747e6dSmrg    XClassHint class;
2663e747e6dSmrg    struct WList *list;
2673e747e6dSmrg    /***********************************************************************
2683e747e6dSmrg     * color definitions per window
2693e747e6dSmrg     **********************************************************************/
2703e747e6dSmrg    Pixel border;		/* border color */
2713e747e6dSmrg    Pixel icon_border;		/* border color */
2723e747e6dSmrg    ColorPair border_tile;
2733e747e6dSmrg    ColorPair title;
2743e747e6dSmrg    ColorPair iconc;
2753e747e6dSmrg    short iconified;		/* has the window ever been iconified? */
2763e747e6dSmrg    short icon;			/* is the window an icon now ? */
2773e747e6dSmrg    short icon_on;		/* is the icon visible */
2783e747e6dSmrg    short mapped;		/* is the window mapped ? */
2793e747e6dSmrg    short auto_raise;		/* should we auto-raise this window ? */
2803e747e6dSmrg    short forced;		/* has had an icon forced upon it */
2813e747e6dSmrg    short icon_not_ours;	/* icon pixmap or window supplied to us */
2823e747e6dSmrg    short icon_moved;		/* user explicitly moved the icon */
2833e747e6dSmrg    short highlight;		/* should highlight this window */
2843e747e6dSmrg    short stackmode;		/* honor stackmode requests */
2853e747e6dSmrg    short iconify_by_unmapping;	/* unmap window to iconify it */
2863e747e6dSmrg    short iconmgr;		/* this is an icon manager window */
2873e747e6dSmrg    short transient;		/* this is a transient window */
2883e747e6dSmrg    Window transientfor;	/* window contained in XA_XM_TRANSIENT_FOR */
2893e747e6dSmrg    short titlehighlight;	/* should I highlight the title bar */
2903e747e6dSmrg    struct IconMgr *iconmgrp;	/* pointer to it if this is an icon manager */
2913e747e6dSmrg    int save_frame_x;		/* x position of frame */
2923e747e6dSmrg    int save_frame_y;		/* y position of frame */
2933e747e6dSmrg    int save_frame_width;	/* width of frame */
2943e747e6dSmrg    int save_frame_height;	/* height of frame */
2953e747e6dSmrg    short zoomed;		/* is the window zoomed? */
2963e747e6dSmrg    short wShaped;		/* this window has a bounding shape */
2973e747e6dSmrg    unsigned long protocols;	/* which protocols this window handles */
2983e747e6dSmrg    Colormaps cmaps;		/* colormaps for this application */
2993e747e6dSmrg    TBWindow *titlebuttons;
3003e747e6dSmrg    SqueezeInfo *squeeze_info;	/* should the title be squeezed? */
3013e747e6dSmrg    struct {
3023e747e6dSmrg	struct TwmWindow *next, *prev;
3033e747e6dSmrg	Bool cursor_valid;
3043e747e6dSmrg	int curs_x, curs_y;
3053e747e6dSmrg    } ring;
3063e747e6dSmrg
3073e747e6dSmrg    Bool nameChanged;	/* did WM_NAME ever change? */
3083e747e6dSmrg
3093e747e6dSmrg    /* did the user ever change the width/height? {yes, no, or unknown} */
3103e747e6dSmrg
3113e747e6dSmrg    Bool widthEverChangedByUser;
3123e747e6dSmrg    Bool heightEverChangedByUser;
3133e747e6dSmrg
3143e747e6dSmrg} TwmWindow;
3153e747e6dSmrg
3163e747e6dSmrg
3173e747e6dSmrgtypedef struct TWMWinConfigEntry
3183e747e6dSmrg{
3193e747e6dSmrg    struct TWMWinConfigEntry *next;
3203e747e6dSmrg    int tag;
3213e747e6dSmrg    char *client_id;
3223e747e6dSmrg    char *window_role;
3233e747e6dSmrg    XClassHint class;
3243e747e6dSmrg    char *wm_name;
3253e747e6dSmrg    int wm_command_count;
3263e747e6dSmrg    char **wm_command;
3273e747e6dSmrg    short x, y;
3283e747e6dSmrg    unsigned short width, height;
3293e747e6dSmrg    short icon_x, icon_y;
3303e747e6dSmrg    Bool iconified;
3313e747e6dSmrg    Bool icon_info_present;
3323e747e6dSmrg    Bool width_ever_changed_by_user;
3333e747e6dSmrg    Bool height_ever_changed_by_user;
3343e747e6dSmrg} TWMWinConfigEntry;
3353e747e6dSmrg
3363e747e6dSmrg
3373e747e6dSmrg#define DoesWmTakeFocus		(1L << 0)
3383e747e6dSmrg#define DoesWmSaveYourself	(1L << 1)
3393e747e6dSmrg#define DoesWmDeleteWindow	(1L << 2)
3403e747e6dSmrg
3413e747e6dSmrg#define TBPM_DOT ":dot"		/* name of titlebar pixmap for dot */
3423e747e6dSmrg#define TBPM_ICONIFY ":iconify"	/* same image as dot */
3433e747e6dSmrg#define TBPM_RESIZE ":resize"	/* name of titlebar pixmap for resize button */
3443e747e6dSmrg#define TBPM_XLOGO ":xlogo"	/* name of titlebar pixmap for xlogo */
3453e747e6dSmrg#define TBPM_DELETE ":delete"	/* same image as xlogo */
3463e747e6dSmrg#define TBPM_MENU ":menu"	/* name of titlebar pixmap for menus */
3473e747e6dSmrg#define TBPM_QUESTION ":question"	/* name of unknown titlebar pixmap */
3483e747e6dSmrg
3493e747e6dSmrg#include <X11/Xosdefs.h>
3503e747e6dSmrg#include <stdlib.h>
3513e747e6dSmrgextern void InitVariables ( void );
3523e747e6dSmrgextern void CreateFonts ( void );
3533e747e6dSmrgextern void RestoreWithdrawnLocation ( TwmWindow *tmp );
3543e747e6dSmrgextern void Reborder( Time time);
3553e747e6dSmrgextern void Done( XtPointer, XtSignalId * );
3563e747e6dSmrgextern void ComputeCommonTitleOffsets ( void );
3573e747e6dSmrgextern void ComputeTitleLocation ( TwmWindow *tmp );
3583e747e6dSmrgextern void ComputeWindowTitleOffsets ( TwmWindow *tmp_win, int width, Bool squeeze );
3593e747e6dSmrgextern char *ProgramName;
3603e747e6dSmrgextern Display *dpy;
3613e747e6dSmrgextern XtAppContext appContext;
3623e747e6dSmrgextern Window ResizeWindow;	/* the window we are resizing */
3633e747e6dSmrgextern int HasShape;		/* this server supports Shape extension */
3643e747e6dSmrgextern int HasSync;		/* this server supports SYNC extension */
3653e747e6dSmrg
3663e747e6dSmrgextern int PreviousScreen;
3673e747e6dSmrg
3683e747e6dSmrgextern Cursor UpperLeftCursor;
3693e747e6dSmrgextern Cursor RightButt;
3703e747e6dSmrgextern Cursor MiddleButt;
3713e747e6dSmrgextern Cursor LeftButt;
3723e747e6dSmrg
3733e747e6dSmrgextern XClassHint NoClass;
3743e747e6dSmrg
3753e747e6dSmrgextern XContext TwmContext;
3763e747e6dSmrgextern XContext MenuContext;
3773e747e6dSmrgextern XContext IconManagerContext;
3783e747e6dSmrgextern XContext ScreenContext;
3793e747e6dSmrgextern XContext ColormapContext;
3803e747e6dSmrg
3813e747e6dSmrgextern char *Home;
3823e747e6dSmrgextern int HomeLen;
3833e747e6dSmrgextern int ParseError;
3843e747e6dSmrg
3853e747e6dSmrgextern int HandlingEvents;
3863e747e6dSmrg
3873e747e6dSmrgextern Window JunkRoot;
3883e747e6dSmrgextern Window JunkChild;
3893e747e6dSmrgextern int JunkX;
3903e747e6dSmrgextern int JunkY;
3913e747e6dSmrgextern unsigned int JunkWidth, JunkHeight, JunkBW, JunkDepth, JunkMask;
3923e747e6dSmrgextern XGCValues Gcv;
3933e747e6dSmrgextern int InfoLines;
3943e747e6dSmrgextern char Info[][INFO_SIZE];
3953e747e6dSmrgextern int Argc;
3963e747e6dSmrgextern char **Argv;
3973e747e6dSmrgextern void NewFontCursor ( Cursor *cp, char *str );
3983e747e6dSmrgextern void NewBitmapCursor ( Cursor *cp, char *source, char *mask );
3993e747e6dSmrgextern Pixmap CreateMenuIcon ( int height, unsigned int *widthp, unsigned int *heightp );
4003e747e6dSmrg
4013e747e6dSmrgextern Bool ErrorOccurred;
4023e747e6dSmrgextern XErrorEvent LastErrorEvent;
4033e747e6dSmrg
4043e747e6dSmrg#define ResetError() (ErrorOccurred = False)
4053e747e6dSmrg
4063e747e6dSmrgextern Bool RestartPreviousState;
4073e747e6dSmrgextern Bool GetWMState ( Window w, int *statep, Window *iwp );
4083e747e6dSmrg
4093e747e6dSmrgextern void twmrc_error_prefix ( void );
4103e747e6dSmrg
4113e747e6dSmrgextern int yyparse ( void );
4123e747e6dSmrgextern int yylex ( void );
4133e747e6dSmrgextern void yyerror ( char *s );
4143e747e6dSmrgextern int doinput ( char *buf, int size );
4153e747e6dSmrgextern void RemoveDQuote ( char *str );
4163e747e6dSmrg
4173e747e6dSmrgextern Atom TwmAtoms[];
4183e747e6dSmrg
4193e747e6dSmrgextern Bool use_fontset;
4203e747e6dSmrg
4213e747e6dSmrgextern int ShapeEventBase;
4223e747e6dSmrgextern int ShapeErrorBase;
4233e747e6dSmrg
4243e747e6dSmrg#define _XA_MIT_PRIORITY_COLORS		TwmAtoms[0]
4253e747e6dSmrg#define _XA_WM_CHANGE_STATE		TwmAtoms[1]
4263e747e6dSmrg#define _XA_WM_STATE			TwmAtoms[2]
4273e747e6dSmrg#define _XA_WM_COLORMAP_WINDOWS		TwmAtoms[3]
4283e747e6dSmrg#define _XA_WM_PROTOCOLS		TwmAtoms[4]
4293e747e6dSmrg#define _XA_WM_TAKE_FOCUS		TwmAtoms[5]
4303e747e6dSmrg#define _XA_WM_SAVE_YOURSELF		TwmAtoms[6]
4313e747e6dSmrg#define _XA_WM_DELETE_WINDOW		TwmAtoms[7]
4323e747e6dSmrg#define _XA_SM_CLIENT_ID		TwmAtoms[8]
4333e747e6dSmrg#define _XA_WM_CLIENT_LEADER		TwmAtoms[9]
4343e747e6dSmrg#define _XA_WM_WINDOW_ROLE		TwmAtoms[10]
4353e747e6dSmrg
4363e747e6dSmrg#endif /* _TWM_ */
437