1 #ifndef __DALI_WIDGET_VIEW_INTERNAL_WIDGET_VIEW_H__
2 #define __DALI_WIDGET_VIEW_INTERNAL_WIDGET_VIEW_H__
6 * Copyright (c) 2016 Samsung Electronics Co., Ltd.
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
12 * http://floralicense.org/license/
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.
22 #include <public_api/widget_view/widget_view.h>
25 #include <dali/public-api/adaptor-framework/native-image-source.h>
26 #include <dali-toolkit/public-api/controls/control-impl.h>
27 #include <dali-toolkit/public-api/controls/image-view/image-view.h>
28 #include <dali-toolkit/public-api/controls/text-controls/text-label.h>
29 #include <wayland-extension/tizen-remote-surface-client-protocol.h>
30 #include <tbm_surface.h>
42 class WidgetView : public Toolkit::Internal::Control
47 * @copydoc Dali::WidgetView::WidgetView::New
49 static Dali::WidgetView::WidgetView New( const std::string& widgetId, const std::string& contentInfo, int width, int height, double updatePeriod );
52 * @copydoc Dali::WidgetView::WidgetView::PauseWidget
57 * @copydoc Dali::WidgetView::WidgetView::ResumeWidget
62 * @copydoc Dali::WidgetView::WidgetView::GetWidgetId
64 const std::string& GetWidgetId() const;
67 * @copydoc Dali::WidgetView::WidgetView::GetInstanceId
69 const std::string& GetInstanceId() const;
72 * @copydoc Dali::WidgetView::WidgetView::GetContentInfo
74 const std::string& GetContentInfo();
77 * @copydoc Dali::WidgetView::WidgetView::GetTitle
79 const std::string& GetTitle();
82 * @copydoc Dali::WidgetView::WidgetView::GetUpdatePeriod
84 double GetUpdatePeriod() const;
87 * @copydoc Dali::WidgetView::WidgetView::Show
92 * @copydoc Dali::WidgetView::WidgetView::Hide
97 * @copydoc Dali::WidgetView::WidgetView::CancelTouchEvent
99 bool CancelTouchEvent();
102 * @copydoc Dali::WidgetView::WidgetView::SetPreviewEnabled
104 void SetPreviewEnabled( bool enabled );
107 * @copydoc Dali::WidgetView::WidgetView::GetPreviewEnabled
109 bool GetPreviewEnabled() const;
112 * @copydoc Dali::WidgetView::WidgetView::SetStateTextEnabled
114 void SetStateTextEnabled( bool enabled );
117 * @copydoc Dali::WidgetView::WidgetView::GetStateTextEnabled
119 bool GetStateTextEnabled() const;
122 * @copydoc Dali::WidgetView::WidgetView::ActivateFaultedWidget
124 void ActivateFaultedWidget();
127 * @copydoc Dali::WidgetView::WidgetView::IsWidgetFaulted
129 bool IsWidgetFaulted();
132 * @copydoc Dali::WidgetView::WidgetView::SetPermanentDelete
134 void SetPermanentDelete( bool permanentDelete );
136 // ToDo: This funstion will be used for widgetDeletedSignal
137 void RemoveObjectView();
139 void SendWidgetEvent( int event );
141 bool IsWidgetImageView();
143 void UpdateImageSource( tbm_surface_h source );
145 void CreateWidgetImageView();
147 void ConnectSignal( tizen_remote_surface* surface );
149 bool OnTouch( Dali::Actor actor, const Dali::TouchData& event );
151 bool OnWheelEvent( Dali::Actor actor, const Dali::WheelEvent& event );
156 * @copydoc Dali::WidgetView::WidgetView::WidgetAddedSignal
158 Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetAddedSignal();
161 * @copydoc Dali::WidgetView::WidgetView::WidgetDeletedSignal
163 Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetDeletedSignal();
166 * @copydoc Dali::WidgetView::WidgetView::WidgetCreationAbortedSignal
168 Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetCreationAbortedSignal();
171 * @copydoc Dali::WidgetView::WidgetView::WidgetResizedSignal
173 Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetResizedSignal();
176 * @copydoc Dali::WidgetView::WidgetView::WidgetContentUpdatedSignal
178 Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetContentUpdatedSignal();
181 * @copydoc Dali::WidgetView::WidgetView::WidgetExtraInfoUpdatedSignal
183 Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetExtraInfoUpdatedSignal();
186 * @copydoc Dali::WidgetView::WidgetView::WidgetUpdatePeriodChangedSignal
188 Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetUpdatePeriodChangedSignal();
191 * @copydoc Dali::WidgetView::WidgetView::WidgetFaultedSignal
193 Dali::WidgetView::WidgetView::WidgetViewSignalType& WidgetFaultedSignal();
198 * Construct a new WidgetView.
203 * Construct a new WidgetView.
205 WidgetView( const std::string& widgetId, const std::string& contentInfo, int width, int height, double updatePeriod );
208 * A reference counted object may only be deleted by calling Unreference()
210 virtual ~WidgetView();
212 private: // From Control
215 * @copydoc Toolkit::Control::OnInitialize()
217 virtual void OnInitialize();
219 private: // From CustomActorImpl
222 * @copydoc CustomActorImpl::OnSizeSet( const Vector3& targetSize )
224 virtual void OnSizeSet( const Vector3& targetSize );
229 WidgetView( const WidgetView& );
232 WidgetView& operator= ( const WidgetView& );
236 Toolkit::ImageView mWidgetImageView; ///< Widget content
237 Toolkit::ImageView mPreviewImage; ///< Preview image
238 Toolkit::TextLabel mStateText; ///< State text
239 Dali::NativeImageSourcePtr mImageSource;
241 std::string mWidgetId;
242 std::string mInstanceId;
243 std::string mContentInfo;
251 double mUpdatePeriod;
253 bool mPreviewEnabled;
254 bool mStateTextEnabled;
255 bool mPermanentDelete;
257 tizen_remote_surface* mRemoteSurface;
260 Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetAddedSignal;
261 Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetDeletedSignal;
262 Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetCreationAbortedSignal;
263 Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetResizedSignal;
264 Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetContentUpdatedSignal;
265 Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetExtraInfoUpdatedSignal;
266 Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetUpdatePeriodChangedSignal;
267 Dali::WidgetView::WidgetView::WidgetViewSignalType mWidgetFaultedSignal;
270 } // namespace Internal
272 // Helpers for public-api forwarding methods
274 inline Internal::WidgetView& GetImplementation( WidgetView& widgetView )
276 DALI_ASSERT_ALWAYS( widgetView );
278 Dali::RefObject& handle = widgetView.GetImplementation();
280 return static_cast<Internal::WidgetView&>( handle );
283 inline const Internal::WidgetView& GetImplementation( const WidgetView& widgetView )
285 DALI_ASSERT_ALWAYS( widgetView );
287 const Dali::RefObject& handle = widgetView.GetImplementation();
289 return static_cast<const Internal::WidgetView&>( handle );
292 } // namespace WidgetView
296 #endif // __DALI_WIDGET_VIEW_INTERNAL_WIDGET_VIEW_H__