2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://floralicense.org/license/
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
19 * @brief This is the header file for the _Tab class.
21 * This header file contains the declarations of the %_Tab class.
23 #ifndef _FUICTRL_INTERNAL_TAB_H_
24 #define _FUICTRL_INTERNAL_TAB_H_
27 #include <FUiControl.h>
28 #include "FUi_Control.h"
29 #include "FUi_ITouchLongPressGestureEventListener.h"
30 #include "FUi_ITouchFlickGestureEventListener.h"
31 #include "FUi_IAccessibilityListener.h"
32 #include "FUiCtrl_ActionEvent.h"
33 #include "FUiCtrl_IActionEventListener.h"
34 #include "FUiCtrl_TabItem.h"
35 #include "FUiCtrl_TabPresenter.h"
37 const int _TAB_STATE = 6;
38 const int _TAB_ACTION_ID_MIN = 0;
39 const int _TAB_ACTION_ID_MAX = 999;
40 const int _TAB_ITEM_MAXCOUNT = 14; // 3 Line
42 namespace Tizen { namespace Ui { namespace Controls {
44 class _PublicActionEvent;
51 _TAB_STATUS_NORMAL = 0, /** The normal status */
52 _TAB_STATUS_PRESSED, /** The pressed status */
53 _TAB_STATUS_SELECTED, /** The selected status */
54 _TAB_STATUS_HIGHLIGHTED, /** The focused status */
55 _TAB_STATUS_DISABLED, /** The disabled status */
77 class _OSP_EXPORT_ _Tab
78 : public Tizen::Ui::_Control
79 , public Tizen::Ui::_ITouchLongPressGestureEventListener
80 , public Tizen::Ui::_IAccessibilityListener
81 , virtual public Tizen::Base::Runtime::IEventListener
82 , virtual public Tizen::Ui::_IUiEventListener
83 , virtual public Tizen::Ui::_IUiEventPreviewer
84 , virtual public Tizen::Ui::_ITouchGestureEventListener
85 , virtual public Tizen::Ui::_ITouchFlickGestureEventListener
88 _Tab(const _Tab& value);
89 _Tab& operator=(const _Tab& value);
96 static _Tab* CreateTabN(void);
99 result SetPresenter(const _TabPresenter& tabPresenter);
103 result AddItem(const Tizen::Graphics::Bitmap& icon, const Tizen::Base::String& text, int actionId);
104 result AddItem(const Tizen::Graphics::Bitmap& icon, int actionId);
105 result AddItem(const Tizen::Base::String& text, int actionId);
107 result InsertItemAt(int index, const Tizen::Graphics::Bitmap& icon, const Tizen::Base::String& text, int actionId);
108 result InsertItemAt(int index, const Tizen::Graphics::Bitmap& icon, int actionId);
109 result InsertItemAt(int index, const Tizen::Base::String& text, int actionId);
111 result SetItemAt(int index, const Tizen::Graphics::Bitmap& icon, const Tizen::Base::String& text, int actionId);
112 result SetItemAt(int index, const Tizen::Graphics::Bitmap& icon, int actionId);
113 result SetItemAt(int index, const Tizen::Base::String& text, int actionId);
115 result RemoveItemAt(int index);
116 result RemoveAllItems(void);
118 bool ChangeItemAt(const int srcIndex, const int destIndex);
120 result SetBadgeIcon(int actionId, const Tizen::Graphics::Bitmap* pBadgeIcon);
122 int GetItemCount(void) const;
124 int GetItemIndexFromActionId(int actionId) const;
125 int GetItemActionIdAt(int index) const;
127 _TabItem* GetItemAt(int index);
130 void SetSelectedItemIndex(int index);
131 int GetSelectedItemIndex(void) const;
133 void SetFirstDrawnItemIndex(int index);
134 int GetFirstDrawnItemIndex(void) const;
136 void SetEditModeEnabled(bool enable);
137 bool IsEditModeEnabled(void) const;
139 result SetBackgroundBitmap(const Tizen::Graphics::Bitmap& bitmap);
140 Tizen::Graphics::Bitmap* GetBackgroundBitmap(void) const;
142 result SetPressedItemBackgroundBitmap(const Tizen::Graphics::Bitmap& bitmap);
143 Tizen::Graphics::Bitmap* GetPressedItemBackgroundBitmap(void) const;
145 result SetSelectedItemBackgroundBitmap(const Tizen::Graphics::Bitmap& bitmap);
146 Tizen::Graphics::Bitmap* GetSelectedItemBackgroundBitmap(void) const;
148 result SetHighlightedItemBackgroundBitmap(const Tizen::Graphics::Bitmap& bitmap);
149 Tizen::Graphics::Bitmap* GetHighlightedItemBackgroundBitmap(void) const;
151 void SetItemBackgroundColor(Tizen::Graphics::Color color);
152 Tizen::Graphics::Color GetItemBackgroundColor(void) const;
154 void SetPressedItemBackgroundColor(Tizen::Graphics::Color color);
155 Tizen::Graphics::Color GetPressedItemBackgroundColor(void) const;
157 void SetSelectedItemBackgroundColor(Tizen::Graphics::Color color);
158 Tizen::Graphics::Color GetSelectedItemBackgroundColor(void) const;
160 void SetHighlightedItemBackgroundColor(Tizen::Graphics::Color color);
161 Tizen::Graphics::Color GetHighlightedItemBackgroundColor(void) const;
163 void SetTextColor(const Tizen::Graphics::Color& textColor);
164 Tizen::Graphics::Color GetTextColor(void) const;
166 void SetPressedTextColor(const Tizen::Graphics::Color& textColor);
167 Tizen::Graphics::Color GetPressedTextColor(void) const;
169 void SetSelectedTextColor(const Tizen::Graphics::Color& textColor);
170 Tizen::Graphics::Color GetSelectedTextColor(void) const;
172 void SetHighlightedTextColor(const Tizen::Graphics::Color& textColor);
173 Tizen::Graphics::Color GetHighlightedTextColor(void) const;
175 void SetStyle(int style);
176 _TabStyle GetStyle(void) const;
178 void AddActionEventListener(const Tizen::Ui::Controls::_IActionEventListener& listener);
179 void RemoveActionEventListener(const Tizen::Ui::Controls::_IActionEventListener& listener);
181 virtual bool OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo);
182 virtual bool OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo);
183 virtual bool OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo);
185 virtual bool OnLongPressGestureDetected(_TouchLongPressGestureDetector& gesture);
186 virtual bool OnLongPressGestureCanceled(_TouchLongPressGestureDetector& gesture);
188 virtual bool OnFlickGestureDetected(_TouchFlickGestureDetector& gesture);
189 virtual bool OnFlickGestureCanceled(_TouchFlickGestureDetector& gesture);
191 virtual void OnDraw(void);
192 result OnAttachedToMainTree(void);
194 virtual void OnFontChanged(Tizen::Graphics::Font* pFont);
195 virtual void OnFontInfoRequested(unsigned long& style, int& size);
196 virtual void OnBoundsChanged(void);
198 void AddAccessibilityElement(const Tizen::Graphics::Rectangle& itemBounds, const Tizen::Base::String& itemText, _TabItemStatus status);
199 void RemoveAllAccessibilityElement(void);
201 // accessibility listener
202 virtual bool OnAccessibilityFocusMovedNext(const Tizen::Ui::_AccessibilityContainer& control, const Tizen::Ui::_AccessibilityElement& element);
203 virtual bool OnAccessibilityFocusMovedPrevious(const Tizen::Ui::_AccessibilityContainer& control, const Tizen::Ui::_AccessibilityElement& element);
204 virtual bool OnAccessibilityReadElement(const Tizen::Ui::_AccessibilityContainer& control, const Tizen::Ui::_AccessibilityElement& element);
205 virtual bool OnAccessibilityFocusIn(const Tizen::Ui::_AccessibilityContainer& control, const Tizen::Ui::_AccessibilityElement& element);
206 virtual bool OnAccessibilityFocusOut(const Tizen::Ui::_AccessibilityContainer& control, const Tizen::Ui::_AccessibilityElement& element);
207 virtual bool OnAccessibilityActionPerformed(const Tizen::Ui::_AccessibilityContainer& control, const Tizen::Ui::_AccessibilityElement& element);
208 virtual bool OnAccessibilityValueIncreased(const Tizen::Ui::_AccessibilityContainer&, const Tizen::Ui::_AccessibilityElement&);
209 virtual bool OnAccessibilityValueDecreased(const Tizen::Ui::_AccessibilityContainer&, const Tizen::Ui::_AccessibilityElement&);
212 int GetItemIndex(int actionId);
213 bool CheckDuplicatedActionId(int actionId);
214 result LoadBitmap(void);
217 _TabPresenter* __pTabPresenter;
220 _TabStatus __tabStatus;
221 Tizen::Base::Collection::ArrayList __tabItems;
223 Tizen::Ui::Controls::_ActionEvent* __pActionEvent;
225 _TouchLongPressGestureDetector* __pGestureLongPress;
226 _TouchFlickGestureDetector* __pFlickGesture;
228 Tizen::Graphics::Bitmap* __pBackgroundBitmap;
229 Tizen::Graphics::Bitmap* __pPressedItemBackgroundBitmap;
230 Tizen::Graphics::Bitmap* __pSelectedItemBackgroundBitmap;
231 Tizen::Graphics::Bitmap* __pHighlightedItemBackgroundBitmap;
233 Tizen::Graphics::Color __itemBgColor[_TAB_STATE];
234 Tizen::Graphics::Color __itemTextColor[_TAB_STATE];
236 Tizen::Base::Collection::LinkedListT<_AccessibilityElement*> __accessibilityElements;
239 }}} // Tizen::Ui::Controls
241 #endif // _FUICTRL_INTERNAL_TAB_H_