Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / controls / FUiCtrlCustomItem.cpp
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
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
8 //
9 //     http://floralicense.org/license/
10 //
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.
16 //
17
18 /**
19  * @file        FUiCtrlCustomItem.cpp
20  * @brief       This is the implementation file for CustomItem class.
21  *
22  * This file contains the implementation of CustomItem class.
23  */
24
25 #include <FBaseSysLog.h>
26 #include <FUiCtrlCustomItem.h>
27 #include "FUiCtrl_CustomItemImpl.h"
28
29 using namespace Tizen::Base;
30 using namespace Tizen::Graphics;
31
32 namespace Tizen { namespace Ui { namespace Controls
33 {
34
35 CustomItem::CustomItem(void)
36 {
37 }
38
39 CustomItem::~CustomItem(void)
40 {
41 }
42
43 result
44 CustomItem::Construct(const Dimension& itemSize, ListAnnexStyle style)
45 {
46         result r = E_SUCCESS;
47
48         _CustomItemImpl* pCustomImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
49         SysAssertf(pCustomImpl == null,
50                                   "Already constructed. Calling Construct() twice or more on a same instance is not allowed for this class.");
51
52         pCustomImpl = _CustomItemImpl::CreateCustomItemImplN(this, itemSize, style);
53         SysTryReturn(NID_UI_CTRL, pCustomImpl != null, GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
54
55         _pImpl = pCustomImpl;
56
57         return r;
58 }
59
60 result
61 CustomItem::AddElement(const Rectangle& rect, int elementId, const EnrichedText& text)
62 {
63         _CustomItemImpl* pImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
64         SysAssertf(pImpl != null, "Not yet constructed. Construct() should be called before use.");
65
66         return pImpl->AddElement(rect, elementId, text);
67 }
68
69 result
70 CustomItem::AddElement(const Rectangle& rect, int elementId, const String& text, bool textSliding)
71 {
72         _CustomItemImpl* pImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
73         SysAssertf(pImpl != null, "Not yet constructed. Construct() should be called before use.");
74
75         return pImpl->AddElement(rect, elementId, text, textSliding);
76 }
77
78 result
79 CustomItem::AddElement(const Rectangle& rect, int elementId, const String& text, int textSize, const Color& normalTextColor,
80                 const Color& pressedTextColor, const Color& highlightedTextColor, bool textSliding)
81 {
82         _CustomItemImpl* pImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
83         SysAssertf(pImpl != null, "Not yet constructed. Construct() should be called before use.");
84
85         return pImpl->AddElement(rect, elementId, text, textSize, normalTextColor,
86                                                          pressedTextColor, highlightedTextColor, textSliding);
87 }
88
89 result
90 CustomItem::AddElement(const Rectangle& rect, int elementId, const Bitmap& normalBitmap, const Bitmap* pPressedBitmap,
91                 const Bitmap* pHighlightedbitmap)
92 {
93         _CustomItemImpl* pImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
94         SysAssertf(pImpl != null, "Not yet constructed. Construct() should be called before use.");
95
96         return pImpl->AddElement(rect, elementId, normalBitmap, pPressedBitmap, pHighlightedbitmap);
97 }
98
99 result
100 CustomItem::AddElement(const Rectangle& rect, int elementId, const ICustomElement& element)
101 {
102         _CustomItemImpl* pImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
103         SysAssertf(pImpl != null, "Not yet constructed. Construct() should be called before use.");
104
105         return pImpl->AddElement(rect, elementId, element);
106 }
107
108 result
109 CustomItem::RemoveAllElements(void)
110 {
111         _CustomItemImpl* pImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
112         SysAssertf(pImpl != null, "Not yet constructed. Construct() should be called before use.");
113
114         return pImpl->RemoveAllElements();
115 }
116
117 result
118 CustomItem::RemoveElement(int elementId)
119 {
120         _CustomItemImpl* pImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
121         SysAssertf(pImpl != null, "Not yet constructed. Construct() should be called before use.");
122
123         return pImpl->RemoveElement(elementId);
124 }
125
126 result
127 CustomItem::SetElementSelectionEnabled(int elementId, bool enable)
128 {
129         _CustomItemImpl* pImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
130         SysAssertf(pImpl != null, "Not yet constructed. Construct() should be called before use.");
131
132         return pImpl->SetElementSelectionEnabled(elementId, enable);
133 }
134
135 result
136 CustomItem::SetElementTextHorizontalAlignment(int elementId, HorizontalAlignment alignment)
137 {
138         _CustomItemImpl* pImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
139         SysAssertf(pImpl != null, "Not yet constructed. Construct() should be called before use.");
140
141         return pImpl->SetElementTextHorizontalAlignment(elementId, alignment);
142 }
143
144 result
145 CustomItem::SetElementTextVerticalAlignment(int elementId, VerticalAlignment alignment)
146 {
147         _CustomItemImpl* pImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
148         SysAssertf(pImpl != null, "Not yet constructed. Construct() should be called before use.");
149
150         return pImpl->SetElementTextVerticalAlignment(elementId, alignment);
151 }
152
153 result
154 CustomItem::SetElementAutoLinkMask(int elementId, unsigned long mask)
155 {
156         _CustomItemImpl* pImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
157         SysAssertf(pImpl != null, "Not yet constructed. Construct() should be called before use.");
158
159         return pImpl->SetElementAutoLinkMask(elementId, mask);
160 }
161
162 }}} // Tizen::Ui::Controls