2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.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://www.apache.org/licenses/LICENSE-2.0/
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_ListContextItemImpl.cpp
20 * @brief This is the implementation file for _ListContextItemImpl class.
22 * This file contains the implementation of _ListContextItemImpl class.
25 #include <FBaseSysLog.h>
26 #include <FUiCtrlListContextItem.h>
27 #include "FUi_ResourceManager.h"
28 #include "FUiCtrl_ListContextItemImpl.h"
29 #include "FUiCtrl_ListViewContextItem.h"
31 #ifdef MEMORY_LEAK_CHECK
32 #include "mem_leak_check.h"
35 using namespace Tizen::Base;
36 using namespace Tizen::Graphics;
38 namespace Tizen { namespace Ui { namespace Controls
42 _ListContextItemImpl::GetInstance(ListContextItem& listContextItem)
44 return listContextItem.__pImpl;
47 const _ListContextItemImpl*
48 _ListContextItemImpl::GetInstance(const ListContextItem& listContextItem)
50 return listContextItem.__pImpl;
53 _ListContextItemImpl::_ListContextItemImpl(ListContextItem* pPublic)
55 , __pContextItem(null)
60 _ListContextItemImpl::~_ListContextItemImpl(void)
62 if (__pContextItem != null)
64 __pContextItem->Release();
69 _ListContextItemImpl::GetPublicClassName(void) const
71 return "Tizen::Ui::Controls::ListContextItem";
74 const ListContextItem&
75 _ListContextItemImpl::GetPublic(void) const
77 return static_cast <const ListContextItem&>(*__pPublic);
81 _ListContextItemImpl::GetPublic(void)
87 _ListContextItemImpl::CreateListContextItemImplN(ListContextItem* pPublic)
91 _ListContextItemImpl* pImpl = new (std::nothrow) _ListContextItemImpl(pPublic);
92 SysTryReturn(NID_UI_CTRL, pImpl != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient.");
94 r = pImpl->Construct();
95 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
107 _ListContextItemImpl::Construct(void)
109 __pContextItem = _ListViewContextItem::CreateListViewContextItemN(0.0f);
110 SysTryReturn(NID_UI_CTRL, (__pContextItem != null), E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient.");
112 Color bgColor(0, 0, 0, 0);
113 GET_COLOR_CONFIG(TABLEVIEW::CONTEXTITEM_BG_NORMAL, bgColor);
114 SetBackgroundColor(bgColor);
120 _ListContextItemImpl::AddElement(int elementId, const String& text, bool enable)
122 SysTryReturn(NID_UI_CTRL, (elementId >= 0) && (elementId <= Integer::VALUE_MAX), E_INVALID_ARG, E_INVALID_ARG,
123 ("[E_INVALID_ARG] The element ID should not be less than 0."));
125 SysTryReturn(NID_UI_CTRL, (__pContextItem->AddElement(elementId, text, enable) == true), E_SYSTEM, E_SYSTEM,
126 ("[E_SYSTEM] Unable to add an element."));
132 _ListContextItemImpl::AddElement(int elementId, const Bitmap& normalBitmap,
133 const Bitmap& pressedBitmap, const Bitmap* pHighlightedBitmap, bool enable)
135 SysTryReturn(NID_UI_CTRL, (elementId >= 0) && (elementId <= Integer::VALUE_MAX), E_INVALID_ARG, E_INVALID_ARG,
136 ("[E_INVALID_ARG] The element ID should not be less than 0."));
138 SysTryReturn(NID_UI_CTRL, (__pContextItem->AddElement(elementId, &normalBitmap, &pressedBitmap, pHighlightedBitmap, enable) == true),
139 E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Unable to add an element.");
145 _ListContextItemImpl::AddElement(int elementId, const String& text, const Bitmap& normalBitmap,
146 const Bitmap& pressedBitmap, const Bitmap* pHighlightedBitmap, bool enable)
148 SysTryReturn(NID_UI_CTRL, (elementId >= 0) && (elementId <= Integer::VALUE_MAX), E_INVALID_ARG, E_INVALID_ARG,
149 ("[E_INVALID_ARG] The element ID should not be less than 0."));
151 SysTryReturn(NID_UI_CTRL, (__pContextItem->AddElement(elementId, text, &normalBitmap, &pressedBitmap, pHighlightedBitmap, enable) == true),
152 E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Unable to add an element.");
158 _ListContextItemImpl::SetElementBackgroundColor(int elementId, ListContextItemElementStatus status, const Color& backgroundColor)
160 SysTryReturn(NID_UI_CTRL, (elementId >= 0) && (elementId <= Integer::VALUE_MAX) && __pContextItem->HasElement(elementId),
161 E_INVALID_ARG, E_INVALID_ARG, ("[E_INVALID_ARG] A specified elementId."));
163 bool ret = __pContextItem->SetElementBackgroundColor(elementId, (ListViewContextItemElementDrawingStatus)status, backgroundColor);
165 return (ret ? E_SUCCESS : E_INVALID_OPERATION);
169 _ListContextItemImpl::GetElementBackgroundColor(int elementId, ListContextItemElementStatus status) const
171 SysTryReturn(NID_UI_CTRL, (elementId >= 0) && (elementId <= Integer::VALUE_MAX) && __pContextItem->HasElement(elementId),
172 Color(0), E_INVALID_ARG, ("[E_INVALID_ARG] A specified elementId."));
174 return __pContextItem->GetElementBackgroundColor(elementId, (ListViewContextItemElementDrawingStatus)status);
178 _ListContextItemImpl::SetElementTextColor(int elementId, ListContextItemElementStatus status, const Color& textColor)
180 SysTryReturn(NID_UI_CTRL, (elementId >= 0) && (elementId <= Integer::VALUE_MAX) && __pContextItem->HasElement(elementId),
181 E_INVALID_ARG, E_INVALID_ARG, ("[E_INVALID_ARG] A specified elementId."));
183 bool ret = __pContextItem->SetElementTextColor(elementId, (ListViewContextItemElementDrawingStatus)status, textColor);
185 return (ret ? E_SUCCESS : E_INVALID_OPERATION);
189 _ListContextItemImpl::GetElementTextColor(int elementId, ListContextItemElementStatus status) const
191 SysTryReturn(NID_UI_CTRL, (elementId >= 0) && (elementId <= Integer::VALUE_MAX) && __pContextItem->HasElement(elementId),
192 Color(0), E_INVALID_ARG, ("[E_INVALID_ARG] A specified elementId."));
194 return __pContextItem->GetElementTextColor(elementId, (ListViewContextItemElementDrawingStatus)status);
198 _ListContextItemImpl::GetBackgroundColor(void) const
200 return __pContextItem->GetItemBackgroundColor(LIST_ITEM_STATE_NORMAL);
204 _ListContextItemImpl::SetBackgroundColor(const Color& color)
206 __pContextItem->SetItemBackgroundColor(LIST_ITEM_STATE_NORMAL, color);
207 __pContextItem->SetItemBackgroundColor(LIST_ITEM_STATE_PRESSED, color);
208 __pContextItem->SetItemBackgroundColor(LIST_ITEM_STATE_HIGHLIGHTED, color);
209 __pContextItem->SetItemChanged(true);
215 _ListContextItemImpl::SetBackgroundBitmap(const Bitmap* pBitmap)
217 __pContextItem->SetItemBackgroundBitmap(LIST_ITEM_STATE_NORMAL, pBitmap);
218 __pContextItem->SetItemChanged(true);
223 _ListViewContextItem*
224 _ListContextItemImpl::GetContextItem(void) const
226 return __pContextItem;
229 }}} // Tizen::Ui::Controls