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 FUiControl.cpp
20 * @brief This is the implementation file for the Control class.
23 #include <FUiControl.h>
24 #include <FUiContainer.h>
25 #include <FUiTouchGestureDetector.h>
26 #include <FBaseSysLog.h>
27 #include <FApp_AppInfo.h>
28 #include "FUi_ControlImpl.h"
29 #include "FUi_ContainerImpl.h"
30 #include "FUi_ErrorMessages.h"
31 #include "FUiAnimVisualElement.h"
32 #include "FUiAnimVisualElementSurface.h"
33 #include "FUiAnim_VisualElementSurfaceImpl.h"
37 #include "FUiAnim_EflNode.h"
38 #include "FUiAnim_EflLayer.h"
39 #include "FUiAnim_VisualElementImpl.h"
40 #include "FUiAnim_DisplayContextImpl.h"
43 using namespace Tizen::Base;
44 using namespace Tizen::Base::Collection;
45 using namespace Tizen::Graphics;
46 using namespace Tizen::Ui::Animations;
48 extern "C" _OSP_EXPORT_ void*
49 STO_GetNativeHandle(void* pControl)
51 Handle nativeHandle = 0;
52 Tizen::Ui::Control* pControlPointer = (Tizen::Ui::Control*)pControl;
56 Tizen::Ui::_ControlImpl* pControlImpl = Tizen::Ui::_ControlImpl::GetInstance(*pControlPointer);
60 VisualElement *pVisualElement = pControlImpl->GetVisualElement();
64 VisualElementSurface* pSurface = pVisualElement->GetSurfaceN();
68 _VisualElementSurfaceImpl* pSurfaceImpl = _VisualElementSurfaceImpl::GetInstance(*pSurface);
70 nativeHandle = pSurfaceImpl->GetNativeHandle();
78 return (void*)nativeHandle;
81 extern "C" _OSP_EXPORT_ void
82 STO_NativeHandleSetShowState(void* pNative, bool show)
85 evas_object_show((Evas_Object*)pNative);
87 evas_object_hide((Evas_Object*)pNative);
90 extern "C" _OSP_EXPORT_ void*
91 STO_GetVisualElement(void* pControl)
93 Tizen::Ui::Control* pControlPointer = (Tizen::Ui::Control*)pControl;
94 Tizen::Ui::_ControlImpl* pControlImpl = Tizen::Ui::_ControlImpl::GetInstance(*pControlPointer);
96 return (void *)pControlImpl->GetVisualElement();
99 extern "C" _OSP_EXPORT_
100 void STO_NativeHandleDataSet(void* pEvasObject, void* pData, int width, int height)
102 evas_object_image_size_set((Evas_Object*)pEvasObject, width, height);
103 evas_object_image_data_set((Evas_Object*)pEvasObject, pData);
108 extern "C" _OSP_EXPORT_ void
109 STO_SetVisualElementNativeObject(void* pVisualElement, void* pNativeObject)
111 VisualElement* pVE = (VisualElement* )pVisualElement;
112 Evas_Object* pEO = (Evas_Object*)pNativeObject;
114 _VisualElementImpl* pVEImpl = _VisualElementImpl::GetInstance(*pVE);
116 _EflNode* pNode = (_EflNode*)pVEImpl->GetNativeNode();
117 pNode->AddNativeSmartObject(*pVE, pEO);
122 evas_object_image_size_get(pEO, &imageWidth, &imageHeight);
123 evas_object_image_data_update_add(pEO, 0, 0, imageWidth, imageHeight);
126 extern "C" _OSP_EXPORT_
127 void* STO_CreateNativeImageObject(void* pDisplayContext, int width, int height)
135 _DisplayContextImpl* pDispImpl = _DisplayContextImpl::GetInstance(*(DisplayContext*)pDisplayContext);
137 if(!pDispImpl->GetNativeLayer())
141 Evas* pEvas = ((_EflLayer*)pDispImpl->GetNativeLayer())->GetEvas();
148 Evas_Object* pImage = evas_object_image_filled_add(pEvas);
149 evas_object_resize(pImage, width, height);
150 evas_object_move(pImage, 0, 0);
151 // evas_object_show(pImage);
157 extern "C" _OSP_EXPORT_ void
158 STO_FillSet(void* pVisualElement, int x, int y, int w, int h)
160 VisualElement* pVE = (VisualElement*)pVisualElement;
162 _VisualElementImpl* pVEImpl = _VisualElementImpl::GetInstance(*pVE);
164 _EflNode* pNode = (_EflNode*)pVEImpl->GetNativeNode();
165 Evas_Object* pEvasObject = pNode->GetNativeObject();
168 evas_object_image_fill_set(pEvasObject, x, y, w, h);
172 extern "C" _OSP_EXPORT_ void
173 STO_Destroy(void* pVisualElement, void* pEvasObject)
175 VisualElement* pVE = (VisualElement* )pVisualElement;
177 _VisualElementImpl* pVEImpl = _VisualElementImpl::GetInstance(*pVE);
179 _EflNode* pNode = (_EflNode*)pVEImpl->GetNativeNode();
180 pNode->AddNativeSmartObject(*pVE, null);
182 evas_object_del((Evas_Object*)pEvasObject);
186 namespace Tizen { namespace Ui {
188 Control::Control(void)
189 : _pControlImpl(null)
193 Control::~Control(void)
199 Control::Dispose(void)
201 delete _pControlImpl;
202 _pControlImpl = null;
206 Control::Construct(void)
208 SysAssertf(_pControlImpl == null, "Already constructed. Calling Construct() twice or more on a same instance is not allowed for this class.");
210 _ControlImpl* pImpl = _ControlImpl::CreateControlImplN(*this);
211 result r = GetLastResult();
212 SysTryReturn(NID_UI, pImpl, r, r, "[%s] Propagating.", GetErrorMessage(r));
214 _pControlImpl = pImpl;
220 Control::Destroy(void)
222 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
223 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
225 result r = pControlImpl->Destroy();
226 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
234 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
235 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before used.");
237 result r = pControlImpl->Draw(true);
238 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
244 Control::Draw(bool recursive)
246 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
247 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
249 result r = pControlImpl->Draw(recursive);
250 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
256 Control::Invalidate(bool recursive)
258 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
259 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
261 pControlImpl->Invalidate(recursive);
262 result r = GetLastResult();
263 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
267 Control::InvalidateBounds(const Rectangle& bounds)
269 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
270 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before used.");
272 pControlImpl->Invalidate(bounds);
273 result r = GetLastResult();
274 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
278 Control::InvalidateBounds(const FloatRectangle& bounds)
280 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
281 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before used.");
283 pControlImpl->Invalidate(bounds);
284 result r = GetLastResult();
285 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
289 Control::GetCanvasN(void) const
291 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
292 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
294 Canvas* pCanvas = pControlImpl->GetCanvasN();
295 result r = GetLastResult();
296 SysTryCatch(NID_UI, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
306 Control::GetCanvasN(int x, int y, int w, int h) const
308 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
309 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
311 Canvas* pCanvas = pControlImpl->GetCanvasN(Rectangle(x, y, w, h));
312 result r = GetLastResult();
313 SysTryCatch(NID_UI, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
323 Control::GetCanvasN(float x, float y, float w, float h) const
325 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
326 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
328 Canvas* pCanvas = pControlImpl->GetCanvasN(FloatRectangle(x, y, w, h));
329 result r = GetLastResult();
330 SysTryCatch(NID_UI, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
340 Control::GetCanvasN(const Rectangle& bounds) const
342 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
343 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
345 Canvas* pCanvas = pControlImpl->GetCanvasN(bounds);
346 result r = GetLastResult();
347 SysTryCatch(NID_UI, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
357 Control::GetCanvasN(const FloatRectangle& bounds) const
359 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
360 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
362 Canvas* pCanvas = pControlImpl->GetCanvasN(bounds);
363 result r = GetLastResult();
364 SysTryCatch(NID_UI, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
374 Control::SetEnabled(bool enable)
377 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
379 if (Tizen::App::_AppInfo::GetApiVersion() == _API_VERSION_2_0 && Tizen::App::_AppInfo::IsOspCompat())
382 pControlImpl, E_UNSUPPORTED_OPERATION,
383 E_UNSUPPORTED_OPERATION, "[E_UNSUPPORTED_OPERATION] This control is not constructed.");
387 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
390 pControlImpl->SetEnableState(enable);
391 result r = GetLastResult();
392 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
400 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
401 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
403 result r = pControlImpl->Show();
404 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
410 Control::GetBounds(int& x, int& y, int& w, int& h) const
412 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
413 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
415 Rectangle bounds = pControlImpl->GetBounds();
416 result r = GetLastResult();
417 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
426 Control::GetBounds(float& x, float& y, float& w, float& h) const
428 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
429 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
431 FloatRectangle bounds = pControlImpl->GetBoundsF();
432 result r = GetLastResult();
433 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
442 Control::GetBounds(void) const
444 const Rectangle errorBounds = _ControlImpl::GetErrorBounds();
446 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
447 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
449 Rectangle bounds = pControlImpl->GetBounds();
450 result r = GetLastResult();
451 SysTryReturn(NID_UI, r == E_SUCCESS, errorBounds, r, "[%s] Propagating.", GetErrorMessage(r));
457 Control::GetBoundsF(void) const
459 const FloatRectangle errorBounds = _ControlImpl::GetErrorBoundsF();
461 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
462 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
464 FloatRectangle bounds = pControlImpl->GetBoundsF();
465 result r = GetLastResult();
466 SysTryReturn(NID_UI, r == E_SUCCESS, errorBounds, r, "[%s] Propagating.", GetErrorMessage(r));
472 Control::GetSize(void) const
474 const Rectangle errorBounds = _ControlImpl::GetErrorBounds();
475 const Dimension errorSize(errorBounds.width, errorBounds.height);
477 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
478 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
480 Dimension size = pControlImpl->GetSize();
481 result r = GetLastResult();
482 SysTryReturn(NID_UI, r == E_SUCCESS, errorSize, r, "[%s] Propagating.", GetErrorMessage(r));
488 Control::GetSizeF(void) const
490 const FloatRectangle errorBounds = _ControlImpl::GetErrorBoundsF();
491 const FloatDimension errorSize(errorBounds.width, errorBounds.height);
493 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
494 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
496 FloatDimension size = pControlImpl->GetSizeF();
497 result r = GetLastResult();
498 SysTryReturn(NID_UI, r == E_SUCCESS, errorSize, r, "[%s] Propagating.", GetErrorMessage(r));
504 Control::GetSize(int& w, int& h) const
506 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
507 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
509 Dimension size = pControlImpl->GetSize();
510 result r = GetLastResult();
511 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
518 Control::GetSize(float& w, float& h) const
520 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
521 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
523 FloatDimension size = pControlImpl->GetSizeF();
524 result r = GetLastResult();
525 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
532 Control::GetPosition(void) const
534 const Rectangle errorBounds = _ControlImpl::GetErrorBounds();
535 const Point errorPosition(errorBounds.x, errorBounds.y);
537 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
538 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
540 Point position = pControlImpl->GetPosition();
541 result r = GetLastResult();
542 SysTryReturn(NID_UI, r == E_SUCCESS, errorPosition, r, "[%s] Propagating.", GetErrorMessage(r));
548 Control::GetPositionF(void) const
550 const FloatRectangle errorBounds = _ControlImpl::GetErrorBoundsF();
551 const FloatPoint errorPosition(errorBounds.x, errorBounds.y);
553 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
554 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
556 FloatPoint position = pControlImpl->GetPositionF();
557 result r = GetLastResult();
558 SysTryReturn(NID_UI, r == E_SUCCESS, errorPosition, r, "[%s] Propagating.", GetErrorMessage(r));
564 Control::GetPosition(int& x, int& y) const
566 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
567 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
569 Point position = pControlImpl->GetPosition();
570 result r = GetLastResult();
571 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
578 Control::GetPosition(float& x, float& y) const
580 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
581 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
583 FloatPoint position = pControlImpl->GetPositionF();
584 result r = GetLastResult();
585 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
592 Control::GetX(void) const
594 const Rectangle errorBounds = _ControlImpl::GetErrorBounds();
595 const int errorX = errorBounds.x;
597 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
598 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
600 int x = pControlImpl->GetPosition().x;
601 result r = GetLastResult();
602 SysTryReturn(NID_UI, r == E_SUCCESS, errorX, r, "[%s] Propagating.", GetErrorMessage(r));
608 Control::GetXF(void) const
610 const FloatRectangle errorBounds = _ControlImpl::GetErrorBoundsF();
611 const float errorX = errorBounds.x;
613 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
614 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
616 float x = pControlImpl->GetPositionF().x;
617 result r = GetLastResult();
618 SysTryReturn(NID_UI, r == E_SUCCESS, errorX, r, "[%s] Propagating.", GetErrorMessage(r));
624 Control::GetY(void) const
626 const Rectangle errorBounds = _ControlImpl::GetErrorBounds();
627 const int errorY = errorBounds.y;
629 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
630 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
632 int y = pControlImpl->GetPosition().y;
633 result r = GetLastResult();
634 SysTryReturn(NID_UI, r == E_SUCCESS, errorY, r, "[%s] Propagating.", GetErrorMessage(r));
640 Control::GetYF(void) const
642 const FloatRectangle errorBounds = _ControlImpl::GetErrorBoundsF();
643 const float errorY = errorBounds.y;
645 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
646 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
648 float y = pControlImpl->GetPositionF().y;
649 result r = GetLastResult();
650 SysTryReturn(NID_UI, r == E_SUCCESS, errorY, r, "[%s] Propagating.", GetErrorMessage(r));
656 Control::GetWidth(void) const
658 const Rectangle errorBounds = _ControlImpl::GetErrorBounds();
659 const int errorWidth = errorBounds.width;
661 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
662 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
664 int width = pControlImpl->GetSize().width;
665 result r = GetLastResult();
666 SysTryReturn(NID_UI, r == E_SUCCESS, errorWidth, r, "[%s] Propagating.", GetErrorMessage(r));
672 Control::GetWidthF(void) const
674 const FloatRectangle errorBounds = _ControlImpl::GetErrorBoundsF();
675 const float errorWidth = errorBounds.width;
677 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
678 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
680 float width = pControlImpl->GetSizeF().width;
681 result r = GetLastResult();
682 SysTryReturn(NID_UI, r == E_SUCCESS, errorWidth, r, "[%s] Propagating.", GetErrorMessage(r));
688 Control::GetHeight(void) const
690 const Rectangle errorBounds = _ControlImpl::GetErrorBounds();
691 const int errorHeight = errorBounds.height;
693 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
694 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
696 int height = pControlImpl->GetSize().height;
697 result r = GetLastResult();
698 SysTryReturn(NID_UI, r == E_SUCCESS, errorHeight, r, "[%s] Propagating.", GetErrorMessage(r));
704 Control::GetHeightF(void) const
706 const FloatRectangle errorBounds = _ControlImpl::GetErrorBoundsF();
707 const float errorHeight = errorBounds.height;
709 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
710 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
712 float height = pControlImpl->GetSizeF().height;
713 result r = GetLastResult();
714 SysTryReturn(NID_UI, r == E_SUCCESS, errorHeight, r, "[%s] Propagating.", GetErrorMessage(r));
720 Control::GetParent(void) const
722 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
723 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
725 _ContainerImpl* pParentImpl = pControlImpl->GetParent();
726 result r = GetLastResult();
727 SysTryReturn(NID_UI, r == E_SUCCESS, null, r, "[%s] Propagating.", GetErrorMessage(r));
729 return pParentImpl ? &pParentImpl->GetPublic() : null;
733 Control::GetFont(void) const
735 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
736 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
738 return pControlImpl->GetFont();
742 Control::SetBounds(int x, int y, int w, int h)
744 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
745 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
747 result r = pControlImpl->SetBounds(Rectangle(x, y, w, h));
748 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
754 Control::SetBounds(float x, float y, float w, float h)
756 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
757 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
759 result r = pControlImpl->SetBounds(FloatRectangle(x, y, w, h));
760 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
766 Control::SetBounds(const Rectangle& bounds)
768 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
769 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
771 result r = pControlImpl->SetBounds(bounds);
772 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
778 Control::SetBounds(const FloatRectangle& bounds)
780 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
781 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
783 result r = pControlImpl->SetBounds(bounds);
784 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
790 Control::SetSize(int w, int h)
792 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
793 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
795 result r = pControlImpl->SetSize(Dimension(w, h));
796 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
802 Control::SetSize(float w, float h)
804 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
805 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
807 result r = pControlImpl->SetSize(FloatDimension(w, h));
808 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
814 Control::SetSize(const Dimension& size)
816 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
817 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
819 result r = pControlImpl->SetSize(size);
820 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
826 Control::SetSize(const FloatDimension& size)
828 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
829 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
831 result r = pControlImpl->SetSize(size);
832 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
838 Control::SetPosition(int x, int y)
840 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
841 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
843 result r = pControlImpl->SetPosition(Point(x, y));
844 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
850 Control::SetPosition(float x, float y)
852 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
853 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
855 result r = pControlImpl->SetPosition(FloatPoint(x, y));
856 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
862 Control::SetPosition(const Point& position)
864 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
865 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
867 result r = pControlImpl->SetPosition(position);
868 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
874 Control::SetPosition(const FloatPoint& position)
876 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
877 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
879 result r = pControlImpl->SetPosition(position);
880 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
886 Control::SetFont(const String& fontName)
888 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
889 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
891 result r = pControlImpl->SetFont(fontName);
892 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
897 Control::IsEnabled(void) const
899 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
900 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
902 return pControlImpl->IsEnabled();
906 Control::IsVisible(void) const
908 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
909 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
911 return pControlImpl->IsVisible();
917 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
918 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
920 pControlImpl->SetFocused();
921 result r = GetLastResult();
922 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
928 Control::SetShowState(bool state)
930 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
931 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
933 result r = pControlImpl->SetVisibleState(state);
934 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
939 Tizen::Ui::Animations::VisualElement*
940 Control::GetVisualElement(void) const
942 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
943 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
945 return pControlImpl->GetVisualElement();
946 //return pControlImpl->GetCustomVisualElement();
950 Control::Contains(int x, int y) const
952 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
953 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
955 return pControlImpl->Contains(Point(x, y));
959 Control::Contains(float x, float y) const
961 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
962 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
964 return pControlImpl->Contains(FloatPoint(x, y));
968 Control::Contains(const Point& point) const
970 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
971 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
973 return pControlImpl->Contains(point);
977 Control::Contains(const FloatPoint& point) const
979 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
980 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
982 return pControlImpl->Contains(point);
986 Control::HasFocus(void) const
988 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
989 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
991 return pControlImpl->IsFocused();
995 Control::GetShowState(void) const
997 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
998 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1000 return pControlImpl->GetVisibleState();
1004 Control::GetName(void) const
1006 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1007 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1009 return pControlImpl->GetName();
1013 Control::SetName(const String& name)
1015 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1016 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1018 pControlImpl->SetName(name);
1022 Control::AddFocusEventListener(IFocusEventListener& listener)
1024 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1025 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1027 result r = pControlImpl->AddFocusEventListener(listener);
1028 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1032 Control::RemoveFocusEventListener(IFocusEventListener& listener)
1034 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1035 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1037 result r = pControlImpl->RemoveFocusEventListener(listener);
1038 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1042 Control::AddKeyEventListener(IKeyEventListener& listener)
1044 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1045 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1047 result r = pControlImpl->AddKeyEventListener(listener);
1048 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1052 Control::RemoveKeyEventListener(IKeyEventListener& listener)
1054 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1055 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1057 result r = pControlImpl->RemoveKeyEventListener(listener);
1058 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1062 Control::AddTouchEventListener(ITouchEventListener& listener)
1064 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1065 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1067 result r = pControlImpl->AddTouchEventListener(listener);
1068 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1072 Control::RemoveTouchEventListener(ITouchEventListener& listener)
1074 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1075 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1077 result r = pControlImpl->RemoveTouchEventListener(listener);
1078 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1082 Control::AddDragDropEventListener(IDragDropEventListener& listener)
1084 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1085 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1087 result r = pControlImpl->AddDragDropEventListener(listener);
1088 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1092 Control::AddDragDropEventListener(IDragDropEventListenerF& listener)
1094 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1095 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1097 result r = pControlImpl->AddDragDropEventListener(listener);
1098 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1102 Control::RemoveDragDropEventListener(IDragDropEventListener& listener)
1104 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1105 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1107 result r = pControlImpl->RemoveDragDropEventListener(listener);
1108 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1112 Control::RemoveDragDropEventListenerF(IDragDropEventListenerF& listener)
1114 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1115 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1117 result r = pControlImpl->RemoveDragDropEventListenerF(listener);
1118 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1122 Control::AddTouchModeChangedEventListener(ITouchModeChangedEventListener& listener)
1124 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1125 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1127 result r = pControlImpl->AddTouchModeChangedEventListener(listener);
1128 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1132 Control::RemoveTouchModeChangedEventListener(ITouchModeChangedEventListener& listener)
1134 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1135 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1137 result r = pControlImpl->RemoveTouchModeChangedEventListener(listener);
1138 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1142 Control::SetDragEnabled(bool enabled)
1144 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1145 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1147 pControlImpl->SetDragEnabled(enabled);
1151 Control::SetDropEnabled(bool enabled)
1153 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1154 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1156 pControlImpl->SetDropEnabled(enabled);
1160 Control::RequestRedraw(bool show) const
1162 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1163 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1165 pControlImpl->RequestRedraw(show);
1166 result r = GetLastResult();
1167 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1171 Control::OnInitializing(void)
1173 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1174 SysTryReturn(NID_UI, pControlImpl, E_FAILURE, E_FAILURE, "[E_FAILURE] This callback returns failure.");
1180 Control::OnTerminating(void)
1182 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1183 SysTryReturn(NID_UI, pControlImpl, E_FAILURE, E_FAILURE, "[E_FAILURE] This callback returns failure.");
1189 Control::OnUserEventReceivedN(RequestId requestId, IList* pArgs)
1194 Control::SendUserEvent(RequestId requestId, const IList* pArgs) const
1196 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1197 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1199 pControlImpl->SendUserEvent(requestId, pArgs);
1200 result r = GetLastResult();
1201 SysTryReturnVoidResult(NID_UI, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1205 Control::SetFocusable(bool focusable)
1207 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1208 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1210 result r = pControlImpl->SetFocusable(focusable);
1211 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1217 Control::IsFocusable(void) const
1219 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1220 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1222 return pControlImpl->IsFocusable();
1226 Control::IsInTouchMode(void) const
1228 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1229 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1231 return pControlImpl->IsInTouchMode();
1236 Control::SetCompositeMode(Tizen::Ui::CompositeMode compositeMode)
1238 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1239 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1241 result r = pControlImpl->SetCompositeMode(compositeMode);
1242 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1248 Control::GetCompositeMode(void) const
1250 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1251 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1253 return pControlImpl->GetCompositeMode();
1257 Control::SetChromaKeyColor(Color chromaKeyColor)
1259 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1260 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1262 result r = pControlImpl->SetChromaKeyColor(chromaKeyColor);
1263 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1269 Control::GetChromaKeyColor(void) const
1271 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1272 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1274 return pControlImpl->GetChromaKeyColor();
1278 Control::ConsumeInputEvent(void)
1280 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1281 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1283 pControlImpl->ConsumeInputEvent();
1284 result r = GetLastResult();
1285 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1291 Control::GetDefaultkeyEventListener(void) const
1293 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1294 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1296 return pControlImpl->GetDefaultKeyEventListener();
1300 Control::SetDefaultKeyEventListener(IKeyEventListener* pDefaultListener)
1302 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1303 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1305 pControlImpl->SetDefaultKeyEventListener(pDefaultListener);
1306 result r = GetLastResult();
1307 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1312 ITouchEventListener*
1313 Control::GetDefaultTouchEventListener(void) const
1315 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1316 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1318 return pControlImpl->GetDefaultTouchEventListener();
1322 Control::SetDefaultTouchEventListener(ITouchEventListener* pDefaultListener)
1324 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1325 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1327 pControlImpl->SetDefaultTouchEventListener(pDefaultListener);
1328 result r = GetLastResult();
1329 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1335 Control::IsMovable(void) const
1337 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1338 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1340 return pControlImpl->IsMovable();
1344 Control::IsResizable(void) const
1346 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1347 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1349 return pControlImpl->IsResizable();
1353 Control::SetMinimumSize(const Dimension& minSize)
1355 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1356 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1358 result r = pControlImpl->SetMinimumSize(minSize);
1359 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1365 Control::SetMinimumSize(const FloatDimension& minSize)
1367 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1368 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1370 result r = pControlImpl->SetMinimumSize(minSize);
1371 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1377 Control::SetMaximumSize(const Dimension& maxSize)
1379 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1380 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1382 result r = pControlImpl->SetMaximumSize(maxSize);
1383 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1389 Control::SetMaximumSize(const FloatDimension& maxSize)
1391 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1392 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1394 result r = pControlImpl->SetMaximumSize(maxSize);
1395 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1401 Control::ConvertToControlPosition(const Point& screenPosition) const
1403 const Rectangle errorBounds = _ControlImpl::GetErrorBounds();
1404 const Point errorPosition(errorBounds.x, errorBounds.y);
1406 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1407 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before used.");
1409 Point point = pControlImpl->ConvertToControlPosition(screenPosition);
1410 result r = GetLastResult();
1411 SysTryReturn(NID_UI, r == E_SUCCESS, errorPosition, r, "[%s] Propagating.", GetErrorMessage(r));
1417 Control::ConvertToControlPosition(const FloatPoint& screenPosition) const
1419 const FloatRectangle errorBounds = _ControlImpl::GetErrorBoundsF();
1420 const FloatPoint errorPosition(errorBounds.x, errorBounds.y);
1422 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1423 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before used.");
1425 FloatPoint point = pControlImpl->ConvertToControlPosition(screenPosition);
1426 result r = GetLastResult();
1427 SysTryReturn(NID_UI, r == E_SUCCESS, errorPosition, r, "[%s] Propagating.", GetErrorMessage(r));
1433 Control::ConvertToScreenPosition(const Point& controlPosition) const
1435 const Rectangle errorBounds = _ControlImpl::GetErrorBounds();
1436 const Point errorPosition(errorBounds.x, errorBounds.y);
1438 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1439 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before used.");
1441 Point point = pControlImpl->ConvertToScreenPosition(controlPosition);
1442 result r = GetLastResult();
1443 SysTryReturn(NID_UI, r == E_SUCCESS, errorPosition, r, "[%s] Propagating.", GetErrorMessage(r));
1449 Control::ConvertToScreenPosition(const FloatPoint& controlPosition) const
1451 const FloatRectangle errorBounds = _ControlImpl::GetErrorBoundsF();
1452 const FloatPoint errorPosition(errorBounds.x, errorBounds.y);
1454 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1455 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before used.");
1457 FloatPoint point = pControlImpl->ConvertToScreenPosition(controlPosition);
1458 result r = GetLastResult();
1459 SysTryReturn(NID_UI, r == E_SUCCESS, errorPosition, r, "[%s] Propagating.", GetErrorMessage(r));
1465 Control::GetMinimumSize(void) const
1467 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1468 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1470 return pControlImpl->GetMinimumSize();
1474 Control::GetMinimumSizeF(void) const
1476 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1477 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1479 return pControlImpl->GetMinimumSizeF();
1483 Control::GetMaximumSize(void) const
1485 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1486 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1488 return pControlImpl->GetMaximumSize();
1492 Control::GetMaximumSizeF(void) const
1494 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1495 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1497 return pControlImpl->GetMaximumSizeF();
1501 Control::GetControlAnimator(void) const
1503 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1504 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1506 return pControlImpl->GetControlAnimator();
1510 Control::AddGestureDetector(const TouchGestureDetector& gestureDetector)
1512 return AddGestureDetector(const_cast< TouchGestureDetector* >(&gestureDetector));
1516 Control::AddGestureDetector(TouchGestureDetector* pGestureDetector)
1518 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1519 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1521 result r = pControlImpl->AddGestureDetector(*pGestureDetector);
1522 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1528 Control::RemoveGestureDetector(const TouchGestureDetector& gestureDetector)
1530 return RemoveGestureDetector(const_cast< TouchGestureDetector* >(&gestureDetector));
1534 Control::RemoveGestureDetector(TouchGestureDetector* pGestureDetector)
1536 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1537 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1539 result r = pControlImpl->RemoveGestureDetector(*pGestureDetector);
1540 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1546 Control::SetContentAreaBounds(const Rectangle& rect)
1548 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1549 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1551 pControlImpl->SetContentAreaBounds(rect);
1555 Control::SetContentAreaBounds(const FloatRectangle& rect)
1557 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1558 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1560 pControlImpl->SetContentAreaBounds(rect);
1564 Control::GetContentAreaBounds(void) const
1566 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1567 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1569 Rectangle bounds = pControlImpl->GetContentAreaBounds();
1575 Control::GetContentAreaBoundsF(void) const
1577 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1578 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1580 FloatRectangle bounds = pControlImpl->GetContentAreaBoundsF();
1586 Control::GetCapturedBitmapN(void) const
1588 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1589 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1591 return pControlImpl->GetCapturedBitmapN();
1595 Control::GetInvalidatedBounds(void) const
1597 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1598 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before used.");
1600 return pControlImpl->GetInvalidatedBounds();
1604 Control::GetInvalidatedBoundsF(void) const
1606 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1607 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before used.");
1609 return pControlImpl->GetInvalidatedBoundsF();
1613 Control::SetMultipointTouchEnabled(bool enable)
1615 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1618 pControlImpl->SetMultiTouchEnabled(enable);
1623 Control::IsMultipointTouchEnabled(void) const
1625 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1628 return pControlImpl->IsMultiTouchEnabled();
1634 const AccessibilityContainer*
1635 Control::GetAccessibilityContainer(void) const
1637 _ControlImpl* pControlImpl = const_cast<_ControlImpl*>(_ControlImpl::GetInstance(*this));
1638 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before used.");
1640 return pControlImpl->GetAccessibilityContainer();
1642 AccessibilityContainer*
1643 Control::GetAccessibilityContainer(void)
1645 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1646 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before used.");
1648 return pControlImpl->GetAccessibilityContainer();
1652 Control::SetPropagatedTouchEventListener(IPropagatedTouchEventListener* pListener)
1654 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1655 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before used.");
1657 pControlImpl->SetPublicPropagatedTouchEventListener(pListener);
1661 Control::SetPropagatedKeyEventListener(IPropagatedKeyEventListener* pListener)
1663 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1664 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before used.");
1666 pControlImpl->SetPublicPropagatedKeyEventListener(pListener);
1670 Control::SetPreviousFocus(Control* pPreviousFocus)
1672 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1673 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before used.");
1675 _ControlImpl* pPreviousFocusControlImpl = _ControlImpl::GetInstance(*pPreviousFocus);
1676 SysAssertf(pPreviousFocusControlImpl != null, "Not yet constructed. Construct() should be called before used.");
1678 pControlImpl->SetPreviousFocus(pPreviousFocusControlImpl);
1683 Control::SetNextFocus(Control* pNextFocus)
1685 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1686 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before used.");
1688 _ControlImpl* pNextFocusControlImpl = _ControlImpl::GetInstance(*pNextFocus);
1689 SysAssertf(pNextFocusControlImpl != null, "Not yet constructed. Construct() should be called before used.");
1691 pControlImpl->SetNextFocus(pNextFocusControlImpl);
1696 Control::GetPreviousFocus(void) const
1698 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1699 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before used.");
1700 _ControlImpl*previousControl = pControlImpl->GetPreviousFocus();
1701 return &previousControl->GetPublic();
1706 Control::GetNextFocus(void) const
1708 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1709 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before used.");
1711 _ControlImpl*nextControl = pControlImpl->GetNextFocus();
1712 return &nextControl->GetPublic();
1717 Control::SetTouchPressThreshold(float distance)
1719 _ControlImpl* pControlImpl = const_cast<_ControlImpl*>(_ControlImpl::GetInstance(*this));
1720 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before used.");
1722 return pControlImpl->SetTouchPressThreshold(distance);
1726 Control::GetTouchPressThreshold(void) const
1728 _ControlImpl* pControlImpl = const_cast<_ControlImpl*>(_ControlImpl::GetInstance(*this));
1729 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before used.");
1731 return pControlImpl->GetTouchPressThreshold();
1734 Control::SetFontFromFile(const Tizen::Base::String& fileName)
1736 _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1737 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1739 result r = pControlImpl->SetFontFromFile(fileName);
1740 SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1745 Control::GetFontFile(void) const
1747 const _ControlImpl* pControlImpl = _ControlImpl::GetInstance(*this);
1748 SysAssertf(pControlImpl != null, "Not yet constructed. Construct() should be called before use.");
1750 return pControlImpl->GetFontFile();