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.
17 #include <FBaseString.h>
18 #include <FGrpColor.h>
19 #include <FSys_SettingInfoImpl.h>
20 #include "FUi_AccessibilityContainer.h"
21 #include "FUi_AccessibilityElement.h"
22 #include "FUi_AccessibilityManager.h"
23 #include "FUi_CoordinateSystemUtils.h"
24 #include "FUi_ResourceManager.h"
25 #include "FUi_TouchFlickGestureDetector.h"
26 #include "FUi_TouchTapGestureDetector.h"
27 #include "FUi_TouchPinchGestureDetector.h"
28 #include "FUi_TouchLongPressGestureDetector.h"
29 #include "FUiCtrl_Gallery.h"
30 #include "FUiCtrl_GalleryBitmap.h"
31 #include "FUiCtrl_GalleryPresenter.h"
32 #include "FUiCtrl_GalleryRenderer.h"
33 #include "FUiCtrl_GalleryRendererNotification.h"
34 #include "FUiCtrl_GalleryViewEventInfo.h"
35 #include "FUiCtrl_GalleryViewEvent.h"
36 #include "FUiCtrl_IGalleryCoreEventListener.h"
37 #include "FUiCtrl_IGalleryRendererNotiListener.h"
39 using namespace Tizen::Base;
40 using namespace Tizen::Graphics;
41 using namespace Tizen::System;
42 using namespace Tizen::Ui::Effects;
45 const float TOUCH_INSENSITIVE = 0.08f;
46 const int GALLERY_GESTURE_TAP_MOVE_ALLOWANCE = 50;
47 } // unnamed namespace
49 namespace Tizen { namespace Ui { namespace Controls {
51 _Gallery::_Gallery(void)
54 , __modelInitialized(false)
55 , __longPressed(false)
56 , __keyEventProcessing(false)
57 , __pGalleryImageElement(null)
59 _AccessibilityContainer* pContainer = GetAccessibilityContainer();
60 if (pContainer != null)
62 pContainer->Activate(true);
66 _Gallery::~_Gallery(void)
68 result r = __flickGesture.RemoveGestureListener(*this);
75 r = RemoveGestureDetector(__flickGesture);
82 r = __oneTapGesture.RemoveGestureListener(*this);
89 r = RemoveGestureDetector(__oneTapGesture);
96 r = __twoTapGesture.RemoveGestureListener(*this);
103 r = RemoveGestureDetector(__twoTapGesture);
110 r = __pinchGesture.RemoveGestureListener(*this);
117 r = RemoveGestureDetector(__pinchGesture);
124 r = __longPressGesture.RemoveGestureListener(*this);
131 r = RemoveGestureDetector(__longPressGesture);
138 r = _SettingInfoImpl::RemoveSettingEventListenerForInternal(*this);
145 RemoveGalleryAccessibilityElements();
152 _Gallery::CreateGalleryN(_GalleryItemProviderAdaptorImpl* pGalleryItemProviderAdaptor)
154 result r = E_SUCCESS;
157 _Gallery* pGallery = new (std::nothrow) _Gallery();
158 SysTryCatch(NID_UI_CTRL, pGallery != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Failed to allocate the memory for the _Gallery.");
160 r = pGallery->Construct(pGalleryItemProviderAdaptor);
161 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
163 SetLastResult(E_SUCCESS);
174 _Gallery::Construct(_GalleryItemProviderAdaptorImpl* pGalleryItemProviderAdaptor)
176 result r = E_SUCCESS;
177 _GalleryRenderer* pRenderer = null;
178 _GalleryPresenter* pPresenter = null;
180 pRenderer = _GalleryRenderer::CreateGalleryRendererN((Tizen::Ui::_Control&)*this);
181 SysTryCatch(NID_UI_CTRL, pRenderer != null, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Failed to create the _GalleryRenderer.");
183 pPresenter = _GalleryPresenter::CreateGalleryPresenterN((_IGalleryRenderer&)*pRenderer, pGalleryItemProviderAdaptor, this);
184 SysTryCatch(NID_UI_CTRL, pPresenter != null, r = E_SYSTEM, E_SYSTEM, "[E_SYSTEM] Failed to create the _GalleryPresenter.");
186 r = pRenderer->AddNotiListener(*pPresenter);
187 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
191 r = __flickGesture.AddGestureListener(*this);
192 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
194 r = _Control::AddGestureDetector(__flickGesture);
195 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
197 r = __oneTapGesture.AddGestureListener(*this);
198 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
200 __oneTapGesture.SetTapCount(1);
201 r = _Control::AddGestureDetector(__oneTapGesture);
202 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
204 r = __twoTapGesture.AddGestureListener(*this);
205 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
207 r = __twoTapGesture.SetMoveAllowance(GALLERY_GESTURE_TAP_MOVE_ALLOWANCE);
208 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Failed to set TapMoveAllowance", GetErrorMessage(r));
210 __twoTapGesture.SetTapCount(2);
211 r = _Control::AddGestureDetector(__twoTapGesture);
212 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
214 __oneTapGesture.StartOnFailureOf(__twoTapGesture);
216 SetMultiTouchEnabled(true);
217 r = _Control::AddGestureDetector(__pinchGesture);
218 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
220 r = __pinchGesture.AddGestureListener(*this);
221 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
223 r = __longPressGesture.AddGestureListener(*this);
224 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
226 r = _Control::AddGestureDetector(__longPressGesture);
227 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
229 r = _SettingInfoImpl::AddSettingEventListenerForInternal(*this);
230 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
232 SetTouchPressThreshold(TOUCH_INSENSITIVE);
234 SetRenderer((_GalleryRenderer &)*pRenderer);
235 SetPresenter((_GalleryPresenter &)*pPresenter);
248 _Gallery::SetTextOfEmptyGallery(const String& text)
250 return GetPresenter().SetTextOfEmptyGallery(text);
254 _Gallery::GetTextOfEmptyGallery(void) const
256 return GetPresenter().GetTextOfEmptyGallery();
260 _Gallery::SetBitmapOfEmptyGallery(const _GalleryBitmap* pBitmap)
262 return GetPresenter().SetBitmapOfEmptyGallery(pBitmap);
266 _Gallery::SetCoreEventListener(const _IGalleryCoreEventListener& coreEventListener)
268 return GetPresenter().SetCoreEventListener(coreEventListener);
272 _Gallery::RemoveCoreEventListener(const _IGalleryCoreEventListener& coreEventListener)
274 return GetPresenter().RemoveCoreEventListener(coreEventListener);
278 _Gallery::SetZoomingEnabled(bool enable)
280 return GetPresenter().SetZoomingEnabled(enable);
284 _Gallery::IsZoomingEnabled(void) const
286 return GetPresenter().IsZoomingEnabled();
290 _Gallery::SetSlideShowType(_GallerySlideShowType slideShowType)
292 return GetPresenter().SetSlideShowType(slideShowType);
295 _GallerySlideShowType
296 _Gallery::GetSlideShowType(void) const
298 return GetPresenter().GetSlideShowType();
302 _Gallery::SetSlideShowAnimationDuration(int duration)
304 return GetPresenter().SetSlideShowAnimationDuration(duration);
308 _Gallery::GetSlideShowAnimationDuration(void) const
310 return GetPresenter().GetSlideShowAnimationDuration();
314 _Gallery::SetSlideShowViewDuration(int duration)
316 return GetPresenter().SetSlideShowViewDuration(duration);
320 _Gallery::GetSlideShowViewDuration(void) const
322 return GetPresenter().GetSlideShowViewDuration();
326 _Gallery::StartSlideShow(bool repeat)
329 return GetPresenter().StartSlideShow(repeat);
333 _Gallery::StopSlideShow(void)
335 return GetPresenter().StopSlideShow();
339 _Gallery::IsSlideShowStarted(void) const
341 return GetPresenter().IsSlideShowStarted();
346 _Gallery::SetCurrentItemIndex(int itemIndex)
348 return GetPresenter().SetCurrentItem(itemIndex);
352 _Gallery::GetCurrentItemIndex(void) const
354 return GetPresenter().GetCurrentItemIndex();
358 _Gallery::GetItemCount(void) const
360 return GetPresenter().GetItemCount();
364 _Gallery::RequestToLoadItem(int itemIndex)
366 SysTryReturnResult(NID_UI_CTRL, __modelInitialized == true, E_INVALID_OPERATION, "Does not call to first draw.");
367 result r = GetPresenter().RequestToLoadItem(itemIndex);
368 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagation.", GetErrorMessage(r));
370 InitializeAccessibilityElement();
376 _Gallery::RequestToUnloadItem(int itemIndex)
378 SysTryReturnResult(NID_UI_CTRL, __modelInitialized == true, E_INVALID_OPERATION, "Does not call to first draw.");
379 result r = GetPresenter().RequestToUnloadItem(itemIndex);
380 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagation.", GetErrorMessage(r));
382 InitializeAccessibilityElement();
388 _Gallery::RequestToUnloadAllItems(void)
390 result r = GetPresenter().RequestToUnloadAllItems();
391 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagation.", GetErrorMessage(r));
393 InitializeAccessibilityElement();
399 _Gallery::RequestToUpdateItem(int itemIndex)
401 SysTryReturnResult(NID_UI_CTRL, __modelInitialized == true, E_INVALID_OPERATION, "Does not call to first draw.");
402 result r = GetPresenter().RequestToUpdateItem(itemIndex);
403 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagation.", GetErrorMessage(r));
405 InitializeAccessibilityElement();
411 _Gallery::RequestToUpdateAllItems(void)
413 result r = GetPresenter().RequestToUpdateAllItems();
414 SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagation.", GetErrorMessage(r));
416 InitializeAccessibilityElement();
422 _Gallery::OnFlickGestureDetected(_TouchFlickGestureDetector& gesture)
424 __longPressed = false;
425 _GalleryViewEventInfo viewEventInfo;
428 gesture.GetDistance(distanceX, distanceY);
429 if (gesture.GetDirection() == _FLICK_DIRECTION_RIGHT
430 || gesture.GetDirection() == _FLICK_DIRECTION_LEFT)
438 Point flickPoint(distanceX, distanceY);
440 viewEventInfo.SetFlickPosition(flickPoint);
441 viewEventInfo.SetFlicked(true);
442 viewEventInfo.SetFlickTime(gesture.GetDuration());
443 _GalleryViewEvent viewEvent(GALLERY_VIEW_EVENT_TOUCH_FLICK, &viewEventInfo);
444 bool r = GetPresenter().PostEvent(viewEvent);
445 SysTryReturn(NID_UI_CTRL, r == true, true, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
451 _Gallery::OnFlickGestureCanceled(_TouchFlickGestureDetector& gesture)
457 _Gallery::OnTapGestureDetected(_TouchTapGestureDetector& gesture)
459 __longPressed = false;
460 if (gesture.GetTapCount() == 1)
462 PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, this);
466 PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_MULTI_TAP, this);
468 Tizen::Ui::_TouchInfo touchInfo(0, _TOUCH_DOUBLE_PRESSED, pos, false, 0);
469 _GalleryViewEventInfo viewEventInfo(touchInfo);
470 _GalleryViewEvent viewEvent(GALLERY_VIEW_EVENT_TOUCH_DOUBLE_PRESSED, &viewEventInfo);
472 bool r = GetPresenter().PostEvent(viewEvent);
473 SysTryReturn(NID_UI_CTRL, r == true, true, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
480 _Gallery::OnTapGestureCanceled(_TouchTapGestureDetector& gesture)
486 _Gallery::OnPinchGestureStarted(_TouchPinchGestureDetector& gesture)
488 __longPressed = false;
493 _Gallery::OnPinchGestureChanged(_TouchPinchGestureDetector& gesture)
495 _GalleryViewEventInfo viewEventInfo;
496 viewEventInfo.SetPinchCenterPosition(_CoordinateSystemUtils::ConvertToFloat(gesture.GetCenterPoint()));
497 viewEventInfo.SetPinchArea(gesture.GetScale());
498 _GalleryViewEvent viewEvent(GALLERY_VIEW_EVENT_TOUCH_PINCH_ZOOM, &viewEventInfo);
499 bool r = GetPresenter().PostEvent(viewEvent);
500 SysTryReturn(NID_UI_CTRL, r == true, true, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
505 _Gallery::OnPinchGestureFinished(_TouchPinchGestureDetector& gesture)
507 //return OnPinchGestureChanged(gesture);
512 _Gallery::OnPinchGestureCanceled(_TouchPinchGestureDetector& gesture)
518 _Gallery::OnLongPressGestureDetected(_TouchLongPressGestureDetector& gesture)
520 __longPressed = true;
525 _Gallery::OnLongPressGestureCanceled(_TouchLongPressGestureDetector& gesture)
530 // Touch Event Callbacks
532 _Gallery::OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo)
534 _GalleryViewEventInfo viewEventInfo(const_cast <_TouchInfo&>(touchinfo));
535 _GalleryViewEvent viewEvent(GALLERY_VIEW_EVENT_TOUCH_PRESSED, &viewEventInfo);
537 return GetPresenter().PostEvent(viewEvent);
541 _Gallery::OnTouchReleased(const _Control& source, const _TouchInfo& touchinfo)
543 _GalleryViewEventInfo viewEventInfo(const_cast <_TouchInfo&>(touchinfo));
544 _GalleryViewEvent viewEvent(GALLERY_VIEW_EVENT_TOUCH_RELEASED, &viewEventInfo);
546 bool touchReturn = GetPresenter().PostEvent(viewEvent);
547 if (__longPressed == true)
549 PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, this);
550 __longPressed = false;
557 _Gallery::OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo)
559 __longPressed = false;
560 _GalleryViewEventInfo viewEventInfo(const_cast <_TouchInfo&>(touchinfo));
561 _GalleryViewEvent viewEvent(GALLERY_VIEW_EVENT_TOUCH_MOVED, &viewEventInfo);
563 return GetPresenter().PostEvent(viewEvent);
567 _Gallery::OnTouchCanceled(const _Control& source, const _TouchInfo& touchinfo)
569 _GalleryViewEventInfo viewEventInfo;
570 _GalleryViewEvent viewEvent(GALLERY_VIEW_EVENT_TOUCH_CANCELED, &viewEventInfo);
572 return GetPresenter().PostEvent(viewEvent);
575 // Windowing Event Callbacks
577 _Gallery::OnDraw(void)
579 if (__modelInitialized == false)
581 //GetPresenter().RequestToUpdateItemCount();
582 __modelInitialized = true;
585 GetPresenter().OnDraw();
587 if (__keyEventProcessing == true)
589 __keyEventProcessing = false;
594 _Gallery::OnBoundsChanged(void)
596 _GalleryViewEventInfo viewEventInfo;
597 _GalleryViewEvent viewEvent(GALLERY_VIEW_EVENT_BOUNDS_CHANGED, &viewEventInfo);
599 bool r = GetPresenter().PostEvent(viewEvent);
600 SysTryReturnVoidResult(NID_UI_CTRL, r == true, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
601 ResizeGalleryAccessibilityElement();
605 _Gallery::OnFontInfoRequested(unsigned long& style, int& size)
607 GetPresenter().OnFontInfoRequested(style, size);
611 _Gallery::OnFontChanged(Font* pFont)
613 GetPresenter().OnFontChanged();
617 _Gallery::SetEffect(Effect* pEffect)
619 GetRenderer().SetEffect(pEffect);
623 _Gallery::GetEffect(void)
625 return GetRenderer().GetEffect();
629 _Gallery::OnAttachedToMainTree(void)
631 InitializeAccessibilityElement();
637 _Gallery::InitializeAccessibilityElement(void)
639 if (_AccessibilityManager::IsActivated() != true)
644 if (GetItemCount() > 0)
646 AddGalleryAccessibilityElement();
650 RemoveGalleryAccessibilityElements();
657 _Gallery::ResizeGalleryAccessibilityElement(void)
659 if (_AccessibilityManager::IsActivated() == true && __pGalleryImageElement != null)
661 // TODO : need _AccessibilityElement::SetBoundsF()
662 FloatRectangle floatRect = __pRenderer->GetCanvasImageBounds(__pPresenter->SearchCanvasIndex(GetCurrentItemIndex()));
663 Rectangle rect(floatRect.x, floatRect.y, floatRect.width, floatRect.height);
664 __pGalleryImageElement->SetBounds(rect);
671 _Gallery::RemoveGalleryAccessibilityElements(void)
673 _AccessibilityContainer* pContainer = GetAccessibilityContainer();
675 if (pContainer != null && __pGalleryImageElement != null)
677 result r = pContainer->RemoveElement(*__pGalleryImageElement);
678 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
679 __pGalleryImageElement = null;
684 _Gallery::AddGalleryAccessibilityElement(void)
686 _AccessibilityContainer* pContainer = GetAccessibilityContainer();
687 if(pContainer != null && __pGalleryImageElement == null)
689 _AccessibilityElement* pGalleryElement = new (std::nothrow) _AccessibilityElement(true);
690 SysTryReturnVoidResult(NID_UI_CTRL, pGalleryElement, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
692 FloatRectangle floatRect = __pRenderer->GetCanvasImageBounds(__pPresenter->SearchCanvasIndex(GetCurrentItemIndex()));
693 Rectangle rect(floatRect.x, floatRect.y, floatRect.width, floatRect.height);
694 pGalleryElement->SetBounds(rect);
695 pGalleryElement->SetTraitWithStringId("IDS_TPLATFORM_BODY_IMAGE");
696 pGalleryElement->SetName(L"GalleryImage");
698 pContainer->AddElement(*pGalleryElement);
699 __pGalleryImageElement = pGalleryElement;
706 _Gallery::OnSettingChanged(Tizen::Base::String& key)
708 const wchar_t* LOCALE_LANGUAGE = L"http://tizen.org/setting/locale.language";
709 if (key == LOCALE_LANGUAGE)
711 __pPresenter->UpdateEmptyString();
716 _Gallery::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo)
718 bool returnValue = false;
719 bool keyPressed = false;
721 if (keyInfo.GetKeyCode() == _KEY_ENTER
722 || keyInfo.GetKeyCode() == _KEY_UP
723 || keyInfo.GetKeyCode() == _KEY_DOWN
724 || keyInfo.GetKeyCode() == _KEY_LEFT
725 || keyInfo.GetKeyCode() == _KEY_RIGHT)
727 if (__keyEventProcessing == true)
734 _GalleryViewEventInfo viewEventInfo;
735 _GalleryViewEvent pressedEvent(GALLERY_VIEW_EVENT_TOUCH_PRESSED, &viewEventInfo);
736 returnValue = GetPresenter().PostEvent(pressedEvent);
737 SysTryReturn(NID_UI_CTRL, returnValue == true, false, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
739 __keyEventProcessing = true;
742 switch (keyInfo.GetKeyCode())
746 _GalleryViewEventInfo viewEventInfo;
747 Point flickPoint(0, 100);
748 viewEventInfo.SetFlickPosition(flickPoint);
749 viewEventInfo.SetFlicked(true);
750 viewEventInfo.SetFlickTime(1);
751 _GalleryViewEvent viewEvent(GALLERY_VIEW_EVENT_TOUCH_FLICK, &viewEventInfo);
752 returnValue = GetPresenter().PostEvent(viewEvent);
753 if (returnValue == false)
755 __keyEventProcessing = false;
763 _GalleryViewEventInfo viewEventInfo;
764 Point flickPoint(0, -100);
765 viewEventInfo.SetFlickPosition(flickPoint);
766 viewEventInfo.SetFlicked(true);
767 viewEventInfo.SetFlickTime(1);
768 _GalleryViewEvent viewEvent(GALLERY_VIEW_EVENT_TOUCH_FLICK, &viewEventInfo);
769 returnValue = GetPresenter().PostEvent(viewEvent);
770 if (returnValue == false)
772 __keyEventProcessing = false;
780 _GalleryViewEventInfo viewEventInfo;
781 Point flickPoint(100, 0);
782 viewEventInfo.SetFlickPosition(flickPoint);
783 viewEventInfo.SetFlicked(true);
784 viewEventInfo.SetFlickTime(1);
785 _GalleryViewEvent viewEvent(GALLERY_VIEW_EVENT_TOUCH_FLICK, &viewEventInfo);
786 returnValue = GetPresenter().PostEvent(viewEvent);
787 if (returnValue == false)
789 __keyEventProcessing = false;
797 _GalleryViewEventInfo viewEventInfo;
798 Point flickPoint(-100, 0);
799 viewEventInfo.SetFlickPosition(flickPoint);
800 viewEventInfo.SetFlicked(true);
801 viewEventInfo.SetFlickTime(1);
802 _GalleryViewEvent viewEvent(GALLERY_VIEW_EVENT_TOUCH_FLICK, &viewEventInfo);
803 returnValue = GetPresenter().PostEvent(viewEvent);
804 if (returnValue == false)
806 __keyEventProcessing = false;
816 if (keyPressed == true)
818 _GalleryViewEventInfo viewEventInfo;
819 _GalleryViewEvent releaseEvent(GALLERY_VIEW_EVENT_TOUCH_RELEASED, &viewEventInfo);
820 bool releaseReturnValue = GetPresenter().PostEvent(releaseEvent);
821 SysTryReturn(NID_UI_CTRL, releaseReturnValue == true, false, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
828 _Gallery::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
830 if ((keyInfo.GetKeyCode() == _KEY_BACK || keyInfo.GetKeyCode() == _KEY_ESC) && IsSlideShowStarted())
839 }}} // Tizen::Ui::Controls