throw std::runtime_error("Trying to create a second instance of WindowManager!\n");
}
+ focused_win = 0;
+
bg_color[0] = 210;
bg_color[1] = 106;
bg_color[2] = 106;
if(intersect.width && intersect.height) {
(*it)->draw();
}
+ it++;
+ }
+}
+
+void WindowManager::add_window(Window *win)
+{
+ if(windows.empty()) {
+ focused_win = win;
}
+
+ windows.push_back(win);
+}
+
+void WindowManager::set_focused_window(Window *win)
+{
+ focused_win = win;
+}
+
+const Window *WindowManager::get_focused_window() const
+{
+ return focused_win;
+}
+
+Window *WindowManager::get_focused_window()
+{
+ return focused_win;
+}
+
+Window *WindowManager::get_window_at_pos(int pointer_x, int pointer_y)
+{
+ Window *win = 0;
+ std::list<Window*>::reverse_iterator rit = windows.rbegin();
+ while(rit != windows.rend()) {
+ if((*rit)->contains_point(pointer_x, pointer_y)) {
+ win = *rit;
+ break;
+ }
+ rit++;
+ }
+
+ return win;
}