display_window_provider.h

Go to the documentation of this file.
00001 /*
00002 **  ClanLib SDK
00003 **  Copyright (c) 1997-2009 The ClanLib Team
00004 **
00005 **  This software is provided 'as-is', without any express or implied
00006 **  warranty.  In no event will the authors be held liable for any damages
00007 **  arising from the use of this software.
00008 **
00009 **  Permission is granted to anyone to use this software for any purpose,
00010 **  including commercial applications, and to alter it and redistribute it
00011 **  freely, subject to the following restrictions:
00012 **
00013 **  1. The origin of this software must not be misrepresented; you must not
00014 **     claim that you wrote the original software. If you use this software
00015 **     in a product, an acknowledgment in the product documentation would be
00016 **     appreciated but is not required.
00017 **  2. Altered source versions must be plainly marked as such, and must not be
00018 **     misrepresented as being the original software.
00019 **  3. This notice may not be removed or altered from any source distribution.
00020 **
00021 **  Note: Some of the libraries ClanLib may link to may have additional
00022 **  requirements or restrictions.
00023 **
00024 **  File Author(s):
00025 **
00026 **    Magnus Norddahl
00027 **    Harry Storbacka
00028 **    Kenneth Gangstoe
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 

Generated on Thu Dec 3 02:39:28 2009 for ClanLib by  doxygen 1.4.6