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_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)
57 SysTryReturnVoidResult(NID_UI_CTRL, __pContextItem != null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is not sufficient.");
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);
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(LISTVIEW::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::GetBackgroundColor(void) const
160 return __pContextItem->GetItemBackgroundColor(LIST_ITEM_STATE_NORMAL);
164 _ListContextItemImpl::SetBackgroundColor(const Color& color)
166 __pContextItem->SetItemBackgroundColor(LIST_ITEM_STATE_NORMAL, color);
167 __pContextItem->SetItemBackgroundColor(LIST_ITEM_STATE_PRESSED, color);
168 __pContextItem->SetItemBackgroundColor(LIST_ITEM_STATE_HIGHLIGHTED, color);
169 __pContextItem->SetItemChanged(true);
175 _ListContextItemImpl::SetBackgroundBitmap(const Bitmap* pBitmap)
177 __pContextItem->SetItemBackgroundBitmap(LIST_ITEM_STATE_NORMAL, pBitmap);
178 __pContextItem->SetItemChanged(true);
183 _ListViewContextItem*
184 _ListContextItemImpl::GetContextItem(void) const
186 return __pContextItem;
189 }}} // Tizen::Ui::Controls