Go to the documentation of this file.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
00031
00034
00035 #pragma once
00036
00037 #include "api_gui.h"
00038 #include "../Core/System/sharedptr.h"
00039
00040 class CL_GUIThemePart;
00041 class CL_GraphicContext;
00042 class CL_ResourceManager;
00043 class CL_GUIComponent;
00044 class CL_Colorf;
00045 class CL_Size;
00046 class CL_Rect;
00047 class CL_Font;
00048 class CL_GUITheme_Impl;
00049 class CL_GUIThemeProvider;
00050
00054 class CL_API_GUI CL_GUITheme
00055 {
00058
00059 public:
00063 CL_GUITheme(CL_GUIThemeProvider *provider);
00064
00065 ~CL_GUITheme();
00066
00070
00071 public:
00072
00076 bool is_null() const;
00077
00079 CL_GUIThemeProvider *get_provider() const;
00080
00088 CL_StringRef get_property(
00089 const CL_GUIThemePart &part,
00090 const CL_StringRef &name,
00091 const CL_StringRef &css_value);
00092
00094 CL_ResourceManager get_resources() const;
00095
00099
00100 public:
00102 void set_resources(CL_ResourceManager resources);
00103
00105 void add_resources(CL_ResourceManager resources);
00106
00108 void render_box(
00109 CL_GraphicContext &gc,
00110 CL_GUIThemePart &part,
00111 const CL_Rect &rect,
00112 const CL_Rect &clip_rect);
00113
00114 CL_Rect render_text(
00115 CL_GraphicContext &gc,
00116 CL_GUIThemePart &part,
00117 CL_Font &font,
00118 const CL_StringRef &text,
00119 const CL_Rect &content_rect,
00120 const CL_Rect &clip_rect);
00121
00124
00125
00126 void component_destroyed(CL_GUIComponent *component);
00127
00131
00132 private:
00133 CL_SharedPtr<CL_GUITheme_Impl> impl;
00135 };
00136