You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
1.3 KiB

19 years ago
19 years ago
19 years ago
19 years ago
19 years ago
19 years ago
19 years ago
19 years ago
19 years ago
19 years ago
19 years ago
19 years ago
19 years ago
  1. /*
  2. * (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com>
  3. * See LICENSE file for license details.
  4. */
  5. #include "config.h"
  6. #include "draw.h"
  7. #include "util.h"
  8. #include <X11/Xutil.h>
  9. /* atoms */
  10. enum { WMState, WMProtocols, WMDelete, WMLast };
  11. enum { NetSupported, NetWMName, NetLast };
  12. /* cursor */
  13. enum { CurNormal, CurResize, CurMove, CurInput, CurLast };
  14. /* rects */
  15. enum { RFloat, RGrid, RLast };
  16. typedef struct Client Client;
  17. typedef struct Tag Tag;
  18. struct Client {
  19. Tag *tag;
  20. char name[256];
  21. int proto;
  22. unsigned int border;
  23. Bool fixedsize;
  24. Window win;
  25. Window trans;
  26. Window title;
  27. XSizeHints size;
  28. XRectangle r[RLast];
  29. Client *next;
  30. Client *snext;
  31. };
  32. struct Tag {
  33. char name[256];
  34. Client *stack;
  35. XRectangle r;
  36. Tag *next;
  37. Tag *cnext;
  38. };
  39. extern Display *dpy;
  40. extern Window root, barwin;
  41. extern Atom wm_atom[WMLast], net_atom[NetLast];
  42. extern Cursor cursor[CurLast];
  43. extern XRectangle rect, barrect;
  44. extern Bool running;
  45. extern void (*handler[LASTEvent]) (XEvent *);
  46. extern int screen, sel_screen;
  47. extern unsigned int lock_mask, numlock_mask;
  48. extern char *bartext, *shell;
  49. extern Brush brush;
  50. /* bar.c */
  51. extern void draw_bar();
  52. /* client.c */
  53. extern Client *create_client(Window w, XWindowAttributes *wa);
  54. extern void manage(Client *c);
  55. /* wm.c */
  56. extern int win_proto(Window w);