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.
18 * @file FUiCtrl_ColorPickerImpl.cpp
19 * @brief This file contains implementation of _ColorPickerImpl class
21 * This file contains implementation of _ColorPickerImpl class.
24 #include "FUi_ResourceManager.h"
25 #include "FUi_ResourceSizeInfo.h"
26 #include "FUi_UiBuilder.h"
27 #include "FUiCtrl_ColorPickerImpl.h"
28 #include "FUiCtrl_ColorPickerPresenter.h"
29 #include "FUiCtrl_PublicColorChangeEvent.h"
31 using namespace Tizen::Graphics;
33 namespace Tizen { namespace Ui { namespace Controls
37 _ColorPickerImpl::ColorPickerSizeInfo::GetDefaultMaximumSize(_ControlOrientation orientation) const
40 Dimension colorPickerMaxSize;
42 r = GET_DIMENSION_CONFIG(COLORPICKER::DEFAULT_SIZE, orientation, colorPickerMaxSize);
43 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, colorPickerMaxSize, r, "[%s] Propagating.", GetErrorMessage(r));
45 return colorPickerMaxSize;
49 _ColorPickerImpl::ColorPickerSizeInfo::GetDefaultMinimumSize(_ControlOrientation orientation) const
52 Dimension colorPickerMinSize;
54 r = GET_DIMENSION_CONFIG(COLORPICKER::DEFAULT_SIZE, orientation, colorPickerMinSize);
55 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, colorPickerMinSize, r, "[%s] Propagating.", GetErrorMessage(r));
57 return colorPickerMinSize;
61 _ColorPickerImpl::GetInstance(ColorPicker& colorPicker)
63 return static_cast<_ColorPickerImpl*>(colorPicker._pControlImpl);
66 const _ColorPickerImpl*
67 _ColorPickerImpl::GetInstance(const ColorPicker& colorPicker)
69 return static_cast<const _ColorPickerImpl*>(colorPicker._pControlImpl);
72 _ColorPickerImpl::_ColorPickerImpl(ColorPicker& pPublic, _ColorPicker& pCore)
73 : _ControlImpl(&pPublic, &pCore)
74 , __pPublicColorChangeEvent(null)
76 __pPublicColorChangeEvent = _PublicColorChangeEvent::CreateInstanceN(pPublic);
77 pCore.AddColorChangeEventListener(*this);
80 _ColorPickerImpl::~_ColorPickerImpl(void)
82 if (__pPublicColorChangeEvent != null)
84 delete __pPublicColorChangeEvent;
85 __pPublicColorChangeEvent = null;
90 _ColorPickerImpl::CreateColorPickerImplN(ColorPicker& control)
93 _ColorPicker* pCore = _ColorPicker::CreateColorPickerN();
99 _ColorPickerImpl* pImpl = new (std::nothrow) _ColorPickerImpl(control, *pCore);
100 result r = CheckConstruction(pCore, pImpl);
106 Dimension defaultSize;
107 r = GET_DIMENSION_CONFIG(COLORPICKER::DEFAULT_SIZE, pCore->GetOrientation(), defaultSize);
113 r = pImpl->InitializeBoundsProperties(GET_SIZE_INFO(ColorPicker), defaultSize, pCore->GetOrientation());
125 const Tizen::Graphics::Color
126 _ColorPickerImpl::GetColor(void) const
130 return GetCore().GetPropertyColor().ToColor();
134 _ColorPickerImpl::GetHue(void) const
138 return GetCore().GetPropertyHue().ToInt();
142 _ColorPickerImpl::GetSaturation(void) const
146 return GetCore().GetPropertySaturation().ToInt();
150 _ColorPickerImpl::GetLuminance(void) const
154 return GetCore().GetPropertyLuminance().ToInt();
158 _ColorPickerImpl::SetColor(const Tizen::Graphics::Color& color)
161 Variant varColor(color);
163 return GetCore().SetPropertyColor(varColor);
167 _ColorPickerImpl::SetHue(int hue)
172 return GetCore().SetPropertyHue(varHue);
176 _ColorPickerImpl::SetSaturation(int saturation)
179 Variant varSaturation(saturation);
181 return GetCore().SetPropertySaturation(varSaturation);
185 _ColorPickerImpl::SetLuminance(int luminance)
188 Variant varLuminance(luminance);
190 return GetCore().SetPropertyLuminance(varLuminance);
194 _ColorPickerImpl::AddColorChangeEventListener(Tizen::Ui::IColorChangeEventListener& listener)
197 result r = E_SUCCESS;
199 SysTryReturnResult(NID_UI_CTRL, (__pPublicColorChangeEvent != null), E_SYSTEM, "A system error has occurred. The _PublicColorChangeEvent instance is null.");
201 r = __pPublicColorChangeEvent->AddListener(listener);
203 SysTryReturnResult(NID_UI_CTRL, (r != E_OBJ_ALREADY_EXIST), E_SYSTEM,
204 "A system error has occurred. The IColorChangeEventListener instance already exists in the event listener list.");
210 _ColorPickerImpl::RemoveColorChangeEventListener(Tizen::Ui::IColorChangeEventListener& listener)
213 result r = E_SUCCESS;
215 SysTryReturnResult(NID_UI_CTRL, __pPublicColorChangeEvent != null, E_SYSTEM, "A system error has occurred. The _PublicColorChangeEvent instance is null.");
217 r = __pPublicColorChangeEvent->RemoveListener(listener);
219 SysTryReturnResult(NID_UI_CTRL, (r != E_OBJ_NOT_FOUND), E_SYSTEM,
220 "A system error has occurred. The IColorChangeEventListener instance does not exist in the event listener list.");
226 _ColorPickerImpl::GetPublic(void)
228 return static_cast <ColorPicker&>(_ControlImpl::GetPublic());
232 _ColorPickerImpl::GetPublic(void) const
234 return static_cast <const ColorPicker&>(_ControlImpl::GetPublic());
238 _ColorPickerImpl::GetCore(void)
240 return static_cast <_ColorPicker&>(_ControlImpl::GetCore());
244 _ColorPickerImpl::GetCore(void) const
246 return static_cast <const _ColorPicker&>(_ControlImpl::GetCore());
250 _ColorPickerImpl::GetPublicClassName(void) const
252 return "Tizen::Ui::Controls::ColorPicker";
256 _ColorPickerImpl::OnColorChanged(const Tizen::Ui::_Control& source, const Tizen::Graphics::Color& color)
258 Tizen::Base::Runtime::IEventArg * pColorChangeEventArg = _PublicColorChangeEvent::CreateColorChangeEventArgN(color);
259 if (pColorChangeEventArg == null)
264 __pPublicColorChangeEvent->Fire(*pColorChangeEventArg);
269 class _ColorPickerMaker
270 : public _UiBuilderControlMaker
273 _ColorPickerMaker(_UiBuilder* pUibuilder)
274 : _UiBuilderControlMaker(pUibuilder)
278 virtual ~_ColorPickerMaker(void)
282 static _UiBuilderControlMaker*
283 GetInstance(_UiBuilder* uibuilder)
285 _ColorPickerMaker* pColorPickerMaker = new (std::nothrow) _ColorPickerMaker(uibuilder);
286 return pColorPickerMaker;
291 Make(_UiBuilderControl* pControl)
293 result r = E_SUCCESS;
294 _UiBuilderControlLayout* pControlProperty = null;
295 ColorPicker* pColorPicker = null;
299 GetProperty(pControl, &pControlProperty);
300 SysTryReturn(NID_UI_CTRL, (pControlProperty != null), null, E_SYSTEM,
301 "[E_SYSTEM] A system error has occurred. Failed to read the attributes.");
303 pColorPicker = new (std::nothrow) ColorPicker;
304 SysTryReturn(NID_UI_CTRL, (pColorPicker != null), null, E_OUT_OF_MEMORY,
305 "[E_OUT_OF_MEMORY] Memory allocation failed.");
307 rect = pControlProperty->GetRect();
312 r = pColorPicker->Construct(point);
323 _ColorPickerRegister::_ColorPickerRegister(void)
325 _UiBuilderControlTableManager* pUiBuilderControlTableManager = _UiBuilderControlTableManager::GetInstance();
326 pUiBuilderControlTableManager->RegisterControl(L"ColorPicker", _ColorPickerMaker::GetInstance);
329 _ColorPickerRegister::~_ColorPickerRegister(void)
331 _UiBuilderControlTableManager* pUiBuilderControlTableManager = _UiBuilderControlTableManager::GetInstance();
332 pUiBuilderControlTableManager->UnregisterControl(L"ColorPicker");
335 static _ColorPickerRegister ColorPickerRegisterToUiBuilder;
336 }}} // Tizen::Ui::Controls