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_OptionMenu.h
19 * @brief This is the header file for the _OptionMenu class.
22 #ifndef _FUI_CTRL_INTERNAL_OPTION_MENU_H_
23 #define _FUI_CTRL_INTERNAL_OPTION_MENU_H_
25 #include <FBaseColLinkedListT.h>
27 #include "FUi_Window.h"
28 #include "FUiCtrl_IActionEventListener.h"
29 #include "FUiCtrl_OptionMenuItem.h"
31 namespace Tizen { namespace Ui {
32 class _AccessibilityElement;
35 namespace Tizen { namespace Ui { namespace Controls
40 class _OptionMenuPresenter;
42 class _OSP_EXPORT_ _OptionMenu
43 : public Tizen::Ui::_Window
44 , public _IActionEventListener
45 , virtual public Tizen::Base::Runtime::IEventListener
46 , virtual public _IUiEventListener
47 , virtual public _IUiEventPreviewer
50 result AddActionEventListener(const _IActionEventListener& listener);
52 result RemoveActionEventListener(const _IActionEventListener& listener);
54 result FireActionEvent(int actionId);
56 result AddItem(const Tizen::Base::String& text, int actionId);
58 result InsertItemAt(int mainIndex, const Tizen::Base::String& text, int actionId);
60 result SetItemAt(int mainIndex, const Tizen::Base::String& text, int actionId);
62 result RemoveItemAt(int mainIndex);
64 int GetItemCount(void) const;
66 int GetItemIndexFromActionId(int actionId) const;
68 int GetItemActionIdAt(int mainIndex) const;
70 result AddSubItem(int mainIndex, const Tizen::Base::String& text, int actionId);
72 result InsertSubItemAt(int mainIndex, int subIndex, const Tizen::Base::String& text, int actionId);
74 result SetSubItemAt(int mainIndex, int subIndex, const Tizen::Base::String& text, int actionId);
76 result RemoveSubItemAt(int mainIndex, int subIndex);
78 int GetSubItemCount(int mainIndex) const;
80 int GetSubItemIndexFromActionId(int actionId) const;
82 int GetSubItemActionIdAt(int mainIndex, int subIndex) const;
84 bool IsSubMenuShown(void) const;
86 result ShowSubMenu(int mainIndex, _OptionMenuItem& item);
88 result DestroySubMenu(void);
90 Tizen::Ui::_AccessibilityElement* GetAccessibilityElement(int mainIndex);
94 virtual void OnDraw(void);
96 virtual void OnChangeLayout(Tizen::Ui::_ControlOrientation orientation);
98 virtual void OnBoundsChanged(void);
100 virtual result OnAttachingToMainTree(const Tizen::Ui::_Control* pParent);
102 virtual result OnAttachedToMainTree(void);
104 virtual result OnDetachingFromMainTree(void);
106 virtual void OnVisibleStateChanged(void);
109 virtual void OnActivated(void);
111 virtual void OnDeactivated(void);
113 // _ITouchEventListener
114 virtual bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
116 virtual bool OnTouchReleased(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
118 virtual bool OnTouchMoved(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
120 virtual bool OnTouchCanceled(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
122 // _IActionEventListener
123 virtual void OnActionPerformed(const Tizen::Ui::_Control& source, int actionId);
125 virtual ~_OptionMenu(void);
127 static _OptionMenu* CreateOptionMenuN(void);
129 virtual void OnFontChanged(Tizen::Graphics::Font* pFont);
130 virtual void OnFontInfoRequested(unsigned long& style, int& size);
135 _OptionMenu(const _OptionMenu&);
137 _OptionMenu& operator =(const _OptionMenu&);
139 void SetBoundsAllAccessibilityElement(void);
141 void RemoveAllAccessibilityElement(void);
144 _OptionMenuPresenter* __pOptionMenuPresenter;
146 _ActionEvent* __pActionEvent;
148 _ContextMenu* __pSubMenu;
152 Tizen::Base::Collection::LinkedListT<_AccessibilityElement*> __accessibilityElements;
155 }}} // Tizen::Ui::Controls
157 #endif // _FUI_CTRL_INTERNAL_OPTION_MENU_H_