rename the Client struct to ObClient
[mikachu/openbox.git] / openbox / dock.h
1 #ifndef __dock_h
2 #define __dock_h
3
4 #include "timer.h"
5 #include "window.h"
6 #include "stacking.h"
7 #include "geom.h"
8 #include "render/render.h"
9
10 #include <glib.h>
11 #include <X11/Xlib.h>
12 #include <X11/Xutil.h>
13
14 typedef enum {
15     DockPos_Floating,
16     DockPos_TopLeft,
17     DockPos_Top,
18     DockPos_TopRight,
19     DockPos_Right,
20     DockPos_BottomRight,
21     DockPos_Bottom,
22     DockPos_BottomLeft,
23     DockPos_Left
24 } DockPosition;
25
26 typedef struct Dock {
27     ObWindow obwin;
28
29     Window frame;
30     RrAppearance *a_frame;
31
32     /* actual position (when not auto-hidden) */
33     int x, y;
34     int w, h;
35
36     gboolean hidden;
37     Timer *hide_timer;
38
39     GList *dock_apps;
40 } Dock;
41
42 typedef struct DockApp {
43     ObWindow obwin;
44
45     int ignore_unmaps;
46
47     Window icon_win;
48     Window win;
49
50     char *name;
51     char *class;
52
53     int x;
54     int y;
55     int w;
56     int h;
57 } DockApp;
58
59 extern Strut dock_strut;
60
61 void dock_startup();
62 void dock_shutdown();
63
64 void dock_configure();
65 void dock_hide(gboolean hide);
66
67 void dock_add(Window win, XWMHints *wmhints);
68
69 void dock_remove_all();
70 void dock_remove(DockApp *app, gboolean reparent);
71
72 void dock_app_drag(DockApp *app, XMotionEvent *e);
73 void dock_app_configure(DockApp *app, int w, int h);
74
75 #endif