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_display.h"
00037 #include "../../Core/System/sharedptr.h"
00038 #include "../../Core/System/weakptr.h"
00039 #include "../../Core/Text/string_types.h"
00040 #include "../../Core/Signals/signal_v0.h"
00041 #include "../../Core/Signals/signal_v1.h"
00042 #include "../../Core/Signals/signal_v2.h"
00043 #include "../../Core/Signals/callback_v1.h"
00044 #include "../Window/display_window.h"
00045
00046 class CL_Point;
00047 class CL_DisplayWindowDescription;
00048 class CL_GraphicContext;
00049 class CL_InputContext;
00050 class CL_CursorProvider;
00051 class CL_PixelBufferRef;
00052 class CL_SpriteDescription;
00053
00057 class CL_API_DISPLAY CL_DisplayWindowSite
00058 {
00061 public:
00063 CL_Signal_v0 *sig_lost_focus;
00064
00066 CL_Signal_v0 *sig_got_focus;
00067
00069 CL_Signal_v2<int, int> *sig_resize;
00070
00072 CL_Signal_v1<const CL_Rect &> *sig_paint;
00073
00075 CL_Signal_v0 *sig_window_close;
00076
00078 CL_Signal_v0 *sig_window_minimized;
00079
00081 CL_Signal_v0 *sig_window_maximized;
00082
00084 CL_Callback_v1<CL_Rect &> *func_window_resize;
00086 };
00087
00091 class CL_API_DISPLAY CL_DisplayWindowProvider
00092 {
00095 public:
00096 virtual ~CL_DisplayWindowProvider() { return; }
00097
00101 public:
00103 virtual CL_Rect get_geometry() const = 0;
00104
00106 virtual CL_Rect get_viewport() const = 0;
00107
00109 virtual bool has_focus() const = 0;
00110
00112 virtual bool is_minimized() const = 0;
00113
00115 virtual bool is_maximized() const = 0;
00116
00118 virtual bool is_visible() const = 0;
00119
00121 virtual bool is_fullscreen() const = 0;
00122
00124 virtual CL_GraphicContext& get_gc() = 0;
00125
00127 virtual CL_InputContext& get_ic() = 0;
00128
00129 #ifdef WIN32
00130
00134 virtual HWND get_hwnd() const = 0;
00135 #endif
00136
00138 virtual bool is_clipboard_text_available() const = 0;
00139
00141 virtual bool is_clipboard_image_available() const = 0;
00142
00144 virtual CL_String get_clipboard_text() const = 0;
00145
00147 virtual CL_PixelBuffer get_clipboard_image() const = 0;
00148
00152 public:
00154 virtual CL_Point client_to_screen(const CL_Point &client) = 0;
00155
00157 virtual CL_Point screen_to_client(const CL_Point &screen) = 0;
00158
00160 virtual void capture_mouse(bool capture) = 0;
00161
00163 virtual void request_repaint(const CL_Rect &rect) = 0;
00164
00166 virtual void destroy() = 0;
00167
00169 virtual void create(CL_DisplayWindowSite *site, const CL_DisplayWindowDescription &description) = 0;
00170
00172 virtual void show_system_cursor() = 0;
00173
00175 virtual CL_CursorProvider *create_cursor(const CL_SpriteDescription &sprite_description, const CL_Point &hotspot) = 0;
00176
00178 virtual void set_cursor(CL_CursorProvider *cursor) = 0;
00179
00181 virtual void set_cursor(enum CL_StandardCursor type) = 0;
00182
00184 virtual void hide_system_cursor() = 0;
00185
00187 virtual void set_title(const CL_StringRef &new_title) = 0;
00188
00190 virtual void set_position(const CL_Rect &pos, bool client_area) = 0;
00191
00197 virtual void set_size(int width, int height, bool client_area) = 0;
00198
00204 virtual void set_minimum_size(int width, int height, bool client_area) = 0;
00205
00211 virtual void set_maximum_size(int width, int height, bool client_area) = 0;
00212
00214 virtual void set_enabled(bool enable) = 0;
00215
00217 virtual void minimize() = 0;
00218
00220 virtual void restore() = 0;
00221
00223 virtual void maximize() = 0;
00224
00226 virtual void show(bool activate) = 0;
00227
00229 virtual void hide() = 0;
00230
00232 virtual void bring_to_front() = 0;
00233
00235 virtual void flip(int interval) = 0;
00236
00238 virtual void update(const CL_Rect &rect) = 0;
00239
00241 virtual void set_clipboard_text(const CL_StringRef &text) = 0;
00242
00244 virtual void set_clipboard_image(const CL_PixelBuffer &buf) = 0;
00245
00247 virtual void set_large_icon(const CL_PixelBuffer &image) = 0;
00248
00250 virtual void set_small_icon(const CL_PixelBuffer &image) = 0;
00251
00255 private:
00257 };
00258