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_ContextMenuGridPresenter.h
19 * @brief This is the header file for the _ContextMenuGridPresenter class.
21 * This header file contains the declarations of the %_ContextMenuGridPresenter class.
23 #ifndef _FUI_CTRL_INTERNAL_CONTEXTMENU_GRID_PRESENTER_H_
24 #define _FUI_CTRL_INTERNAL_CONTEXTMENU_GRID_PRESENTER_H_
26 #include <FGrp_TextTextObject.h>
27 #include "FUi_Control.h"
28 #include "FUiCtrl_ContextMenu.h"
29 #include "FUiCtrl_ContextMenuModel.h"
30 #include "FUiCtrl_IContextMenuPresenter.h"
32 namespace Tizen { namespace Ui { namespace Controls
36 class _ContextMenuModel;
37 class _ContextMenuItem;
40 * @class _ContextMenuGridPresenter
48 class _ContextMenuGridPresenter
49 : public _IContextMenuPresenter
53 _ContextMenuGridPresenter(_ContextMenu* pContextMenu);
54 virtual ~_ContextMenuGridPresenter(void);
58 virtual result Install(void);
59 virtual result Draw(void);
60 virtual result DrawBackground(Tizen::Graphics::Canvas* pCanvas);
61 virtual result DrawArrow(Tizen::Graphics::Canvas* pCanvas);
62 virtual result AddItem(const Base::String& text, int actionId, const Tizen::Graphics::Bitmap* normalBitmap, const Tizen::Graphics::Bitmap* pPressedBitmap, const Tizen::Graphics::Bitmap* pHighlightedBitmap);
63 virtual result InsertItem(int index, const Tizen::Base::String& text, int actionId, const Tizen::Graphics::Bitmap* normalBitmap, const Tizen::Graphics::Bitmap* pPressedBitmap, const Tizen::Graphics::Bitmap* pHighlightedBitmap);
64 virtual result SetItem(int index, const Tizen::Base::String& text, int actionId, const Tizen::Graphics::Bitmap* normalBitmap, const Tizen::Graphics::Bitmap* pPressedBitmap, const Tizen::Graphics::Bitmap* pHighlightedBitmap);
65 virtual result DeleteItem(int index);
66 virtual result DeleteItemAll(void);
67 virtual int CalculateShowItemCount(void);
68 virtual result CalculateWindowRect(void);
69 virtual result ApplyColorProperty(void);
71 virtual _UiTouchEventDelivery OnPreviewTouchPressed(const _Control& source, const _TouchInfo& touchinfo);
72 virtual _UiTouchEventDelivery OnPreviewTouchMoved(const _Control& source, const _TouchInfo& touchinfo);
73 virtual _UiTouchEventDelivery OnPreviewTouchReleased(const _Control& source, const _TouchInfo& touchinfo);
75 virtual bool OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo);
76 virtual bool OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo);
77 virtual bool OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo);
78 virtual bool OnTouchCanceled(const _Control& source, const _TouchInfo& touchinfo);
80 virtual void OnFontChanged(Tizen::Graphics::Font* pFont);
81 virtual void OnFontInfoRequested(unsigned long& style, int& size);
83 virtual void SetAllAccessibilityElement(void);
85 virtual _ContextMenuItemInfo GetItemFromPosition(const Tizen::Graphics::Point& position);
86 virtual _ContextMenuItemInfo FindItem(int index);
87 virtual result SetTopDrawnItemIndex(int index);
88 virtual result DrawBitmap(Tizen::Graphics::Canvas& canvas, const Tizen::Graphics::Rectangle& bounds, const Tizen::Graphics::Bitmap& bitmap);
92 result CalculateRect(void);
93 void AdjustItemLayout(void);
94 void AdjustItemPosition(void);
95 Tizen::Graphics::Dimension AdjustItemLayoutIconStyle(void);
96 Tizen::Graphics::Dimension AdjustItemLayoutTabStyle(void);
97 bool IsLayoutBitmapOnly(void);
99 _ContextMenuItem* CreateItem(const Base::String& text, int actionId, const Tizen::Graphics::Bitmap* pNormalBitmap, const Tizen::Graphics::Bitmap* pPressedBitmap, const Tizen::Graphics::Bitmap* pHighlightedBitmap);
100 result DrawItem(Tizen::Graphics::Canvas* pCanvas);
101 result DrawLine(Tizen::Graphics::Canvas* pCanvas, Tizen::Graphics::Point point1, Tizen::Graphics::Point point2, bool drawVLine);
102 void SetItemSize(_ContextMenuItem* pItem);
103 int GetItemIndexFromPosition(const Tizen::Graphics::Point& point) const;
104 int GetCountPerLine(int count, int min, int max) const;
106 _ContextMenuGridPresenter(const _ContextMenuGridPresenter& rhs);
107 _ContextMenuGridPresenter& operator =(const _ContextMenuGridPresenter& rhs);
111 _ContextMenu* __pContextMenu;
112 _ContextMenuModel* __pModel;
114 Tizen::Graphics::_Text::TextObject* __pTextObject;
115 Tizen::Graphics::Font* __pFont;
116 Tizen::Graphics::Dimension __layoutSize;
127 int __screenTopMargin;
128 int __screenBottomMargin;
129 int __screenLeftMargin;
130 int __screenRightMargin;
137 int __itemTextMargin;
139 int __itemBitmapWidth;
140 int __itemBitmapHeight;
143 }; // _ContextMenuGridPresenter
145 }}} // Tizen::Ui: Control
147 #endif //_FUI_CTRL_INTERNAL_CONTEXTMENU_GRID_PRESENTER_H_