Blob
1 /* Copyright (c) 1994-1996 David Hogan, see README for licence details */3 #define BORDER _border4 #define CORNER _corner5 #define INSET _inset6 #define MAXHIDDEN 1287 #define B3FIXED 59 #define AllButtonMask (Button1Mask|Button2Mask|Button3Mask \10 |Button4Mask|Button5Mask)11 #define ButtonMask (ButtonPressMask|ButtonReleaseMask)12 #define MenuMask (ButtonMask|ButtonMotionMask|ExposureMask)13 #define MenuGrabMask (ButtonMask|ButtonMotionMask|StructureNotifyMask)15 #ifdef Plan916 #define DEFSHELL "/bin/rc"17 #else18 #define DEFSHELL "/bin/sh"19 #endif21 typedef struct Client Client;22 typedef struct Menu Menu;23 typedef struct ScreenInfo ScreenInfo;24 typedef enum BorderOrient BorderOrient;26 struct Client {27 Window window;28 Window parent;29 Window trans;30 Client *next;31 Client *revert;33 int x;34 int y;35 int dx;36 int dy;37 int border;39 XSizeHints size;40 int min_dx;41 int min_dy;43 int state;44 int init;45 int reparenting;46 int is9term;47 int hold;48 int proto;50 char *label;51 char *instance;52 char *class;53 char *name;54 char *iconname;56 Colormap cmap;57 int ncmapwins;58 Window *cmapwins;59 Colormap *wmcmaps;60 ScreenInfo *screen;61 };63 #define hidden(c) ((c)->state == IconicState)64 #define withdrawn(c) ((c)->state == WithdrawnState)65 #define normal(c) ((c)->state == NormalState)67 /* c->proto */68 #define Pdelete 169 #define Ptakefocus 270 #define Plosefocus 472 struct Menu {73 char **item;74 char *(*gen)();75 int lasthit;76 };78 enum BorderOrient {79 BorderUnknown = 0, /* we depend on this!*/80 BorderN,81 BorderNNE,82 BorderENE,83 BorderE,84 BorderESE,85 BorderSSE,86 BorderS,87 BorderSSW,88 BorderWSW,89 BorderW,90 BorderWNW,91 BorderNNW,92 NBorder,93 };95 struct ScreenInfo {96 int num;97 int depth;98 Visual *vis;99 int width;100 int height;101 Window root;102 Window menuwin;103 Window sweepwin;104 Colormap def_cmap;105 GC gc;106 GC gccopy;107 GC gcred;108 GC gcsweep;109 GC gcmenubg;110 GC gcmenubgs;111 GC gcmenufg;112 GC gcmenufgs;113 unsigned long black;114 unsigned long white;115 unsigned long activeholdborder;116 unsigned long inactiveholdborder;117 unsigned long activeborder;118 unsigned long inactiveborder;119 unsigned long red;120 Pixmap bkup[2];121 int min_cmaps;122 Cursor target;123 Cursor sweep0;124 Cursor boxcurs;125 Cursor arrow;126 Cursor bordcurs[NBorder];127 Pixmap root_pixmap;128 char display[256]; /* arbitrary limit */129 };131 /* main.c */132 extern Display *dpy;133 extern ScreenInfo *screens;134 extern int num_screens;135 extern int initting;136 extern XFontStruct *font;137 extern int nostalgia;138 extern char **myargv;139 extern Bool shape;140 extern char *termprog;141 extern char *shell;142 extern char *version[];143 extern int _border;144 extern int _corner;145 extern int _inset;146 extern int curtime;147 extern int debug;148 extern int solidsweep;150 extern Atom exit_rio;151 extern Atom restart_rio;152 extern Atom wm_state;153 extern Atom wm_change_state;154 extern Atom _rio_hold_mode;155 extern Atom wm_protocols;156 extern Atom wm_delete;157 extern Atom wm_take_focus;158 extern Atom wm_lose_focus;159 extern Atom wm_colormaps;161 /* client.c */162 extern Client *clients;163 extern Client *current;165 /* menu.c */166 extern Client *hiddenc[];167 extern int numhidden;168 extern char *b3items[];169 extern Menu b3menu;171 /* manage.c */172 extern int isNew;174 /* error.c */175 extern int ignore_badwindow;