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.
18 * @file FUiCtrl_TabBar.h
19 * @brief This is the header file for the _TabBar class.
21 * This header file contains the declarations of the %_TabBar class.
23 #ifndef _FUI_CTRL_INTERNAL_TABBAR_H_
24 #define _FUI_CTRL_INTERNAL_TABBAR_H_
27 #include "FUi_Control.h"
28 #include "FUiCtrl_TabBarItem.h"
29 #include "FUiCtrl_TabBarPresenter.h"
30 #include "FUiCtrl_IActionEventListener.h"
31 #include "FUiCtrl_ActionEvent.h"
33 namespace Tizen { namespace Ui {
34 class _AccessibilityElement;
37 namespace Tizen { namespace Ui { namespace Controls
40 class _TabBarPresenter;
51 class _OSP_EXPORT_ _TabBar
52 : public Tizen::Ui::_Control
53 , virtual public Tizen::Base::Runtime::IEventListener
54 , virtual public _IUiEventListener
55 , virtual public _IUiEventPreviewer
57 DECLARE_CLASS_BEGIN(_TabBar, _Control);
58 DECLARE_PROPERTY("color", GetPropertyColor, SetPropertyColor);
59 DECLARE_PROPERTY("normalItemColor", GetPropertyNormalItemColor, SetPropertyNormalItemColor);
60 DECLARE_PROPERTY("selectedItemColor", GetPropertySelectedItemColor, SetPropertySelectedItemColor);
61 DECLARE_PROPERTY("highlightedItemColor", GetPropertyHighlightedItemColor, SetPropertyHighlightedItemColor);
62 DECLARE_PROPERTY("normalItemTextColor", GetPropertyNormalItemTextColor, SetPropertyNormalItemTextColor);
63 DECLARE_PROPERTY("selectedItemTextColor", GetPropertySelectedItemTextColor, SetPropertySelectedItemTextColor);
64 DECLARE_PROPERTY("highlightedItemTextColor", GetPropertyHighlightedItemTextColor, SetPropertyHighlightedItemTextColor);
68 result SetPropertyColor(const Variant& color);
69 Variant GetPropertyColor(void) const;
71 result SetPropertyNormalItemColor(const Variant& color);
72 Variant GetPropertyNormalItemColor(void) const;
74 result SetPropertySelectedItemColor(const Variant& color);
75 Variant GetPropertySelectedItemColor(void) const;
77 result SetPropertyHighlightedItemColor(const Variant& color);
78 Variant GetPropertyHighlightedItemColor(void) const;
80 result SetPropertyNormalItemTextColor(const Variant& color);
81 Variant GetPropertyNormalItemTextColor(void) const;
83 result SetPropertySelectedItemTextColor(const Variant& color);
84 Variant GetPropertySelectedItemTextColor(void) const;
86 result SetPropertyHighlightedItemTextColor(const Variant& color);
87 Variant GetPropertyHighlightedItemTextColor(void) const;
91 virtual ~_TabBar(void);
95 static _TabBar* CreateTabBarN(void);
96 result Initialize(void);
97 result AddItem(const Tizen::Base::String& text, int actionId);
98 result InsertItemAt(int index, const Tizen::Base::String& text, int actionId);
99 result SetItemAt(int index, const Tizen::Base::String& text, int actionId);
100 result RemoveItemAt(int index);
101 result RemoveAllItems(void);
103 result SetColor(Tizen::Graphics::Color color);
104 Tizen::Graphics::Color GetColor(void) const;
106 result SetItemColor(_TabBarItemStatus itemStatus, Tizen::Graphics::Color color);
107 Tizen::Graphics::Color GetItemColor(_TabBarItemStatus itemStatus) const;
109 void SetItemTextColor(_TabBarItemStatus status, Tizen::Graphics::Color color);
110 Tizen::Graphics::Color GetItemTextColor(_TabBarItemStatus status) const;
112 result SetItemSelected(int index);
113 int GetSelectedItemIndex(void) const;
115 _TabBarItem* GetItemFromPosition(const Tizen::Graphics::Point& position) const;
116 result SetTopDrawnItemIndex(int index);
118 int GetItemCount(void) const;
120 result SetWidth(int width);
122 void AddActionEventListener(const Tizen::Ui::Controls::_IActionEventListener& listener);
123 void RemoveActionEventListener(const Tizen::Ui::Controls::_IActionEventListener& listener);
125 Tizen::Ui::_AccessibilityElement* GetAccessibilityElement(const int mainIndex) const;
126 void AddAccessibilityElement(const _AccessibilityElement& element);
128 virtual void OnDraw(void);
130 virtual void OnFontChanged(Tizen::Graphics::Font* pFont);
131 virtual void OnFontInfoRequested(unsigned long& style, int& size);
133 virtual bool OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo);
134 virtual bool OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo);
135 virtual bool OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo);
136 virtual void OnBoundsChanged(void);
139 result SetPresenter(const _TabBarPresenter& tabBarPresenter);
142 void SetAllAccessibilityElement(void);
143 void RemoveAllAccessibilityElement(void);
148 _TabBar(const _TabBar& rhs);
149 _TabBar& operator =(const _TabBar& rhs);
153 _TabBarPresenter* __pTabBarPresenter;
155 _ActionEvent* __pActionEvent;
157 Tizen::Graphics::Color __color;
158 Tizen::Graphics::Color __itemColor[ITEM_STATUS_MAX];
159 Tizen::Graphics::Color __itemTextColor[ITEM_STATUS_MAX];
160 Tizen::Base::Collection::LinkedListT<_AccessibilityElement*> __accessibilityElements;
163 }}} // Tizen::Ui::Controls
165 #endif // _FUI_CTRL_INTERNAL_TABBAR_H_