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.
18 * @file FUiCtrl_Indicator.cpp
19 * @brief This is the implementation file for the _Form class.
22 #include <FGrpRectangle.h>
23 #include <FGrp_CoordinateSystem.h>
24 #include <FUiAnim_VisualElementSurfaceImpl.h>
25 #include "FUiAnim_VisualElement.h"
26 #include "FUiAnim_VisualElementImpl.h"
27 #include "FUiAnim_EflNode.h"
28 #include "FUi_EcoreEvasMgr.h"
29 #include "FUi_EcoreEvas.h"
30 #include "FUi_ResourceManager.h"
31 #include "FUi_CoordinateSystemUtils.h"
32 #include "FUi_Window.h"
33 #include "FUiCtrl_Form.h"
34 #include "FUiCtrl_Indicator.h"
35 #include "FUiCtrl_IndicatorManager.h"
36 #include "FUiAnim_EflVisualElementSurfaceImpl.h"
38 using namespace Tizen::Base::Runtime;
39 using namespace Tizen::Graphics;
40 using namespace Tizen::Ui;
41 using namespace Tizen::Ui::Animations;
43 namespace Tizen { namespace Ui { namespace Controls
46 static const char* pPortraitSvcName = "elm_indicator_portrait";
47 static const char* pLandScapeSvcName = "elm_indicator_landscape";
48 static const char* pPortPublicKey = "__Plug_Ecore_Evas_Port";
49 static const char* pLandPublicKey = "__Plug_Ecore_Evas_Land";
50 static const char* pIndicatorKey = "Inidcator_Manager_Object";
51 static const int CONNECTION_INTERVAL = 1000;
53 #define MSG_DOMAIN_CONTROL_INDICATOR 0x10001
54 #define MSG_ID_INDICATOR_REPEAT_EVENT 0x10002
55 #define MSG_ID_INDICATOR_ROTATION 0x10003
56 #define MSG_ID_INDICATOR_OPACITY 0X1004
57 #define MSG_ID_INDICATOR_TYPE 0X1005
61 _INDICATOR_TYPE_UNKNOWN, /**< Unknown indicator type mode */
62 _INDICATOR_TYPE_1, /**< Type 0 the the indicator */
63 _INDICATOR_TYPE_2, /**< Type 1 the indicator */
67 _Indicator::CreateIndicator(void)
70 Color bgColor(0xff343432);
72 _Indicator* pIndicator = new (std::nothrow) _Indicator;
73 SysTryReturn(NID_UI_CTRL, pIndicator, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
74 SysTryCatch(NID_UI_CTRL, GetLastResult() == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] A system error occurred.");
76 r = pIndicator->ConstructControlVisualElement();
77 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
79 pIndicator->SetBackgroundColor(_Colorf((float)bgColor.GetRed() / 255.0f, (float)bgColor.GetGreen() / 255.0f, (float)bgColor.GetBlue() / 255.0f, (float)bgColor.GetAlpha() / 255.0f));
88 _Indicator::_Indicator(void)
89 : __pPortraitIndicatorEvasObject(null)
90 , __pLandscapeIndicatorEvasObject(null)
91 , __pConnectionTimer(null)
92 , __pPortraitVisualElement(null)
93 , __pLandscapeVisualElement(null)
94 , __pCurrentVisualElement(null)
97 , __portraitautohide(false)
98 , __landscapeautohide(false)
99 , __opacity(_INDICATOR_OPACITY_OPAQUE)
100 , __orientation(_CONTROL_ORIENTATION_PORTRAIT)
104 _Indicator::~_Indicator(void)
106 if (__pConnectionTimer != null)
108 __pConnectionTimer->Cancel();
109 delete __pConnectionTimer;
110 __pConnectionTimer = null;
115 _Indicator::SetIndicatorShowState(bool state)
117 result r = E_SUCCESS;
119 _EcoreEvas* pEcoreEvas = GetEcoreEvasMgr()->GetEcoreEvas();
120 SysTryReturnResult(NID_UI_CTRL, pEcoreEvas, E_SYSTEM, "[E_SYSTEM] Unable to get evas");
124 r = pEcoreEvas->SetIndicatorShowState(*__pWindow, state);
125 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
134 SetIndicatorOpacity(__opacity);
141 _Indicator::SetIndicatorAutoHide(bool portrait, bool landscape)
143 Ecore_X_Window win = 0;
146 win = (Ecore_X_Window)__pWindow->GetNativeHandle();
149 if (__orientation == _CONTROL_ORIENTATION_PORTRAIT)
153 Color bgColor(0x00000000);
154 SetBackgroundColor(_Colorf((float)bgColor.GetRed() / 255.0f, (float)bgColor.GetGreen() / 255.0f, (float)bgColor.GetBlue() / 255.0f, (float)bgColor.GetAlpha() / 255.0f));
155 ecore_x_e_illume_indicator_opacity_set(win, ECORE_X_ILLUME_INDICATOR_TRANSPARENT);
159 SetIndicatorOpacity(__opacity);
160 ecore_x_e_illume_indicator_opacity_set(win, ECORE_X_ILLUME_INDICATOR_OPAQUE);
167 Color bgColor(0x00000000);
168 SetBackgroundColor(_Colorf((float)bgColor.GetRed() / 255.0f, (float)bgColor.GetGreen() / 255.0f, (float)bgColor.GetBlue() / 255.0f, (float)bgColor.GetAlpha() / 255.0f));
169 ecore_x_e_illume_indicator_opacity_set(win, ECORE_X_ILLUME_INDICATOR_TRANSPARENT);
173 SetIndicatorOpacity(__opacity);
174 ecore_x_e_illume_indicator_opacity_set(win, ECORE_X_ILLUME_INDICATOR_OPAQUE);
177 __portraitautohide = portrait;
178 __landscapeautohide = landscape;
183 _Indicator::SetIndicatorOpacity(_IndicatorOpacity opacity)
185 result r = E_SUCCESS;
187 if (opacity == _INDICATOR_OPACITY_OPAQUE)
189 Color bgColor(0xff343432);
190 SetBackgroundColor(_Colorf((float)bgColor.GetRed() / 255.0f, (float)bgColor.GetGreen() / 255.0f, (float)bgColor.GetBlue() / 255.0f, (float)bgColor.GetAlpha() / 255.0f));
192 else if (opacity == _INDICATOR_OPACITY_TRANSLUCENT)
194 if (__orientation == _CONTROL_ORIENTATION_PORTRAIT)
196 Color bgColor(0x7f000000);
197 SetBackgroundColor(_Colorf((float)bgColor.GetRed() / 255.0f, (float)bgColor.GetGreen() / 255.0f, (float)bgColor.GetBlue() / 255.0f, (float)bgColor.GetAlpha() / 255.0f));
201 Color bgColor(0x00000000);
202 SetBackgroundColor(_Colorf((float)bgColor.GetRed() / 255.0f, (float)bgColor.GetGreen() / 255.0f, (float)bgColor.GetBlue() / 255.0f, (float)bgColor.GetAlpha() / 255.0f));
212 _Indicator::GetIndicatorShowState(void) const
218 _Indicator::GetIndicatorOpacity(void) const
220 if (__orientation == _CONTROL_ORIENTATION_PORTRAIT)
222 if (__portraitautohide)
224 return _INDICATOR_OPACITY_TRANSPARENT;
229 if (__landscapeautohide)
231 return _INDICATOR_OPACITY_TRANSPARENT;
239 _Indicator::GetIndicatorAutoHide(void) const
241 if (__orientation == _CONTROL_ORIENTATION_PORTRAIT)
243 return __portraitautohide;
247 return __landscapeautohide;
253 _Indicator::GetIndicatorBounds(void) const
255 const Dimension portraitSize = _ControlManager::GetInstance()->_ControlManager::GetScreenSize();
256 const Dimension landscapeSize = Dimension(portraitSize.height, portraitSize.width);
258 _ControlOrientation orientation = __pWindow->GetOrientation();
260 Rectangle indicatorbounds(0, 0, 0, 0);
262 if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
264 indicatorbounds.width = portraitSize.width;
265 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, __pWindow->GetOrientation(), indicatorbounds.height);
269 indicatorbounds.width = landscapeSize.width;
270 GET_SHAPE_CONFIG(FORM::INDICATOR_MINIMIZE_HEIGHT, __pWindow->GetOrientation(), indicatorbounds.height);
273 _CoordinateSystem* pCoordSystem = _CoordinateSystem::GetInstance();
274 SysTryReturn(NID_UI_CTRL, pCoordSystem, Rectangle(-1, -1, -1, -1), E_SYSTEM, "[E_SYSTEM] Coordinate system load failed.");
276 _ICoordinateSystemTransformer* pXformer = pCoordSystem->GetTransformer();
277 SysTryReturn(NID_UI_CTRL, pXformer, Rectangle(-1, -1, -1, -1), E_SYSTEM, "[E_SYSTEM] Coordinate system load failed.");
279 indicatorbounds = pXformer->Transform(indicatorbounds);
281 return indicatorbounds;
285 _Indicator::GetIndicatorBoundsF(void) const
287 const FloatDimension portraitSize = _ControlManager::GetInstance()->_ControlManager::GetScreenSizeF();
288 const FloatDimension landscapeSize = FloatDimension(portraitSize.height, portraitSize.width);
290 _ControlOrientation orientation = __pWindow->GetOrientation();
292 FloatRectangle indicatorbounds(0.0f, 0.0f, 0.0f, 0.0f);
294 if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
296 indicatorbounds.width = portraitSize.width;
297 GET_SHAPE_CONFIG(FORM::INDICATOR_HEIGHT, __pWindow->GetOrientation(), indicatorbounds.height);
301 indicatorbounds.width = landscapeSize.width;
302 GET_SHAPE_CONFIG(FORM::INDICATOR_MINIMIZE_HEIGHT, __pWindow->GetOrientation(), indicatorbounds.height);
305 _CoordinateSystem* pCoordSystem = _CoordinateSystem::GetInstance();
306 SysTryReturn(NID_UI_CTRL, pCoordSystem, FloatRectangle(-1.0, -1.0, -1.0, -1.0), E_SYSTEM, "[E_SYSTEM] Coordinate system load failed.");
308 _ICoordinateSystemTransformer* pXformer = pCoordSystem->GetTransformer();
309 SysTryReturn(NID_UI_CTRL, pXformer, FloatRectangle(-1.0, -1.0, -1.0, -1.0), E_SYSTEM, "[E_SYSTEM] Coordinate system load failed.");
311 indicatorbounds = pXformer->Transform(indicatorbounds);
313 return indicatorbounds;
317 _Indicator::AddIndicatorObject(_Control* pControl, _Window* pWindow)
319 result r = E_SUCCESS;
323 __pPortraitVisualElement = _IndicatorManager::GetInstance()->GetIndicatorVisualElement(pWindow, _INDICATOR_ORIENTATION_PORTRAIT, pControl);
324 SysTryReturn(NID_UI_CTRL, __pPortraitVisualElement, null, E_SYSTEM, "[E_SYSTEM] Indicator can not create the surface.");
325 __pLandscapeVisualElement = _IndicatorManager::GetInstance()->GetIndicatorVisualElement(pWindow, _INDICATOR_ORIENTATION_LANDSCAPE, pControl);
326 SysTryReturn(NID_UI_CTRL, __pLandscapeVisualElement, null, E_SYSTEM, "[E_SYSTEM] Indicator can not create the surface.");
327 __pPortraitIndicatorEvasObject = _IndicatorManager::GetInstance()->GetEvasObject(pWindow, pControl, _INDICATOR_ORIENTATION_PORTRAIT);
328 SysTryReturn(NID_UI_CTRL, __pPortraitIndicatorEvasObject, null, E_SYSTEM, "[E_SYSTEM] Indicator can not get the Evas_Object.");
329 __pLandscapeIndicatorEvasObject = _IndicatorManager::GetInstance()->GetEvasObject(pWindow, pControl, _INDICATOR_ORIENTATION_LANDSCAPE);
330 SysTryReturn(NID_UI_CTRL, __pLandscapeIndicatorEvasObject, null, E_SYSTEM, "[E_SYSTEM] Indicator can not get the Evas_Object.");
332 _ControlOrientation orientation = pControl->GetOrientation();
333 if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
335 r = ChangeCurrentVisualElement(__pPortraitVisualElement);
339 r = ChangeCurrentVisualElement(__pLandscapeVisualElement);
342 Ecore_Evas *pPortraitEe = ecore_evas_object_ecore_evas_get(__pPortraitIndicatorEvasObject);
343 SysTryReturn(NID_UI_CTRL, pPortraitEe, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Unable to get evas.");
344 Ecore_Evas *pLandscapeEe = ecore_evas_object_ecore_evas_get(__pLandscapeIndicatorEvasObject);
345 SysTryReturn(NID_UI_CTRL, pLandscapeEe, E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Unable to get evas.");
347 ecore_evas_data_set(pPortraitEe, pPortPublicKey, __pPortraitIndicatorEvasObject);
348 ecore_evas_data_set(pLandscapeEe, pLandPublicKey, __pLandscapeIndicatorEvasObject);
349 ecore_evas_data_set(pPortraitEe, pIndicatorKey, this);
350 ecore_evas_data_set(pLandscapeEe, pIndicatorKey, this);
351 ecore_evas_callback_delete_request_set(pPortraitEe, _Indicator::OnDisconnected);
352 ecore_evas_callback_delete_request_set(pLandscapeEe, _Indicator::OnDisconnected);
354 ecore_evas_callback_msg_handle_set(pPortraitEe, _Indicator::OnMessageHandle);
355 ecore_evas_callback_msg_handle_set(pLandscapeEe, _Indicator::OnMessageHandle);
357 _EcoreEvas* pEcoreEvas = GetEcoreEvasMgr()->GetEcoreEvas();
359 if (pEcoreEvas && __pWindow)
361 rotation = pEcoreEvas->GetWindowRotation(*__pWindow);
364 if(rotation == 0 || rotation == 180)
366 ecore_evas_msg_parent_send(pPortraitEe, MSG_DOMAIN_CONTROL_INDICATOR, MSG_ID_INDICATOR_ROTATION, &rotation, sizeof(int));
370 ecore_evas_msg_parent_send(pLandscapeEe, MSG_DOMAIN_CONTROL_INDICATOR, MSG_ID_INDICATOR_ROTATION, &rotation, sizeof(int));
377 _Indicator::DeleteIndicatorObject(void)
379 result r = E_SUCCESS;
381 r = _IndicatorManager::GetInstance()->ReleaseIndicatorVisualElement(__pWindow, _INDICATOR_ORIENTATION_PORTRAIT, __pPortraitVisualElement);
382 r = _IndicatorManager::GetInstance()->ReleaseIndicatorVisualElement(__pWindow, _INDICATOR_ORIENTATION_LANDSCAPE, __pLandscapeVisualElement);
384 if (__pPortraitVisualElement)
386 if (__pPortraitVisualElement == __pCurrentVisualElement)
388 r = DetachChild(*__pPortraitVisualElement);
391 if (__pLandscapeVisualElement)
393 if (__pLandscapeVisualElement == __pCurrentVisualElement)
395 r = DetachChild(*__pLandscapeVisualElement);
399 __pPortraitIndicatorEvasObject = null;
400 __pLandscapeIndicatorEvasObject = null;
401 __pPortraitVisualElement = null;
402 __pLandscapeVisualElement = null;
403 __pCurrentVisualElement = null;
409 _Indicator::ChangeCurrentVisualElement(Tizen::Ui::Animations::_VisualElement* pVisualElement)
411 result r = E_SUCCESS;
413 if (!(__pCurrentVisualElement == pVisualElement))
415 r = AttachChild(*pVisualElement);
416 if (__pCurrentVisualElement)
418 r = DetachChild(*__pCurrentVisualElement);
420 __pCurrentVisualElement = pVisualElement;
427 _Indicator::OnChangeLayout(_ControlOrientation orientation)
429 Ecore_X_Window win = 0;
432 win = (Ecore_X_Window)__pWindow->GetNativeHandle();
435 __orientation = orientation;
437 if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
439 ChangeCurrentVisualElement(__pPortraitVisualElement);
440 SetClipChildrenEnabled(true);
442 if (__portraitautohide)
444 Color bgColor(0x00000000);
445 SetBackgroundColor(_Colorf((float)bgColor.GetRed() / 255.0f, (float)bgColor.GetGreen() / 255.0f, (float)bgColor.GetBlue() / 255.0f, (float)bgColor.GetAlpha() / 255.0f));
446 ecore_x_e_illume_indicator_opacity_set(win, ECORE_X_ILLUME_INDICATOR_TRANSPARENT);
450 SetIndicatorOpacity(__opacity);
451 ecore_x_e_illume_indicator_opacity_set(win, ECORE_X_ILLUME_INDICATOR_OPAQUE);
457 ChangeCurrentVisualElement(__pLandscapeVisualElement);
458 SetClipChildrenEnabled(false);
460 if (__landscapeautohide)
462 Color bgColor(0x00000000);
463 SetBackgroundColor(_Colorf((float)bgColor.GetRed() / 255.0f, (float)bgColor.GetGreen() / 255.0f, (float)bgColor.GetBlue() / 255.0f, (float)bgColor.GetAlpha() / 255.0f));
464 ecore_x_e_illume_indicator_opacity_set(win, ECORE_X_ILLUME_INDICATOR_TRANSPARENT);
468 SetIndicatorOpacity(__opacity);
469 ecore_x_e_illume_indicator_opacity_set(win, ECORE_X_ILLUME_INDICATOR_OPAQUE);
473 _EcoreEvas* pEcoreEvas = GetEcoreEvasMgr()->GetEcoreEvas();
475 Ecore_Evas *pPortraitEe = ecore_evas_object_ecore_evas_get(__pPortraitIndicatorEvasObject);
476 SysTryReturnVoidResult(NID_UI_CTRL, pPortraitEe, E_SYSTEM, "[E_SYSTEM] Unable to get evas.");
477 Ecore_Evas *pLandscapeEe = ecore_evas_object_ecore_evas_get(__pLandscapeIndicatorEvasObject);
478 SysTryReturnVoidResult(NID_UI_CTRL, pLandscapeEe, E_SYSTEM, "[E_SYSTEM] Unable to get evas.");
480 if (pEcoreEvas && __pWindow)
482 rotation = pEcoreEvas->GetWindowRotation(*__pWindow);
485 if(rotation == 0 || rotation == 180)
487 ecore_evas_msg_parent_send(pPortraitEe, MSG_DOMAIN_CONTROL_INDICATOR, MSG_ID_INDICATOR_ROTATION, &rotation, sizeof(int));
491 ecore_evas_msg_parent_send(pLandscapeEe, MSG_DOMAIN_CONTROL_INDICATOR, MSG_ID_INDICATOR_ROTATION, &rotation, sizeof(int));
496 _Indicator::OnAttachedToMainTree(void)
498 result r = E_SUCCESS;
500 if (__pCurrentVisualElement)
502 r = ChangeCurrentVisualElement(__pCurrentVisualElement);
509 _Indicator::OnTimerExpired(Timer& timer)
511 Eina_Bool result = EINA_TRUE;
513 _ControlOrientation orientation = _ControlManager::GetInstance()->GetOrientation();
514 if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
516 result = ecore_evas_extn_plug_connect(__pPortraitIndicatorEvasObject, pPortraitSvcName, 0, EINA_FALSE);
520 result = ecore_evas_extn_plug_connect(__pLandscapeIndicatorEvasObject, pLandScapeSvcName, 0, EINA_FALSE);
523 if (result == EINA_TRUE)
529 timer.Start(CONNECTION_INTERVAL);
534 _Indicator::OnDisconnected(Ecore_Evas *pEe)
536 _Indicator* pIndicator = (_Indicator*)ecore_evas_data_get(pEe, pIndicatorKey);
537 SysTryReturnVoidResult(NID_UI_CTRL, pIndicator, E_SYSTEM, "[E_SYSTEM] Unable to get Indicator Object");
539 if (pIndicator->__pConnectionTimer == null)
541 pIndicator->__pConnectionTimer = new (std::nothrow) Timer;
542 if (pIndicator->__pConnectionTimer == null)
547 result r = pIndicator->__pConnectionTimer->Construct(*pIndicator);
550 delete pIndicator->__pConnectionTimer;
551 pIndicator->__pConnectionTimer = null;
557 pIndicator->__pConnectionTimer->Start(CONNECTION_INTERVAL);
561 _Indicator::SetNotificationTrayOpenEnabled(bool enable)
563 Ecore_X_Window win = (Ecore_X_Window)__pWindow->GetNativeHandle();
565 Ecore_X_Atom atomPanelScrollable = ecore_x_atom_get("_E_MOVE_PANEL_SCROLLABLE_STATE");
568 int returnResult = ecore_x_window_prop_card32_get(win, atomPanelScrollable, val, 3);
581 ecore_x_window_prop_card32_set(win, atomPanelScrollable, val, 3);
588 _Indicator::IsNotificationTrayOpenEnabled(void) const
590 Ecore_X_Window win = (Ecore_X_Window)__pWindow->GetNativeHandle();
592 Ecore_X_Atom atomPanelScrollable = ecore_x_atom_get("_E_MOVE_PANEL_SCROLLABLE_STATE");
595 int returnResult = ecore_x_window_prop_card32_get(win, atomPanelScrollable, val, 3);
612 _Indicator::OnMessageHandle(Ecore_Evas *pEe, int msgDomain, int msgId, void *data, int size)
619 Evas_Object* pPortraitIndicatorEvasObject = (Evas_Object*)ecore_evas_data_get(pEe, pPortPublicKey);
620 Evas_Object* pLandscapeIndicatorEvasObject = (Evas_Object*)ecore_evas_data_get(pEe, pLandPublicKey);
622 if (msgDomain == MSG_DOMAIN_CONTROL_INDICATOR)
624 if (msgId == MSG_ID_INDICATOR_REPEAT_EVENT)
626 int *repeat = (int*)data;
629 if (pPortraitIndicatorEvasObject)
631 evas_object_repeat_events_set(pPortraitIndicatorEvasObject, EINA_TRUE);
633 if (pLandscapeIndicatorEvasObject)
635 evas_object_repeat_events_set(pLandscapeIndicatorEvasObject, EINA_TRUE);
640 if (pPortraitIndicatorEvasObject)
642 evas_object_repeat_events_set(pPortraitIndicatorEvasObject, EINA_FALSE);
644 if (pLandscapeIndicatorEvasObject)
646 evas_object_repeat_events_set(pLandscapeIndicatorEvasObject, EINA_FALSE);
651 if (msgId == MSG_ID_INDICATOR_TYPE)
653 _IndicatorTypeMode *pIndicatorTypeMode = (_IndicatorTypeMode*)(data);
655 _Window* pWindow = _ControlManager::GetInstance()->_ControlManager::GetTopVisibleWindow();
656 SysTryReturnVoidResult(NID_UI_CTRL, pWindow, E_INVALID_STATE, "[E_INVALID_STATE] Indicator is not attached main tree.");
658 Ecore_X_Window win = (Ecore_X_Window)pWindow->GetNativeHandle();
660 if (*pIndicatorTypeMode == _INDICATOR_TYPE_1)
662 ecore_x_e_illume_indicator_type_set(win, ECORE_X_ILLUME_INDICATOR_TYPE_1);
664 else if (*pIndicatorTypeMode == _INDICATOR_TYPE_2)
666 ecore_x_e_illume_indicator_type_set (win, ECORE_X_ILLUME_INDICATOR_TYPE_2);
673 _Indicator::OnHitTest(const Tizen::Graphics::FloatPoint& point)
677 return HIT_TEST_NOWHERE;
680 if (!GetBounds().Contains(point))
682 return HIT_TEST_NOWHERE;
685 Evas_Object* pImageObject = null;
686 if (this->__pCurrentVisualElement)
688 _VisualElementImpl* pImpl = _VisualElementImpl::GetInstance(*this->__pCurrentVisualElement);
691 _EflNode* pNativeNode = dynamic_cast< _EflNode* >(pImpl->GetNativeNode());
694 VisualElementSurface* pPortraitSurface = pNativeNode->GetSurface();
695 if (pPortraitSurface)
697 _EflVisualElementSurfaceImpl* pSurface = dynamic_cast<_EflVisualElementSurfaceImpl*>(_VisualElementSurfaceImpl::GetInstance(*pPortraitSurface));
700 pImageObject = (Evas_Object*)pSurface->GetNativeHandle();
709 if (!evas_object_repeat_events_get(pImageObject))
711 return HIT_TEST_MATCH;
715 return HIT_TEST_NOWHERE;
720 return HIT_TEST_NOWHERE;
725 _Indicator::SetIndicatorOrientation(Tizen::Ui::_ControlOrientation orientation)
727 __orientation = orientation;
731 _Indicator::SetWindow(_Window* pWindow)
736 }}} // Tizen::Ui::Controls