e3f404041da43c137535d1306c6e8b31f8627c1e
[winnie] / src / wm.h
1 #ifndef WM_H_
2 #define WM_H_
3
4 #include <list>
5 #include "geom.h"
6 #include "pixmap.h"
7
8 class Window;
9
10 class WindowManager {
11 private:
12         std::list<Window*> windows;
13         std::list<Rect> dirty_rects;
14
15         int bg_color[3];
16         Window *focused_win;
17
18         Pixmap mouse_cursor;
19
20 public:
21         WindowManager();
22
23         void invalidate_region(const Rect &rect);
24         void process_windows();
25
26         void add_window(Window *win);
27
28         void set_focused_window(Window *win);
29         const Window *get_focused_window() const;
30         Window *get_focused_window();
31
32         Window *get_window_at_pos(int pointer_x, int pointer_y);
33 };
34
35 extern WindowManager *wm;
36
37 #endif  // WM_H_