[widget-viewer-dali] Change the license as Flora
[platform/core/uifw/widget-viewer-dali.git] / internal / widget_view / widget_view_impl.h
1 #ifndef __DALI_WIDGET_VIEW_INTERNAL_WIDGET_VIEW_H__
2 #define __DALI_WIDGET_VIEW_INTERNAL_WIDGET_VIEW_H__
3
4 /*
5  * Samsung API
6  * Copyright (c) 2016 Samsung Electronics Co., Ltd.
7  *
8  * Licensed under the Flora License, Version 1.1 (the License);
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://floralicense.org/license/
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an AS IS BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20
21 // INTERNAL INCLUDES
22 #include <public_api/widget_view/widget_view.h>
23
24 // EXTERNAL INCLUDES
25 #include <dali-toolkit/public-api/controls/control-impl.h>
26 #include <dali-toolkit/public-api/controls/image-view/image-view.h>
27 #include <dali-toolkit/public-api/controls/text-controls/text-label.h>
28 #include <pepper-dali/public-api/object-view/object-view.h>
29 #include <bundle.h>
30
31 namespace Dali
32 {
33
34 namespace WidgetView
35 {
36
37 namespace Internal
38 {
39
40 class WidgetView : public Toolkit::Internal::Control
41 {
42 public:
43
44   /**
45    * @copydoc Dali::WidgetView::WidgetView::New
46    */
47   static Dali::WidgetView::WidgetView New( const std::string& widgetId, const std::string& contentInfo, int width, int height, double updatePeriod );
48
49   /**
50    * @copydoc Dali::WidgetView::WidgetView::PauseWidget
51    */
52   bool PauseWidget();
53
54   /**
55    * @copydoc Dali::WidgetView::WidgetView::ResumeWidget
56    */
57   bool ResumeWidget();
58
59   /**
60    * @copydoc Dali::WidgetView::WidgetView::GetWidgetId
61    */
62   const std::string& GetWidgetId() const;
63
64   /**
65    * @copydoc Dali::WidgetView::WidgetView::GetInstanceId
66    */
67   const std::string& GetInstanceId() const;
68
69   /**
70    * @copydoc Dali::WidgetView::WidgetView::GetContentInfo
71    */
72   const std::string& GetContentInfo();
73
74   /**
75    * @copydoc Dali::WidgetView::WidgetView::GetTitle
76    */
77   const std::string& GetTitle();
78
79   /**
80    * @copydoc Dali::WidgetView::WidgetView::GetUpdatePeriod
81    */
82   double GetUpdatePeriod() const;
83
84   /**
85    * @copydoc Dali::WidgetView::WidgetView::Show
86    */
87   void Show();
88
89   /**
90    * @copydoc Dali::WidgetView::WidgetView::Hide
91    */
92   void Hide();
93
94   /**
95    * @copydoc Dali::WidgetView::WidgetView::CancelTouchEvent
96    */
97   bool CancelTouchEvent();
98
99   /**
100    * @copydoc Dali::WidgetView::WidgetView::SetPreviewEnabled
101    */
102   void SetPreviewEnabled( bool enabled );
103
104   /**
105    * @copydoc Dali::WidgetView::WidgetView::GetPreviewEnabled
106    */
107   bool GetPreviewEnabled() const;
108
109   /**
110    * @copydoc Dali::WidgetView::WidgetView::SetStateTextEnabled
111    */
112   void SetStateTextEnabled( bool enabled );
113
114   /**
115    * @copydoc Dali::WidgetView::WidgetView::GetStateTextEnabled
116    */
117   bool GetStateTextEnabled() const;
118
119   /**
120    * @copydoc Dali::WidgetView::WidgetView::ActivateFaultedWidget
121    */
122   void ActivateFaultedWidget();
123
124   /**
125    * @copydoc Dali::WidgetView::WidgetView::IsWidgetFaulted
126    */
127   bool IsWidgetFaulted();
128
129   /**
130    * @copydoc Dali::WidgetView::WidgetView::SetPermanentDelete
131    */
132   void SetPermanentDelete( bool permanentDelete );
133
134   void AddObjectView( Pepper::ObjectView objectView );
135   void RemoveObjectView();
136
137   void SendWidgetEvent( int event );
138
139 public: //Signals
140
141   /**
142    * @copydoc Dali::WidgetView::WidgetView::WidgetAddedSignal
143    */
144   Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetAddedSignal();
145
146   /**
147    * @copydoc Dali::WidgetView::WidgetView::WidgetDeletedSignal
148    */
149   Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetDeletedSignal();
150
151   /**
152    * @copydoc Dali::WidgetView::WidgetView::WidgetCreationAbortedSignal
153    */
154   Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetCreationAbortedSignal();
155
156   /**
157    * @copydoc Dali::WidgetView::WidgetView::WidgetResizedSignal
158    */
159   Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetResizedSignal();
160
161   /**
162    * @copydoc Dali::WidgetView::WidgetView::WidgetContentUpdatedSignal
163    */
164   Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetContentUpdatedSignal();
165
166   /**
167    * @copydoc Dali::WidgetView::WidgetView::WidgetExtraInfoUpdatedSignal
168    */
169   Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetExtraInfoUpdatedSignal();
170
171   /**
172    * @copydoc Dali::WidgetView::WidgetView::WidgetUpdatePeriodChangedSignal
173    */
174   Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetUpdatePeriodChangedSignal();
175
176   /**
177    * @copydoc Dali::WidgetView::WidgetView::WidgetFaultedSignal
178    */
179   Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetFaultedSignal();
180
181 protected:
182
183   /**
184    * Construct a new WidgetView.
185    */
186   WidgetView();
187
188   /**
189    * Construct a new WidgetView.
190    */
191   WidgetView( const std::string& widgetId, const std::string& contentInfo, int width, int height, double updatePeriod );
192
193   /**
194    * A reference counted object may only be deleted by calling Unreference()
195    */
196   virtual ~WidgetView();
197
198 private: // From Control
199
200   /**
201    * @copydoc Toolkit::Control::OnInitialize()
202    */
203   virtual void OnInitialize();
204
205 private: // From CustomActorImpl
206
207   /**
208    * @copydoc CustomActorImpl::OnSizeSet( const Vector3& targetSize )
209    */
210   virtual void OnSizeSet( const Vector3& targetSize );
211
212 private:
213
214   // Undefined
215   WidgetView( const WidgetView& );
216
217   // Undefined
218   WidgetView& operator= ( const WidgetView& );
219
220 private:
221
222   Pepper::ObjectView mObjectView;     ///< Widget content
223   Toolkit::ImageView mPreviewImage;   ///< Preview image
224   Toolkit::TextLabel mStateText;      ///< State text
225
226   std::string mWidgetId;
227   std::string mInstanceId;
228   std::string mContentInfo;
229   std::string mTitle;
230
231   bundle* mBundle;
232
233   int mWidth;
234   int mHeight;
235   int mPid;
236   double mUpdatePeriod;
237
238   bool mPreviewEnabled;
239   bool mStateTextEnabled;
240   bool mPermanentDelete;
241
242   // Signals
243   Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetAddedSignal;
244   Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetDeletedSignal;
245   Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetCreationAbortedSignal;
246   Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetResizedSignal;
247   Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetContentUpdatedSignal;
248   Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetExtraInfoUpdatedSignal;
249   Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetUpdatePeriodChangedSignal;
250   Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetFaultedSignal;
251 };
252
253 } // namespace Internal
254
255 // Helpers for public-api forwarding methods
256
257 inline Internal::WidgetView& GetImplementation( WidgetView& widgetView )
258 {
259   DALI_ASSERT_ALWAYS( widgetView );
260
261   Dali::RefObject& handle = widgetView.GetImplementation();
262
263   return static_cast<Internal::WidgetView&>( handle );
264 }
265
266 inline const Internal::WidgetView& GetImplementation( const WidgetView& widgetView )
267 {
268   DALI_ASSERT_ALWAYS( widgetView );
269
270   const Dali::RefObject& handle = widgetView.GetImplementation();
271
272   return static_cast<const Internal::WidgetView&>( handle );
273 }
274
275 } // namespace WidgetView
276
277 } // namespace Dali
278
279 #endif // __DALI_WIDGET_VIEW_INTERNAL_WIDGET_VIEW_H__