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