2 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
4 // Licensed under the Flora License, Version 1.0 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://floralicense.org/license/
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an AS IS BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
17 #include "toolkit-style-monitor.h"
19 #include <dali/public-api/common/dali-common.h>
20 #include <dali/public-api/object/base-object.h>
21 #include <dali/public-api/signals/dali-signal-v2.h>
32 * Stub for the StyleMonitor
34 class StyleMonitor : public BaseObject
36 public: // Creation & Destruction
37 static Dali::StyleMonitor Get();
41 public: // Style Information
42 std::string GetDefaultFontFamily() const;
43 float GetDefaultFontSize() const;
44 const std::string& GetTheme() const;
45 void SetTheme(std::string theme);
48 Dali::StyleMonitor::StyleChangeSignalV2& StyleChangeSignal();
50 void EmitStyleChangeSignal(StyleChange styleChange)
52 mStyleChangeSignal.Emit(Dali::StyleMonitor(this), styleChange);
56 Dali::StyleMonitor::StyleChangeSignalV2 mStyleChangeSignal;
57 static Dali::StyleMonitor mToolkitStyleMonitor;
61 Dali::StyleMonitor StyleMonitor::mToolkitStyleMonitor;
63 Dali::StyleMonitor StyleMonitor::Get()
65 if( ! mToolkitStyleMonitor )
67 mToolkitStyleMonitor = Dali::StyleMonitor( new Dali::Internal::Adaptor::StyleMonitor() );
69 return mToolkitStyleMonitor;
72 StyleMonitor::StyleMonitor()
77 StyleMonitor::~StyleMonitor()
81 std::string StyleMonitor::GetDefaultFontFamily() const
83 return Dali::StyleMonitor::DEFAULT_FONT_FAMILY;
86 float StyleMonitor::GetDefaultFontSize() const
88 return Dali::StyleMonitor::DEFAULT_FONT_SIZE;
91 const std::string& StyleMonitor::GetTheme() const
96 void StyleMonitor::SetTheme(std::string path)
98 StyleChange styleChange;
99 styleChange.themeChange = true;
100 styleChange.themeFilePath = path;
102 EmitStyleChangeSignal(styleChange);
105 Dali::StyleMonitor::StyleChangeSignalV2& StyleMonitor::StyleChangeSignal()
107 return mStyleChangeSignal;
110 } // namespace Adaptor
111 } // namespace Internal
113 ////////////////////////////////////////////////////////////////////////////////////////////////////
115 Internal::Adaptor::StyleMonitor& GetImplementation(Dali::StyleMonitor& monitor)
117 BaseObject& object = monitor.GetBaseObject();
118 return static_cast<Internal::Adaptor::StyleMonitor&>(object);
120 const Internal::Adaptor::StyleMonitor& GetImplementation(const Dali::StyleMonitor& monitor)
122 const BaseObject& object = monitor.GetBaseObject();
123 return static_cast<const Internal::Adaptor::StyleMonitor&>(object);
126 const std::string Dali::StyleMonitor::DEFAULT_FONT_FAMILY("DefaultFont");
127 const float Dali::StyleMonitor::DEFAULT_FONT_SIZE(1.0f);
129 StyleMonitor::StyleMonitor()
133 StyleMonitor::StyleMonitor(const StyleMonitor& monitor)
134 : BaseHandle(monitor)
138 StyleMonitor StyleMonitor::StyleMonitor::Get()
140 return Internal::Adaptor::StyleMonitor::Get();
143 StyleMonitor::~StyleMonitor()
147 std::string StyleMonitor::GetDefaultFontFamily() const
149 return GetImplementation(*this).GetDefaultFontFamily();
152 float StyleMonitor::GetDefaultFontSize() const
154 return GetImplementation(*this).GetDefaultFontSize();
157 const std::string& StyleMonitor::GetTheme() const
159 return GetImplementation(*this).GetTheme();
162 void StyleMonitor::SetTheme(std::string themeFilePath)
164 GetImplementation(*this).SetTheme(themeFilePath);
167 StyleMonitor::StyleChangeSignalV2& StyleMonitor::StyleChangeSignal()
169 return GetImplementation(*this).StyleChangeSignal();
172 void StyleMonitor::EmitStyleChangeSignal(StyleChange styleChange)
174 GetImplementation(*this).EmitStyleChangeSignal(styleChange);
177 StyleMonitor& StyleMonitor::operator=(const StyleMonitor& monitor)
179 if( *this != monitor )
181 BaseHandle::operator=(monitor);
186 StyleMonitor::StyleMonitor(Internal::Adaptor::StyleMonitor* internal)
187 : BaseHandle(internal)