]> icculus.org git repositories - mikachu/rspanel.git/blob - rspanel.h
also produce a stripped binary for fun
[mikachu/rspanel.git] / rspanel.h
1 #ifndef rs_rspanel_h
2 #define rs_rspanel_h
3
4 #include "xprop.h"
5
6 #include <X11/Xlib.h>
7 #include <openbox/render.h>
8
9 struct icon;
10
11 typedef struct screen
12 {
13     Display    *dd;
14     int         num;
15     int         width;
16     int         height;
17     Window      root;
18     RrInstance *rr;
19     Atom        atoms[XPROP_COUNT]; /* setup by xprop_init */
20     GC          fore_gc;            /* setup by gui_init */
21 }
22 screen;
23
24 typedef struct task
25 {
26         struct task *next;
27         Window win;
28         char *name;
29 //      char *locale;
30         int pos_x;
31         unsigned int width;
32         unsigned int nicons;
33         struct icon *icons;
34         unsigned int focused:1;
35         unsigned int iconified:1;
36         unsigned int shaded:1;
37         unsigned int hidden:1;
38         unsigned int icon_copied:1;
39 }
40 task;
41
42 typedef struct taskbar
43 {
44         Window win;
45         /* we draw stuff to this guy then set him as a window
46          * background pixmap, yay no flickering! */
47         Pixmap bg;
48         task *task_list;
49         int num_shown_tasks;
50         int my_desktop;
51         int x;
52         int y;
53         int w;
54         int h;
55         unsigned int hidden:1;
56         unsigned int at_top:1;
57 }
58 taskbar;
59
60 #define MWM_HINTS_DECORATIONS         (1L << 1)
61 typedef struct _mwmhints
62 {
63         unsigned long flags;
64         unsigned long functions;
65         unsigned long decorations;
66         long inputMode;
67         unsigned long status;
68 }
69 MWMHints;
70
71 #define WIN_STATE_STICKY          (1<<0)        /* everyone knows sticky */
72 #define WIN_STATE_MINIMIZED       (1<<1)        /* ??? */
73 #define WIN_STATE_MAXIMIZED_VERT  (1<<2)        /* window in maximized V state */
74 #define WIN_STATE_MAXIMIZED_HORIZ (1<<3)        /* window in maximized H state */
75 #define WIN_STATE_HIDDEN          (1<<4)        /* not on taskbar but window visible */
76 #define WIN_STATE_SHADED          (1<<5)        /* shaded (NeXT style) */
77 #define WIN_STATE_HID_WORKSPACE   (1<<6)        /* not on current desktop */
78 #define WIN_STATE_HID_TRANSIENT   (1<<7)        /* owner of transient is hidden */
79 #define WIN_STATE_FIXED_POSITION  (1<<8)        /* window is fixed in position even */
80 #define WIN_STATE_ARRANGE_IGNORE  (1<<9)        /* ignore for auto arranging */
81
82 #define WIN_HINTS_SKIP_FOCUS      (1<<0)        /* "alt-tab" skips this win */
83 #define WIN_HINTS_SKIP_WINLIST    (1<<1)        /* not in win list */
84 #define WIN_HINTS_SKIP_TASKBAR    (1<<2)        /* not on taskbar */
85 #define WIN_HINTS_GROUP_TRANSIENT (1<<3)        /* ??????? */
86 #define WIN_HINTS_FOCUS_ON_CLICK  (1<<4)        /* app only accepts focus when clicked */
87 #define WIN_HINTS_DO_NOT_COVER    (1<<5)        /* attempt to not cover this window */
88
89 int task_shown(task *tk);
90
91 #endif