garbeam@0: /* garbeam@0: * (C)opyright MMVI Anselm R. Garbe garbeam@0: * See LICENSE file for license details. garbeam@0: */ garbeam@0: garbeam@3: #include "config.h" garbeam@2: #include "draw.h" garbeam@2: #include "util.h" garbeam@2: garbeam@0: #include garbeam@0: garbeam@0: /* WM atoms */ garbeam@0: enum { WMState, WMProtocols, WMDelete, WMLast }; garbeam@0: garbeam@0: /* NET atoms */ garbeam@0: enum { NetSupported, NetWMName, NetLast }; garbeam@0: garbeam@0: /* Cursor */ garbeam@0: enum { CurNormal, CurResize, CurMove, CurInput, CurLast }; garbeam@0: garbeam@0: /* Rects */ garbeam@0: enum { RFloat, RGrid, RLast }; garbeam@0: garbeam@0: typedef struct Client Client; garbeam@0: typedef struct Tag Tag; garbeam@0: garbeam@0: struct Client { garbeam@0: Tag *tag; garbeam@0: char name[256]; garbeam@0: int proto; garbeam@0: Window win; garbeam@0: Window trans; garbeam@0: Window title; garbeam@0: GC gc; garbeam@0: XSizeHints size; garbeam@0: XRectangle r[RLast]; garbeam@0: Client *next; garbeam@0: Client *tnext; garbeam@0: Client *tprev; garbeam@0: }; garbeam@0: garbeam@0: struct Tag { garbeam@0: char name[256]; garbeam@0: Client *clients; garbeam@0: Client *sel; garbeam@0: XRectangle r; garbeam@0: }; garbeam@0: garbeam@0: extern Display *dpy; garbeam@0: extern Window root; garbeam@0: extern XRectangle rect; garbeam@0: extern Atom wm_atom[WMLast]; garbeam@0: extern Atom net_atom[NetLast]; garbeam@0: extern Cursor cursor[CurLast]; garbeam@0: extern Pixmap pmap; garbeam@0: garbeam@3: extern int screen, sel_screen; garbeam@3: extern unsigned int kmask, numlock_mask; garbeam@3: garbeam@3: extern Brush brush; garbeam@3: garbeam@0: /* wm.c */