00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "xrb_widgetskinhandler.hpp"
00012
00013 namespace Xrb
00014 {
00015
00016 WidgetSkinHandler::WidgetSkinHandler ()
00017 {
00018 m_widget_skin = NULL;
00019 m_delete_widget_skin = false;
00020 }
00021
00022 WidgetSkinHandler::~WidgetSkinHandler ()
00023 {
00024 if (m_delete_widget_skin)
00025 Delete(m_widget_skin);
00026 else
00027 m_widget_skin = NULL;
00028 }
00029
00030
00031
00032
00033
00034 void WidgetSkinHandler::SetWidgetSkinWidgetBackground (
00035 WidgetSkin::WidgetBackgroundType const widget_background_type,
00036 WidgetBackground const *const widget_background)
00037 {
00038 SetProperty<
00039 WidgetSkin::WidgetBackgroundType,
00040 WidgetBackground const *>(
00041 widget_background_type,
00042 widget_background,
00043 &WidgetSkin::SetWidgetBackground,
00044 &WidgetSkinHandler::PropagateChangedWidgetBackground);
00045 }
00046
00047 void WidgetSkinHandler::SetWidgetSkinFont (
00048 WidgetSkin::FontType const font_type,
00049 Resource<Font> const &font)
00050 {
00051 SetProperty<
00052 WidgetSkin::FontType,
00053 Resource<Font> const &>(
00054 font_type,
00055 font,
00056 &WidgetSkin::SetFont,
00057 &WidgetSkinHandler::PropagateChangedFont);
00058 }
00059
00060 void WidgetSkinHandler::SetWidgetSkinFontFacePath (
00061 WidgetSkin::FontType const font_type,
00062 std::string const &font_face_path)
00063 {
00064 SetProperty<
00065 WidgetSkin::FontType,
00066 std::string const &>(
00067 font_type,
00068 font_face_path,
00069 &WidgetSkin::SetFontFacePath,
00070 &WidgetSkinHandler::PropagateChangedFont);
00071 }
00072
00073 void WidgetSkinHandler::SetWidgetSkinFontHeightRatio (
00074 WidgetSkin::FontType const font_type,
00075 Float const font_height_ratio)
00076 {
00077 SetProperty<
00078 WidgetSkin::FontType,
00079 Float>(
00080 font_type,
00081 font_height_ratio,
00082 &WidgetSkin::SetFontHeightRatio,
00083 &WidgetSkinHandler::PropagateChangedFont);
00084 }
00085
00086 void WidgetSkinHandler::SetWidgetSkinFontHeight (
00087 WidgetSkin::FontType const font_type,
00088 ScreenCoord const font_height)
00089 {
00090 SetProperty<
00091 WidgetSkin::FontType,
00092 ScreenCoord>(
00093 font_type,
00094 font_height,
00095 &WidgetSkin::SetFontHeight,
00096 &WidgetSkinHandler::PropagateChangedFont);
00097 }
00098
00099 void WidgetSkinHandler::SetWidgetSkinTexture (
00100 WidgetSkin::TextureType const texture_type,
00101 Resource<GLTexture> const &texture)
00102 {
00103 SetProperty<
00104 WidgetSkin::TextureType,
00105 Resource<GLTexture> const &>(
00106 texture_type,
00107 texture,
00108 &WidgetSkin::SetTexture,
00109 &WidgetSkinHandler::PropagateChangedTexture);
00110 }
00111
00112 void WidgetSkinHandler::SetWidgetSkinTexturePath (
00113 WidgetSkin::TextureType const texture_type,
00114 std::string const &texture_path)
00115 {
00116 SetProperty<
00117 WidgetSkin::TextureType,
00118 std::string const &>(
00119 texture_type,
00120 texture_path,
00121 &WidgetSkin::SetTexturePath,
00122 &WidgetSkinHandler::PropagateChangedTexture);
00123 }
00124
00125 void WidgetSkinHandler::SetWidgetSkinMarginRatios (
00126 WidgetSkin::MarginsType const margin_type,
00127 FloatVector2 const &margin_ratios)
00128 {
00129 SetProperty<
00130 WidgetSkin::MarginsType,
00131 FloatVector2 const &>(
00132 margin_type,
00133 margin_ratios,
00134 &WidgetSkin::SetMarginRatios,
00135 &WidgetSkinHandler::PropagateChangedMargins);
00136 }
00137
00138 void WidgetSkinHandler::SetWidgetSkinMargins (
00139 WidgetSkin::MarginsType const margin_type,
00140 ScreenCoordVector2 const &margins)
00141 {
00142 SetProperty<
00143 WidgetSkin::MarginsType,
00144 ScreenCoordVector2 const &>(
00145 margin_type,
00146 margins,
00147 &WidgetSkin::SetMargins,
00148 &WidgetSkinHandler::PropagateChangedMargins);
00149 }
00150
00151
00152
00153
00154
00155 void WidgetSkinHandler::PropagateChangedWidgetBackground (
00156 WidgetSkin::WidgetBackgroundType const widget_background_type)
00157 {
00158 PropagateChangedProperty<WidgetSkin::WidgetBackgroundType>(
00159 widget_background_type,
00160 &WidgetSkinHandler::HandleChangedWidgetSkinWidgetBackground);
00161 }
00162
00163 void WidgetSkinHandler::PropagateChangedFont (
00164 WidgetSkin::FontType const font_type)
00165 {
00166 PropagateChangedProperty<WidgetSkin::FontType>(
00167 font_type,
00168 &WidgetSkinHandler::HandleChangedWidgetSkinFont);
00169 }
00170
00171 void WidgetSkinHandler::PropagateChangedTexture (
00172 WidgetSkin::TextureType const texture_type)
00173 {
00174 PropagateChangedProperty<WidgetSkin::TextureType>(
00175 texture_type,
00176 &WidgetSkinHandler::HandleChangedWidgetSkinTexture);
00177 }
00178
00179 void WidgetSkinHandler::PropagateChangedMargins (
00180 WidgetSkin::MarginsType const margins_type)
00181 {
00182 PropagateChangedProperty<WidgetSkin::MarginsType>(
00183 margins_type,
00184 &WidgetSkinHandler::HandleChangedWidgetSkinMargins);
00185 }
00186
00187 }