Annotation of researchv9/X11/src/X.V11R1/clients/uwm/globals.c, revision 1.1.1.1

1.1       root        1: /* $Header: globals.c,v 1.4 87/08/21 13:29:42 swick Exp $ */
                      2:  
                      3: #include <X11/copyright.h>
                      4: 
                      5: /*
                      6:  * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
                      7:  *
                      8:  *                         All Rights Reserved
                      9:  *
                     10:  * Permission to use, copy, modify, and distribute this software and its
                     11:  * documentation for any purpose and without fee is hereby granted,
                     12:  * provided that the above copyright notice appear in all copies and that
                     13:  * both that copyright notice and this permission notice appear in
                     14:  * supporting documentation, and that the name of Digital Equipment
                     15:  * Corporation not be used in advertising or publicity pertaining to
                     16:  * distribution of the software without specific, written prior permission.
                     17:  *
                     18:  *
                     19:  * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
                     20:  * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
                     21:  * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
                     22:  * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
                     23:  * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
                     24:  * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
                     25:  * SOFTWARE.
                     26:  */
                     27: 
                     28:  
                     29: /*
                     30:  * MODIFICATION HISTORY
                     31:  *
                     32:  * 000 -- M. Gancarz, DEC Ultrix Engineering Group
                     33:  * 001 -- R. Kittell, DEC Storage A/D May 19, 1986
                     34:  *  Added global vars for warp options.
                     35:  * 002 -- Loretta Guarino Reid, DEC Ultrix Engineering Group 
                     36:  *  Western Software Lab. April 17, 1987
                     37:  *  Convert to X11
                     38:  */
                     39:  
                     40: #ifndef lint
                     41: static char *sccsid = "%W%     %G%";
                     42: #endif
                     43: /*
                     44:  * globals.c - window manager global data
                     45:  *
                     46:  */
                     47:  
                     48: #include "uwm.h"
                     49:  
                     50: Window Pop;                    /* Pop up dimension display window. */
                     51: Window Frozen;                 /* Contains window id of "gridded" window. */
                     52: XFontStruct *IFontInfo;                /* Icon text font information. */
                     53: XFontStruct *PFontInfo;                /* Pop-up text font information. */
                     54: XFontStruct *MFontInfo;                /* Menu text font information. */
                     55: Pixmap GrayPixmap;             /* Gray pixmap. */
                     56: Pixel IBorder;                 /* Icon window border pixmap. */
                     57: Pixmap IBackground;            /* Icon window background pixmap. */
                     58: Pixel PBorder;                 /* Pop-Up Window border pixmap. */
                     59: Pixel PBackground;             /* Pop-up Window background pixmap. */
                     60: Pixel MBorder;                 /* Menu Window border pixmap. */
                     61: Pixel MBackground;             /* Menu Window background pixmap. */
                     62: Cursor ArrowCrossCursor;       /* Arrow cross cursor. */
                     63: Cursor TextCursor;             /* Text cursor used in icon windows. */
                     64: Cursor IconCursor;             /* Icon Cursor. */
                     65: Cursor MenuCursor;             /* Menu cursor. */
                     66: Cursor MenuMaskCursor;         /* Menu mask cursor. */
                     67: Cursor LeftButtonCursor;       /* Left button main cursor. */
                     68: Cursor MiddleButtonCursor;     /* Middle button main cursor. */
                     69: Cursor RightButtonCursor;      /* Right button main cursor. */
                     70: Cursor TargetCursor;           /* Target (select-a-window) cursor. */
                     71: int ScreenWidth;               /* Display screen width. */
                     72: int ScreenHeight;              /* Display screen height. */
                     73: int ITextForground;            /* Icon window text forground color. */
                     74: int ITextBackground;           /* Icon window text background color. */
                     75: int IBorderWidth;              /* Icon window border width. */
                     76: int PTextForground;            /* Pop-up window text forground color. */
                     77: int PTextBackground;           /* Pop-up window text background color. */
                     78: int MTextForground;            /* Menu window text forground color. */
                     79: int MTextBackground;           /* Menu window text background color. */
                     80: int PWidth;                    /* Pop-up window width. */
                     81: int PHeight;                   /* Pop-up window height. */
                     82: int PBorderWidth;              /* Pop-up window border width. */
                     83: int PPadding;                  /* Pop-up window padding. */
                     84: int MBorderWidth;              /* Menu window border width. */
                     85: int MPadding;                  /* Menu window padding. */
                     86: int Delay;                     /* Delay between clicks of a double click. */
                     87: int Delta;                     /* Mouse movement slop. */
                     88: int HIconPad;                  /* Icon horizontal padding. */
                     89: int VIconPad;                  /* Icon vertical padding. */
                     90: int HMenuPad;                  /* Menu horizontal padding. */
                     91: int VMenuPad;                  /* Menu vertical padding. */
                     92: int MaxColors;                 /* Maximum number of colors to use. */
                     93: int Pushval = 5;               /* Number of pixels to push window by. */
                     94: int Volume;                    /* Audible alarm volume. */
                     95: int status;                    /* Routine return status. */
                     96: int Maxfd;                     /* Maximum file descriptors for select(2). */
                     97: MenuLink *Menus;               /* Linked list of menus. */
                     98: GC  IconGC;                    /* graphics context for icon */
                     99: GC  PopGC;                     /* graphics context for pop */
                    100: GC  MenuGC;                    /* graphics context for menu */
                    101: GC  MenuInvGC;                 /* graphics context for menu background */
                    102: GC  DrawGC;                    /* graphics context for drawing */
                    103: Binding *Blist;                        /* Button/key binding list. */
                    104:  
                    105: Bool Autoselect;               /* Warp mouse to default menu selection? */
                    106: Bool Freeze;                   /* Freeze server during move/resize? */
                    107: Bool Grid;                     /* Should the m/r box contain a 9 seg. grid. */
                    108: Bool NWindow;                   /* Normalize windows? */
                    109: Bool NIcon;                     /* Normalize icons? */
                    110: Bool Push;                     /* Relative=TRUE, Absolute=FALSE. */
                    111: Bool Reverse;                  /* Reverse video? */
                    112: Bool Zap;                      /* Should the the zap effect be used. */
                    113: Bool WarpOnRaise;               /* Warp to upper right corner on raise. */
                    114: Bool WarpOnIconify;             /* Warp to icon center on iconify. */
                    115: Bool WarpOnDeIconify;           /* Warp to upper right corner on de-iconify. */
                    116: Bool FocusSetByUser;            /* True if f.focus called */
                    117:  
                    118: char PText[7] = INIT_PTEXT;    /* Pop-up window dummy text. */
                    119: int PTextSize = sizeof(PText); /* Pop-up window dummy text size. */
                    120:  
                    121: int Lineno = 1;                        /* Line count for parser. */
                    122: Bool Startup_File_Error = FALSE;/* Startup file error flag. */
                    123: char Startup_File[NAME_LEN] = "";/* Startup file name. */
                    124: char IFontName[NAME_LEN];      /* Icon font name. */
                    125: char PFontName[NAME_LEN];      /* Pop-up font name. */
                    126: char MFontName[NAME_LEN];      /* Menu font name. */
                    127: char **Argv;                   /* Pointer to command line parameters. */
                    128: char **Environ;                        /* Pointer to environment. */
                    129: 
                    130: int scr;
                    131: Display *dpy;
                    132:  
                    133: /*
                    134:  * Keyword lookup table for parser.
                    135:  */
                    136: Keyword KeywordTable[] = {
                    137:     { "autoselect",    IsBoolTrue,     &Autoselect,0,0,0 },
                    138:     { "delay",         IsNumeric,      0,&Delay,0,0 },
                    139:     { "delta",         IsNumeric,      0,&Delta,0,0 },
                    140:     { "freeze",                IsBoolTrue,     &Freeze,0,0,0 },
                    141:     { "iconfont",      IsString,       0,0,IFontName,0 },
                    142:     { "f.beep",                IsQuitFunction, 0,0,0,Beep },
                    143:     { "f.circledown",  IsQuitFunction, 0,0,0,CircleDown },
                    144:     { "f.circleup",    IsQuitFunction, 0,0,0,CircleUp },
                    145:     { "f.continue",    IsQuitFunction, 0,0,0,Continue },
                    146:     { "f.exit",                IsQuitFunction, 0,0,0,Quit },
                    147:     { "f.focus",       IsFunction,     0,0,0,Focus },
                    148:     { "f.iconify",     IsFunction,     0,0,0,Iconify },
                    149:     { "f.lower",       IsFunction,     0,0,0,Lower },
                    150:     { "f.menu",                IsMenuMap,      0,0,0,Menu },
                    151:     { "f.move",                IsDownFunction, 0,0,0,Move },
                    152:     { "f.moveopaque",  IsDownFunction, 0,0,0,MoveOpaque },
                    153:     { "f.newiconify",  IsDownFunction, 0,0,0,NewIconify },
                    154:     { "f.pause",       IsQuitFunction, 0,0,0,Pause },
                    155:     { "f.pushdown",    IsFunction,     0,0,0,PushDown },
                    156:     { "f.pushleft",    IsFunction,     0,0,0,PushLeft },
                    157:     { "f.pushright",   IsFunction,     0,0,0,PushRight },
                    158:     { "f.pushup",      IsFunction,     0,0,0,PushUp },
                    159:     { "f.raise",       IsFunction,     0,0,0,Raise },
                    160:     { "f.redraw",      IsFunction,     0,0,0,Redraw },
                    161:     { "f.refresh",     IsQuitFunction, 0,0,0,Refresh },
                    162:     { "f.resize",      IsDownFunction, 0,0,0,Resize },
                    163:     { "f.restart",     IsQuitFunction, 0,0,0,Restart },
                    164:     { "grid",          IsBoolTrue,     &Grid,0,0,0 },
                    165:     { "hiconpad",      IsNumeric,      0,&HIconPad,0,0 },
                    166:     { "hmenupad",      IsNumeric,      0,&HMenuPad,0,0 },
                    167:     { "maxcolors",     IsNumeric,      0,&MaxColors,0,0 },
                    168:     { "menu",          IsMenu,         0,0,0,0 },
                    169:     { "menufont",      IsString,       0,0,MFontName,0 },
                    170:     { "noautoselect",  IsBoolFalse,    &Autoselect,0,0,0 },
                    171:     { "nofreeze",      IsBoolFalse,    &Freeze,0,0,0 },
                    172:     { "nogrid",                IsBoolFalse,    &Grid,0,0,0 },
                    173:     { "nonormali",     IsBoolFalse,    &NIcon,0,0,0 },
                    174:     { "nonormalw",     IsBoolFalse,    &NWindow,0,0,0 },
                    175:     { "noreverse",     IsBoolFalse,    &Reverse,0,0,0 },
                    176:     { "normali",       IsBoolTrue,     &NIcon,0,0,0 },
                    177:     { "normalw",       IsBoolTrue,     &NWindow,0,0,0 },
                    178:     { "nowarpdi",      IsBoolFalse,    &WarpOnDeIconify,0,0,0 },
                    179:     { "nowarpi",       IsBoolFalse,    &WarpOnIconify,0,0,0 },
                    180:     { "nowarpr",       IsBoolFalse,    &WarpOnRaise,0,0,0 },
                    181:     { "nozap",         IsBoolFalse,    &Zap,0,0,0 },
                    182:     { "push",          IsNumeric,      0,&Pushval,0,0 },
                    183:     { "pushabsolute",  IsBoolFalse,    &Push,0,0,0 },
                    184:     { "pushrelative",  IsBoolTrue,     &Push,0,0,0 },
                    185:     { "resetbindings", IsParser,       0,0,0,ResetBindings },
                    186:     { "resetmenus",    IsParser,       0,0,0,ResetMenus },
                    187:     { "resetvariables",        IsParser,       0,0,0,ResetVariables },
                    188:     { "resizefont",    IsString,       0,0,PFontName,0 },
                    189:     { "reverse",       IsBoolTrue,     &Reverse,0,0,0 },
                    190:     { "viconpad",      IsNumeric,      0,&VIconPad,0,0 },
                    191:     { "vmenupad",      IsNumeric,      0,&VMenuPad,0,0 },
                    192:     { "volume",                IsNumeric,      0,&Volume,0,0 },
                    193:     { "warpdi",                IsBoolTrue,     &WarpOnDeIconify,0,0,0 },
                    194:     { "warpi",         IsBoolTrue,     &WarpOnIconify,0,0,0 },
                    195:     { "warpr",         IsBoolTrue,     &WarpOnRaise,0,0,0 },
                    196:     { "zap",           IsBoolTrue,     &Zap,0,0,0 },
                    197:     { NULL,            NULL,           NULL,NULL,NULL,NULL }
                    198: };
                    199:  
                    200: /*
                    201:  * Key expression table for parser.
                    202:  */
                    203: KeyExpr KeyExprTbl[] = {
                    204:     { "ctrl", ControlMask },
                    205:     { "c", ControlMask },
                    206:     { "lock", LockMask },
                    207:     { "l", LockMask },
                    208:     { "meta", Mod1Mask },
                    209:     { "m", Mod1Mask },
                    210:     { "shift", ShiftMask },
                    211:     { "s", ShiftMask },
                    212:     { NULL, NULL }
                    213: };
                    214:  
                    215: /*
                    216:  * Context expression table for parser.
                    217:  */
                    218: ContExpr ContExprTbl[] = {
                    219:     { "icon", ICON },
                    220:     { "i", ICON },
                    221:     { "root", ROOT },
                    222:     { "r", ROOT },
                    223:     { "window", WINDOW },
                    224:     { "w", WINDOW },
                    225:     { NULL, NULL }
                    226: };
                    227:  
                    228: /*
                    229:  * Button expression table for parser.
                    230:  */
                    231: ButtonModifier ButtModTbl[] = {
                    232:     { "left", LeftMask },
                    233:     { "leftbutton", LeftMask },
                    234:     { "l", LeftMask },
                    235:     { "middle", MiddleMask },
                    236:     { "middlebutton", MiddleMask },
                    237:     { "m", MiddleMask },
                    238:     { "right", RightMask },
                    239:     { "rightbutton", RightMask },
                    240:     { "r", RightMask },
                    241:     { "move", DeltaMotion },
                    242:     { "motion", DeltaMotion },
                    243:     { "delta", DeltaMotion },
                    244:     { "down", ButtonDown },
                    245:     { "d", ButtonDown },
                    246:     { "up", ButtonUp },
                    247:     { "u", ButtonUp },
                    248:     { NULL, NULL }
                    249: };
                    250:  

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.