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