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_component.h"
00038 #include "../../Core/Signals/callback_v0.h"
00039 #include "../../Display/Render/graphic_context.h"
00040
00041 class CL_Window_Impl;
00042
00046 class CL_API_GUI CL_Window : public CL_GUIComponent
00047 {
00050 public:
00055 CL_Window(CL_GUIComponent *owner, const CL_GUITopLevelDescription &description);
00056
00061 CL_Window(CL_GUIManager *manager, const CL_GUITopLevelDescription &description);
00062
00063 virtual ~CL_Window();
00064
00068 public:
00070 CL_StringRef get_title() const;
00071
00073 bool is_minimized() const;
00074
00076 bool is_maximized() const;
00077
00079 CL_Size get_preferred_size() const;
00080
00082 CL_Rect get_client_area() const;
00083
00087 bool get_draggable() const;
00088
00092 public:
00094 void set_title(const CL_StringRef &str);
00095
00097 void bring_to_front();
00098
00102 void set_draggable(bool enable = true);
00103
00107 private:
00108 CL_SharedPtr<CL_Window_Impl> impl;
00109
00111 };