1 #ifndef __DALI_INTERNAL_WIDGET_H__
2 #define __DALI_INTERNAL_WIDGET_H__
5 * Copyright (c) 2017 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
22 #include <dali/public-api/object/base-object.h>
24 #include <dali/public-api/common/vector-wrapper.h>
25 #include <widget_base.h>
29 #include <widget-application.h>
30 #include <widget-application-impl.h>
42 typedef IntrusivePtr<Widget> WidgetPtr;
45 * Implementation of the Application class.
47 class Widget : public BaseObject
50 typedef Dali::Widget::WidgetCreateSignalType WidgetCreateSignalType;
51 typedef Dali::Widget::WidgetTerminateSignalType WidgetTerminateSignalType;
52 typedef Dali::Widget::WidgetPauseSignalType WidgetPauseSignalType;
53 typedef Dali::Widget::WidgetResumeSignalType WidgetResumeSignalType;
54 typedef Dali::Widget::WidgetResizeSignalType WidgetResizeSignalType;
55 typedef Dali::Widget::WidgetUpdateSignalType WidgetUpdateSignalType;
59 * @param[in] application WidgetApplication for managing widget instance
60 * @param[in] id Id for widget class
62 static Dali::Widget New( const std::string& id );
67 * @copydoc Dali::Widget::InitSignal()
69 WidgetCreateSignalType& CreateSignal(){ return mCreateSignal; }
72 * @copydoc Dali::Widget::TerminateSignal()
74 WidgetTerminateSignalType& TerminateSignal(){ return mTerminateSignal; }
77 * @copydoc Dali::Widget::PauseSignal()
79 WidgetPauseSignalType& PauseSignal(){ return mPauseSignal; }
82 * @copydoc Dali::Widget::ResumeSignal()
84 WidgetResumeSignalType& ResumeSignal(){ return mResumeSignal; }
87 * @copydoc Dali::Widget::ResizeSignal()
89 WidgetResizeSignalType& ResizeSignal(){ return mResizeSignal; }
92 * @copydoc Dali::Widget::UpdateSignal()
94 WidgetUpdateSignalType& UpdateSignal(){ return mUpdateSignal; }
100 * @param[in] id Id for widget class
102 Widget( const std::string& id );
110 Widget(const Widget&);
111 Widget& operator=(Widget&);
115 WidgetCreateSignalType mCreateSignal;
116 WidgetTerminateSignalType mTerminateSignal;
117 WidgetPauseSignalType mPauseSignal;
118 WidgetResumeSignalType mResumeSignal;
119 WidgetResizeSignalType mResizeSignal;
120 WidgetUpdateSignalType mUpdateSignal;
121 const std::string mClassId;
124 SlotDelegate< Widget > mSlotDelegate;
127 inline Widget& GetImplementation(Dali::Widget& widget)
129 DALI_ASSERT_ALWAYS(widget && "widget handle is empty");
131 BaseObject& handle = widget.GetBaseObject();
133 return static_cast<Internal::Adaptor::Widget&>(handle);
136 inline const Widget& GetImplementation(const Dali::Widget& widget)
138 DALI_ASSERT_ALWAYS(widget && "widget handle is empty");
140 const BaseObject& handle = widget.GetBaseObject();
142 return static_cast<const Internal::Adaptor::Widget&>(handle);
145 } // namespace Adaptor
147 } // namespace Internal
150 #endif // __DALI_INTERNAL_WIDGET_H__