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.
19 * @file FUiCtrl_IconListItem.h
20 * @brief This is the header file for the _IconListItem class.
23 #ifndef _FUI_CTRL_INTERNAL_ICON_LIST_ITEM_H_
24 #define _FUI_CTRL_INTERNAL_ICON_LIST_ITEM_H_
26 #include <FBaseString.h>
27 #include <FGrpBitmap.h>
28 #include <FGrpCanvas.h>
29 #include <FGrpColor.h>
30 #include <FGrpRectangle.h>
31 #include <FUiCtrlControlsTypes.h>
32 #include <FUiCtrlIconListViewTypes.h>
33 #include <FGrp_TextTextObject.h>
34 #include "FUiCtrl_LinkedList.h"
35 #include "FUiCtrl_ListItemCommon.h"
37 namespace Tizen { namespace Ui
43 } // Tizen::Ui::Animations
48 class IconListViewItem;
49 class _IconListItemDrawingProperty;
54 Tizen::Graphics::Bitmap* pBitmap;
55 HorizontalAlignment horizontalAlignment;
56 VerticalAlignment verticalAlignment;
57 Tizen::Ui::Animations::_VisualElement* pVE;
61 : public _ListItemCommon
66 virtual ~_IconListItem(void);
68 static _IconListItem* CreateIconListItemN(IconListViewItem* pIconListViewItem);
71 virtual bool DrawItem(Tizen::Graphics::Rectangle& rcItem, ListItemState isFocused, bool itemDivider = false);
72 virtual void SetChecked(bool checked);
73 virtual void SetItemIndex(int groupIndex, int itemIndex);
74 virtual void GetItemIndex(int& groupIndex, int& itemIndex) const;
76 result DrawItemTouchAnimation(Tizen::Graphics::Rectangle& rcItem, float ratio);
77 result DrawItemCheckAnimation(Tizen::Graphics::Rectangle& rcItem, float ratio);
79 result SetText(const Tizen::Base::String* pText);
81 const Tizen::Base::String& GetText(void) const;
83 result SetBitmap(IconListViewItemDrawingStatus status, const Tizen::Graphics::Bitmap* pBitmap);
85 const Tizen::Graphics::Bitmap* GetBitmap(IconListViewItemDrawingStatus status) const;
87 Tizen::Ui::Animations::_VisualElement* GetVisualElement(void) const;
89 void ClearVisualElement(void);
91 result SetDrawingProperty(_IconListItemDrawingProperty& property);
93 result SetOverlayBitmap(int overlayBitmapId, const Tizen::Graphics::Bitmap* pOverlayBitmap, HorizontalAlignment horizontalAlignment, VerticalAlignment verticalAlignment);
95 int GetOverlayBitmapIdFromPosition(Tizen::Graphics::Point& position) const;
97 Tizen::Ui::Animations::_VisualElement* GetItemVisualElement(void) const;
100 result DrawBitmap(Tizen::Graphics::Canvas& canvas, Tizen::Graphics::Bitmap& bitmap, bool isFocused = false, float ratio = 1.0f);
101 result DrawText(const Tizen::Graphics::Color& color);
102 result DrawCheck(Tizen::Graphics::Canvas& canvas, float ratio = 1.0f);
103 result DrawOverlayBitmaps(void);
106 _IconListItem(Tizen::Ui::Animations::_VisualElement* pBase);
107 _IconListItem(const _IconListItem& rhs);
108 _IconListItem& operator =(const _IconListItem& rhs);
110 Tizen::Graphics::Rectangle GetOverlayBitmapBounds(_OverlayBitmap* pOverlayBitmap, const Tizen::Graphics::Rectangle& parentRect, int overlayMargin) const;
116 static const int DEFAULT_GROUP_INDEX = 0;
117 static const int MAX_ITEM_TEXT_LINE_COUNT = 2;
118 static const float REFERENCE_FACTOR = 1.0f;
119 static const int OPAQUE_ALPHA = 255;
122 Tizen::Base::String __text;
123 Tizen::Graphics::Bitmap* __pBitmap[LIST_ITEM_STATE_MAX];
124 Tizen::Ui::Animations::_VisualElement* __pBase;
125 Tizen::Ui::Animations::_VisualElement* __pTextVE;
126 Tizen::Ui::Animations::_VisualElement* __pCheckVE;
127 _IconListItemDrawingProperty* __pProperty;
128 ListItemState __foreDrawnState;
131 Tizen::Graphics::_Text::TextObject* __pTextObject;
132 _LinkedList <_OverlayBitmap*> __overlayBitmaps;
135 }}} // Tizen::Ui::Controls
137 #endif // _FUI_CTRL_INTERNAL_ICON_LIST_ITEM_H_