2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.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://www.apache.org/licenses/LICENSE-2.0/
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 <FSysSystemInfo.h>
29 #include <FUiCtrlFooter.h>
30 #include "FUi_ControlImpl.h"
31 #include "FUiCtrl_Button.h"
32 #include "FUiCtrl_Toolbar.h"
34 namespace Tizen { namespace Ui { namespace Controls
37 class _PublicActionEvent;
39 const int FOOTER_MAX_STATE_COUNT = 7;
40 const int FOOTER_BUTTON_MAX_STATE_COUNT = 4;
41 const int FOOTER_MAX_ITEM_COUNT_WITH_BUTTON = 3;
42 const int FOOTER_BUTTON_MAX_COUNT = 3;
43 const int FOOTER_ITEM_MAX_COUNT = 15;
44 const int FOOTER_ACTION_ID_MIN = 0;
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 SetButtonBadgeIcon(ButtonPosition position, const Tizen::Graphics::Bitmap* pBadgeIcon);
147 result SetButtonNumberedBadgeIcon(ButtonPosition position, int number);
149 result SetColor(const Tizen::Graphics::Color& color);
151 result SetStyle(FooterStyle style);
153 result SetTabEditModeEnabled(bool enable);
155 result SetTransparent(bool transparent);
157 Tizen::Graphics::Rectangle GetButtonBounds(ButtonPosition position) const;
159 Tizen::Graphics::FloatRectangle GetButtonBoundsF(ButtonPosition position) const;
161 void AddActionEventListener(Tizen::Ui::IActionEventListener& listener);
163 void RemoveActionEventListener(Tizen::Ui::IActionEventListener& listener);
165 virtual void OnActionPerformed(const Tizen::Ui::_Control& source, int actionId);
169 result CheckItemValidate(const FooterItem& item);
171 result CheckItemExceed(const FooterItem& item);
173 _Button* ConvertButtonItem(const ButtonItem& buttonItem);
175 _Button* ConvertFooterItem(const FooterItem& footerItem);
177 ButtonItemStatus ConvertButtonItemStatus(_ButtonStatus status) const;
179 FooterItemStatus ConvertFooterItemStatus(_ButtonStatus status) const;
181 _ButtonStatus ConvertButtonStatus(ButtonItemStatus status) const;
183 _ButtonStatus ConvertButtonStatus(FooterItemStatus status) const;
185 ToolbarStyle ConvertFooterStyle(FooterStyle style);
187 virtual void OnChangeLayout(_ControlOrientation orientation);
189 _FooterImpl(const _FooterImpl&);
191 _FooterImpl& operator =(const _FooterImpl&);
195 //bool __calledBySetItemSelected;
199 _PublicActionEvent* __pPublicActionEvent;
203 }}} // Tizen::Ui::Controls
205 #endif // _FUI_CTRL_INTERNAL_FOOTER_IMPL_H_