X-Git-Url: http://git.mutantstargoat.com?p=winnie;a=blobdiff_plain;f=src%2Fwm.h;h=406ef9dbf7a45cd07f0026ed8086eb5e31a7add8;hp=e3f404041da43c137535d1306c6e8b31f8627c1e;hb=287b4d5d1b7eadfe9d5d0aa3b33700f3e1bed55e;hpb=5449bf8fbca1d2cfbefa0386df7109afb2a5aa34 diff --git a/src/wm.h b/src/wm.h index e3f4040..406ef9d 100644 --- a/src/wm.h +++ b/src/wm.h @@ -2,6 +2,7 @@ #define WM_H_ #include + #include "geom.h" #include "pixmap.h" @@ -10,26 +11,44 @@ class Window; class WindowManager { private: std::list windows; + std::list dirty_rects; int bg_color[3]; + int frame_thickness; + int titlebar_thickness; + int frame_fcolor[3]; + int frame_ucolor[3]; + + Window *root_win; Window *focused_win; + Window *grab_win; Pixmap mouse_cursor; + void create_frame(Window *win); + void destroy_frame(Window *win); + public: WindowManager(); + ~WindowManager(); void invalidate_region(const Rect &rect); void process_windows(); void add_window(Window *win); + void remove_window(Window *win); void set_focused_window(Window *win); const Window *get_focused_window() const; Window *get_focused_window(); Window *get_window_at_pos(int pointer_x, int pointer_y); + + Window *get_grab_window() const; + + void grab_mouse(Window *win); + void release_mouse(); }; extern WindowManager *wm;