7 static WindowManager wminst;
9 WindowManager::WindowManager()
14 throw std::runtime_error("Trying to create a second instance of WindowManager!\n");
22 void WindowManager::invalidate_region(const Rect &rect)
24 dirty_rects.push_back(rect);
27 void WindowManager::process_windows()
29 if(dirty_rects.empty()) {
33 std::list<Rect>::iterator drit = dirty_rects.begin();
35 while(drit != dirty_rects.end()) {
36 uni = rect_union(uni, *drit++);
40 fill_rect(uni, bg_color[0], bg_color[1], bg_color[2]);
42 std::list<Window*>::iterator it = windows.begin();
43 while(it != windows.end()) {
44 Rect intersect = rect_intersection((*it)->rect, uni);
45 if(intersect.width && intersect.height) {
51 void WindowManager::add_window(Window *win)
53 windows.push_back(win);