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_ButtonPresenter.cpp
19 * @brief This is the implementation file for the _ButtonPresenter class.
22 #include <FBaseErrorDefine.h>
23 #include <FBaseSysLog.h>
24 #include <FGrp_TextTextSimple.h>
25 #include <FGrp_BitmapImpl.h>
26 #include <FGrp_CanvasImpl.h>
27 #include "FUi_ResourceManager.h"
28 #include "FUi_UiTouchEvent.h"
29 #include "FUiAnim_VisualElement.h"
30 #include "FUiCtrl_ButtonPresenter.h"
31 #include "FUiCtrl_ButtonModel.h"
32 #include "FUiCtrl_Button.h"
34 using namespace Tizen::Base;
35 using namespace Tizen::Graphics;
36 using namespace Tizen::Graphics::_Text;
37 using namespace Tizen::App;
39 namespace Tizen { namespace Ui { namespace Controls
41 _ButtonPresenter::_ButtonPresenter(void)
43 , __pButtonModel(null)
44 , __previousEnabledState(false)
45 , __touchMoveHandled(false)
55 _ButtonPresenter::~_ButtonPresenter(void)
59 delete __pButtonModel;
60 __pButtonModel = null;
71 _ButtonPresenter::Construct(const _Button& button)
75 __pButton = const_cast <_Button*>(&button);
76 __fontStyle = FONT_STYLE_PLAIN;
77 __fontSize = __pButton->GetTextSize();
78 __pFont = __pButton->GetFallbackFont();
80 SysTryReturn(NID_UI_CTRL, __pFont, r, r, "[%s] Propagating.", GetErrorMessage(r));
82 __pTextObject = new (std::nothrow) TextObject();
83 SysTryCatch(NID_UI_CTRL, __pTextObject != null, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
96 _ButtonPresenter::Install(void)
100 __pBase = __pButton->GetVisualElement();
102 _ButtonModel* pModel = new (std::nothrow) _ButtonModel();
103 SysTryReturn(NID_UI_CTRL, pModel, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
105 r = SetModel(*pModel);
106 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] A system error occurred.");
108 r = pModel->Construct();
109 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] A system error occurred.");
119 _ButtonPresenter::SetModel(const _ButtonModel& buttonModel)
121 __pButtonModel = const_cast <_ButtonModel*>(&buttonModel);
127 _ButtonPresenter::InitTextObject(void)
129 TextSimple* pSimpleText = null;
131 pSimpleText = new (std::nothrow) TextSimple(const_cast<wchar_t*>(__pButton->GetText().GetPointer()), __pButton->GetText().GetLength());
132 SysTryReturn(NID_UI_CTRL, pSimpleText, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
134 __pTextObject->Construct();
135 __pTextObject->AppendElement(*pSimpleText);
136 __pTextObject->SetWrap(TEXT_OBJECT_WRAP_TYPE_WORD);
137 __pTextObject->SetAction(TEXT_OBJECT_ACTION_TYPE_ABBREV);
138 __pTextObject->SetFont(__pFont, 0, __pTextObject->GetTextLength());
139 __pTextObject->SetAlignment(TEXT_OBJECT_ALIGNMENT_CENTER | TEXT_OBJECT_ALIGNMENT_MIDDLE);
140 __pTextObject->SetBounds(Rectangle(__pButton->GetLeftMargin(), __pButton->GetTopMargin(),
141 __pButton->GetBounds().width - __pButton->GetLeftMargin() * 2, __pButton->GetBounds().height - __pButton->GetTopMargin() * 2));
142 __pTextObject->Compose();
148 _ButtonPresenter::OnFontChanged(Font* pFont)
156 _ButtonPresenter::OnFontInfoRequested(unsigned long& style, int& size)
165 _ButtonPresenter::SetTextSize(int size, unsigned long fontStyle)
167 result r = E_SUCCESS;
169 bool isStrikeOut = __pFont->IsStrikeOut();
170 bool isUnderLine = __pFont->IsUnderlined();
172 if (__pFont->IsItalic())
174 fontStyle |= FONT_STYLE_ITALIC;
177 if (__pFont->IsBold())
179 fontStyle |= FONT_STYLE_BOLD;
182 __fontStyle = fontStyle;
185 __pFont = __pButton->GetFallbackFont();
187 SysTryReturnVoidResult(NID_UI_CTRL, __pFont, r, "[%s] Propagating.", GetErrorMessage(r));
189 __pFont->SetStrikeOut(isStrikeOut);
190 __pFont->SetUnderline(isUnderLine);
196 _ButtonPresenter::SetFontInfo(unsigned long style, int size)
205 _ButtonPresenter::GetTextObject(void) const
207 return __pTextObject;
211 _ButtonPresenter::Draw(void)
213 _ButtonStatus status = __pButton->GetButtonStatus();
214 Bitmap* pToolbarItemBackgroundBitmap = __pButton->GetToolbarItemBackgroundBitmap(status);
216 if (pToolbarItemBackgroundBitmap)
218 DrawToolbarItemBackground();
228 if (status == _BUTTON_STATUS_SELECTED)
230 DrawToolbarSelectedBitmap();
237 _ButtonPresenter::DrawBackground(void)
239 Canvas* pCanvas = null;
241 Bitmap* pReplacementColorBackgroundBitmap = null;
242 Bitmap* pBackgroundBitmap = null;
243 Bitmap* pBackgroundEffectBitmap = null;
245 Rectangle bounds(0, 0, __pButton->GetBounds().width, __pButton->GetBounds().height);
247 _ButtonStatus status = __pButton->GetButtonStatus();
249 if (__pButton->IsUserBackgroundBitmap(status))
251 pBackgroundBitmap = __pButton->GetBackgroundBitmap(status);
252 pBackgroundEffectBitmap = __pButton->GetBackgroundEffectBitmap(status);
254 if (pBackgroundBitmap)
256 pCanvas = __pButton->GetCanvasN();
259 SysLog(NID_UI_CTRL, "Cannot get a canvas.");
262 pCanvas->SetBackgroundColor(Color(0, 0, 0, 0));
265 if (pBackgroundBitmap->IsNinePatchedBitmap()) //ninepatch
267 if (pBackgroundEffectBitmap)
269 if (pBackgroundEffectBitmap->IsNinePatchedBitmap())
271 pCanvas->DrawNinePatchedBitmap(bounds, *pBackgroundBitmap);
272 if (__pButton->IsUserBackgroundEffectBitmap(status))
274 pCanvas->DrawNinePatchedBitmap(bounds, *pBackgroundEffectBitmap);
279 pCanvas->DrawNinePatchedBitmap(bounds, *pBackgroundBitmap);
280 if (__pButton->IsUserBackgroundEffectBitmap(status))
282 pCanvas->DrawBitmap(bounds, *pBackgroundEffectBitmap, Rectangle(0, 0, pBackgroundEffectBitmap->GetWidth(), pBackgroundEffectBitmap->GetHeight()));
288 pCanvas->DrawNinePatchedBitmap(bounds, *pBackgroundBitmap);
291 else // not ninepatch
293 if (pBackgroundEffectBitmap)
295 if (pBackgroundEffectBitmap->IsNinePatchedBitmap())
297 pCanvas->DrawBitmap(bounds, *pBackgroundBitmap, Rectangle(0, 0, pBackgroundBitmap->GetWidth(), pBackgroundBitmap->GetHeight()));
298 if (__pButton->IsUserBackgroundEffectBitmap(status))
300 pCanvas->DrawNinePatchedBitmap(bounds, *pBackgroundEffectBitmap);
305 pCanvas->DrawBitmap(bounds, *pBackgroundBitmap, Rectangle(0, 0, pBackgroundBitmap->GetWidth(), pBackgroundBitmap->GetHeight()));
306 if (__pButton->IsUserBackgroundEffectBitmap(status))
308 pCanvas->DrawBitmap(bounds, *pBackgroundEffectBitmap, Rectangle(0, 0, pBackgroundEffectBitmap->GetWidth(), pBackgroundEffectBitmap->GetHeight()));
314 pCanvas->DrawBitmap(bounds, *pBackgroundBitmap, Rectangle(0, 0, pBackgroundBitmap->GetWidth(), pBackgroundBitmap->GetHeight()));
320 pCanvas = __pButton->GetCanvasN();
323 SysLog(NID_UI_CTRL, "Cannot get a canvas.");
326 pCanvas->SetBackgroundColor(Color(0, 0, 0, 0));
329 if (pBackgroundEffectBitmap)
331 if (pBackgroundEffectBitmap->IsNinePatchedBitmap())
333 if (__pButton->IsUserBackgroundEffectBitmap(status))
335 pCanvas->DrawNinePatchedBitmap(bounds, *pBackgroundEffectBitmap);
340 if (__pButton->IsUserBackgroundEffectBitmap(status))
342 pCanvas->DrawBitmap(bounds, *pBackgroundEffectBitmap, Rectangle(0, 0, pBackgroundEffectBitmap->GetWidth(), pBackgroundEffectBitmap->GetHeight()));
348 pCanvas->FillRectangle(__pButton->GetColor(status), bounds);
352 else // nobody set bitmap (default bitmap draw)
354 pCanvas = __pButton->GetCanvasN();
357 SysLog(NID_UI_CTRL, "Cannot get a canvas.");
360 pCanvas->SetBackgroundColor(Color(0, 0, 0, 0));
363 if (status == _BUTTON_STATUS_DISABLED)
365 pBackgroundBitmap = __pButton->GetBackgroundBitmap(_BUTTON_STATUS_DISABLED);
367 if(!__pButton->IsUserBackgroundBitmap(_BUTTON_STATUS_NORMAL))
369 pBackgroundEffectBitmap = __pButton->GetBackgroundEffectBitmap(_BUTTON_STATUS_NORMAL);
372 pReplacementColorBackgroundBitmap =
373 _BitmapImpl::GetColorReplacedBitmapN(*pBackgroundBitmap, Color::GetColor(COLOR_ID_MAGENTA), __pButton->GetColor(_BUTTON_STATUS_DISABLED));
377 pBackgroundBitmap = __pButton->GetBackgroundBitmap(status);
378 pBackgroundEffectBitmap = __pButton->GetBackgroundEffectBitmap(status);
379 pReplacementColorBackgroundBitmap =
380 _BitmapImpl::GetColorReplacedBitmapN(*pBackgroundBitmap, Color::GetColor(COLOR_ID_MAGENTA), __pButton->GetColor(status));
383 if (pReplacementColorBackgroundBitmap)
385 if (pReplacementColorBackgroundBitmap->IsNinePatchedBitmap())
387 if (pBackgroundEffectBitmap)
389 if (pBackgroundEffectBitmap->IsNinePatchedBitmap())
391 pCanvas->DrawNinePatchedBitmap(bounds, *pReplacementColorBackgroundBitmap);
392 pCanvas->DrawNinePatchedBitmap(bounds, *pBackgroundEffectBitmap);
396 pCanvas->DrawNinePatchedBitmap(bounds, *pReplacementColorBackgroundBitmap);
397 pCanvas->DrawBitmap(bounds, *pBackgroundEffectBitmap, Rectangle(0, 0, pBackgroundEffectBitmap->GetWidth(), pBackgroundEffectBitmap->GetHeight()));
402 pCanvas->DrawNinePatchedBitmap(bounds, *pReplacementColorBackgroundBitmap);
407 if (pBackgroundEffectBitmap)
409 if (pBackgroundEffectBitmap->IsNinePatchedBitmap())
411 pCanvas->DrawBitmap(bounds, *pReplacementColorBackgroundBitmap, Rectangle(0, 0, pReplacementColorBackgroundBitmap->GetWidth(),
412 pReplacementColorBackgroundBitmap->GetHeight()));
413 pCanvas->DrawNinePatchedBitmap(bounds, *pBackgroundEffectBitmap);
417 pCanvas->DrawBitmap(bounds, *pReplacementColorBackgroundBitmap, Rectangle(0, 0, pReplacementColorBackgroundBitmap->GetWidth(),
418 pReplacementColorBackgroundBitmap->GetHeight()));
419 pCanvas->DrawBitmap(bounds, *pBackgroundEffectBitmap, Rectangle(0, 0, pBackgroundEffectBitmap->GetWidth(), pBackgroundEffectBitmap->GetHeight()));
424 pCanvas->DrawBitmap(bounds, *pReplacementColorBackgroundBitmap, Rectangle(0, 0, pReplacementColorBackgroundBitmap->GetWidth(),
425 pReplacementColorBackgroundBitmap->GetHeight()));
431 if (pBackgroundEffectBitmap)
433 if (pBackgroundEffectBitmap->IsNinePatchedBitmap())
435 pCanvas->DrawNinePatchedBitmap(bounds, *pBackgroundEffectBitmap);
439 pCanvas->DrawBitmap(bounds, *pBackgroundEffectBitmap, Rectangle(0, 0, pBackgroundEffectBitmap->GetWidth(), pBackgroundEffectBitmap->GetHeight()));
444 if (status == _BUTTON_STATUS_DISABLED)
446 pCanvas->FillRectangle(__pButton->GetColor(_BUTTON_STATUS_NORMAL), bounds);
450 pCanvas->FillRectangle(__pButton->GetColor(status), bounds);
456 if (!__pButton->IsUserBackgroundBitmap(status))
458 __pButton->UnloadBackgroundBitmap(status);
461 if (!__pButton->IsUserBackgroundEffectBitmap(status))
463 __pButton->UnloadBackgroundEffectBitmap(status);
471 delete pReplacementColorBackgroundBitmap;
477 _ButtonPresenter::DrawToolbarItemBackground(void)
479 _ButtonStatus status = __pButton->GetButtonStatus();
480 Bitmap* pToolbarItemBackgroundBitmap = __pButton->GetToolbarItemBackgroundBitmap(status);
482 if (pToolbarItemBackgroundBitmap)
484 Canvas* pCanvas = __pButton->GetCanvasN();
488 SysLog(NID_UI_CTRL, "Cannot get a canvas.");
492 pCanvas->SetBackgroundColor(Color(0, 0, 0, 0));
495 Rectangle bounds(0, 0, __pButton->GetBounds().width, __pButton->GetBounds().height);
497 if (pToolbarItemBackgroundBitmap->IsNinePatchedBitmap())
499 pCanvas->DrawNinePatchedBitmap(bounds, *pToolbarItemBackgroundBitmap);
503 pCanvas->DrawBitmap(bounds, *pToolbarItemBackgroundBitmap, Rectangle(0, 0, pToolbarItemBackgroundBitmap->GetWidth(), pToolbarItemBackgroundBitmap->GetHeight()));
513 _ButtonPresenter::DrawBitmap(void)
515 Canvas* pCanvas = null;
517 _ButtonStatus status = __pButton->GetButtonStatus();
519 Bitmap* pBitmap = __pButton->GetBitmap(status);
520 Bitmap* pNormalBitmap = __pButton->GetBitmap(_BUTTON_STATUS_NORMAL);
522 Rectangle bounds(0, 0, __pButton->GetBounds().width, __pButton->GetBounds().height);
526 pCanvas = __pButton->GetCanvasN();
530 SysLog(NID_UI_CTRL, "Cannot get a canvas.");
534 if (__pButton->GetSize().width - __pButton->GetBitmapPosition(status).x < pBitmap->GetWidth()
535 || __pButton->GetSize().height - __pButton->GetBitmapPosition(status).y < pBitmap->GetHeight())
537 pCanvas->DrawBitmap(bounds, *pBitmap, Rectangle(0, 0, pBitmap->GetWidth(), pBitmap->GetHeight()));
541 pCanvas->DrawBitmap(__pButton->GetBitmapPosition(status), *pBitmap);
544 else if (pNormalBitmap)
546 pCanvas = __pButton->GetCanvasN();
550 SysLog(NID_UI_CTRL, "Cannot get a canvas.");
554 if (__pButton->GetSize().width - __pButton->GetBitmapPosition(_BUTTON_STATUS_NORMAL).x < pNormalBitmap->GetWidth()
555 || __pButton->GetSize().height - __pButton->GetBitmapPosition(_BUTTON_STATUS_NORMAL).y < pNormalBitmap->GetHeight())
557 pCanvas->DrawBitmap(bounds, *pNormalBitmap, Rectangle(0, 0, pNormalBitmap->GetWidth(), pNormalBitmap->GetHeight()));
561 pCanvas->DrawBitmap(__pButton->GetBitmapPosition(_BUTTON_STATUS_NORMAL), *pNormalBitmap);
571 _ButtonPresenter::DrawText(void)
573 TextSimple* pSimpleText = null;
574 TextObjectAlignment horizontalAlign = TEXT_OBJECT_ALIGNMENT_CENTER;
575 TextObjectAlignment verticalAlign = TEXT_OBJECT_ALIGNMENT_MIDDLE;
577 int buttonTopMargin = __pButton->GetTopMargin();
578 int buttonLeftMargin = __pButton->GetLeftMargin();
579 int multilineFontSize = 0;
581 Canvas* pCanvas = __pButton->GetCanvasN();
584 SysLog(NID_UI_CTRL, "Cannot get a canvas.");
588 switch (__pButton->GetTextHorizontalAlignment())
591 horizontalAlign = TEXT_OBJECT_ALIGNMENT_LEFT;
593 case ALIGNMENT_CENTER:
594 horizontalAlign = TEXT_OBJECT_ALIGNMENT_CENTER;
597 horizontalAlign = TEXT_OBJECT_ALIGNMENT_RIGHT;
600 switch (__pButton->GetTextVerticalAlignment())
603 verticalAlign = TEXT_OBJECT_ALIGNMENT_TOP;
605 case ALIGNMENT_MIDDLE:
606 verticalAlign = TEXT_OBJECT_ALIGNMENT_MIDDLE;
609 verticalAlign = TEXT_OBJECT_ALIGNMENT_BOTTOM;
612 __pTextObject->RemoveAll();
613 pSimpleText = new (std::nothrow) TextSimple(const_cast<wchar_t*>(__pButton->GetText().GetPointer()), __pButton->GetText().GetLength());
614 __pTextObject->AppendElement(*pSimpleText);
616 if (__pButton->UserDefinedText())
618 __pTextObject->SetBounds(__pButton->GetUserDefinedTextArea());
622 __pTextObject->SetBounds(Rectangle(buttonLeftMargin, buttonTopMargin,
623 __pButton->GetBounds().width - buttonLeftMargin * 2, __pButton->GetBounds().height - buttonTopMargin * 2));
625 __pTextObject->SetAlignment(horizontalAlign | verticalAlign);
627 __pTextObject->SetFont(__pFont, 0, __pTextObject->GetTextLength());
628 __pTextObject->Compose();
630 if (__pTextObject->GetTotalLineCount() >= 2)
632 GET_SHAPE_CONFIG(BUTTON::MULTILINE_FONT_SIZE, _CONTROL_ORIENTATION_PORTRAIT, multilineFontSize);
634 if (multilineFontSize < __fontSize)
636 __fontSize = multilineFontSize;
637 SetTextSize(__fontSize);
639 __pTextObject->SetFont(__pFont, 0, __pTextObject->GetTextLength());
640 __pTextObject->Compose();
644 __pTextObject->SetForegroundColor(__pButton->GetTextColor(__pButton->GetButtonStatus()), 0, __pTextObject->GetTextLength());
645 __pTextObject->Draw(*_CanvasImpl::GetInstance(*pCanvas));
653 _ButtonPresenter::DrawToolbarSelectedBitmap(void)
655 int selectedBitmapMargin = 0;
656 int selectedBitmapHeight = 0;
657 int segmentedHeight = 0;
659 GET_SHAPE_CONFIG(HEADER::HEADER_ITEM_SELECTED_BITMAP_MARGIN, _CONTROL_ORIENTATION_PORTRAIT, selectedBitmapMargin);
660 GET_SHAPE_CONFIG(HEADER::HEADER_ITEM_SELECTED_BITMAP_HEIGHT, _CONTROL_ORIENTATION_PORTRAIT, selectedBitmapHeight);
661 GET_SHAPE_CONFIG(HEADER::SEGMENTED_ITEM_HEIGHT, _CONTROL_ORIENTATION_PORTRAIT, segmentedHeight);
663 Bitmap* pToolbarSelectedBitmap = __pButton->GetToolbarSelectedBitmap();
665 bool isDrawInner = __pButton->IsDrawInner();
667 if (pToolbarSelectedBitmap)
669 Canvas* pCanvas = __pButton->GetCanvasN();
673 SysLog(NID_UI_CTRL, "Cannot get a canvas.");
677 Rectangle bounds(selectedBitmapMargin, __pButton->GetBounds().height - (__pButton->GetBounds().height - segmentedHeight) / 2,
678 __pButton->GetBounds().width - selectedBitmapMargin * 2, selectedBitmapHeight);
682 bounds.y -= selectedBitmapHeight;
685 if (pToolbarSelectedBitmap->IsNinePatchedBitmap())
687 pCanvas->DrawNinePatchedBitmap(bounds, *pToolbarSelectedBitmap);
691 pCanvas->DrawBitmap(bounds, *pToolbarSelectedBitmap, Rectangle(0, 0, pToolbarSelectedBitmap->GetWidth(), pToolbarSelectedBitmap->GetHeight()));
701 _ButtonPresenter::OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo)
703 if (&source != __pButton)
708 if (!__pButton->IsEnabled())
713 __touchMoveHandled = false;
714 _ButtonStatus status = __pButton->GetButtonStatus();
716 if (status != _BUTTON_STATUS_SELECTED)
718 __pButton->SetButtonStatus(_BUTTON_STATUS_PRESSED);
721 __pButton->Invalidate();
723 if (__pButton->GetButtonStyle() == _BUTTON_STYLE_SEGMENT)
732 _ButtonPresenter::OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo)
734 if (&source != __pButton)
739 if (!__pButton->IsEnabled())
744 _ButtonStatus status = __pButton->GetButtonStatus();
746 if (__pButton->GetButtonStyle() == _BUTTON_STYLE_SEGMENT)
751 if (status == _BUTTON_STATUS_NORMAL)
756 Point touchPoint = touchinfo.GetCurrentPosition();
758 touchPoint.x += source.GetClientBounds().x;
759 touchPoint.y += source.GetClientBounds().y;
761 Rectangle bounds = __pButton->GetClientBounds();
763 __pButton->SetButtonStatus(_BUTTON_STATUS_NORMAL);
764 __pButton->Invalidate();
766 if (bounds.Contains(touchPoint))
768 __pButton->FireActionEvent();
775 _ButtonPresenter::OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo)
777 if (&source != __pButton)
782 if (!__pButton->IsEnabled())
787 if (__pButton->GetButtonStyle() == _BUTTON_STYLE_SEGMENT)
792 Point touchPoint = touchinfo.GetCurrentPosition();
794 touchPoint.x += source.GetClientBounds().x;
795 touchPoint.y += source.GetClientBounds().y;
797 Rectangle bounds = __pButton->GetClientBounds();
798 bool isInButtonArea = bounds.Contains(touchPoint);
799 _ButtonStatus oldStatus = __pButton->GetButtonStatus();
801 if (isInButtonArea && (__touchMoveHandled != true))
803 __pButton->SetButtonStatus(_BUTTON_STATUS_PRESSED);
807 __pButton->SetButtonStatus(_BUTTON_STATUS_NORMAL);
810 if (__pButton->GetButtonStatus() != oldStatus)
812 __pButton->Invalidate();
819 _ButtonPresenter::OnTouchCanceled(const _Control& source, const _TouchInfo& touchinfo)
821 if (&source != __pButton)
826 if (!__pButton->IsEnabled())
831 if (__pButton->GetButtonStyle() == _BUTTON_STYLE_SEGMENT)
836 __pButton->SetButtonStatus(_BUTTON_STATUS_NORMAL);
837 __pButton->Invalidate();
843 _ButtonPresenter::OnTouchMoveHandled(const _Control& control)
845 if (__touchMoveHandled == false)
847 __touchMoveHandled = true;
848 __pButton->SetButtonStatus(_BUTTON_STATUS_NORMAL);
849 __pButton->Invalidate();
856 _ButtonPresenter::IsEnabledStateChanged(void)
858 bool __currentEnabledState = __pButton->GetEnableState();
861 if (__currentEnabledState != __previousEnabledState)
863 __previousEnabledState = __currentEnabledState;
872 }}} // Tizen::Ui::Controls