X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fslit.h;h=3cdcb3096d0879cd404df373ea7d2277153e26c2;hb=58cfbb7f8419e084af6b6b8b00c88ed270c29e88;hp=ded946219c7e8f9a0a5f2e5e3fbc8b5143c8ae51;hpb=20ba24b7415609cbd57927c44f079bab3c911839;p=chaz%2Fopenbox diff --git a/openbox/slit.h b/openbox/slit.h index ded94621..3cdcb309 100644 --- a/openbox/slit.h +++ b/openbox/slit.h @@ -1,11 +1,52 @@ #ifndef __slit_h #define __slit_h +#include "timer.h" +#include "render/render.h" +#include "window.h" +#include "stacking.h" + #include #include #include -typedef struct Slit Slit; +typedef enum { + SlitPos_Floating, + SlitPos_TopLeft, + SlitPos_Top, + SlitPos_TopRight, + SlitPos_Right, + SlitPos_BottomRight, + SlitPos_Bottom, + SlitPos_BottomLeft, + SlitPos_Left +} SlitPosition; + +typedef struct Slit { + ObWindow obwin; + + Window frame; + StackLayer layer; + + /* user-requested position stuff */ + SlitPosition pos; + int gravity; + int user_x, user_y; + + /* actual position (when not auto-hidden) */ + int x, y; + int w, h; + + gboolean horz; + gboolean hide; + gboolean hidden; + + Appearance *a_frame; + + Timer *hide_timer; + + GList *slit_apps; +} Slit; typedef struct SlitApp { int ignore_unmaps; @@ -19,18 +60,6 @@ typedef struct SlitApp { int h; } SlitApp; -typedef enum { - SlitPos_Floating, - SlitPos_TopLeft, - SlitPos_Top, - SlitPos_TopRight, - SlitPos_Right, - SlitPos_BottomRight, - SlitPos_Bottom, - SlitPos_BottomLeft, - SlitPos_Left -} SlitPosition; - extern GHashTable *slit_map; extern GHashTable *slit_app_map; @@ -40,11 +69,12 @@ void slit_shutdown(); void slit_configure_all(); void slit_hide(Slit *self, gboolean hide); -void slit_add(Window win, XWMHints *wmhints, XWindowAttributes *attrib); +void slit_add(Window win, XWMHints *wmhints); void slit_remove_all(); void slit_remove(SlitApp *app, gboolean reparent); +void slit_app_drag(SlitApp *app, XMotionEvent *e); void slit_app_configure(SlitApp *app, int w, int h); #endif