X-Git-Url: http://git.mutantstargoat.com?p=winnie;a=blobdiff_plain;f=src%2Fwm.h;fp=src%2Fwm.h;h=0000000000000000000000000000000000000000;hp=46f4857d391186c042f0aa31e711c0aaa8fe1398;hb=b4c8d68e0357683cec82fb8a9c5a4447155b3192;hpb=9261ecb0ad85bdf8b21e17b7309ddaeb76a57d96 diff --git a/src/wm.h b/src/wm.h deleted file mode 100644 index 46f4857..0000000 --- a/src/wm.h +++ /dev/null @@ -1,98 +0,0 @@ -/* -winnie - an experimental window system - -Copyright (C) 2013 Eleni Maria Stea - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . - -Author: Eleni Maria Stea -*/ - -#ifndef WM_H_ -#define WM_H_ - -#include - -#include "geom.h" -#include "pixmap.h" -#include "winnie.h" - -class Window; - -bool init_window_manager(); -void destroy_window_manager(); - -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; - Pixmap *background; - - 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_root_window() const; - - void set_focused_frame_color(int r, int g, int b); - void get_focused_frame_color(int *r, int *g, int *b) const; - - void set_unfocused_frame_color(int r, int g, int b); - void get_unfocused_frame_color(int *r, int *g, int *b) const; - - void set_background(const Pixmap *pixmap); - const Pixmap *get_background() const; - - Window *get_grab_window() const; - - void grab_mouse(Window *win); - void release_mouse(); - - void raise_window(Window *win); - void sink_window(Window *win); - - void maximize_window(Window *win); - void unmaximize_window(Window *win); -}; - -extern WindowManager *wm; - -#endif // WM_H_