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_SliderPresenter.cpp
20 * @brief This is the implementation file for the _SliderPresenter class.
23 #include <FBaseSysLog.h>
24 #include <FBaseErrorDefine.h>
25 #include <FGrp_BitmapImpl.h>
26 #include <FGrp_FontImpl.h>
27 #include <FGrp_TextTextObject.h>
28 #include <FGrp_TextTextSimple.h>
29 #include "FUi_UiTouchEvent.h"
30 #include "FUi_ResourceManager.h"
31 #include "FUi_TouchManager.h"
32 #include "FUiAnim_VisualElement.h"
33 #include "FUiCtrl_Slider.h"
34 #include "FUiCtrl_SliderModel.h"
35 #include "FUiCtrl_SliderOverlay.h"
36 #include "FUi_CoordinateSystemUtils.h"
37 #include "FUiCtrl_SliderPresenter.h"
39 using namespace Tizen::Graphics;
40 using namespace Tizen::Base;
41 using namespace Tizen::Ui::Animations;
42 using namespace Tizen::Graphics::_Text;
43 using namespace Tizen::Base::Runtime;
45 namespace Tizen { namespace Ui { namespace Controls
48 _SliderPresenter::_SliderPresenter(void)
50 , __pSliderModel(null)
51 , __pSliderOverlay(null)
53 , __pResourceBgTopBitmap(null)
54 , __pResourceBgMiddleBitmap(null)
55 , __pResourceBgBottomBitmap(null)
56 , __pResourceBgSingleBitmap(null)
57 , __pBgTopBitmap(null)
58 , __pBgMiddleBitmap(null)
59 , __pBgBottomBitmap(null)
60 , __pBgSingleBitmap(null)
61 , __pBgGrpStyleNoneBitmap(null)
62 , __pBgTopEffectBitmap(null)
63 , __pBgMiddleEffectBitmap(null)
64 , __pBgBottomEffectBitmap(null)
65 , __pBgSingleEffectBitmap(null)
66 , __pResourceBarBitmap(null)
67 , __pResourceBarBgBitmap(null)
68 , __pBarResourceEffectBitmap(null)
69 , __pBarBgResourceEffectBitmap(null)
70 , __pBarColorReplacementBitmap(null)
71 , __pBarBgColorReplacementBitmap(null)
72 , __pHandleNormalBitmap(null)
73 , __pHandlePressedBitmap(null)
74 , __pHandleDisabledBitmap(null)
75 , __pHandleHighlightedBitmap(null)
76 , __pHandleNormalEffectBitmap(null)
77 , __pHandlePressedEffectBitmap(null)
78 , __pHandleDisabledEffectBitmap(null)
79 , __pHandleHighlightedEffectBitmap(null)
80 , __currentBarColor(0)
81 , __currentBarBgColor(0)
84 , __pTitleTextObject(null)
86 , __prevSliderValue(0)
88 , __isSliderPressed(false)
90 , __isFocusModeStateChanged(false)
91 , __isNeedToBeUpdated(true)
92 , __isResourceLoaded(false)
93 , __isCustomHandle(false)
94 , __isCustomPressedTextColor(false)
95 , __isTouchCanceled(false)
96 , __groupStyle(GROUP_STYLE_NONE)
99 , __isTimerRunning(false)
100 , __currentPosition(0.0f, 0.0f)
104 _SliderPresenter::~_SliderPresenter(void)
106 delete __pSliderModel;
107 __pSliderModel = null;
109 delete __pSliderOverlay;
110 __pSliderOverlay = null;
112 if (__pSlideTimer != null)
114 __pSlideTimer->Cancel();
115 delete __pSlideTimer;
116 __pSlideTimer = null;
119 delete __pResourceBgTopBitmap;
120 __pResourceBgTopBitmap = null;
122 delete __pResourceBgMiddleBitmap;
123 __pResourceBgMiddleBitmap = null;
125 delete __pResourceBgBottomBitmap;
126 __pResourceBgBottomBitmap = null;
128 delete __pResourceBgSingleBitmap;
129 __pResourceBgSingleBitmap = null;
131 delete __pBgTopBitmap;
132 __pBgTopBitmap = null;
134 delete __pBgMiddleBitmap;
135 __pBgMiddleBitmap = null;
137 delete __pBgBottomBitmap;
138 __pBgBottomBitmap = null;
140 delete __pBgSingleBitmap;
141 __pBgSingleBitmap = null;
143 delete __pBgGrpStyleNoneBitmap;
144 __pBgGrpStyleNoneBitmap = null;
146 delete __pBgTopEffectBitmap;
147 __pBgTopEffectBitmap = null;
149 delete __pBgMiddleEffectBitmap;
150 __pBgMiddleEffectBitmap = null;
152 delete __pBgBottomEffectBitmap;
153 __pBgBottomEffectBitmap = null;
155 delete __pBgSingleEffectBitmap;
156 __pBgSingleEffectBitmap = null;
158 delete __pResourceBarBitmap;
159 __pResourceBarBitmap = null;
161 delete __pResourceBarBgBitmap;
162 __pResourceBarBgBitmap = null;
164 delete __pBarResourceEffectBitmap;
165 __pBarResourceEffectBitmap = null;
167 delete __pBarBgResourceEffectBitmap;
168 __pBarBgResourceEffectBitmap = null;
170 delete __pBarColorReplacementBitmap;
171 __pBarColorReplacementBitmap = null;
173 delete __pBarBgColorReplacementBitmap;
174 __pBarBgColorReplacementBitmap = null;
176 delete __pHandleNormalBitmap;
177 __pHandleNormalBitmap = null;
179 delete __pHandlePressedBitmap;
180 __pHandlePressedBitmap = null;
182 delete __pHandleDisabledBitmap;
183 __pHandleDisabledBitmap = null;
185 delete __pHandleHighlightedBitmap;
186 __pHandleHighlightedBitmap = null;
188 delete __pHandleNormalEffectBitmap;
189 __pHandleNormalEffectBitmap = null;
191 delete __pHandlePressedEffectBitmap;
192 __pHandlePressedEffectBitmap = null;
194 delete __pHandleDisabledEffectBitmap;
195 __pHandleDisabledEffectBitmap = null;
197 delete __pHandleHighlightedEffectBitmap;
198 __pHandleHighlightedEffectBitmap = null;
200 delete __pTitleTextObject;
201 __pTitleTextObject = null;
206 _SliderPresenter::CreateInstanceN(const _Slider& slider)
208 result r = E_SUCCESS;
210 _SliderPresenter* pSliderPresenter = new (std::nothrow) _SliderPresenter;
211 SysTryReturn(NID_UI_CTRL, pSliderPresenter != null, null, E_OUT_OF_MEMORY,
212 "[E_OUT_OF_MEMORY] Memory allocation failed.");
214 pSliderPresenter->__pSlider = const_cast <_Slider*>(&slider);
215 SysTryCatch(NID_UI_CTRL, pSliderPresenter->__pSlider != null, , E_SYSTEM,
216 "[E_SYSTEM] A system error has occurred. The Slider control core is null.");
218 pSliderPresenter->__pSliderModel = new (std::nothrow) _SliderModel;
219 SysTryCatch(NID_UI_CTRL, pSliderPresenter->__pSliderModel != null, , E_OUT_OF_MEMORY,
220 "[E_OUT_OF_MEMORY] Memory allocation failed.");
222 if (pSliderPresenter->__pSlider->GetStyle() & _SLIDER_STYLE_OVERLAY)
224 pSliderPresenter->__pSliderOverlay = new (std::nothrow) _SliderOverlay;
225 SysTryCatch(NID_UI_CTRL, pSliderPresenter->__pSliderOverlay != null, , E_OUT_OF_MEMORY,
226 "[E_OUT_OF_MEMORY] Memory allocation failed.");
228 r = pSliderPresenter->__pSliderOverlay->Construct(*pSliderPresenter->__pSlider);
229 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
232 return pSliderPresenter;
235 delete pSliderPresenter;
236 pSliderPresenter = null;
242 _SliderPresenter::Resize(void)
244 result r = E_SUCCESS;
246 float barHeight = 0.0f;
247 float barLeftMargin = 0.0f;
248 float barRightMargin = 0.0f;
249 float sliderY = 0.0f;
250 float iconWidth = 0.0f;
251 float iconSideMargin = 0.0f;
252 float minimumHeight = 0.0f;
253 float minimumWidth = 0.0f;
254 float iconRightMargin = 0.0f;
255 float titleHeight = 0.0f;
256 FloatRectangle titleTextBounds;
258 _ControlOrientation orientation = _ControlManager::GetInstance()->GetOrientation();
260 if (__isResourceLoaded == false)
263 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
264 __isResourceLoaded = true;
266 r = GET_SHAPE_CONFIG(SLIDER::HANDLE_ONE_DIGIT_TEXT_SIZE, orientation, __fontSize);
267 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
269 __pFont = __pSlider->GetFallbackFont();
271 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
273 r = GET_COLOR_CONFIG(SLIDER::HANDLE_NUMBER_TEXT_NORMAL, __handleTextColor);
274 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
276 r = GET_COLOR_CONFIG(SLIDER::HANDLE_NUMBER_TEXT_DISABLED, __handleTextDisabledColor);
277 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
279 r = GET_COLOR_CONFIG(SLIDER::HANDLE_NUMBER_TEXT_PRESSED, __handleTextPressedColor);
280 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
282 r = GET_COLOR_CONFIG(SLIDER::HANDLE_NUMBER_TEXT_HIGHLIGHTED, __handleTextHighlightedColor);
283 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
287 r = GET_SHAPE_CONFIG(SLIDER::BAR_HEIGHT, orientation, barHeight);
288 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
290 r = GET_SHAPE_CONFIG(SLIDER::ICON_WIDTH, orientation, iconWidth);
291 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
293 r = GET_SHAPE_CONFIG(SLIDER::BAR_OFFSET, orientation, __barOffset);
294 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
296 if (!__isCustomHandle)
298 r = GET_SHAPE_CONFIG(SLIDER::HANDLE_OFFSET, orientation, __handleOffset);
299 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
301 r = GET_SHAPE_CONFIG(SLIDER::HANDLE_WIDTH, orientation, __handleRect.width);
302 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
304 r = GET_SHAPE_CONFIG(SLIDER::HANDLE_HEIGHT, orientation, __handleRect.height);
305 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
307 __rect = FloatRectangle(0.0f, 0.0f, __pSlider->GetBoundsF().width, __pSlider->GetBoundsF().height);
309 r = GET_SHAPE_CONFIG(SLIDER::ICON_RIGHT_MARGIN, orientation, iconRightMargin);
310 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
312 if ((__pSlider->GetIcon(ICON_POSITION_LEFT) != null) || (__pSlider->GetIcon(ICON_POSITION_RIGHT) != null))
314 r = GET_SHAPE_CONFIG(SLIDER::MINIMUM_WIDTH_WITH_ICON, orientation, minimumWidth);
315 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
317 r = GET_SHAPE_CONFIG(SLIDER::BAR_LEFT_MARGIN_WITH_ICON, orientation, barLeftMargin);
318 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
322 r = GET_SHAPE_CONFIG(SLIDER::MINIMUM_WIDTH_WITHOUT_ICON, orientation, minimumWidth);
323 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
325 r = GET_SHAPE_CONFIG(SLIDER::BAR_LEFT_MARGIN, orientation, barLeftMargin);
326 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
329 barRightMargin = barLeftMargin;
331 if (__rect.width < minimumWidth)
333 __rect.width = minimumWidth;
336 r = GET_SHAPE_CONFIG(SLIDER::MINIMUM_HEIGHT, orientation, minimumHeight);
337 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
339 if (__pSlider->GetStyle() & _SLIDER_STYLE_TITLE_TEXT)
341 r = GET_SHAPE_CONFIG(SLIDER::TITLE_TEXT_HEIGHT, orientation, titleHeight);
342 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
344 minimumHeight = minimumHeight + titleHeight;
347 if (__rect.height < minimumHeight)
349 __rect.height = minimumHeight;
352 if (__pSlider->GetStyle() & _SLIDER_STYLE_TITLE_TEXT)
354 titleTextBounds = GetTitleTextBounds();
355 sliderY = titleTextBounds.y + titleTextBounds.height;
356 __touchRect = FloatRectangle(barLeftMargin - __handleOffset , sliderY + (__rect.height - (sliderY + __handleRect.height)) / 2.0f,
357 __rect.width - (barLeftMargin + barRightMargin) + (2.0f * __handleOffset) , __handleRect.height);
361 __touchRect = FloatRectangle(barLeftMargin - __handleOffset, (__rect.height - __handleRect.height) / 2.0f,
362 (__rect.width - (barLeftMargin + barRightMargin)) + (2.0f * __handleOffset) , __handleRect.height);
365 if (__pSlider->GetIcon(ICON_POSITION_LEFT) != null)
367 __touchRect.x = __touchRect.x + iconWidth + iconRightMargin;
368 __touchRect.width = __touchRect.width - (iconWidth + iconRightMargin);
371 if (__pSlider->GetIcon(ICON_POSITION_RIGHT) != null)
373 __touchRect.width = __touchRect.width - (iconWidth + iconSideMargin + iconRightMargin);
376 __barBgRect = FloatRectangle(__touchRect.x + __handleOffset, __touchRect.y +
377 ((__handleRect.height - barHeight) / 2.0f), __touchRect.width - (2.0f * __handleOffset), barHeight);
379 FloatRectangle absBounds = __pSlider->GetAbsoluteBoundsF();
380 __pSliderOverlay->SetSliderRect(absBounds, __touchRect);
386 _SliderPresenter::LoadBitmap(void)
388 result r = E_SUCCESS;
391 Bitmap* pNormalBitmap = null;
392 Bitmap* pPressedBitmap = null;
393 Bitmap* pDisabledBitmap = null;
394 Bitmap* pHighlightedBitmap = null;
395 Bitmap* pReplacementBitmap = null;
396 Color handleNormalColor;
397 Color handlePressedColor;
398 Color handleDisabledColor;
399 Color handleHighlightedColor;
401 r = GET_COLOR_CONFIG(SLIDER::BG_OTHERS_NORMAL, __currentBgColor);
402 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
404 r = GET_COLOR_CONFIG(SLIDER::BG_DEFAULT_NORMAL, __currentGrpStyleNoneColor);
405 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
407 r = GET_COLOR_CONFIG(SLIDER::BAR_NORMAL, __currentBarColor);
408 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
410 r = GET_COLOR_CONFIG(SLIDER::BAR_BG_NORMAL, __currentBarBgColor);
411 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
413 r = GET_COLOR_CONFIG(SLIDER::HANDLE_BG_NORMAL, handleNormalColor);
414 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
416 r = GET_COLOR_CONFIG(SLIDER::HANDLE_BG_PRESSED, handlePressedColor);
417 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
419 r = GET_COLOR_CONFIG(SLIDER::HANDLE_BG_DISABLED, handleDisabledColor);
420 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
422 r = GET_COLOR_CONFIG(SLIDER::HANDLE_BG_HIGHLIGHTED, handleHighlightedColor);
423 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
425 // for GROUP_STYLE_TOP
426 r = GET_BITMAP_CONFIG_N(SLIDER::GROUPED_TOP_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pResourceBgTopBitmap);
427 SysTryReturnResult(NID_UI_CTRL, (r == E_SUCCESS), r, "Propagating.");
429 __pBgTopBitmap = _BitmapImpl::GetColorReplacedBitmapN(*__pResourceBgTopBitmap,Color::GetColor(COLOR_ID_MAGENTA), __currentBgColor);
431 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
433 r = GET_BITMAP_CONFIG_N(SLIDER::GROUPED_TOP_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBgTopEffectBitmap);
434 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
437 // for GROUP_STYLE_MIDDLE
438 r = GET_BITMAP_CONFIG_N(SLIDER::GROUPED_MIDDLE_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pResourceBgMiddleBitmap);
439 SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
441 __pBgMiddleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*__pResourceBgMiddleBitmap,Color::GetColor(COLOR_ID_MAGENTA), __currentBgColor);
443 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
445 r = GET_BITMAP_CONFIG_N(SLIDER::GROUPED_MIDDLE_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBgMiddleEffectBitmap);
446 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
449 // for GROUP_STYLE_BOTTOM
450 r = GET_BITMAP_CONFIG_N(SLIDER::GROUPED_BOTTOM_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pResourceBgBottomBitmap);
451 SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
453 __pBgBottomBitmap = _BitmapImpl::GetColorReplacedBitmapN(*__pResourceBgBottomBitmap,Color::GetColor(COLOR_ID_MAGENTA), __currentBgColor);
455 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
457 r = GET_BITMAP_CONFIG_N(SLIDER::GROUPED_BOTTOM_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBgBottomEffectBitmap);
458 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
460 // for GROUP_STYLE_SINGLE and GROUP_STYLE_NONE
461 r = GET_BITMAP_CONFIG_N(SLIDER::GROUPED_SINGLE_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pResourceBgSingleBitmap);
462 SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
464 __pBgSingleBitmap = _BitmapImpl::GetColorReplacedBitmapN(*__pResourceBgSingleBitmap, Color::GetColor(COLOR_ID_MAGENTA), __currentBgColor);
466 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
468 __pBgGrpStyleNoneBitmap = _BitmapImpl::GetColorReplacedBitmapN(*__pResourceBgSingleBitmap, Color::GetColor(COLOR_ID_MAGENTA), __currentGrpStyleNoneColor);
470 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
473 r = GET_BITMAP_CONFIG_N(SLIDER::GROUPED_SINGLE_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pBgSingleEffectBitmap);
474 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
476 opacity = __currentBgColor.GetAlpha();
478 __pBgTopBitmap->SetAlphaConstant(opacity);
479 __pBgMiddleBitmap->SetAlphaConstant(opacity);
480 __pBgBottomBitmap->SetAlphaConstant(opacity);
481 __pBgSingleBitmap->SetAlphaConstant(opacity);
482 __pBgGrpStyleNoneBitmap->SetAlphaConstant(__currentGrpStyleNoneColor.GetAlpha());
485 __pBgTopEffectBitmap->SetAlphaConstant(opacity);
486 __pBgMiddleEffectBitmap->SetAlphaConstant(opacity);
487 __pBgBottomEffectBitmap->SetAlphaConstant(opacity);
488 __pBgSingleEffectBitmap->SetAlphaConstant(opacity);
492 r = GET_BITMAP_CONFIG_N(SLIDER::BAR_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pResourceBarBgBitmap);
493 SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
495 __pBarBgColorReplacementBitmap = _BitmapImpl::GetColorReplacedBitmapN(*__pResourceBarBgBitmap,Color::GetColor(COLOR_ID_MAGENTA), __currentBarBgColor);
497 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
499 r = GET_BITMAP_CONFIG_N(SLIDER::BAR_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pResourceBarBitmap);
500 SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
502 __pBarColorReplacementBitmap = _BitmapImpl::GetColorReplacedBitmapN(*__pResourceBarBitmap,Color::GetColor(COLOR_ID_MAGENTA), __currentBarColor);
504 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
506 r = GET_BITMAP_CONFIG_N(SLIDER::BAR_BG_EFFECT, BITMAP_PIXEL_FORMAT_ARGB8888, __pBarBgResourceEffectBitmap);
507 SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
509 r = GET_BITMAP_CONFIG_N(SLIDER::BAR_EFFECT, BITMAP_PIXEL_FORMAT_ARGB8888, __pBarResourceEffectBitmap);
510 SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
512 opacity = __currentBarColor.GetAlpha();
513 __pBarColorReplacementBitmap->SetAlphaConstant(opacity);
516 r = GET_BITMAP_CONFIG_N(SLIDER::HANDLE_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pNormalBitmap);
517 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
519 if (__pHandleNormalBitmap == null)
521 pReplacementBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pNormalBitmap, Color::GetColor(COLOR_ID_MAGENTA), handleNormalColor);
523 SysTryCatch(NID_UI_CTRL, (pReplacementBitmap != null), , r, "[%s] Propagating.", GetErrorMessage(r));
525 __pHandleNormalBitmap = pReplacementBitmap;
528 r = GET_BITMAP_CONFIG_N(SLIDER::HANDLE_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pPressedBitmap);
529 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
531 if (__pHandlePressedBitmap == null)
533 pReplacementBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pPressedBitmap, Color::GetColor(COLOR_ID_MAGENTA), handlePressedColor);
535 SysTryCatch(NID_UI_CTRL, (pReplacementBitmap != null), , r, "[%s] Propagating.", GetErrorMessage(r));
537 __pHandlePressedBitmap = pReplacementBitmap;
540 r = GET_BITMAP_CONFIG_N(SLIDER::HANDLE_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pDisabledBitmap);
541 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
543 if (__pHandleDisabledBitmap == null)
545 pReplacementBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pDisabledBitmap, Color::GetColor(COLOR_ID_MAGENTA), handleDisabledColor);
547 SysTryCatch(NID_UI_CTRL, (pReplacementBitmap != null), , r, "[%s] Propagating.", GetErrorMessage(r));
549 __pHandleDisabledBitmap = pReplacementBitmap;
552 r = GET_BITMAP_CONFIG_N(SLIDER::HANDLE_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pHighlightedBitmap);
553 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
555 if (__pHandleHighlightedBitmap == null)
557 pReplacementBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pHighlightedBitmap, Color::GetColor(COLOR_ID_MAGENTA), handleHighlightedColor);
559 SysTryCatch(NID_UI_CTRL, (pReplacementBitmap != null), , r, "[%s] Propagating.", GetErrorMessage(r));
561 __pHandleHighlightedBitmap = pReplacementBitmap;
564 if (__pHandleNormalEffectBitmap == null)
566 r = GET_BITMAP_CONFIG_N(SLIDER::HANDLE_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pHandleNormalEffectBitmap);
567 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
570 if (__pHandlePressedEffectBitmap == null)
572 r = GET_BITMAP_CONFIG_N(SLIDER::HANDLE_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pHandlePressedEffectBitmap);
573 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
576 if (__pHandleDisabledEffectBitmap == null)
578 r = GET_BITMAP_CONFIG_N(SLIDER::HANDLE_BG_EFFECT_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pHandleDisabledEffectBitmap);
579 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
582 if (__pHandleHighlightedEffectBitmap == null)
584 r = GET_BITMAP_CONFIG_N(SLIDER::HANDLE_BG_EFFECT_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pHandleHighlightedEffectBitmap);
585 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
588 delete pNormalBitmap;
589 delete pPressedBitmap;
590 delete pDisabledBitmap;
591 delete pHighlightedBitmap;
597 delete pNormalBitmap;
598 delete pPressedBitmap;
599 delete pDisabledBitmap;
600 delete pHighlightedBitmap;
602 delete __pResourceBgTopBitmap;
603 __pResourceBgTopBitmap = null;
605 delete __pResourceBgMiddleBitmap;
606 __pResourceBgMiddleBitmap = null;
608 delete __pResourceBgBottomBitmap;
609 __pResourceBgBottomBitmap = null;
611 delete __pResourceBgSingleBitmap;
612 __pResourceBgSingleBitmap = null;
614 delete __pBgTopBitmap;
615 __pBgTopBitmap = null;
617 delete __pBgMiddleBitmap;
618 __pBgMiddleBitmap = null;
620 delete __pBgBottomBitmap;
621 __pBgBottomBitmap = null;
623 delete __pBgSingleBitmap;
624 __pBgSingleBitmap = null;
626 delete __pBgGrpStyleNoneBitmap;
627 __pBgGrpStyleNoneBitmap = null;
629 delete __pBgTopEffectBitmap;
630 __pBgTopEffectBitmap = null;
632 delete __pBgMiddleEffectBitmap;
633 __pBgMiddleEffectBitmap = null;
635 delete __pBgBottomEffectBitmap;
636 __pBgBottomEffectBitmap = null;
638 delete __pBgSingleEffectBitmap;
639 __pBgSingleEffectBitmap = null;
641 delete __pResourceBarBitmap;
642 __pResourceBarBitmap = null;
644 delete __pResourceBarBgBitmap;
645 __pResourceBarBgBitmap = null;
647 delete __pBarResourceEffectBitmap;
648 __pBarResourceEffectBitmap = null;
650 delete __pBarBgResourceEffectBitmap;
651 __pBarBgResourceEffectBitmap = null;
653 delete __pBarColorReplacementBitmap;
654 __pBarColorReplacementBitmap = null;
656 delete __pBarBgColorReplacementBitmap;
657 __pBarBgColorReplacementBitmap = null;
659 delete __pHandleNormalBitmap;
660 __pHandleNormalBitmap = null;
662 delete __pHandlePressedBitmap;
663 __pHandlePressedBitmap = null;
665 delete __pHandleDisabledBitmap;
666 __pHandleDisabledBitmap = null;
668 delete __pHandleHighlightedBitmap;
669 __pHandleHighlightedBitmap = null;
671 delete __pHandleNormalEffectBitmap;
672 __pHandleNormalEffectBitmap = null;
674 delete __pHandlePressedEffectBitmap;
675 __pHandlePressedEffectBitmap = null;
677 delete __pHandleDisabledEffectBitmap;
678 __pHandleDisabledEffectBitmap = null;
680 delete __pHandleHighlightedEffectBitmap;
681 __pHandleHighlightedEffectBitmap = null;
687 _SliderPresenter::CalculateSliderValue(float positionX, float offsetX)
689 int minValue = __pSliderModel->GetMinValue();
690 int maxValue = __pSliderModel->GetMaxValue();
692 if (positionX <= __touchRect.x + offsetX)
698 if (positionX >= (__touchRect.x + __touchRect.width) - offsetX)
700 __handleX = __touchRect.width - __handleRect.width;
704 if ((maxValue - minValue) == 0)
709 __handleX = positionX - (__touchRect.x + offsetX);
711 __handleRect.x = __touchRect.x + __handleX;
712 __handleRect.y = __touchRect.y;
714 if (__handleRect.x < __touchRect.x )
716 __handleRect.x = __touchRect.x;
719 if (__handleRect.x + __handleRect.width > __touchRect.x + __touchRect.width )
721 __handleRect.x = __touchRect.x + __touchRect.width - __handleRect.width;
724 return minValue + (int) ((float) (__handleX * (maxValue - minValue)) / (float)(__touchRect.width - __handleRect.width) + 0.5); // current value = current width * range / bar bg width
728 _SliderPresenter::Draw(void)
730 if (__isNeedToBeUpdated == true)
733 __isNeedToBeUpdated = false;
740 _SliderPresenter::DrawSlider(void)
742 result r = E_SUCCESS;
743 float sliderY = 0.0f;
744 FloatRectangle titleTextBounds;
746 int style = __pSlider->GetStyle();
748 Canvas* pCanvas = __pSlider->GetCanvasN();
749 SysTryReturn(NID_UI_CTRL, pCanvas != null, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] System error occurred.");
751 r = DrawBackground(*pCanvas);
752 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
754 if (style & _SLIDER_STYLE_TITLE_TEXT)
756 titleTextBounds = GetTitleTextBounds();
757 sliderY = titleTextBounds.y + titleTextBounds.height;
760 if(sliderY < __rect.height)
762 r = DrawSliderBar(*pCanvas);
763 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
765 if (__isSliderPressed == true || __pSlider->IsKeyPressed())
767 if (style & _SLIDER_STYLE_OVERLAY)
769 r = DrawSliderOverlay(__pSliderModel->GetValue());
770 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
774 r = DrawSliderBarNumber(__pSliderModel->GetValue());
775 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
780 r = DrawSliderBarNumber(__pSliderModel->GetValue());
781 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
785 if (style & _SLIDER_STYLE_TITLE_TEXT)
787 r = DrawTitleText(*pCanvas);
788 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
791 r = DrawIcon(*pCanvas);
792 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
807 _SliderPresenter::DrawBackground(Canvas& canvas)
809 Bitmap* pBgBitmap = null;
810 Bitmap* pBgEffectBitmap = null;
811 Bitmap* pBgGroupBitmap = null;
812 bool isCustomBitmap = false;
815 result r = E_SUCCESS;
816 canvas.SetBackgroundColor(Color(0x00000000));
819 if (!(__pSlider->GetStyle() & _SLIDER_STYLE_NO_BG))
821 switch (__groupStyle)
823 case GROUP_STYLE_TOP:
824 isCustomBitmap = IS_CUSTOM_BITMAP(SLIDER::GROUPED_TOP_BG_NORMAL);
825 pBgEffectBitmap = __pBgTopEffectBitmap;
826 if (__pSlider->GetColor() == __currentBgColor)
828 pBgBitmap = __pBgTopBitmap;
832 pBgGroupBitmap = _BitmapImpl::GetColorReplacedBitmapN(*__pResourceBgTopBitmap, Color::GetColor(COLOR_ID_MAGENTA), __pSlider->GetColor());
836 SysLog(NID_UI_CTRL, "[%s] Propagating.", GetErrorMessage(r));
841 delete __pBgTopBitmap;
842 __pBgTopBitmap = null;
843 __pBgTopBitmap = pBgGroupBitmap;
845 pBgBitmap = pBgGroupBitmap;
846 opacity = __pSlider->GetColor().GetAlpha();
847 pBgBitmap->SetAlphaConstant(opacity);
848 __currentBgColor = __pSlider->GetColor();
853 case GROUP_STYLE_MIDDLE:
854 isCustomBitmap = IS_CUSTOM_BITMAP(SLIDER::GROUPED_MIDDLE_BG_NORMAL);
855 pBgEffectBitmap = __pBgMiddleEffectBitmap;
856 if (__pSlider->GetColor() == __currentBgColor)
858 pBgBitmap = __pBgMiddleBitmap;
862 pBgGroupBitmap = _BitmapImpl::GetColorReplacedBitmapN(*__pResourceBgMiddleBitmap, Color::GetColor(COLOR_ID_MAGENTA), __pSlider->GetColor());
866 SysLog(NID_UI_CTRL, "[%s] Propagating.", GetErrorMessage(r));
871 delete __pBgMiddleBitmap;
872 __pBgMiddleBitmap = null;
873 __pBgMiddleBitmap = pBgGroupBitmap;
875 pBgBitmap = __pBgMiddleBitmap;
876 opacity = __pSlider->GetColor().GetAlpha();
877 pBgBitmap->SetAlphaConstant(opacity);
878 __currentBgColor = __pSlider->GetColor();
883 case GROUP_STYLE_BOTTOM:
884 isCustomBitmap = IS_CUSTOM_BITMAP(SLIDER::GROUPED_BOTTOM_BG_NORMAL);
885 pBgEffectBitmap = __pBgBottomEffectBitmap;
886 if (__pSlider->GetColor() == __currentBgColor)
888 pBgBitmap = __pBgBottomBitmap;
892 pBgGroupBitmap = _BitmapImpl::GetColorReplacedBitmapN(*__pResourceBgBottomBitmap, Color::GetColor(COLOR_ID_MAGENTA), __pSlider->GetColor());
896 SysLog(NID_UI_CTRL, "[%s] Propagating.", GetErrorMessage(r));
901 delete __pBgBottomBitmap;
902 __pBgBottomBitmap = null;
903 __pBgBottomBitmap = pBgGroupBitmap;
905 pBgBitmap = __pBgBottomBitmap;
906 opacity = __pSlider->GetColor().GetAlpha();
907 pBgBitmap->SetAlphaConstant(opacity);
908 __currentBgColor = __pSlider->GetColor();
913 case GROUP_STYLE_SINGLE:
914 isCustomBitmap = IS_CUSTOM_BITMAP(SLIDER::GROUPED_SINGLE_BG_NORMAL);
915 pBgEffectBitmap = __pBgSingleEffectBitmap;
916 if (__pSlider->GetColor() == __currentBgColor)
918 pBgBitmap = __pBgSingleBitmap;
922 pBgGroupBitmap = _BitmapImpl::GetColorReplacedBitmapN(*__pResourceBgSingleBitmap, Color::GetColor(COLOR_ID_MAGENTA), __pSlider->GetColor());
926 SysLog(NID_UI_CTRL, "[%s] Propagating.", GetErrorMessage(r));
932 delete __pBgSingleBitmap;
933 __pBgSingleBitmap = null;
934 __pBgSingleBitmap = pBgGroupBitmap;
936 pBgBitmap = __pBgSingleBitmap;
937 opacity = __pSlider->GetColor().GetAlpha();
938 pBgBitmap->SetAlphaConstant(opacity);
939 __currentBgColor = __pSlider->GetColor();
944 case GROUP_STYLE_NONE:
947 if (__pSlider->GetColor() == __currentBgColor)
949 pBgBitmap = __pBgGrpStyleNoneBitmap;
953 pBgGroupBitmap = _BitmapImpl::GetColorReplacedBitmapN(*__pResourceBgSingleBitmap, Color::GetColor(COLOR_ID_MAGENTA), __pSlider->GetColor());
957 SysLog(NID_UI_CTRL, "[%s] Propagating.", GetErrorMessage(r));
962 delete __pBgGrpStyleNoneBitmap;
963 __pBgGrpStyleNoneBitmap = null;
964 __pBgGrpStyleNoneBitmap = pBgGroupBitmap;
966 pBgBitmap = __pBgGrpStyleNoneBitmap;
967 opacity = __pSlider->GetColor().GetAlpha();
968 pBgBitmap->SetAlphaConstant(opacity);
969 __currentBgColor = __pSlider->GetColor();
975 DrawBitmap(canvas, __rect, pBgBitmap);
976 if ( __groupStyle != GROUP_STYLE_NONE)
978 if (isCustomBitmap == false)
980 DrawBitmap(canvas, __rect, pBgEffectBitmap);
988 _SliderPresenter::OnChangeLayout(_ControlOrientation orientation)
990 int minValue = __pSliderModel->GetMinValue();
991 int maxValue = __pSliderModel->GetMaxValue();
993 if ( __isSliderPressed == true)
995 __handleX = ((__touchRect.width - __handleRect.width) * (__pSliderModel->GetValue() - minValue)) / (maxValue - minValue);
996 __pSlider->Invalidate();
1001 _TouchManager* pTouchMgr = _TouchManager::GetInstance();
1004 __isTouchCanceled = true;
1005 pTouchMgr->SetTouchCanceled(null);
1013 _SliderPresenter::DrawSliderBar(Canvas& canvas)
1015 result r = E_SUCCESS;
1016 float bitmapHeight = 0.0f;
1017 float bitmapWidth = 0.0f;
1018 float bitmapPositionX = 0.0f;
1019 float bitmapPositionY = 0.0f;
1021 Bitmap* pReplacementBitmap = null;
1022 Bitmap* pHandleBitmap = null;
1023 Bitmap* pHandleEffectBitmap = null;
1024 bool isCustomHandleBitmap = false;
1025 bool isCustomBarBitmap = false;
1027 if (__pSlider->IsEnabled() == false) // disabled
1029 pHandleBitmap = __pHandleDisabledBitmap;
1030 pHandleEffectBitmap = __pHandleDisabledEffectBitmap;
1031 isCustomHandleBitmap = IS_CUSTOM_BITMAP(SLIDER::HANDLE_BG_DISABLED);
1032 if(__isSliderPressed == true)
1034 __isSliderPressed = false;
1035 if (__pSlider->GetStyle() & _SLIDER_STYLE_OVERLAY)
1037 __pSliderOverlay->SetVisibleState(false);
1038 __pSliderOverlay->Close();
1042 else if (__isSliderPressed == true) // pressed
1044 pHandleBitmap = __pHandlePressedBitmap;
1045 pHandleEffectBitmap = __pHandlePressedEffectBitmap;
1046 isCustomHandleBitmap = IS_CUSTOM_BITMAP(SLIDER::HANDLE_BG_PRESSED);
1048 else //(__isSliderPressed == false) // normal state
1050 pHandleBitmap = __pHandleNormalBitmap;
1051 pHandleEffectBitmap = __pHandleNormalEffectBitmap;
1052 isCustomHandleBitmap = IS_CUSTOM_BITMAP(SLIDER::HANDLE_BG_NORMAL);
1055 int minValue = __pSliderModel->GetMinValue();
1056 int maxValue = __pSliderModel->GetMaxValue();
1058 __barRect = FloatRectangle(__barBgRect.x + __barOffset, __barBgRect.y, __handleRect.x , __barBgRect.height);
1060 if (__isSetValue == true && __isSliderPressed == false && (maxValue - minValue) != 0)
1062 __handleX = ((__touchRect.width - __handleRect.width) * (__pSliderModel->GetValue() - minValue)) / (maxValue - minValue);
1065 __handleRect.x = __touchRect.x + __handleX;
1066 __handleRect.y = __touchRect.y;
1068 if (__handleRect.x < __touchRect.x )
1070 __handleRect.x = __touchRect.x;
1073 if (__handleRect.x + __handleRect.width > __touchRect.x + __touchRect.width )
1075 __handleRect.x = __touchRect.x + __touchRect.width - __handleRect.width;
1078 __barRect.width = __handleRect.x - __barRect.x + (__handleRect.width / 2);
1080 if (__pSlider->GetBarBackgroundColor() != __currentBarBgColor)
1082 pReplacementBitmap = _BitmapImpl::GetColorReplacedBitmapN(*__pResourceBarBgBitmap, Color::GetColor(COLOR_ID_MAGENTA), __pSlider->GetBarBackgroundColor());
1083 r = GetLastResult();
1084 SysTryReturn(NID_UI_CTRL, (pReplacementBitmap != null), r, r, "[%s] Propagating.", GetErrorMessage(r));
1086 delete __pBarBgColorReplacementBitmap;
1087 __pBarBgColorReplacementBitmap = null;
1089 __pBarBgColorReplacementBitmap = pReplacementBitmap;
1090 __currentBarBgColor = __pSlider->GetBarBackgroundColor();
1093 if (__pSlider->GetBarColor() != __currentBarColor)
1095 pReplacementBitmap = _BitmapImpl::GetColorReplacedBitmapN(*__pResourceBarBitmap, Color::GetColor(COLOR_ID_MAGENTA), __pSlider->GetBarColor());
1096 r = GetLastResult();
1097 SysTryReturn(NID_UI_CTRL, (pReplacementBitmap != null), r, r, "[%s] Propagating.", GetErrorMessage(r));
1099 delete __pBarColorReplacementBitmap;
1100 __pBarColorReplacementBitmap = null;
1102 __pBarColorReplacementBitmap = pReplacementBitmap;
1103 __currentBarColor = __pSlider->GetBarColor();
1106 // Redrawing twice is required because, when slider is disabled we are applying alpha channel to the bar
1107 // which will show the previously drawn portion.
1109 if (__pSlider->IsEnabled() == false) // disabled
1111 __pBarBgColorReplacementBitmap->SetAlphaConstant(0xFF);
1112 DrawBitmap(canvas, __barBgRect, __pBarBgColorReplacementBitmap);
1114 __pBarColorReplacementBitmap->SetAlphaConstant(0x4C);
1118 opacity = __pSlider->GetBarColor().GetAlpha();
1119 __pBarColorReplacementBitmap->SetAlphaConstant(opacity);
1122 isCustomBarBitmap = IS_CUSTOM_BITMAP(SLIDER::BAR_BG_NORMAL);
1123 DrawBitmap(canvas, __barBgRect, __pBarBgColorReplacementBitmap);
1124 if (isCustomBarBitmap == false)
1126 DrawBitmap(canvas, __barBgRect, __pBarBgResourceEffectBitmap);
1129 isCustomBarBitmap = IS_CUSTOM_BITMAP(SLIDER::BAR_NORMAL);
1130 DrawBitmap(canvas, __barRect, __pBarColorReplacementBitmap);
1131 if (isCustomBarBitmap == false)
1133 DrawBitmap(canvas, __barRect, __pBarResourceEffectBitmap);
1136 Canvas* pHandleCanvas = __pSlider->GetHandleCanvasN();
1137 r = GetLastResult();
1138 SysTryReturn(NID_UI_CTRL, pHandleCanvas != null, r, r, "[%s] Propagating.", GetErrorMessage(r));
1140 pHandleCanvas->SetBackgroundColor(0x00000000);
1141 pHandleCanvas->Clear();
1143 if (pHandleEffectBitmap != null) // drawing the default bitmap
1145 r = DrawBitmap(*pHandleCanvas, FloatRectangle(0.0f, 0.0f, __handleRect.width, __handleRect.height), pHandleBitmap);
1146 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
1147 if (isCustomHandleBitmap == false)
1149 r = DrawBitmap(*pHandleCanvas, FloatRectangle(0.0f, 0.0f, __handleRect.width, __handleRect.height), pHandleEffectBitmap);
1150 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
1155 bitmapWidth = pHandleBitmap->GetWidth();
1156 bitmapHeight = pHandleBitmap->GetHeight();
1158 if (!_BitmapImpl::CheckNinePatchedBitmapStrictly(*pHandleBitmap))
1160 // to clip the center portion of the larger bitmap.
1161 if( bitmapWidth > __handleRect.width )
1163 bitmapPositionX = (bitmapWidth / 2.0f) - (__handleRect.width / 2.0f);
1164 bitmapWidth = __handleRect.width;
1167 if( bitmapHeight > __handleRect.height )
1169 bitmapPositionY = (bitmapHeight / 2.0f) - (__handleRect.height / 2.0f);
1170 bitmapHeight = __handleRect.height;
1173 r = pHandleCanvas->DrawBitmap(FloatRectangle(0.0f, 0.0f, __handleRect.width, __handleRect.height), *pHandleBitmap, FloatRectangle(bitmapPositionX, bitmapPositionY, bitmapWidth, bitmapHeight));
1177 r = pHandleCanvas->DrawNinePatchedBitmap(FloatRectangle(0.0f, 0.0f, __handleRect.width, __handleRect.height), *pHandleBitmap);
1179 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
1182 if ((__pSlider->IsFocused()) && (__isFocusModeStateChanged == true))
1184 if (__pHandleHighlightedBitmap)
1186 if (_BitmapImpl::CheckNinePatchedBitmapStrictly(*__pHandleHighlightedBitmap))
1188 r = pHandleCanvas->DrawNinePatchedBitmap(FloatRectangle(0.0f, 0.0f, __handleRect.width, __handleRect.height), *__pHandleHighlightedBitmap);
1192 r = pHandleCanvas->DrawBitmap(FloatRectangle(0.0f, 0.0f, __handleRect.width, __handleRect.height), *__pHandleHighlightedBitmap);
1195 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
1199 r = __pSlider->UpdateHandle(__handleRect);
1202 SysLogException(NID_UI_CTRL, r, "[%s] Propagating.", GetErrorMessage(r));
1205 delete pHandleCanvas;
1206 pHandleCanvas = null;
1211 delete pHandleCanvas;
1212 pHandleCanvas = null;
1218 _SliderPresenter::DrawSliderBarNumber(int value)
1220 result r = E_SUCCESS;
1221 int handleNumberSize = 0;
1224 int valueLength = 0;
1225 _ControlOrientation orientation = _ControlManager::GetInstance()->GetOrientation();
1227 if (__pSlider->IsEnabled() == false) // disabled
1229 textColor = __handleTextDisabledColor;
1231 else if ((__pSlider->IsFocused() == true) && (__isFocusModeStateChanged == true))
1233 textColor = __handleTextHighlightedColor;
1235 else if ((__isSliderPressed == true) && !(__pSlider->GetStyle() & _SLIDER_STYLE_OVERLAY))
1237 textColor = __handleTextPressedColor;
1241 textColor = __handleTextColor;
1244 FloatDimension textDim(0.0f, 0.0f);
1246 valueLength = text.GetLength();
1248 if (valueLength == SLIDER_HANDLE_THREE_DIGIT)
1250 r = GET_SHAPE_CONFIG(SLIDER::HANDLE_THREE_DIGIT_TEXT_SIZE, orientation, handleNumberSize);
1251 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1253 else if (valueLength == SLIDER_HANDLE_TWO_DIGIT)
1255 r = GET_SHAPE_CONFIG(SLIDER::HANDLE_TWO_DIGIT_TEXT_SIZE, orientation, handleNumberSize);
1256 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1260 r = GET_SHAPE_CONFIG(SLIDER::HANDLE_ONE_DIGIT_TEXT_SIZE, orientation, handleNumberSize);
1261 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1264 (_FontImpl::GetInstance(*__pFont))->SetSize(handleNumberSize);
1266 Canvas* pHandleCanvas = __pSlider->GetHandleCanvasN();
1267 r = GetLastResult();
1268 SysTryReturn(NID_UI_CTRL, pHandleCanvas != null, r, r, "[%s] Propagating.", GetErrorMessage(r));
1270 pHandleCanvas->SetFont(*__pFont);
1271 __pFont->GetTextExtent(text, valueLength, textDim);
1273 FloatPoint textPoint;
1274 textPoint.x = (__handleRect.width - textDim.width) / 2.0f;
1275 textPoint.y = (__handleRect.height - textDim.height) / 2.0f;
1277 pHandleCanvas->SetForegroundColor(textColor);
1278 pHandleCanvas->DrawText(textPoint, text);
1280 delete pHandleCanvas;
1281 pHandleCanvas = null;
1287 _SliderPresenter::DrawTitleText(Canvas& canvas)
1289 result r = E_SUCCESS;
1291 TextSimple* pSimpleTitleText = null;
1292 int titleTextSize = 0;
1293 int titleLength = 0;
1294 FloatRectangle titleTextBounds;
1295 _ControlOrientation orientation = _ControlManager::GetInstance()->GetOrientation();
1297 titleLength = __pSlider->GetTitleText().GetLength();
1298 SysTryReturn(NID_UI_CTRL, titleLength != 0, E_SUCCESS, E_SUCCESS, "Title text is empty");
1300 r = GET_SHAPE_CONFIG(SLIDER::TITLE_TEXT_SIZE, orientation, titleTextSize);
1301 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1303 (_FontImpl::GetInstance(*__pFont))->SetSize(titleTextSize);
1305 titleTextBounds = GetTitleTextBounds();
1307 if (__pTitleTextObject == null)
1309 __pTitleTextObject = new (std::nothrow) TextObject();
1310 SysTryReturn(NID_UI_CTRL, __pTitleTextObject != null, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
1311 __pTitleTextObject->Construct();
1314 pSimpleTitleText = new (std::nothrow) TextSimple(const_cast<wchar_t*>(__pSlider->GetTitleText().GetPointer()), __pSlider->GetTitleText().GetLength());
1316 __pTitleTextObject->RemoveAll();
1317 __pTitleTextObject->AppendElement(*pSimpleTitleText);
1318 __pTitleTextObject->SetForegroundColor(__pSlider->GetTitleTextColor(), 0, __pTitleTextObject->GetTextLength());
1319 __pTitleTextObject->SetWrap(TEXT_OBJECT_WRAP_TYPE_NONE);
1320 __pTitleTextObject->SetAction(TEXT_OBJECT_ACTION_TYPE_ABBREV);
1321 __pTitleTextObject->SetBounds(GetTitleTextBounds());
1322 __pTitleTextObject->Compose();
1324 __pTitleTextObject->SetAlignment(TEXT_OBJECT_ALIGNMENT_LEFT | TEXT_OBJECT_ALIGNMENT_MIDDLE);
1325 __pTitleTextObject->SetFont(__pFont, 0, __pTitleTextObject->GetTextLength());
1326 __pTitleTextObject->Draw(*_CanvasImpl::GetInstance(canvas));
1332 _SliderPresenter::DrawIcon(Canvas& canvas)
1334 result r = E_SUCCESS;
1336 Bitmap* pLeftBitmap = __pSlider->GetIcon(ICON_POSITION_LEFT);
1337 Bitmap* pRightBitmap = __pSlider->GetIcon(ICON_POSITION_RIGHT);
1339 if (pLeftBitmap != null)
1341 r = DrawBitmap(canvas, GetIconBounds(ICON_POSITION_LEFT), pLeftBitmap);
1342 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1345 if (pRightBitmap != null)
1347 r = DrawBitmap(canvas, GetIconBounds(ICON_POSITION_RIGHT), pRightBitmap);
1348 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1355 _SliderPresenter::DrawSliderOverlay(int value)
1357 result r = E_SUCCESS;
1359 FloatRectangle absBounds = __pSlider->GetAbsoluteBoundsF();
1360 r = __pSliderOverlay->SetSliderRect(absBounds, __touchRect);
1361 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1363 r = __pSliderOverlay->DrawSliderOverlay(__touchRect.x + __handleX, __handleRect.width, value);
1364 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1370 _SliderPresenter::DrawBitmap(Canvas& canvas, const FloatRectangle& bounds, Bitmap* pBitmap)
1372 result r = E_SUCCESS;
1374 if (_BitmapImpl::CheckNinePatchedBitmapStrictly(*pBitmap))
1376 r = canvas.DrawNinePatchedBitmap(bounds, *pBitmap);
1377 SysTryReturn(NID_UI_CTRL, (r == E_SUCCESS), r, r, "[%s] Propagating.", GetErrorMessage(r));
1381 r = canvas.DrawBitmap(bounds, *pBitmap);
1382 SysTryReturn(NID_UI_CTRL, (r == E_SUCCESS), r, r, "[%s] Propagating.", GetErrorMessage(r));
1388 _SliderPresenter::GetTitleTextBounds(void) const
1390 FloatRectangle titleTextBounds;
1391 float topMargin = 0.0f;
1393 result r = E_SUCCESS;
1394 _ControlOrientation orientation = _ControlManager::GetInstance()->GetOrientation();
1396 r = GET_SHAPE_CONFIG(SLIDER::TITLE_TEXT_POSITION_X, orientation, titleTextBounds.x);
1397 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, FloatRectangle(), r, "[%s] Propagating.", GetErrorMessage(r));
1399 r = GET_SHAPE_CONFIG(SLIDER::TITLE_TEXT_POSITION_Y, orientation, topMargin);
1400 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, FloatRectangle(), r, "[%s] Propagating.", GetErrorMessage(r));
1402 titleTextBounds.y = topMargin;
1404 r = GET_SHAPE_CONFIG(SLIDER::TITLE_TEXT_HEIGHT, orientation, titleTextBounds.height);
1405 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, FloatRectangle(), r, "[%s] Propagating.", GetErrorMessage(r));
1407 titleTextBounds.width = __pSlider->GetBoundsF().width - titleTextBounds.x;
1409 return titleTextBounds;
1413 _SliderPresenter::GetTouchBounds(void) const
1419 _SliderPresenter::GetIconBounds(IconPosition iconPosition) const
1421 result r = E_SUCCESS;
1423 FloatRectangle iconBounds;
1424 float iconSideMargin = 0.0f;
1425 float barHeight = 0.0f;
1427 _ControlOrientation orientation = _ControlManager::GetInstance()->GetOrientation();
1429 r = GET_SHAPE_CONFIG(SLIDER::ICON_WIDTH, orientation, iconBounds.width);
1430 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, FloatRectangle(), r, "[%s] Propagating.", GetErrorMessage(r));
1432 r = GET_SHAPE_CONFIG(SLIDER::ICON_HEIGHT, orientation, iconBounds.height);
1433 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, FloatRectangle(), r, "[%s] Propagating.", GetErrorMessage(r));
1435 r = GET_SHAPE_CONFIG(SLIDER::ICON_LEFT_MARGIN, orientation, iconSideMargin);
1436 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, FloatRectangle(), r, "[%s] Propagating.", GetErrorMessage(r));
1438 r = GET_SHAPE_CONFIG(SLIDER::BAR_HEIGHT, orientation, barHeight);;
1439 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, FloatRectangle(), r, "[%s] Propagating.", GetErrorMessage(r));
1441 iconBounds.y = __barBgRect.y + ((barHeight - iconBounds.height) / 2);
1443 if (iconPosition == ICON_POSITION_LEFT)
1445 iconBounds.x = iconSideMargin;
1449 iconBounds.x = __rect.width - (iconSideMargin + iconBounds.width);
1456 _SliderPresenter::GetSliderOverlay(void) const
1458 return __pSliderOverlay;
1462 _SliderPresenter::IsTouchPressed() const
1464 return __isSliderPressed;
1468 _SliderPresenter::OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo)
1470 if (__pSlider != &source)
1475 if (__pSlideTimer == null)
1477 __pSlideTimer = new (std::nothrow) Timer;
1478 SysTryReturn(NID_UI_CTRL, __pSlideTimer != null, true, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
1480 result r = __pSlideTimer->Construct(*this);
1483 delete __pSlideTimer;
1484 __pSlideTimer = null;
1490 FloatPoint point = touchinfo.GetCurrentPosition();
1492 if (__handleRect.Contains(point) == true)
1494 __isSliderPressed = true;
1495 __isSetValue = false;
1497 int candidateValue = CalculateSliderValue(point.x, point.x - __handleRect.x);
1498 __prevSliderValue = candidateValue;
1500 __pSliderModel->SetValue(candidateValue);
1501 __pSlider->SetAccessibilityElementValue();
1503 if (__pSlider->GetStyle() & _SLIDER_STYLE_OVERLAY)
1505 __pSliderOverlay->SetVisibleState(true);
1506 __pSliderOverlay->Open();
1509 __pSlider->Invalidate();
1512 return __isSliderPressed;
1516 _SliderPresenter::OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo)
1518 if (__pSlider != &source)
1523 if (__pSlideTimer != null)
1525 __isTimerRunning = false;
1526 __pSlideTimer->Cancel();
1529 FloatPoint point = touchinfo.GetCurrentPosition();
1531 Canvas* pCanvas = __pSlider->GetCanvasN();
1532 SysTryReturn(NID_UI_CTRL, pCanvas != null, false, E_SYSTEM, "[E_SYSTEM] A system error has occurred. Failed to get the canvas.");
1534 if (point.x >= (pCanvas->GetBoundsF().x + pCanvas->GetBoundsF().width))
1536 point.x = pCanvas->GetBoundsF().x + pCanvas->GetBoundsF().width;
1542 if (__isSliderPressed == true)
1544 PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, __pSlider);
1545 __isSliderPressed = false;
1546 __isSetValue = false;
1548 int candidateValue = 0;
1550 if (__isTouchCanceled)
1552 __isTouchCanceled = false;
1553 candidateValue = __prevSliderValue;
1557 candidateValue = CalculateSliderValue(point.x, point.x - __handleRect.x);
1558 __pSliderModel->SetValue(candidateValue);
1559 __pSlider->SetAccessibilityElementValue();
1562 __pSlider->Invalidate();
1564 if (__pSlider->GetStyle() & _SLIDER_STYLE_OVERLAY)
1566 __pSliderOverlay->SetVisibleState(false);
1567 __pSliderOverlay->Close();
1570 // Slider Event Fire is required if some handle value changes not fired sldier event because of timer call back.
1571 if (__prevSliderValue != candidateValue)
1573 _SliderEvent* pSliderEvent = dynamic_cast <_SliderEvent*>(__pSlider->GetSliderEvent());
1574 if (pSliderEvent != null)
1576 IEventArg* pEventArg = _SliderEvent::CreateSliderEventArgN(candidateValue);
1578 result r = GetLastResult();
1579 SysTryReturn(NID_UI_CTRL, pEventArg != null, true, r, "[%s] Propagating.", GetErrorMessage(r));
1581 pSliderEvent->Fire(*pEventArg);
1585 // Adjustment Event Fire
1586 _AdjustmentEvent* pAdjustmentEvent = dynamic_cast <_AdjustmentEvent*>(__pSlider->GetAdjustmentEvent());
1587 if (pAdjustmentEvent != null)
1589 IEventArg* pEventArg = _AdjustmentEvent::CreateAdjustmentEventArgN(candidateValue);
1590 result r = GetLastResult();
1591 SysTryReturn(NID_UI_CTRL, pEventArg != null, true, r, "[%s] Propagating.", GetErrorMessage(r));
1593 pAdjustmentEvent->Fire(*pEventArg);
1602 _SliderPresenter::OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo)
1604 if (__pSlider != &source)
1609 if (__isSliderPressed == false)
1614 FloatPoint point = touchinfo.GetCurrentPosition();
1616 Canvas* pCanvas = __pSlider->GetCanvasN();
1617 SysTryReturn(NID_UI_CTRL, pCanvas != null, true, E_SYSTEM, "[E_SYSTEM] A system error has occurred. Failed to get the canvas.");
1619 if (point.x >= (pCanvas->GetBoundsF().x + pCanvas->GetBoundsF().width))
1621 point.x = pCanvas->GetBoundsF().x + pCanvas->GetBoundsF().width;
1624 __currentPosition.x = point.x;
1625 __currentPosition.y = point.y;
1627 if ( __isTimerRunning == false )
1629 __isTimerRunning = true;
1630 __pSlideTimer->Start(__timerValue);
1640 _SliderPresenter::OnTimerExpired(Timer& timer)
1642 __isTimerRunning = false;
1644 float handleHalfWidth = __handleRect.width / 2;
1645 int candidateValue = CalculateSliderValue(__currentPosition.x, handleHalfWidth);
1647 __prevSliderValue = candidateValue;
1649 __pSliderModel->SetValue(candidateValue);
1650 __pSlider->SetAccessibilityElementValue();
1655 __pSlider->FireSliderMoveEvent(candidateValue);
1661 _SliderPresenter::OnTouchCanceled(const _Control& source, const _TouchInfo& touchinfo)
1663 __isTouchCanceled = true;
1665 return OnTouchReleased(source, touchinfo);
1669 _SliderPresenter::OnBoundsChanged(void)
1671 __isNeedToBeUpdated = true;
1678 _SliderPresenter::OnFontChanged(Font* pFont)
1681 __isNeedToBeUpdated = true;
1683 if(__pSliderOverlay != null)
1684 __pSliderOverlay->SetFont(pFont);
1690 _SliderPresenter::OnFontInfoRequested(unsigned long& style, float& size)
1692 style = FONT_STYLE_BOLD;
1698 _SliderPresenter::OnAncestorEnableStateChanged(const _Control& control)
1700 if (__pSlider->IsEnabled())
1705 if (__pSlideTimer != null)
1707 __isTimerRunning = false;
1708 __pSlideTimer->Cancel();
1711 __pSlider->Invalidate();
1717 _SliderPresenter::SetMinValue(int minValue)
1719 __pSliderModel->SetMinValue(minValue);
1721 if (__pSliderModel->GetValue() < minValue)
1723 __pSliderModel->SetValue(minValue);
1730 _SliderPresenter::SetMaxValue(int maxValue)
1732 __pSliderModel->SetMaxValue(maxValue);
1734 if (__pSliderModel->GetValue() > maxValue)
1736 __pSliderModel->SetValue(maxValue);
1743 _SliderPresenter::GetMinValue(void) const
1745 return __pSliderModel->GetMinValue();
1749 _SliderPresenter::GetMaxValue(void) const
1751 return __pSliderModel->GetMaxValue();
1755 _SliderPresenter::SetValue(int value)
1757 SysTryReturnVoidResult(NID_UI_CTRL, __isSliderPressed == false, E_SYSTEM, "[E_SYSTEM] Failed to set value of slider.");
1759 int minValue = __pSliderModel->GetMinValue();
1760 int maxValue = __pSliderModel->GetMaxValue();
1762 if (value > maxValue)
1766 else if (value < minValue)
1771 __isSetValue = true;
1773 __pSliderModel->SetValue(value);
1779 _SliderPresenter::GetValue(void) const
1781 return __pSliderModel->GetValue();
1785 _SliderPresenter::SetNeedUpdate(void)
1787 __isNeedToBeUpdated = true;
1792 _SliderPresenter::SetGroupStyle(GroupStyle groupStyle)
1794 __groupStyle = groupStyle;
1799 _SliderPresenter::SetFocusMode(bool focusmode)
1801 __isFocusModeStateChanged = focusmode;
1805 _SliderPresenter::GetFocusMode(void)
1807 return __isFocusModeStateChanged;
1811 _SliderPresenter::SetThumbBitmap(SliderThumbStatus status, const Bitmap& bitmap)
1813 Bitmap* pThumbBitmap = null;
1814 result r = E_SUCCESS;
1816 pThumbBitmap = _BitmapImpl::CloneN(bitmap);
1818 r = GetLastResult();
1819 SysTryReturn(NID_UI_CTRL, pThumbBitmap != null, r, r, "[%s] Propagating.", GetErrorMessage(r));
1823 case SLIDER_THUMB_STATUS_PRESSED:
1825 delete __pHandlePressedEffectBitmap;
1826 __pHandlePressedEffectBitmap = null;
1828 delete __pHandlePressedBitmap;
1829 __pHandlePressedBitmap = pThumbBitmap;
1832 case SLIDER_THUMB_STATUS_DISABLED:
1834 delete __pHandleDisabledEffectBitmap;
1835 __pHandleDisabledEffectBitmap = null;
1837 delete __pHandleDisabledBitmap;
1838 __pHandleDisabledBitmap = pThumbBitmap;
1841 case SLIDER_THUMB_STATUS_HIGHLIGHTED:
1843 delete __pHandleHighlightedEffectBitmap;
1844 __pHandleHighlightedEffectBitmap = null;
1846 delete __pHandleHighlightedBitmap;
1847 __pHandleHighlightedBitmap = pThumbBitmap;
1850 case SLIDER_THUMB_STATUS_NORMAL:
1854 delete __pHandleNormalEffectBitmap;
1855 __pHandleNormalEffectBitmap = null;
1857 delete __pHandleNormalBitmap;
1858 __pHandleNormalBitmap = pThumbBitmap;
1860 __handleRect.width = __pHandleNormalBitmap->GetWidth();
1861 __handleRect.height = __pHandleNormalBitmap->GetHeight();
1863 _VisualElement* pHandle = __pSlider->GetHandle();
1864 pHandle->SetBounds(FloatRectangle(__handleRect.x, __handleRect.y, __handleRect.width, __handleRect.height));
1866 __handleOffset = __handleRect.width / 2;
1867 __isCustomHandle = true;
1877 _SliderPresenter::SetThumbTextColor(SliderThumbStatus status, const Color& color)
1881 case SLIDER_THUMB_STATUS_PRESSED:
1882 __handleTextPressedColor = color;
1883 __isCustomPressedTextColor = true;
1886 case SLIDER_THUMB_STATUS_DISABLED:
1887 __handleTextDisabledColor = color;
1890 case SLIDER_THUMB_STATUS_HIGHLIGHTED:
1891 __handleTextHighlightedColor = color;
1894 case SLIDER_THUMB_STATUS_NORMAL:
1897 __handleTextColor = color;
1904 }}} // Tizen::Ui::Controls