[SRUK] Initial copy from Tizen 2.2 version
[platform/core/uifw/dali-toolkit.git] / automated-tests / 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 namespace
27 {
28 ToolkitStyleMonitor* gToolkitStyleMonitor(NULL);
29 } // unnamed namespace
30
31 namespace Internal
32 {
33
34 namespace Adaptor
35 {
36
37 /**
38  * Stub for the StyleMonitor
39  */
40 class StyleMonitor : public BaseObject
41 {
42 public: // Creation & Destruction
43
44   static Dali::StyleMonitor Get();
45   StyleMonitor();
46   StyleMonitor(ToolkitStyleMonitor *styleMonitor);
47   ~StyleMonitor();
48
49 public: // Style Information
50
51   std::string GetDefaultFontFamily() const;
52   float GetDefaultFontSize() const;
53
54 public: // Signals
55
56   Dali::StyleMonitor::StyleChangeSignalV2& StyleChangeSignal();
57
58   void EmitStyleChangeSignal(StyleChange styleChange)
59   {
60     mStyleChangeSignal.Emit(Dali::StyleMonitor(this), styleChange);
61   }
62
63 private:
64
65   Dali::StyleMonitor::StyleChangeSignalV2 mStyleChangeSignal;
66
67   ToolkitStyleMonitor* mToolkitStyleMonitor;
68 };
69
70 Dali::StyleMonitor StyleMonitor::Get()
71 {
72   return gToolkitStyleMonitor->GetStyleMonitor();
73 }
74
75 StyleMonitor::StyleMonitor()
76 : mToolkitStyleMonitor(NULL)
77 {
78 }
79
80 StyleMonitor::StyleMonitor(ToolkitStyleMonitor *styleMonitor)
81 : mToolkitStyleMonitor(styleMonitor)
82 {
83 }
84
85 StyleMonitor::~StyleMonitor()
86 {
87 }
88
89 std::string StyleMonitor::GetDefaultFontFamily() const
90 {
91   mToolkitStyleMonitor->mFunctionsCalled.GetDefaultFontFamily = true;
92   return ToolkitStyleMonitor::DEFAULT_FONT_FAMILY;
93 }
94
95 float StyleMonitor::GetDefaultFontSize() const
96 {
97   mToolkitStyleMonitor->mFunctionsCalled.GetDefaultFontSize = true;
98   return ToolkitStyleMonitor::DEFAULT_FONT_SIZE;
99 }
100
101 Dali::StyleMonitor::StyleChangeSignalV2& StyleMonitor::StyleChangeSignal()
102 {
103   mToolkitStyleMonitor->mFunctionsCalled.SignalStyleChange = true;
104   return mStyleChangeSignal;
105 }
106
107 } // namespace Adaptor
108
109 } // namespace Internal
110
111 ////////////////////////////////////////////////////////////////////////////////////////////////////
112
113 const std::string ToolkitStyleMonitor::DEFAULT_FONT_FAMILY("DefaultFont");
114 const float       ToolkitStyleMonitor::DEFAULT_FONT_SIZE(1.0f);
115
116 ToolkitStyleMonitor::ToolkitStyleMonitor()
117 : mStyleMonitorStub(new Internal::Adaptor::StyleMonitor(this)),
118   mStyleMonitor( mStyleMonitorStub )
119 {
120   gToolkitStyleMonitor = this;
121 }
122
123 ToolkitStyleMonitor::~ToolkitStyleMonitor()
124 {
125   gToolkitStyleMonitor = NULL;
126 }
127
128 StyleMonitor ToolkitStyleMonitor::GetStyleMonitor()
129 {
130   return mStyleMonitor;
131 }
132
133 void ToolkitStyleMonitor::EmitSignalStyleChange(StyleChange styleChange)
134 {
135   mStyleMonitorStub->EmitStyleChangeSignal(styleChange);
136 }
137
138 } // namespace Dali