00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00033
00034 #pragma once
00035
00036 #include "../api_gui.h"
00037 #include "../gui_window_manager.h"
00038
00039 class CL_GUIWindowManager;
00040 class CL_GraphicContext;
00041 class CL_InputEvent;
00042 class CL_InputState;
00043 class CL_Cursor;
00044 class CL_DisplayWindow;
00045 class CL_GUITopLevelWindow;
00046
00050 class CL_API_GUI CL_GUIWindowManagerProvider
00051 {
00054 public:
00055 virtual ~CL_GUIWindowManagerProvider() { }
00057
00060 public:
00061 virtual CL_GUIWindowManager::CL_WindowManagerType get_window_manager_type() const = 0;
00062
00066 public:
00068 virtual void destroy() = 0;
00069
00073 virtual void set_site(CL_GUIWindowManagerSite *site) = 0;
00074 virtual void create_window(
00075 CL_GUITopLevelWindow *handle,
00076 CL_GUITopLevelWindow *owner,
00077 CL_GUITopLevelDescription description) = 0;
00078
00082 virtual void destroy_window(CL_GUITopLevelWindow *handle) = 0;
00083
00088 virtual void enable_window(CL_GUITopLevelWindow *handle, bool enable) = 0;
00089
00095 virtual bool has_focus(CL_GUITopLevelWindow *handle) const = 0;
00096
00102 virtual void set_visible(CL_GUITopLevelWindow *handle, bool visible, bool activate_root_win) = 0;
00103
00109 virtual void set_geometry(CL_GUITopLevelWindow *handle, const CL_Rect &geometry, bool client_area) = 0;
00110
00117 virtual CL_Rect get_geometry(CL_GUITopLevelWindow *handle, bool client_area) const = 0;
00118
00126 virtual CL_Point screen_to_window(CL_GUITopLevelWindow *handle, const CL_Point &screen_point, bool client_area) const = 0;
00127
00135 virtual CL_Point window_to_screen(CL_GUITopLevelWindow *handle, const CL_Point &window_point, bool client_area) const = 0;
00136
00142 virtual CL_GraphicContext& get_gc(CL_GUITopLevelWindow *handle) const = 0;
00143
00149 virtual CL_InputContext& get_ic(CL_GUITopLevelWindow *handle) const = 0;
00150
00157 virtual CL_GraphicContext begin_paint(CL_GUITopLevelWindow *handle, const CL_Rect &update_region) = 0;
00158
00164 virtual void set_cliprect(CL_GUITopLevelWindow *handle, CL_GraphicContext &gc, const CL_Rect &rect) = 0;
00165
00170 virtual void reset_cliprect(CL_GUITopLevelWindow *handle, CL_GraphicContext &gc) = 0;
00171
00176 virtual void push_cliprect(CL_GUITopLevelWindow *handle, CL_GraphicContext &gc, const CL_Rect &rect) = 0;
00177
00182 virtual void pop_cliprect(CL_GUITopLevelWindow *handle, CL_GraphicContext &gc) = 0;
00183
00188 virtual void end_paint(CL_GUITopLevelWindow *handle, const CL_Rect &update_region) = 0;
00189
00194 virtual void request_repaint(CL_GUITopLevelWindow *handle, const CL_Rect &update_region) = 0;
00195
00199 virtual void bring_to_front(CL_GUITopLevelWindow *handle) = 0;
00200
00206 virtual bool is_minimized(CL_GUITopLevelWindow *handle) const = 0;
00207
00213 virtual bool is_maximized(CL_GUITopLevelWindow *handle) const = 0;
00214
00219 virtual void capture_mouse(CL_GUITopLevelWindow *handle, bool state) = 0;
00220
00226 virtual CL_DisplayWindow get_display_window(CL_GUITopLevelWindow *handle) const = 0;
00227
00232 virtual void set_cursor(CL_GUITopLevelWindow *handle, const CL_Cursor &cursor) = 0;
00233
00238 virtual void set_cursor(CL_GUITopLevelWindow *handle, enum CL_StandardCursor type) = 0;
00239
00243 virtual void update() = 0;
00244
00246 virtual void setup_painting() = 0;
00247
00249 virtual void complete_painting() = 0;
00251
00254 private:
00256
00257 };
00258