Adding new test harness
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / dali-toolkit-test-utils / toolkit-style-monitor.cpp
1 //
2 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
3 //
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
7 //
8 //     http://floralicense.org/license/
9 //
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.
15 //
16
17 #include "toolkit-style-monitor.h"
18
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>
22
23 namespace Dali
24 {
25
26
27 namespace Internal
28 {
29 namespace Adaptor
30 {
31 /**
32  * Stub for the StyleMonitor
33  */
34 class StyleMonitor : public BaseObject
35 {
36 public: // Creation & Destruction
37   static Dali::StyleMonitor Get();
38   StyleMonitor();
39   ~StyleMonitor();
40
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);
46
47 public: // Signals
48   Dali::StyleMonitor::StyleChangeSignalV2& StyleChangeSignal();
49
50   void EmitStyleChangeSignal(StyleChange styleChange)
51   {
52     mStyleChangeSignal.Emit(Dali::StyleMonitor(this), styleChange);
53   }
54
55 private:
56   Dali::StyleMonitor::StyleChangeSignalV2 mStyleChangeSignal;
57   static Dali::StyleMonitor mToolkitStyleMonitor;
58   std::string mTheme;
59 };
60
61 Dali::StyleMonitor StyleMonitor::mToolkitStyleMonitor;
62
63 Dali::StyleMonitor StyleMonitor::Get()
64 {
65   if( ! mToolkitStyleMonitor )
66   {
67     mToolkitStyleMonitor = Dali::StyleMonitor( new Dali::Internal::Adaptor::StyleMonitor() );
68   }
69   return mToolkitStyleMonitor;
70 }
71
72 StyleMonitor::StyleMonitor()
73 : mTheme("default")
74 {
75 }
76
77 StyleMonitor::~StyleMonitor()
78 {
79 }
80
81 std::string StyleMonitor::GetDefaultFontFamily() const
82 {
83   return Dali::StyleMonitor::DEFAULT_FONT_FAMILY;
84 }
85
86 float StyleMonitor::GetDefaultFontSize() const
87 {
88   return Dali::StyleMonitor::DEFAULT_FONT_SIZE;
89 }
90
91 const std::string& StyleMonitor::GetTheme() const
92 {
93   return mTheme;
94 }
95
96 void StyleMonitor::SetTheme(std::string path)
97 {
98   StyleChange styleChange;
99   styleChange.themeChange = true;
100   styleChange.themeFilePath = path;
101   mTheme = path;
102   EmitStyleChangeSignal(styleChange);
103 }
104
105 Dali::StyleMonitor::StyleChangeSignalV2& StyleMonitor::StyleChangeSignal()
106 {
107   return mStyleChangeSignal;
108 }
109
110 } // namespace Adaptor
111 } // namespace Internal
112
113 ////////////////////////////////////////////////////////////////////////////////////////////////////
114
115 Internal::Adaptor::StyleMonitor& GetImplementation(Dali::StyleMonitor& monitor)
116 {
117   BaseObject& object = monitor.GetBaseObject();
118   return static_cast<Internal::Adaptor::StyleMonitor&>(object);
119 }
120 const Internal::Adaptor::StyleMonitor& GetImplementation(const Dali::StyleMonitor& monitor)
121 {
122   const BaseObject& object = monitor.GetBaseObject();
123   return static_cast<const Internal::Adaptor::StyleMonitor&>(object);
124 }
125
126 const std::string Dali::StyleMonitor::DEFAULT_FONT_FAMILY("DefaultFont");
127 const float       Dali::StyleMonitor::DEFAULT_FONT_SIZE(1.0f);
128
129 StyleMonitor::StyleMonitor()
130 {
131 }
132
133 StyleMonitor::StyleMonitor(const StyleMonitor& monitor)
134 : BaseHandle(monitor)
135 {
136 }
137
138 StyleMonitor StyleMonitor::StyleMonitor::Get()
139 {
140   return Internal::Adaptor::StyleMonitor::Get();
141 }
142
143 StyleMonitor::~StyleMonitor()
144 {
145 }
146
147 std::string StyleMonitor::GetDefaultFontFamily() const
148 {
149   return GetImplementation(*this).GetDefaultFontFamily();
150 }
151
152 float StyleMonitor::GetDefaultFontSize() const
153 {
154   return GetImplementation(*this).GetDefaultFontSize();
155 }
156
157 const std::string& StyleMonitor::GetTheme() const
158 {
159   return GetImplementation(*this).GetTheme();
160 }
161
162 void StyleMonitor::SetTheme(std::string themeFilePath)
163 {
164   GetImplementation(*this).SetTheme(themeFilePath);
165 }
166
167 StyleMonitor::StyleChangeSignalV2& StyleMonitor::StyleChangeSignal()
168 {
169   return GetImplementation(*this).StyleChangeSignal();
170 }
171
172 void StyleMonitor::EmitStyleChangeSignal(StyleChange styleChange)
173 {
174   GetImplementation(*this).EmitStyleChangeSignal(styleChange);
175 }
176
177 StyleMonitor& StyleMonitor::operator=(const StyleMonitor& monitor)
178 {
179   if( *this != monitor )
180   {
181     BaseHandle::operator=(monitor);
182   }
183   return *this;
184 }
185
186 StyleMonitor::StyleMonitor(Internal::Adaptor::StyleMonitor* internal)
187 : BaseHandle(internal)
188 {
189 }
190
191 } // namespace Dali