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_FooterImpl.h
19 * @brief This is the header file for the _FooterImp class.
21 * This header file contains the declarations of the %_FooterImp class.
24 #ifndef _FUI_CTRL_INTERNAL_FOOTER_IMPL_H_
25 #define _FUI_CTRL_INTERNAL_FOOTER_IMPL_H_
28 #include <FUiCtrlFooter.h>
29 #include "FUi_ControlImpl.h"
30 #include "FUiCtrl_Button.h"
31 #include "FUiCtrl_Toolbar.h"
33 namespace Tizen { namespace Ui { namespace Controls
36 class _PublicActionEvent;
38 const int FOOTER_MAX_STATE_COUNT = 7;
39 const int FOOTER_BUTTON_MAX_STATE_COUNT = 4;
40 const int FOOTER_MAX_ITEM_COUNT_WITH_BUTTON = 3;
41 const int FOOTER_BUTTON_MAX_COUNT = 3;
42 const int FOOTER_ITEM_MAX_COUNT = 15;
43 const int FOOTER_ACTION_ID_MIN = 0;
44 const int FOOTER_ACTION_ID_MAX = INT_MAX;
45 const int FOOTER_NUMBERD_BADGE_ICON_NUMBER_MAX = 99999;
49 , public _IActionEventListener
50 , virtual public Tizen::Base::Runtime::IEventListener
53 static _FooterImpl* CreateFooterImplN(Footer* pControl);
55 _FooterImpl(Footer* pPublic, _Toolbar* pCore);
57 virtual ~_FooterImpl(void);
59 Footer* GetFooter(void) const;
61 virtual const char* GetPublicClassName(void) const;
63 virtual const Footer& GetPublic(void) const;
65 virtual Footer& GetPublic(void);
67 virtual const _Toolbar& GetCore(void) const;
69 virtual _Toolbar& GetCore(void);
71 static const _FooterImpl* GetInstance(const Footer& footer);
73 static _FooterImpl* GetInstance(Footer& footer);
75 result AddItem(const FooterItem& item);
77 Tizen::Graphics::Color GetButtonColor(ButtonItemStatus status) const;
79 Tizen::Graphics::Color GetButtonTextColor(ButtonItemStatus status) const;
81 ButtonItemStatus GetButtonStatus(ButtonPosition position) const;
83 ButtonItemStatus GetBackButtonStatus(void) const;
85 Tizen::Graphics::Color GetItemColor(FooterItemStatus status) const;
87 int GetItemCount(void) const;
89 result GetItemStatus(int itemIndex, FooterItemStatus& status) const;
91 Tizen::Graphics::Color GetItemTextColor(FooterItemStatus status) const;
93 FooterStyle GetStyle(void) const;
95 int GetSelectedItemIndex(void) const;
97 Tizen::Graphics::Color GetColor(void) const;
99 result InsertItemAt(int itemIndex, const FooterItem& item);
101 bool IsButtonSet(ButtonPosition position) const;
103 bool IsBackButtonSet(void) const;
105 bool IsTabEditModeEnabled(void) const;
107 result RemoveAllButtons(void);
109 result RemoveButtonAt(ButtonPosition position);
111 result RemoveBackButton(void);
113 result RemoveAllItems(void);
115 result RemoveItemAt(int itemIndex);
117 result SetBackButton(void);
119 result SetBackgroundBitmap(const Tizen::Graphics::Bitmap* pBitmap);
121 result SetButton(ButtonPosition position, const ButtonItem& button);
123 result SetButtonColor(ButtonItemStatus status, const Tizen::Graphics::Color& color);
125 result SetButtonTextColor(ButtonItemStatus status, const Tizen::Graphics::Color& color);
127 result SetButtonEnabled(ButtonPosition position, bool enable);
129 result SetBackButtonEnabled(bool enable);
131 result SetItemAt(int itemIndex, const FooterItem& item);
133 result SetItemColor(FooterItemStatus status, const Tizen::Graphics::Color& color);
135 result SetItemEnabled(int itemIndex, bool enable);
137 result SetItemBadgeIcon(int itemIndex, const Tizen::Graphics::Bitmap* pBadgeIcon);
139 result SetItemTextColor(FooterItemStatus status, const Tizen::Graphics::Color& color);
141 result SetItemSelected(int itemIndex);
143 result SetItemNumberedBadgeIcon(int itemIndex, int number);
145 result SetColor(const Tizen::Graphics::Color& color);
147 result SetStyle(FooterStyle style);
149 result SetTabEditModeEnabled(bool enable);
151 result SetTransparent(bool transparent);
153 Tizen::Graphics::Rectangle GetButtonBounds(ButtonPosition position) const;
155 void AddActionEventListener(Tizen::Ui::IActionEventListener& listener);
157 void RemoveActionEventListener(Tizen::Ui::IActionEventListener& listener);
159 virtual void OnActionPerformed(const Tizen::Ui::_Control& source, int actionId);
163 result CheckItemValidate(const FooterItem& item);
165 _Button* ConvertButtonItem(const ButtonItem& buttonItem);
167 _Button* ConvertFooterItem(const FooterItem& footerItem);
169 ButtonItemStatus ConvertButtonItemStatus(_ButtonStatus status) const;
171 FooterItemStatus ConvertFooterItemStatus(_ButtonStatus status) const;
173 _ButtonStatus ConvertButtonStatus(ButtonItemStatus status) const;
175 _ButtonStatus ConvertButtonStatus(FooterItemStatus status) const;
177 ToolbarStyle ConvertFooterStyle(FooterStyle style);
179 virtual void OnChangeLayout(_ControlOrientation orientation);
181 _FooterImpl(const _FooterImpl&);
183 _FooterImpl& operator =(const _FooterImpl&);
187 //bool __calledBySetItemSelected;
191 _PublicActionEvent* __pPublicActionEvent;
195 }}} // Tizen::Ui::Controls
197 #endif // _FUI_CTRL_INTERNAL_FOOTER_IMPL_H_