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 <FBaseErrors.h>
18 #include <FBaseRtTimer.h>
19 #include <FBaseSysLog.h>
21 #include "FUi_ResourceManager.h"
22 #include "FUiCtrl_Gallery.h"
23 #include "FUiCtrl_GalleryPresenter.h"
24 #include "FUiCtrl_GalleryModel.h"
25 #include "FUiCtrl_GalleryItem.h"
26 #include "FUiCtrl_GalleryItemProvider.h"
27 #include "FUiCtrl_GalleryCoreEvent.h"
28 #include "FUiCtrl_GalleryCoreEventArg.h"
29 #include "FUiCtrl_GalleryImageReader.h"
30 #include "FUiCtrl_GalleryViewEventHandler.h"
31 #include "FUiCtrl_IGalleryCoreEventListener.h"
32 #include "FUiCtrl_IGalleryRenderer.h"
33 #include "FUiCtrl_GalleryBitmap.h"
34 #include "FUiCtrl_GalleryViewEvent.h"
35 #include "FUiAnim_VisualElement.h"
38 using namespace Tizen::Base;
39 using namespace Tizen::Graphics;
40 using namespace Tizen::Ui;
42 namespace Tizen { namespace Ui { namespace Controls {
47 const int DEFAULT_ITEM_SPACING = 30;
49 const int DEFAULT_ANIMATION_DURATION = 3000;
50 const int MIN_ANIMATION_DURATION = 300;
51 const int MAX_ANIMATION_DURATION = 20000;
52 const int DEFAULT_VIEW_DURATION = 10;
53 const int MIN_VIEW_DURATION = 10;
54 const int FIRST_SLIDE_SHOW_DURATION = 1;
56 const int PARTIAL_CANVAS = 0;
57 } // unnamed namespace
59 IMPLEMENT_PROPERTY(_GalleryPresenter);
61 _GalleryPresenter::_GalleryPresenter(_IGalleryRenderer& galleryRenderer)
62 : __galleryRenderer(galleryRenderer)
63 , __pGalleryViewEventHandler(null)
64 , __pGalleryCoreEvent(null)
65 , __pGalleryItemProvider(null)
66 , __pGalleryModel(null)
67 , __pGalleryImageReader(null)
68 , __pEmptyGalleryImage(null)
70 , __slideShowAnimationDuration(DEFAULT_ANIMATION_DURATION)
71 , __slideShowViewDuration(DEFAULT_VIEW_DURATION)
72 , __gallerySlideShowType(GALLERY_SLIDESHOW_DISSOLVE)
73 , __currentItemIndex(NO_CURRENT_IMAGE)
74 , __slideShowRepeat(false)
75 , __slideShowStarted(false)
76 , __zoomingEnabled(true)
77 , __pSlideShowTimer(null)
78 , __slideShowPlayCount(0)
79 , __itemSpacing(DEFAULT_ITEM_SPACING)
80 , __pItemToCanvas(null)
81 , __fittingType(GALLERY_FITTING_TYPE_FIT)
82 , __verticalAlignment(GALLERY_VERTICAL_ALIGN_MIDDLE)
83 , __horizontalAlignment(GALLERY_HORIZONTAL_ALIGN_CENTER)
85 , __emptyFontStyle(FONT_STYLE_PLAIN)
86 , __userSetEmptyText(false)
87 , __pGalleryView(null)
89 AddPropertyChangeEventListener(*this);
92 _GalleryPresenter::~_GalleryPresenter(void)
94 delete __pGalleryViewEventHandler;
95 delete __pGalleryImageReader;
96 delete __pGalleryModel;
97 delete __pGalleryItemProvider;
98 delete __pGalleryCoreEvent;
99 delete __pEmptyGalleryImage;
100 delete[] __pItemToCanvas;
102 if (__pSlideShowTimer != null)
104 __pSlideShowTimer->Cancel();
105 delete __pSlideShowTimer;
106 __pSlideShowTimer = null;
111 _GalleryPresenter::CreateGalleryPresenterN(_IGalleryRenderer& galleryRenderer,
112 _GalleryItemProviderAdaptorImpl* pGalleryItemProviderAdaptor, _Gallery* pGalleryView)
114 _GalleryPresenter* pPresenter = new (std::nothrow) _GalleryPresenter(galleryRenderer);
115 SysTryReturn(NID_UI_CTRL, pPresenter != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
117 result r = pPresenter->Construct(pGalleryItemProviderAdaptor, pGalleryView);
118 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
120 SetLastResult(E_SUCCESS);
130 _GalleryPresenter::Construct(_GalleryItemProviderAdaptorImpl* pGalleryItemProviderAdaptor, _Gallery* pGalleryView)
132 SetLastResult(E_SUCCESS);
134 result r = E_SUCCESS;
136 __pGalleryCoreEvent = new (std::nothrow) _GalleryCoreEvent();
137 SysTryCatch(NID_UI_CTRL, __pGalleryCoreEvent != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
139 __pGalleryItemProvider = new (std::nothrow) _GalleryItemProvider(*__pGalleryCoreEvent, pGalleryItemProviderAdaptor);
140 SysTryCatch(NID_UI_CTRL, __pGalleryItemProvider != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
142 __pGalleryModel = _GalleryModel::CreateGalleryModelN(*__pGalleryItemProvider);
143 SysTryCatch(NID_UI_CTRL, __pGalleryModel != null, , GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
145 __pGalleryImageReader = new (std::nothrow) _GalleryImageReader(*__pGalleryModel);
146 SysTryCatch(NID_UI_CTRL, __pGalleryImageReader != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
148 __pItemToCanvas = new(std::nothrow) int[MAX_CANVAS_COUNT];
149 SysTryCatch(NID_UI_CTRL, __pItemToCanvas != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
150 memset(__pItemToCanvas, -1, sizeof(int) * MAX_CANVAS_COUNT);
152 r = __galleryRenderer.SetCanvasMaxCount(MAX_CANVAS_COUNT);
153 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
155 r = __galleryRenderer.EnableEmptyView();
156 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
158 GET_STRING_CONFIG(IDS_TPLATFORM_BODY_NO_IMAGES, __emptyText);
159 GET_SHAPE_CONFIG(GALLERY::EMPTY_FONT_SIZE, _CONTROL_ORIENTATION_PORTRAIT, __emptyFontSize);
160 r = __galleryRenderer.SetEmptyText(__emptyText);
161 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
163 __pGalleryViewEventHandler = new (std::nothrow) _GalleryViewEventHandler(*this, __galleryRenderer, *__pGalleryImageReader);
164 SysTryCatch(NID_UI_CTRL, __pGalleryViewEventHandler != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
166 r = __pGalleryViewEventHandler->Construct();
167 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
169 SetFontStyle(FONT_STYLE_PLAIN);
171 __pGalleryView = pGalleryView;
176 delete __pGalleryViewEventHandler;
177 delete __pGalleryImageReader;
178 delete __pGalleryModel;
179 delete __pGalleryItemProvider;
180 delete __pGalleryCoreEvent;
181 delete[] __pItemToCanvas;
187 _GalleryPresenter::GetCurrentItemIndex(void) const
189 return __currentItemIndex;
193 _GalleryPresenter::SetCurrentItemIndex(int index, bool eventFire)
195 SysTryReturn(NID_UI_CTRL, index < __pGalleryModel->GetItemCount(), E_OUT_OF_RANGE, E_OUT_OF_RANGE,
196 "[E_OUT_OF_RANGE] The argument(%d) is out of range.", index);
198 if (__currentItemIndex != NO_CURRENT_IMAGE && __currentItemIndex != index)
200 __currentItemIndex = index;
201 if (eventFire == true)
208 __currentItemIndex = index;
211 __pGalleryViewEventHandler->SetZoomFlag(false);
217 _GalleryPresenter::SetCurrentItem(int index)
219 SysTryReturn(NID_UI_CTRL, index >=0 && index < __pGalleryModel->GetItemCount(), E_OUT_OF_RANGE, E_OUT_OF_RANGE,
220 "[E_OUT_OF_RANGE] The argument(%d) is out of range.", index);
222 int oldCurrentCanvasIndex = 0;
223 result r = E_SUCCESS;
225 if (index == __currentItemIndex)
230 if (__currentItemIndex != NO_CURRENT_IMAGE)
232 oldCurrentCanvasIndex = SearchCanvasIndex(__currentItemIndex);
233 SysTryReturn(NID_UI_CTRL, oldCurrentCanvasIndex != NOT_EXIST_CANVAS, E_SYSTEM, E_SYSTEM,
234 "[E_SYSTEM] The canvas of %d item is not exist.", oldCurrentCanvasIndex);
236 if (__currentItemIndex > index)
238 FloatRectangle rect = __galleryRenderer.GetViewRect();
240 r = __galleryRenderer.SetCanvasBounds(oldCurrentCanvasIndex, rect);
242 else if (__currentItemIndex < index)
244 FloatRectangle rect = __galleryRenderer.GetViewRect();
245 rect.x = -rect.width;
246 r = __galleryRenderer.SetCanvasBounds(oldCurrentCanvasIndex, rect);
249 r = __galleryRenderer.SetCanvasVisibility(oldCurrentCanvasIndex, false);
250 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
253 int newCurrentCanvasIndex = SearchCanvasIndex(index);
254 if (newCurrentCanvasIndex == NOT_EXIST_CANVAS)
256 r = SetCanvasImage(index);
257 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
258 newCurrentCanvasIndex = SearchCanvasIndex(index);
260 r = __galleryRenderer.SetCanvasBounds(newCurrentCanvasIndex, __galleryRenderer.GetViewRect());
261 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
263 r = __galleryRenderer.SetCanvasVisibility(newCurrentCanvasIndex, true);
264 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
266 r = SetCurrentItemIndex(index);
267 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
274 result resultValue = __galleryRenderer.SetCanvasVisibility(oldCurrentCanvasIndex, true);
275 if (resultValue != E_SUCCESS)
277 SysLog(NID_UI_CTRL, "[%s] Failed to setting of canvas visibility.", GetErrorMessage(resultValue));
284 _GalleryPresenter::GetItemCount(void) const
286 return __pGalleryModel->GetItemCount();
290 _GalleryPresenter::SetItemSpacing(int spacing)
292 __itemSpacing = spacing;
295 _GalleryPresenter::GetItemSpacing(void) const
297 return __itemSpacing;
300 _GallerySlideShowType
301 _GalleryPresenter::GetSlideShowType(void) const
303 return __gallerySlideShowType;
307 _GalleryPresenter::SetSlideShowType(_GallerySlideShowType slideShowType)
309 SysTryReturn(NID_UI_CTRL, slideShowType >= GALLERY_SLIDESHOW_DISSOLVE && slideShowType <= GALLERY_SLIDESHOW_PAGE,
310 E_OUT_OF_RANGE, E_OUT_OF_RANGE, "[E_OUT_OF_RANGE] The animation argument(%d) is out of range", slideShowType);
312 __gallerySlideShowType = slideShowType;
318 _GalleryPresenter::GetSlideShowAnimationDuration(void) const
320 Variant variant = GetProperty("slideShowAnimationDuration");
321 return variant.ToInt();
325 _GalleryPresenter::SetSlideShowAnimationDuration(int duration)
327 SysTryReturn(NID_UI_CTRL, duration >= MIN_ANIMATION_DURATION && duration <= MAX_ANIMATION_DURATION,
328 E_OUT_OF_RANGE, E_OUT_OF_RANGE, "[E_OUT_OF_RANGE] The argument(%d) is out of range.", duration);
330 return SetProperty("slideShowAnimationDuration", Variant(duration));
334 _GalleryPresenter::GetSlideShowViewDuration(void) const
336 Variant variant = GetProperty("slideShowViewDuration");
337 return variant.ToInt();
341 _GalleryPresenter::SetSlideShowViewDuration(int duration)
343 SysTryReturn(NID_UI_CTRL, duration >= MIN_VIEW_DURATION, E_OUT_OF_RANGE, E_OUT_OF_RANGE,
344 "[E_OUT_OF_RANGE] The argument(%d) is out of range.", duration);
346 return SetProperty("slideShowViewDuration", Variant(duration));
350 _GalleryPresenter::StartSlideShow(bool repeat)
352 SysTryReturn(NID_UI_CTRL, __pSlideShowTimer == null, E_INVALID_OPERATION, E_INVALID_OPERATION,
353 "[E_INVALID_OPERATION] Slide show is already started");
355 if (GetItemCount() == 0)
360 __slideShowRepeat = repeat;
361 __slideShowPlayCount = GetItemCount() - 1;
363 result r = StartSlideShowTimer(GetSlideShowViewDuration());
364 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
366 _GalleryCoreEventArg* pArg = new(std::nothrow) _GalleryCoreEventArg(GALLERY_CORE_EVENT_SLIDE_SHOW_STARTED);
367 __pGalleryCoreEvent->Fire(*pArg);
373 _GalleryPresenter::StopSlideShow(void)
375 SysTryReturn(NID_UI_CTRL, __pSlideShowTimer != null, E_INVALID_OPERATION, E_INVALID_OPERATION,
376 "[E_INVALID_OPERATION] Slide show is already stopped");
378 StopSlideShowTimer();
379 __galleryRenderer.StopAllCanvasAnimation();
381 result r = __pGalleryViewEventHandler->SetVisibleCanvas();
382 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
384 _GalleryCoreEventArg* pArg = new(std::nothrow) _GalleryCoreEventArg(GALLERY_CORE_EVENT_SLIDE_SHOW_STOPPED);
385 __pGalleryCoreEvent->Fire(*pArg);
387 r = __galleryRenderer.RefreshView();
388 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
394 _GalleryPresenter::GetTextOfEmptyGallery(void) const
396 Variant variant = GetProperty("textOfEmptyGallery");
397 return variant.ToString();
401 _GalleryPresenter::SetTextOfEmptyGallery(const String& text)
403 String oldText = GetTextOfEmptyGallery();
408 __userSetEmptyText = true;
409 result r = __galleryRenderer.SetEmptyText(text);
410 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
412 return SetProperty("textOfEmptyGallery", Variant(text));
416 _GalleryPresenter::SetBitmapOfEmptyGallery(const _GalleryBitmap* pBitmap)
418 result r = __galleryRenderer.SetEmptyImage(pBitmap);
419 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
421 __pEmptyGalleryImage = const_cast <_GalleryBitmap*>(pBitmap);
427 _GalleryPresenter::IsSlideShowStarted(void) const
429 return __pSlideShowTimer != null ? true : false;
433 _GalleryPresenter::SetZoomingEnabled(bool enable)
435 return SetProperty("zoomingEnabled", Variant(enable));
439 _GalleryPresenter::IsZoomingEnabled(void) const
441 Variant variant = GetProperty("zoomingEnabled");
443 return variant.ToBool();
447 _GalleryPresenter::PostEvent(_GalleryViewEvent& event)
449 bool slideShowStarted = false;
450 if (__pSlideShowTimer != null && event.GetEventType() != GALLERY_VIEW_EVENT_BOUNDS_CHANGED)
452 result r = StopSlideShow();
453 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
454 slideShowStarted = true;
457 if (GetItemCount() == 0)
459 if (event.GetEventType() == GALLERY_VIEW_EVENT_BOUNDS_CHANGED)
461 return OnBoundsChanged();
463 //SetLastResult(E_SUCCESS);
467 switch (event.GetEventType())
469 case GALLERY_VIEW_EVENT_TOUCH_PRESSED:
471 if (slideShowStarted == true)
473 result r = __pGalleryViewEventHandler->SetVisibleCanvas();
474 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
477 return __pGalleryViewEventHandler->OnTouchPressed(*(event.GetEventInfo()));
480 case GALLERY_VIEW_EVENT_TOUCH_RELEASED:
481 return __pGalleryViewEventHandler->OnTouchReleased(*(event.GetEventInfo()));
483 case GALLERY_VIEW_EVENT_TOUCH_DOUBLE_PRESSED:
484 __galleryRenderer.SetCanvasVisibility(PARTIAL_CANVAS, false);
485 return __pGalleryViewEventHandler->OnTouchDoublePressed(*(event.GetEventInfo()));
487 case GALLERY_VIEW_EVENT_TOUCH_MOVED:
488 __galleryRenderer.SetCanvasVisibility(PARTIAL_CANVAS, false);
489 return __pGalleryViewEventHandler->OnTouchMoved(*(event.GetEventInfo()));
491 case GALLERY_VIEW_EVENT_TOUCH_PINCH_ZOOM:
492 return __pGalleryViewEventHandler->OnTouchPinchZoom(*(event.GetEventInfo()));
494 case GALLERY_VIEW_EVENT_TOUCH_FLICK:
495 //__galleryRenderer.SetCanvasVisibility(PARTIAL_CANVAS, false);
496 return __pGalleryViewEventHandler->OnTouchFlicked(*(event.GetEventInfo()));
498 case GALLERY_VIEW_EVENT_BOUNDS_CHANGED:
499 return OnBoundsChanged();
501 case GALLERY_VIEW_EVENT_TOUCH_CANCELED:
502 return __pGalleryViewEventHandler->OnTouchCanceled();
505 SysTryReturn(NID_UI_CTRL, false, false, E_INVALID_ARG,
506 "[E_INVALID_ARG] The event type(%d) is invalid type", event.GetEventType());
509 //SetLastResult(E_SUCCESS);
514 _GalleryPresenter::OnBoundsChanged(void)
517 result r = E_SUCCESS;
519 if (__pSlideShowTimer != null && GetSlideShowType() == GALLERY_SLIDESHOW_PAGE)
521 int slideShowPlayCount = __slideShowPlayCount;
522 bool slideShowRepeat = __slideShowRepeat;
523 __galleryRenderer.StopAllCanvasAnimation();
524 __slideShowPlayCount = slideShowPlayCount;
525 __slideShowRepeat = slideShowRepeat;
526 r = StartSlideShowTimer(GetSlideShowViewDuration());
527 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
530 r = __galleryRenderer.InitializeCanvasBounds();
531 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
533 if (GetItemCount() > 0)
535 for (int canvasIndex = PARTIAL_CANVAS + 1; canvasIndex < MAX_CANVAS_COUNT; canvasIndex++)
537 itemIndex = __pItemToCanvas[canvasIndex];
538 if (itemIndex != NOT_EXIST_CANVAS)
540 r = __galleryRenderer.SetCanvasImage(canvasIndex, __pGalleryImageReader->GetItemImage(itemIndex)
541 , __verticalAlignment, __horizontalAlignment, __fittingType);
542 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
548 r = __galleryRenderer.EnableEmptyView();
549 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
550 SetLastResult(E_SUCCESS);
554 int currentItemIndex = GetCurrentItemIndex();
555 int currentCanvasIndex = SearchCanvasIndex(currentItemIndex);
556 int nextItemIndex = GetCurrentItemIndex() + 1;
557 if (nextItemIndex >= GetItemCount())
561 int nextCanvasIndex = SearchCanvasIndex(nextItemIndex);
563 r = __galleryRenderer.SetCanvasShowState(currentCanvasIndex, true);
564 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
566 if (__pSlideShowTimer != null && __slideShowStarted == true)
568 r = __galleryRenderer.SetCanvasShowState(nextCanvasIndex, true);
569 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
573 __galleryRenderer.GalleryBoundsChanged(currentCanvasIndex);
574 FloatRectangle canvasBounds = __galleryRenderer.GetCanvasBounds(currentCanvasIndex);
575 FloatRectangle imageBounds = __galleryRenderer.GetCanvasImageBounds(currentCanvasIndex);
576 __pGalleryViewEventHandler->CorrectCanvasPosition(canvasBounds, imageBounds);
577 r = __galleryRenderer.SetCanvasBounds(currentCanvasIndex, canvasBounds);
578 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
580 __pGalleryViewEventHandler->ResetTouch();
582 r = __pGalleryViewEventHandler->AlignCanvas(false);
583 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
586 SetLastResult(E_SUCCESS);
592 _GalleryPresenter::OnDraw(void)
594 result r = E_SUCCESS;
596 if (GetItemCount() > 0 && GetCurrentItemIndex() == NO_CURRENT_IMAGE)
598 r = SetCurrentItem(0);
599 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
602 r = __galleryRenderer.Draw();
603 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
605 SetLastResult(E_SUCCESS);
609 _GalleryPresenter::SetCoreEventListener(const _IGalleryCoreEventListener& coreEventListener)
611 return __pGalleryCoreEvent->AddListener(coreEventListener);
615 _GalleryPresenter::RemoveCoreEventListener(const _IGalleryCoreEventListener& coreEventListener)
617 return __pGalleryCoreEvent->RemoveListener(coreEventListener);
621 _GalleryPresenter::ClickedItem(void)
623 _GalleryCoreEventArg* pArg = new(std::nothrow) _GalleryCoreEventArg(GALLERY_CORE_EVENT_ITEM_CLICKED, __currentItemIndex);
624 return __pGalleryCoreEvent->Fire(*pArg);
628 _GalleryPresenter::ChangedItem(void)
630 if (__currentItemIndex == NO_CURRENT_IMAGE)
635 __pGalleryView->ResizeGalleryAccessibilityElement();
637 _GalleryCoreEventArg* pArg = new(std::nothrow) _GalleryCoreEventArg(GALLERY_CORE_EVENT_CURRENT_ITEM_CHANGED, __currentItemIndex);
638 return __pGalleryCoreEvent->Fire(*pArg);
642 _GalleryPresenter::RequestToLoadItem(int itemIndex)
644 result r = __pGalleryModel->RequestToLoadItem(itemIndex);
645 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
646 SortItemToCanvasIndex(itemIndex, true);
648 if (GetItemCount() == 1)
650 r = __galleryRenderer.DisableEmptyView();
651 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
653 r = SetCurrentItem(itemIndex);
654 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
657 r = __galleryRenderer.RefreshView();
658 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
664 _GalleryPresenter::RequestToUnloadItem(int itemIndex)
666 result r = E_SUCCESS;
668 int canvasIndex = SearchCanvasIndex(itemIndex);
669 if (canvasIndex != NOT_EXIST_CANVAS)
671 __galleryRenderer.SetCanvasVisibility(canvasIndex, false);
672 __pItemToCanvas[canvasIndex] = NOT_USED_CANVAS;
675 if (GetItemCount() == 1)
677 r = SetCurrentItemIndex(NO_CURRENT_IMAGE);
678 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
680 r = __galleryRenderer.EnableEmptyView();
681 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
685 if (itemIndex == __currentItemIndex)
687 __pGalleryImageReader->ResetLoadedPartialImageIndex();
688 r = __galleryRenderer.SetCanvasVisibility(PARTIAL_CANVAS, false);
689 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
691 __pGalleryViewEventHandler->SetZoomFlag(false);
693 int canvasIndex = NOT_EXIST_CANVAS;
694 if (itemIndex == GetItemCount() - 1)
696 r = SetCanvasImage(itemIndex - 1);
697 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
699 canvasIndex = SearchCanvasIndex(itemIndex - 1);
700 SysTryReturn(NID_UI_CTRL, canvasIndex != NOT_EXIST_CANVAS, E_SYSTEM, E_SYSTEM,
701 "[E_SYSTEM] Failed to search canvas");
702 __currentItemIndex--;
706 r = SetCanvasImage(itemIndex + 1);
707 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
709 canvasIndex = SearchCanvasIndex(itemIndex + 1);
710 SysTryReturn(NID_UI_CTRL, canvasIndex != NOT_EXIST_CANVAS, E_SYSTEM, E_SYSTEM,
711 "[E_SYSTEM] Failed to search canvas");
714 r = __galleryRenderer.SetCanvasVisibility(canvasIndex, true);
715 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
717 r = __galleryRenderer.SetCanvasBounds(canvasIndex, __galleryRenderer.GetViewRect());
718 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
720 if(ChangedItem() == false)
723 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
726 else if (itemIndex < __currentItemIndex)
728 __currentItemIndex--;
732 r = __pGalleryModel->RequestToUnloadItem(itemIndex);
733 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
735 SortItemToCanvasIndex(itemIndex, false);
737 r = __galleryRenderer.RefreshView();
738 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
744 _GalleryPresenter::RequestToUnloadAllItems(void)
746 result r = __pGalleryModel->RequestToUnloadAllItems();
747 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
749 for (int i = 0; i < MAX_CANVAS_COUNT; i++)
751 __pItemToCanvas[i] = NOT_USED_CANVAS;
754 r = SetCurrentItemIndex(NO_CURRENT_IMAGE);
755 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
757 r = __galleryRenderer.EnableEmptyView();
758 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
760 //r = __galleryRenderer.RefreshView();
761 //SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
767 _GalleryPresenter::RequestToUpdateItem(int itemIndex)
769 result r = __pGalleryModel->RequestToUpdateItem(itemIndex);
770 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
772 int canvasIndex = SearchCanvasIndex(itemIndex);
773 if (itemIndex == GetCurrentItemIndex())
775 _GalleryBitmap* pImage = __pGalleryImageReader->GetItemImage(itemIndex);
777 SysTryReturn(NID_UI_CTRL, pImage != null, r, r, "[%s] Propagating.", GetErrorMessage(r));
779 r = __galleryRenderer.SetCanvasImage(canvasIndex, (const _GalleryBitmap*)pImage
780 , __verticalAlignment, __horizontalAlignment, __fittingType);
781 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
783 __galleryRenderer.GalleryBoundsChanged(canvasIndex);
784 FloatRectangle canvasBounds = __galleryRenderer.GetCanvasBounds(canvasIndex);
785 FloatRectangle imageBounds = __galleryRenderer.GetCanvasImageBounds(canvasIndex);
786 __pGalleryViewEventHandler->CorrectCanvasPosition(canvasBounds, imageBounds);
787 r = __galleryRenderer.SetCanvasBounds(canvasIndex, canvasBounds);
788 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
790 r = __pGalleryViewEventHandler->AlignCanvas(false);
791 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
793 else if (canvasIndex != NOT_EXIST_CANVAS)
795 __pItemToCanvas[canvasIndex] = NOT_USED_CANVAS;
798 r = __galleryRenderer.RefreshView();
799 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
805 _GalleryPresenter::RequestToUpdateAllItems(void)
807 result r = __pGalleryModel->RequestToUpdateAllItems();
808 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
810 r = __galleryRenderer.ResetAllCanvas();
811 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
813 for (int i = 0; i < MAX_CANVAS_COUNT; i++)
815 __pItemToCanvas[i] = NOT_USED_CANVAS;
818 int itemCount = GetItemCount();
821 r = __galleryRenderer.DisableEmptyView();
822 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
824 if (GetCurrentItemIndex() != NO_CURRENT_IMAGE)
826 r = SetCanvasImage(GetCurrentItemIndex());
827 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
829 r = __galleryRenderer.SetCanvasVisibility(SearchCanvasIndex(GetCurrentItemIndex()), true);
830 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
834 r = SetCurrentItem(0);
835 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
837 r = __galleryRenderer.SetCanvasVisibility(SearchCanvasIndex(0), true);
838 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
843 r = __galleryRenderer.EnableEmptyView();
844 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
851 _GalleryPresenter::RequestToUpdateItemCount(void)
853 __pGalleryModel->UpdateItemCount();
859 _GalleryPresenter::OnTimerExpired(Runtime::Timer& timer)
861 result r = E_SUCCESS;
862 if (&timer == __pSlideShowTimer)
865 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
867 SetLastResult(E_SUCCESS);
871 _GalleryPresenter::OnTransitionCancel(void)
873 __slideShowStarted = false;
874 int endItemIndex = __currentItemIndex + 1;
875 if (GetItemCount() > 0)
877 endItemIndex = endItemIndex % GetItemCount();
884 result r = SetCurrentItemIndex(endItemIndex);
885 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
887 StopSlideShowTimer();
891 _GalleryPresenter::OnTransitionCompleted(void)
893 int endItemIndex = __currentItemIndex + 1;
894 if (GetItemCount() > 0)
896 endItemIndex = endItemIndex % GetItemCount();
903 result r = SetCurrentItemIndex(endItemIndex);
904 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
906 __slideShowStarted = false;
907 if (__slideShowPlayCount > 0 || __slideShowRepeat == true)
909 StartSlideShowTimer(GetSlideShowViewDuration());
914 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating", GetErrorMessage(r));
917 SetLastResult(E_SUCCESS);
921 _GalleryPresenter::OnCanvasAnimationCancel(void)
923 __slideShowStarted = false;
927 _GalleryPresenter::OnCanvasAnimationCompleted(void)
929 __slideShowStarted = false;
933 _GalleryPresenter::OnCanvasAnimationStarted(void)
935 __slideShowStarted = true;
939 _GalleryPresenter::SetCanvasImage(int itemIndex)
941 SysTryReturn(NID_UI_CTRL, itemIndex >= 0, E_INVALID_ARG, E_INVALID_ARG,
942 "[E_INVALID_ARG] The argument(%d) is negative value.", itemIndex);
943 SysTryReturn(NID_UI_CTRL, itemIndex >=0 && itemIndex < __pGalleryModel->GetItemCount(),
944 E_OUT_OF_RANGE, E_OUT_OF_RANGE, "[E_OUT_OF_RANGE] The argument(%d) is out of range.", itemIndex);
946 if (SearchCanvasIndex(itemIndex) != NOT_EXIST_CANVAS)
951 int emptyCanvasIndex = GetEmptyCanvasIndex();
952 if (emptyCanvasIndex == NOT_EXIST_CANVAS)
954 emptyCanvasIndex = ClearCanvasIndex(__currentItemIndex);
957 _GalleryBitmap* pImage = __pGalleryImageReader->GetItemImage(itemIndex);
958 result r = GetLastResult();
959 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
961 __pItemToCanvas[emptyCanvasIndex] = itemIndex;
962 r = __galleryRenderer.SetCanvasImage(emptyCanvasIndex, (const _GalleryBitmap*)pImage
963 , __verticalAlignment, __horizontalAlignment, __fittingType);
964 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
966 FloatRectangle bounds = __galleryRenderer.GetViewRect();
967 r = __galleryRenderer.SetCanvasBounds(emptyCanvasIndex, bounds);
968 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
970 r = __galleryRenderer.SetCanvasVisibility(emptyCanvasIndex, false);
971 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
977 _GalleryPresenter::SetPartialCanvasImage(void)
979 SysTryReturn(NID_UI_CTRL, __currentItemIndex >= 0, E_INVALID_ARG, E_INVALID_ARG,
980 "[E_INVALID_ARG] The argument(%d) is negative value.", __currentItemIndex);
982 _GalleryItem* pGalleryItem = __pGalleryModel->GetItem(__currentItemIndex);
983 if (pGalleryItem->GetGalleryItemFilePath() == L"")
988 int currentCanvasIndex = SearchCanvasIndex(__currentItemIndex);
990 FloatRectangle canvasBounds = __galleryRenderer.GetCanvasBounds(currentCanvasIndex);
991 FloatRectangle imageBounds = __galleryRenderer.GetCanvasImageBounds(currentCanvasIndex);
992 FloatRectangle viewBounds = __galleryRenderer.GetViewRect();
994 if (imageBounds.width < viewBounds.width)
996 imageBounds.x -= (viewBounds.width - imageBounds.width) / 2;
999 if (imageBounds.height < viewBounds.height)
1001 imageBounds.y -= (viewBounds.height - imageBounds.height) / 2;
1004 canvasBounds.x = _Abs(-canvasBounds.x - imageBounds.x);
1005 canvasBounds.y = _Abs(-canvasBounds.y - imageBounds.y);
1006 canvasBounds.width = viewBounds.width < imageBounds.width ? viewBounds.width : imageBounds.width;
1007 canvasBounds.height = viewBounds.height < imageBounds.height ? viewBounds.height : imageBounds.height;
1009 FloatDimension size(imageBounds.width, imageBounds.height);
1011 _GalleryBitmap* pImage = __pGalleryImageReader->GetPartialImageFromFileN(__currentItemIndex, canvasBounds, size);
1012 SysTryReturn(NID_UI_CTRL, pImage != null, GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
1014 __pItemToCanvas[PARTIAL_CANVAS] = __currentItemIndex;
1015 result r = __galleryRenderer.SetCanvasImage(PARTIAL_CANVAS, (const _GalleryBitmap*)pImage
1016 , GALLERY_VERTICAL_ALIGN_MIDDLE, GALLERY_HORIZONTAL_ALIGN_CENTER, __fittingType);
1017 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
1019 r = __galleryRenderer.SetCanvasBounds(PARTIAL_CANVAS, viewBounds);
1020 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
1022 r = __galleryRenderer.SetCanvasVisibility(PARTIAL_CANVAS, true);
1023 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
1035 _GalleryPresenter::SearchCanvasIndex(int itemIndex)
1037 if (itemIndex == NO_CURRENT_IMAGE)
1039 return NOT_EXIST_CANVAS;
1042 for (int i = 1; i < MAX_CANVAS_COUNT; i++)
1044 if (__pItemToCanvas[i] == itemIndex)
1050 return NOT_EXIST_CANVAS;
1054 _GalleryPresenter::GetEmptyCanvasIndex(void) const
1056 for (int i = 1; i < MAX_CANVAS_COUNT; i++)
1058 if (__pItemToCanvas[i] == NOT_USED_CANVAS)
1063 return NOT_EXIST_CANVAS;
1067 _GalleryPresenter::SetCanvasIndex(int canvasIndex, int itemIndex)
1069 SysTryReturn(NID_UI_CTRL, canvasIndex >= 0, E_INVALID_ARG, E_INVALID_ARG,
1070 "[E_INVALID_ARG] The argument(%d) is negative value.", canvasIndex);
1071 SysTryReturn(NID_UI_CTRL, canvasIndex > 0 && canvasIndex < MAX_CANVAS_COUNT, E_OUT_OF_RANGE, E_OUT_OF_RANGE,
1072 "[E_OUT_OF_RANGE] The canvas index(%d) is out of range", canvasIndex);
1073 SysTryReturn(NID_UI_CTRL, itemIndex >= 0, E_INVALID_ARG, E_INVALID_ARG,
1074 "[E_INVALID_ARG] The argument(%d) is negative value.", itemIndex);
1075 SysTryReturn(NID_UI_CTRL, itemIndex >=0 && itemIndex < __pGalleryModel->GetItemCount(), E_OUT_OF_RANGE, E_OUT_OF_RANGE,
1076 "[E_OUT_OF_RANGE] The argument(%d) is out of range.", itemIndex);
1078 if (__pItemToCanvas[canvasIndex] == NOT_USED_CANVAS)
1080 __pItemToCanvas[canvasIndex] = itemIndex;
1084 SysTryReturn(NID_UI_CTRL, false, E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The canvas index(%d) is used.", canvasIndex);
1091 _GalleryPresenter::ClearCanvasIndex(int currentItemIndex)
1093 SysTryReturn(NID_UI_CTRL, currentItemIndex >= 0, E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The argument(%d) is negative value.", currentItemIndex);
1095 int clearCanvasIndex = 1;
1096 int maxAbsValue = 0;
1099 for (int i = 1; i < MAX_CANVAS_COUNT; i++)
1101 absValue = _Abs(currentItemIndex - __pItemToCanvas[i]);
1102 if (absValue > maxAbsValue)
1104 maxAbsValue = absValue;
1105 clearCanvasIndex = i;
1108 __pItemToCanvas[clearCanvasIndex] = NOT_USED_CANVAS;
1110 SetLastResult(E_SUCCESS);
1111 return clearCanvasIndex;
1115 _GalleryPresenter::SortItemToCanvasIndex(int itemIndex, bool add)
1119 for (int i = 0; i < MAX_CANVAS_COUNT; i++)
1121 if (__pItemToCanvas[i] >= itemIndex)
1123 __pItemToCanvas[i]++;
1129 for (int i = 0; i < MAX_CANVAS_COUNT; i++)
1131 if (__pItemToCanvas[i] > itemIndex)
1133 __pItemToCanvas[i]--;
1140 _GalleryPresenter::StartSlideShowTimer(int duration)
1142 result r = E_SUCCESS;
1143 if (__pSlideShowTimer != null)
1145 __pSlideShowTimer->Cancel();
1146 delete __pSlideShowTimer;
1147 __pSlideShowTimer = null;
1150 __pSlideShowTimer = new(std::nothrow) Runtime::Timer();
1151 SysTryCatch(NID_UI_CTRL, __pSlideShowTimer != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
1153 r = __pSlideShowTimer->Construct(*this);
1154 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
1156 __pSlideShowTimer->Start(duration);
1157 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
1162 if (__pSlideShowTimer != null)
1164 __pSlideShowTimer->Cancel();
1165 delete __pSlideShowTimer;
1166 __pSlideShowTimer = null;
1169 return GetLastResult();
1173 _GalleryPresenter::StopSlideShowTimer(void)
1175 if (__pSlideShowTimer != null)
1177 __pSlideShowTimer->Cancel();
1178 delete __pSlideShowTimer;
1179 __pSlideShowTimer = null;
1182 __slideShowRepeat = false;
1183 __slideShowPlayCount = 0;
1187 _GalleryPresenter::PlaySlideShow(void)
1189 int startCanvasIndex = SearchCanvasIndex(__currentItemIndex);
1190 SysTryReturn(NID_UI_CTRL, startCanvasIndex != NOT_EXIST_CANVAS, E_SYSTEM, E_SYSTEM,
1191 "[E_SYSTEM] The current item not exist.");
1193 int endItemIndex = __currentItemIndex + 1;
1194 if (endItemIndex >= GetItemCount())
1199 result r = __galleryRenderer.SetCanvasVisibility(PARTIAL_CANVAS, false);
1200 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1202 r = __galleryRenderer.SetCanvasVisibility(startCanvasIndex, true);
1203 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1205 int endCanvasIndex = SearchCanvasIndex(endItemIndex);
1206 if (endCanvasIndex == NOT_EXIST_CANVAS)
1208 r = SetCanvasImage(endItemIndex);
1209 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1210 endCanvasIndex = SearchCanvasIndex(endItemIndex);
1213 _GalleryTransitionType transition = static_cast<_GalleryTransitionType>(GetSlideShowType());
1214 _GalleryAnimationTiming animation = {__slideShowAnimationDuration, GALLERY_ANIMATION_TIMING_FUNC_EASEOUT};
1215 r = __galleryRenderer.SetCanvasVisibility(endCanvasIndex, true);
1216 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1218 r = __galleryRenderer.RunCanvasTransition(startCanvasIndex, endCanvasIndex, transition, &animation);
1219 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1221 if (__slideShowRepeat == false)
1223 __slideShowPlayCount--;
1226 r = __galleryRenderer.RefreshView();
1227 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1234 _GalleryPresenter::GetPropertySlideShowViewDuration(void) const
1236 return Variant(__slideShowViewDuration);
1240 _GalleryPresenter::SetPropertySlideShowViewDuration(const Variant& variant)
1242 __slideShowViewDuration = variant.ToInt();
1248 _GalleryPresenter::GetPropertySlideShowAnimationDuration(void) const
1250 return Variant(__slideShowAnimationDuration);
1254 _GalleryPresenter::SetPropertySlideShowAnimationDuration(const Variant& variant)
1256 __slideShowAnimationDuration = variant.ToInt();
1262 _GalleryPresenter::GetPropertyTextOfEmptyGallery(void) const
1264 return Variant(__emptyText);
1268 _GalleryPresenter::SetPropertyTextOfEmptyGallery(const Variant& variant)
1270 __emptyText = variant.ToString();
1276 _GalleryPresenter::GetPropertyZoomingEnabled(void) const
1278 return Variant(__zoomingEnabled);
1282 _GalleryPresenter::SetPropertyZoomingEnabled(const Variant& variant)
1284 __zoomingEnabled = variant.ToBool();
1290 _GalleryPresenter::OnPropertyChanging(_PropertyBase& source, const String& name,
1291 const Variant& oldProperty, const Variant& newProperty)
1296 _GalleryPresenter::OnPropertyChanged(_PropertyBase& source, const String& name,
1297 const Variant& oldProperty, const Variant& newProperty)
1302 _GalleryPresenter::SetFontSize(int size)
1304 __emptyFontSize = size;
1308 _GalleryPresenter::GetFontSize(void) const
1310 return __emptyFontSize;
1314 _GalleryPresenter::SetFontStyle(FontStyle style)
1316 __emptyFontStyle = style;
1320 _GalleryPresenter::GetFontStyle(void) const
1322 return __emptyFontStyle;
1326 _GalleryPresenter::OnFontInfoRequested(unsigned long& style, int& size)
1328 style = GetFontStyle();
1329 size = GetFontSize();
1333 _GalleryPresenter::OnFontChanged(void)
1335 if (GetItemCount() == 0)
1337 result r = __galleryRenderer.EnableEmptyView();
1338 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1343 _GalleryPresenter::UpdateEmptyString(void)
1345 if (__userSetEmptyText == false)
1347 GET_STRING_CONFIG(IDS_TPLATFORM_BODY_NO_IMAGES, __emptyText);
1348 result r = __galleryRenderer.SetEmptyText(__emptyText);
1349 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1351 if (GetItemCount() == 0)
1353 r = __galleryRenderer.EnableEmptyView();
1354 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1357 r = __galleryRenderer.RefreshView();
1358 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1362 }}} // Tizen::Ui::Controls