X-Git-Url: http://git.mutantstargoat.com?a=blobdiff_plain;f=src%2Fwm.h;h=162121bb9f83e177ed95a0a1f4598b103da2ff40;hb=8f628fa4e4af94adca4db9c6cc41cf016e0c3677;hp=27ae3164df630ae25fd3bdb975634aa995a99603;hpb=8a92836b3af157fd47c657cfe546887e5f5683a8;p=winnie diff --git a/src/wm.h b/src/wm.h index 27ae316..162121b 100644 --- a/src/wm.h +++ b/src/wm.h @@ -2,20 +2,47 @@ #define WM_H_ #include + #include "geom.h" +#include "pixmap.h" 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; + + 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); }; extern WindowManager *wm;