Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / inc / FUiCtrl_TabBarImpl.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
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
8 //
9 //     http://floralicense.org/license/
10 //
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.
16 //
17
18 #ifndef _FUI_CTRL_INTERNAL_TABBAR_IMPL_H_
19 #define _FUI_CTRL_INTERNAL_TABBAR_IMPL_H_
20
21 #include <FUiCtrlTabBar.h>
22 #include <FUiIActionEventListener.h>
23 #include "FUi_ControlImpl.h"
24 #include "FUiCtrl_TabBar.h"
25 #include "FUiCtrl_IActionEventListener.h"
26 #include "FUiCtrl_PublicActionEvent.h"
27
28 namespace Tizen { namespace Ui { namespace Controls
29 {
30
31 class _TabBarImpl
32         : public _ControlImpl
33         , public _IActionEventListener
34         , virtual public Tizen::Base::Runtime::IEventListener
35 {
36
37 //Constants
38 public:
39         class TabBarSizeInfo : public _ControlImpl::SizeInfo
40         {
41                 virtual Tizen::Graphics::Dimension GetDefaultMinimumSize(_ControlOrientation orientation) const;
42         };
43
44 public:
45         virtual ~_TabBarImpl(void);
46
47         static _TabBarImpl* CreateTabBarImplN(TabBar* pTabBar, const Tizen::Graphics::Rectangle& bounds);
48
49         result AddItem(const Tizen::Base::String& text, int actionId);
50         result InsertItemAt(int index, const Tizen::Base::String& text, int actionId);
51         result SetItemAt(int index, const Tizen::Base::String& text, int actionId);
52         result RemoveItemAt(int index);
53         result RemoveAllItems(void);
54
55
56         result SetColor(const Tizen::Graphics::Color& color);
57         Tizen::Graphics::Color GetColor(void) const;
58
59         result SetSelectedItemColor(const Tizen::Graphics::Color& color);
60         Tizen::Graphics::Color GetSelectedItemColor(void) const;
61
62         result SetItemTextColor(TabBarItemStatus status, const Tizen::Graphics::Color& color);
63         Tizen::Graphics::Color GetItemTextColor(TabBarItemStatus status) const;
64
65         result SetItemSelected(int index);
66         int GetSelectedItemIndex(void) const;
67
68         int GetItemCount(void) const;
69
70         result SetWidth(int width);
71
72         void AddActionEventListener(Tizen::Ui::IActionEventListener& listener);
73         void RemoveActionEventListener(Tizen::Ui::IActionEventListener& listener);
74
75         static _TabBarImpl* GetInstance(TabBar& tabBar);
76         static const _TabBarImpl* GetInstance(const TabBar& tabBar);
77
78         virtual TabBar& GetPublic(void);
79         virtual const TabBar& GetPublic(void) const;
80         virtual const char* GetPublicClassName(void) const;
81         virtual const _TabBar& GetCore(void) const;
82         virtual _TabBar& GetCore(void);
83
84         virtual void OnActionPerformed(const Tizen::Ui::_Control& source, int actionId);
85
86 private:
87         _TabBarImpl(TabBar* pTabBar, _TabBar* pCore);
88
89         _TabBarImpl(const _TabBarImpl& rhs);
90         _TabBarImpl& operator =(const _TabBarImpl& rhs);
91
92         _PublicActionEvent* __pPublicActionEvent;
93 }; // _TabBarImpl
94
95 }}} // Tizen::Ui::Controls
96
97 #endif //_FUI_CTRL_INTERNAL_TABBAR_IMPL_H_