display_window_description.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/Text/string_types.h"
00038 #include "../../Core/System/sharedptr.h"
00039 
00040 class CL_Size;
00041 class CL_Rect;
00042 class CL_DisplayWindow;
00043 class CL_DisplayWindowDescription_Impl;
00044 
00049 class CL_API_DISPLAY CL_DisplayWindowDescription
00050 {
00053 public:
00055         CL_DisplayWindowDescription();
00056 
00058         CL_DisplayWindowDescription(const CL_String &title);
00059 
00061         CL_DisplayWindowDescription(const CL_String &title, const CL_Rect &position, bool client_area);
00062 
00064         CL_DisplayWindowDescription(const CL_Rect &position, bool client_area);
00065 
00068         CL_DisplayWindowDescription(const CL_DisplayWindowDescription &copy);
00069 
00070         virtual ~CL_DisplayWindowDescription();
00071 
00075 public:
00077         const CL_String &get_title() const;
00078 
00080         bool get_decorations() const;
00081 
00083         CL_Size get_size() const;
00084 
00086         CL_Rect get_position() const;
00087 
00089         bool get_position_client_area() const;
00090 
00092         bool is_fullscreen() const;
00093 
00095         int get_flipping_buffers() const;
00096 
00098         bool get_allow_resize() const;
00099 
00101         int get_bpp() const;
00102 
00104 
00106         int get_refresh_rate() const;
00107 
00109         bool is_layered() const;
00110 
00111 #ifdef WIN32
00112 
00113         HWND get_handle() const;
00114 #endif
00115 
00117         bool has_caption() const;
00118 
00120         bool has_sysmenu() const;
00121 
00123         bool has_minimize_button() const;
00124 
00126         bool has_maximize_button() const;
00127 
00129         bool has_border() const;
00130 
00132         bool is_tool_window() const;
00133 
00135         bool is_visible() const;
00136 
00138         bool is_topmost() const;
00139 
00141 
00142         bool get_using_gui_window_cache() const;
00143 
00145         bool has_drop_shadow() const;
00146 
00148         CL_DisplayWindow get_owner() const;
00149 
00151         bool get_tablet_context() const;
00152 
00154         CL_UnknownSharedPtr get_data(const CL_String &data_name) const;
00155 
00157         int get_depth_size() const;
00158 
00160         int get_stencil_size() const;
00161 
00165 public:
00167         CL_DisplayWindowDescription &operator =(const CL_DisplayWindowDescription &copy);
00168 
00170         void show_caption(bool value = true);
00171 
00173         void show_sysmenu(bool value = true);
00174 
00176         void show_minimize_button(bool value = true);
00177 
00179         void show_maximize_button(bool value = true);
00180 
00182         void show_border(bool value = true);
00183 
00185         void set_decorations(bool decorations);
00186 
00188         void set_visible(bool value = true);
00189 
00191         void set_topmost(bool value = true);
00192 
00194         void set_tool_window(bool value = true);
00195 
00197         void set_drop_shadow(bool value = true);
00198 
00200         void set_owner_window(const CL_DisplayWindow &owner);
00201 
00203         void set_title(const CL_String &title);
00204 
00208         void set_size(const CL_Size &size, bool client_area);
00209 
00216         void set_position(const CL_Rect &position, bool client_area);
00217 
00219         void set_fullscreen(bool fullscreen = true);
00220 
00222         void set_flipping_buffers(int num_buffers = 2);
00223 
00225         void set_allow_resize(bool allow_resize);
00226 
00228         void set_bpp(int bpp);
00229 
00231 
00233         void set_refresh_rate(int refresh_rate);
00234 
00236         void set_tablet_context(bool create);
00237 
00239 
00242         void set_using_gui_window_cache(bool value);
00243 
00245         void set_layered(bool layered);
00246 
00247 #ifdef WIN32
00248 
00249         void set_handle(HWND handle);
00250 #endif
00251 
00253         void set_data(const CL_String &data_name, const CL_UnknownSharedPtr &ptr);
00254 
00256 
00258         void set_depth_size(int value);
00259 
00261 
00263         void set_stencil_size(int value);
00264 
00268 private:
00269         CL_SharedPtr<CL_DisplayWindowDescription_Impl> impl;
00271 };
00272 

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