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 FUiCtrlCustomItem.cpp
20 * @brief This is the implementation file for CustomItem class.
22 * This file contains the implementation of CustomItem class.
25 #include <FBaseSysLog.h>
26 #include <FUiCtrlCustomItem.h>
27 #include "FUiCtrl_CustomItemImpl.h"
29 using namespace Tizen::Base;
30 using namespace Tizen::Graphics;
32 namespace Tizen { namespace Ui { namespace Controls
35 CustomItem::CustomItem(void)
39 CustomItem::~CustomItem(void)
44 CustomItem::Construct(const Dimension& itemSize, ListAnnexStyle style)
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.");
52 pCustomImpl = _CustomItemImpl::CreateCustomItemImplN(this, itemSize, style);
53 SysTryReturn(NID_UI_CTRL, pCustomImpl != null, GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
61 CustomItem::AddElement(const Rectangle& rect, int elementId, const EnrichedText& text)
63 _CustomItemImpl* pImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
64 SysAssertf(pImpl != null, "Not yet constructed. Construct() should be called before use.");
66 return pImpl->AddElement(rect, elementId, text);
70 CustomItem::AddElement(const Rectangle& rect, int elementId, const String& text, bool textSliding)
72 _CustomItemImpl* pImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
73 SysAssertf(pImpl != null, "Not yet constructed. Construct() should be called before use.");
75 return pImpl->AddElement(rect, elementId, text, textSliding);
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)
82 _CustomItemImpl* pImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
83 SysAssertf(pImpl != null, "Not yet constructed. Construct() should be called before use.");
85 return pImpl->AddElement(rect, elementId, text, textSize, normalTextColor,
86 pressedTextColor, highlightedTextColor, textSliding);
90 CustomItem::AddElement(const Rectangle& rect, int elementId, const Bitmap& normalBitmap, const Bitmap* pPressedBitmap,
91 const Bitmap* pHighlightedbitmap)
93 _CustomItemImpl* pImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
94 SysAssertf(pImpl != null, "Not yet constructed. Construct() should be called before use.");
96 return pImpl->AddElement(rect, elementId, normalBitmap, pPressedBitmap, pHighlightedbitmap);
100 CustomItem::AddElement(const Rectangle& rect, int elementId, const ICustomElement& element)
102 _CustomItemImpl* pImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
103 SysAssertf(pImpl != null, "Not yet constructed. Construct() should be called before use.");
105 return pImpl->AddElement(rect, elementId, element);
109 CustomItem::RemoveAllElements(void)
111 _CustomItemImpl* pImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
112 SysAssertf(pImpl != null, "Not yet constructed. Construct() should be called before use.");
114 return pImpl->RemoveAllElements();
118 CustomItem::RemoveElement(int elementId)
120 _CustomItemImpl* pImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
121 SysAssertf(pImpl != null, "Not yet constructed. Construct() should be called before use.");
123 return pImpl->RemoveElement(elementId);
127 CustomItem::SetElementSelectionEnabled(int elementId, bool enable)
129 _CustomItemImpl* pImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
130 SysAssertf(pImpl != null, "Not yet constructed. Construct() should be called before use.");
132 return pImpl->SetElementSelectionEnabled(elementId, enable);
136 CustomItem::SetElementTextHorizontalAlignment(int elementId, HorizontalAlignment alignment)
138 _CustomItemImpl* pImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
139 SysAssertf(pImpl != null, "Not yet constructed. Construct() should be called before use.");
141 return pImpl->SetElementTextHorizontalAlignment(elementId, alignment);
145 CustomItem::SetElementTextVerticalAlignment(int elementId, VerticalAlignment alignment)
147 _CustomItemImpl* pImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
148 SysAssertf(pImpl != null, "Not yet constructed. Construct() should be called before use.");
150 return pImpl->SetElementTextVerticalAlignment(elementId, alignment);
154 CustomItem::SetElementAutoLinkMask(int elementId, unsigned long mask)
156 _CustomItemImpl* pImpl = static_cast<_CustomItemImpl*>(_ListItemBaseImpl::GetInstance(*this));
157 SysAssertf(pImpl != null, "Not yet constructed. Construct() should be called before use.");
159 return pImpl->SetElementAutoLinkMask(elementId, mask);
162 }}} // Tizen::Ui::Controls