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;
55 const int PARTIAL_CANVAS = 0;
56 } // unnamed namespace
58 IMPLEMENT_PROPERTY(_GalleryPresenter);
60 _GalleryPresenter::_GalleryPresenter(_IGalleryRenderer& galleryRenderer)
61 : __galleryRenderer(galleryRenderer)
62 , __pGalleryViewEventHandler(null)
63 , __pGalleryCoreEvent(null)
64 , __pGalleryItemProvider(null)
65 , __pGalleryModel(null)
66 , __pGalleryImageReader(null)
67 , __pEmptyGalleryImage(null)
69 , __slideShowAnimationDuration(DEFAULT_ANIMATION_DURATION)
70 , __slideShowViewDuration(DEFAULT_VIEW_DURATION)
71 , __gallerySlideShowType(GALLERY_SLIDESHOW_DISSOLVE)
72 , __currentItemIndex(NO_CURRENT_IMAGE)
73 , __slideShowRepeat(false)
74 , __slideShowStarted(false)
75 , __zoomingEnabled(true)
76 , __pSlideShowTimer(null)
77 , __slideShowPlayCount(0)
78 , __itemSpacing(DEFAULT_ITEM_SPACING)
79 , __pItemToCanvas(null)
80 , __fittingType(GALLERY_FITTING_TYPE_FIT)
81 , __verticalAlignment(GALLERY_VERTICAL_ALIGN_MIDDLE)
82 , __horizontalAlignment(GALLERY_HORIZONTAL_ALIGN_CENTER)
84 , __emptyFontStyle(FONT_STYLE_PLAIN)
85 , __userSetEmptyText(false)
86 , __pGalleryView(null)
88 AddPropertyChangeEventListener(*this);
91 _GalleryPresenter::~_GalleryPresenter(void)
93 delete __pGalleryViewEventHandler;
94 delete __pGalleryImageReader;
95 delete __pGalleryModel;
96 delete __pGalleryItemProvider;
97 delete __pGalleryCoreEvent;
98 delete __pEmptyGalleryImage;
99 delete[] __pItemToCanvas;
101 if (__pSlideShowTimer != null)
103 __pSlideShowTimer->Cancel();
104 delete __pSlideShowTimer;
105 __pSlideShowTimer = null;
110 _GalleryPresenter::CreateGalleryPresenterN(_IGalleryRenderer& galleryRenderer,
111 _GalleryItemProviderAdaptorImpl* pGalleryItemProviderAdaptor, _Gallery* pGalleryView)
113 _GalleryPresenter* pPresenter = new (std::nothrow) _GalleryPresenter(galleryRenderer);
114 SysTryReturn(NID_UI_CTRL, pPresenter != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
116 result r = pPresenter->Construct(pGalleryItemProviderAdaptor, pGalleryView);
117 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
119 SetLastResult(E_SUCCESS);
129 _GalleryPresenter::Construct(_GalleryItemProviderAdaptorImpl* pGalleryItemProviderAdaptor, _Gallery* pGalleryView)
131 SetLastResult(E_SUCCESS);
133 result r = E_SUCCESS;
135 __pGalleryCoreEvent = new (std::nothrow) _GalleryCoreEvent();
136 SysTryCatch(NID_UI_CTRL, __pGalleryCoreEvent != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
138 __pGalleryItemProvider = new (std::nothrow) _GalleryItemProvider(*__pGalleryCoreEvent, pGalleryItemProviderAdaptor);
139 SysTryCatch(NID_UI_CTRL, __pGalleryItemProvider != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
141 __pGalleryModel = _GalleryModel::CreateGalleryModelN(*__pGalleryItemProvider);
142 SysTryCatch(NID_UI_CTRL, __pGalleryModel != null, , GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
144 __pGalleryImageReader = new (std::nothrow) _GalleryImageReader(*__pGalleryModel);
145 SysTryCatch(NID_UI_CTRL, __pGalleryImageReader != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
147 __pItemToCanvas = new(std::nothrow) int[MAX_CANVAS_COUNT];
148 SysTryCatch(NID_UI_CTRL, __pItemToCanvas != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
149 memset(__pItemToCanvas, -1, sizeof(int) * MAX_CANVAS_COUNT);
151 r = __galleryRenderer.SetCanvasMaxCount(MAX_CANVAS_COUNT);
152 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
154 r = __galleryRenderer.EnableEmptyView();
155 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
157 GET_STRING_CONFIG(IDS_TPLATFORM_BODY_NO_IMAGES, __emptyText);
158 GET_SHAPE_CONFIG(GALLERY::EMPTY_FONT_SIZE, _CONTROL_ORIENTATION_PORTRAIT, __emptyFontSize);
159 r = __galleryRenderer.SetEmptyText(__emptyText);
160 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
162 __pGalleryViewEventHandler = new (std::nothrow) _GalleryViewEventHandler(*this, __galleryRenderer, *__pGalleryImageReader);
163 SysTryCatch(NID_UI_CTRL, __pGalleryViewEventHandler != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
165 r = __pGalleryViewEventHandler->Construct();
166 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
168 SetFontStyle(FONT_STYLE_PLAIN);
170 __pGalleryView = pGalleryView;
175 delete __pGalleryViewEventHandler;
176 delete __pGalleryImageReader;
177 delete __pGalleryModel;
178 delete __pGalleryItemProvider;
179 delete __pGalleryCoreEvent;
180 delete[] __pItemToCanvas;
186 _GalleryPresenter::GetCurrentItemIndex(void) const
188 return __currentItemIndex;
192 _GalleryPresenter::SetCurrentItemIndex(int index, bool eventFire)
194 SysTryReturn(NID_UI_CTRL, index < __pGalleryModel->GetItemCount(), E_OUT_OF_RANGE, E_OUT_OF_RANGE,
195 "[E_OUT_OF_RANGE] The argument(%d) is out of range.", index);
197 if (__currentItemIndex != NO_CURRENT_IMAGE && __currentItemIndex != index)
199 __currentItemIndex = index;
200 if (eventFire == true)
207 __currentItemIndex = index;
210 __pGalleryViewEventHandler->SetZoomFlag(false);
216 _GalleryPresenter::SetCurrentItem(int index)
218 SysTryReturn(NID_UI_CTRL, index >=0 && index < __pGalleryModel->GetItemCount(), E_OUT_OF_RANGE, E_OUT_OF_RANGE,
219 "[E_OUT_OF_RANGE] The argument(%d) is out of range.", index);
221 int oldCurrentCanvasIndex = 0;
222 result r = E_SUCCESS;
224 if (index == __currentItemIndex)
229 if (__currentItemIndex != NO_CURRENT_IMAGE)
231 oldCurrentCanvasIndex = SearchCanvasIndex(__currentItemIndex);
232 SysTryReturn(NID_UI_CTRL, oldCurrentCanvasIndex != NOT_EXIST_CANVAS, E_SYSTEM, E_SYSTEM,
233 "[E_SYSTEM] The canvas of %d item is not exist.", oldCurrentCanvasIndex);
235 if (__currentItemIndex > index)
237 FloatRectangle rect = __galleryRenderer.GetViewRect();
239 r = __galleryRenderer.SetCanvasBounds(oldCurrentCanvasIndex, rect);
241 else if (__currentItemIndex < index)
243 FloatRectangle rect = __galleryRenderer.GetViewRect();
244 rect.x = -rect.width;
245 r = __galleryRenderer.SetCanvasBounds(oldCurrentCanvasIndex, rect);
248 r = __galleryRenderer.SetCanvasVisibility(oldCurrentCanvasIndex, false);
249 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
252 int newCurrentCanvasIndex = SearchCanvasIndex(index);
253 if (newCurrentCanvasIndex == NOT_EXIST_CANVAS)
255 r = SetCanvasImage(index);
256 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
257 newCurrentCanvasIndex = SearchCanvasIndex(index);
259 r = __galleryRenderer.SetCanvasBounds(newCurrentCanvasIndex, __galleryRenderer.GetViewRect());
260 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
262 r = __galleryRenderer.SetCanvasVisibility(newCurrentCanvasIndex, true);
263 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
265 r = SetCurrentItemIndex(index);
266 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
273 result resultValue = __galleryRenderer.SetCanvasVisibility(oldCurrentCanvasIndex, true);
274 if (resultValue != E_SUCCESS)
276 SysLog(NID_UI_CTRL, "[%s] Failed to setting of canvas visibility.", GetErrorMessage(resultValue));
283 _GalleryPresenter::GetItemCount(void) const
285 return __pGalleryModel->GetItemCount();
289 _GalleryPresenter::SetItemSpacing(int spacing)
291 __itemSpacing = spacing;
294 _GalleryPresenter::GetItemSpacing(void) const
296 return __itemSpacing;
299 _GallerySlideShowType
300 _GalleryPresenter::GetSlideShowType(void) const
302 return __gallerySlideShowType;
306 _GalleryPresenter::SetSlideShowType(_GallerySlideShowType slideShowType)
308 SysTryReturn(NID_UI_CTRL, slideShowType >= GALLERY_SLIDESHOW_DISSOLVE && slideShowType <= GALLERY_SLIDESHOW_PAGE,
309 E_OUT_OF_RANGE, E_OUT_OF_RANGE, "[E_OUT_OF_RANGE] The animation argument(%d) is out of range", slideShowType);
311 __gallerySlideShowType = slideShowType;
317 _GalleryPresenter::GetSlideShowAnimationDuration(void) const
319 Variant variant = GetProperty("slideShowAnimationDuration");
320 return variant.ToInt();
324 _GalleryPresenter::SetSlideShowAnimationDuration(int duration)
326 SysTryReturn(NID_UI_CTRL, duration >= MIN_ANIMATION_DURATION && duration <= MAX_ANIMATION_DURATION,
327 E_OUT_OF_RANGE, E_OUT_OF_RANGE, "[E_OUT_OF_RANGE] The argument(%d) is out of range.", duration);
329 return SetProperty("slideShowAnimationDuration", Variant(duration));
333 _GalleryPresenter::GetSlideShowViewDuration(void) const
335 Variant variant = GetProperty("slideShowViewDuration");
336 return variant.ToInt();
340 _GalleryPresenter::SetSlideShowViewDuration(int duration)
342 SysTryReturn(NID_UI_CTRL, duration >= MIN_VIEW_DURATION, E_OUT_OF_RANGE, E_OUT_OF_RANGE,
343 "[E_OUT_OF_RANGE] The argument(%d) is out of range.", duration);
345 return SetProperty("slideShowViewDuration", Variant(duration));
349 _GalleryPresenter::StartSlideShow(bool repeat)
351 SysTryReturn(NID_UI_CTRL, __pSlideShowTimer == null, E_INVALID_OPERATION, E_INVALID_OPERATION,
352 "[E_INVALID_OPERATION] Slide show is already started");
354 if (GetItemCount() == 0)
359 __slideShowRepeat = repeat;
360 __slideShowPlayCount = GetItemCount() - 1;
362 result r = StartSlideShowTimer(GetSlideShowViewDuration());
363 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
365 _GalleryCoreEventArg* pArg = new(std::nothrow) _GalleryCoreEventArg(GALLERY_CORE_EVENT_SLIDE_SHOW_STARTED);
366 __pGalleryCoreEvent->Fire(*pArg);
372 _GalleryPresenter::StopSlideShow(void)
374 SysTryReturn(NID_UI_CTRL, __pSlideShowTimer != null, E_INVALID_OPERATION, E_INVALID_OPERATION,
375 "[E_INVALID_OPERATION] Slide show is already stopped");
377 StopSlideShowTimer();
378 __galleryRenderer.StopAllCanvasAnimation();
380 result r = __pGalleryViewEventHandler->SetVisibleCanvas();
381 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
383 _GalleryCoreEventArg* pArg = new(std::nothrow) _GalleryCoreEventArg(GALLERY_CORE_EVENT_SLIDE_SHOW_STOPPED);
384 __pGalleryCoreEvent->Fire(*pArg);
386 r = __galleryRenderer.RefreshView();
387 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
393 _GalleryPresenter::GetTextOfEmptyGallery(void) const
395 Variant variant = GetProperty("textOfEmptyGallery");
396 return variant.ToString();
400 _GalleryPresenter::SetTextOfEmptyGallery(const String& text)
402 String oldText = GetTextOfEmptyGallery();
407 __userSetEmptyText = true;
408 result r = __galleryRenderer.SetEmptyText(text);
409 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
411 return SetProperty("textOfEmptyGallery", Variant(text));
415 _GalleryPresenter::SetBitmapOfEmptyGallery(const _GalleryBitmap* pBitmap)
417 result r = __galleryRenderer.SetEmptyImage(pBitmap);
418 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
420 __pEmptyGalleryImage = const_cast <_GalleryBitmap*>(pBitmap);
426 _GalleryPresenter::IsSlideShowStarted(void) const
428 return __pSlideShowTimer != null ? true : false;
432 _GalleryPresenter::SetZoomingEnabled(bool enable)
434 return SetProperty("zoomingEnabled", Variant(enable));
438 _GalleryPresenter::IsZoomingEnabled(void) const
440 Variant variant = GetProperty("zoomingEnabled");
442 return variant.ToBool();
446 _GalleryPresenter::PostEvent(_GalleryViewEvent& event)
448 bool slideShowStarted = false;
449 if (__pSlideShowTimer != null && event.GetEventType() != GALLERY_VIEW_EVENT_BOUNDS_CHANGED)
451 result r = StopSlideShow();
452 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
453 slideShowStarted = true;
456 if (GetItemCount() == 0)
458 if (event.GetEventType() == GALLERY_VIEW_EVENT_BOUNDS_CHANGED)
460 return OnBoundsChanged();
462 //SetLastResult(E_SUCCESS);
466 switch (event.GetEventType())
468 case GALLERY_VIEW_EVENT_TOUCH_PRESSED:
470 if (slideShowStarted == true)
472 result r = __pGalleryViewEventHandler->SetVisibleCanvas();
473 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
476 return __pGalleryViewEventHandler->OnTouchPressed(*(event.GetEventInfo()));
479 case GALLERY_VIEW_EVENT_TOUCH_RELEASED:
480 return __pGalleryViewEventHandler->OnTouchReleased(*(event.GetEventInfo()));
482 case GALLERY_VIEW_EVENT_TOUCH_DOUBLE_PRESSED:
483 __galleryRenderer.SetCanvasVisibility(PARTIAL_CANVAS, false);
484 return __pGalleryViewEventHandler->OnTouchDoublePressed(*(event.GetEventInfo()));
486 case GALLERY_VIEW_EVENT_TOUCH_MOVED:
487 __galleryRenderer.SetCanvasVisibility(PARTIAL_CANVAS, false);
488 return __pGalleryViewEventHandler->OnTouchMoved(*(event.GetEventInfo()));
490 case GALLERY_VIEW_EVENT_TOUCH_PINCH_ZOOM:
491 return __pGalleryViewEventHandler->OnTouchPinchZoom(*(event.GetEventInfo()));
493 case GALLERY_VIEW_EVENT_TOUCH_FLICK:
494 //__galleryRenderer.SetCanvasVisibility(PARTIAL_CANVAS, false);
495 return __pGalleryViewEventHandler->OnTouchFlicked(*(event.GetEventInfo()));
497 case GALLERY_VIEW_EVENT_BOUNDS_CHANGED:
498 return OnBoundsChanged();
500 case GALLERY_VIEW_EVENT_TOUCH_CANCELED:
501 return __pGalleryViewEventHandler->OnTouchCanceled();
504 SysTryReturn(NID_UI_CTRL, false, false, E_INVALID_ARG,
505 "[E_INVALID_ARG] The event type(%d) is invalid type", event.GetEventType());
508 //SetLastResult(E_SUCCESS);
513 _GalleryPresenter::OnBoundsChanged(void)
516 result r = E_SUCCESS;
518 if (__pSlideShowTimer != null && GetSlideShowType() == GALLERY_SLIDESHOW_PAGE)
520 int slideShowPlayCount = __slideShowPlayCount;
521 bool slideShowRepeat = __slideShowRepeat;
522 __galleryRenderer.StopAllCanvasAnimation();
523 __slideShowPlayCount = slideShowPlayCount;
524 __slideShowRepeat = slideShowRepeat;
525 r = StartSlideShowTimer(GetSlideShowViewDuration());
526 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
529 r = __galleryRenderer.InitializeCanvasBounds();
530 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
532 if (GetItemCount() > 0)
534 for (int canvasIndex = PARTIAL_CANVAS + 1; canvasIndex < MAX_CANVAS_COUNT; canvasIndex++)
536 itemIndex = __pItemToCanvas[canvasIndex];
537 if (itemIndex != NOT_EXIST_CANVAS)
539 r = __galleryRenderer.SetCanvasImage(canvasIndex, __pGalleryImageReader->GetItemImage(itemIndex)
540 , __verticalAlignment, __horizontalAlignment, __fittingType);
541 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
547 r = __galleryRenderer.EnableEmptyView();
548 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
549 SetLastResult(E_SUCCESS);
553 int currentItemIndex = GetCurrentItemIndex();
554 int currentCanvasIndex = SearchCanvasIndex(currentItemIndex);
555 int nextItemIndex = GetCurrentItemIndex() + 1;
556 if (nextItemIndex >= GetItemCount())
560 int nextCanvasIndex = SearchCanvasIndex(nextItemIndex);
562 r = __galleryRenderer.SetCanvasShowState(currentCanvasIndex, true);
563 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
565 if (__pSlideShowTimer != null && __slideShowStarted == true)
567 r = __galleryRenderer.SetCanvasShowState(nextCanvasIndex, true);
568 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
572 __galleryRenderer.GalleryBoundsChanged(currentCanvasIndex);
573 FloatRectangle canvasBounds = __galleryRenderer.GetCanvasBounds(currentCanvasIndex);
574 FloatRectangle imageBounds = __galleryRenderer.GetCanvasImageBounds(currentCanvasIndex);
575 __pGalleryViewEventHandler->CorrectCanvasPosition(canvasBounds, imageBounds);
576 r = __galleryRenderer.SetCanvasBounds(currentCanvasIndex, canvasBounds);
577 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
579 __pGalleryViewEventHandler->ResetTouch();
581 r = __pGalleryViewEventHandler->AlignCanvas(false);
582 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
585 SetLastResult(E_SUCCESS);
591 _GalleryPresenter::OnDraw(void)
593 result r = E_SUCCESS;
595 if (GetItemCount() > 0 && GetCurrentItemIndex() == NO_CURRENT_IMAGE)
597 r = SetCurrentItem(0);
598 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
601 r = __galleryRenderer.Draw();
602 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
604 SetLastResult(E_SUCCESS);
608 _GalleryPresenter::SetCoreEventListener(const _IGalleryCoreEventListener& coreEventListener)
610 return __pGalleryCoreEvent->AddListener(coreEventListener);
614 _GalleryPresenter::RemoveCoreEventListener(const _IGalleryCoreEventListener& coreEventListener)
616 return __pGalleryCoreEvent->RemoveListener(coreEventListener);
620 _GalleryPresenter::ClickedItem(void)
622 _GalleryCoreEventArg* pArg = new(std::nothrow) _GalleryCoreEventArg(GALLERY_CORE_EVENT_ITEM_CLICKED, __currentItemIndex);
623 return __pGalleryCoreEvent->Fire(*pArg);
627 _GalleryPresenter::ChangedItem(void)
629 if (__currentItemIndex == NO_CURRENT_IMAGE)
634 __pGalleryView->ResizeGalleryAccessibilityElement();
636 _GalleryCoreEventArg* pArg = new(std::nothrow) _GalleryCoreEventArg(GALLERY_CORE_EVENT_CURRENT_ITEM_CHANGED, __currentItemIndex);
637 return __pGalleryCoreEvent->Fire(*pArg);
641 _GalleryPresenter::RequestToLoadItem(int itemIndex)
643 result r = __pGalleryModel->RequestToLoadItem(itemIndex);
644 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
645 SortItemToCanvasIndex(itemIndex, true);
647 if (GetItemCount() == 1)
649 r = __galleryRenderer.DisableEmptyView();
650 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
652 r = SetCurrentItem(itemIndex);
653 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
656 r = __galleryRenderer.RefreshView();
657 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
663 _GalleryPresenter::RequestToUnloadItem(int itemIndex)
665 result r = E_SUCCESS;
667 int canvasIndex = SearchCanvasIndex(itemIndex);
668 if (canvasIndex != NOT_EXIST_CANVAS)
670 __galleryRenderer.SetCanvasVisibility(canvasIndex, false);
671 __pItemToCanvas[canvasIndex] = NOT_USED_CANVAS;
674 if (GetItemCount() == 1)
676 r = SetCurrentItemIndex(NO_CURRENT_IMAGE);
677 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
679 r = __galleryRenderer.EnableEmptyView();
680 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
684 if (itemIndex == __currentItemIndex)
686 __pGalleryImageReader->ResetLoadedPartialImageIndex();
687 r = __galleryRenderer.SetCanvasVisibility(PARTIAL_CANVAS, false);
688 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
690 __pGalleryViewEventHandler->SetZoomFlag(false);
692 int canvasIndex = NOT_EXIST_CANVAS;
693 if (itemIndex == GetItemCount() - 1)
695 r = SetCanvasImage(itemIndex - 1);
696 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
698 canvasIndex = SearchCanvasIndex(itemIndex - 1);
699 SysTryReturn(NID_UI_CTRL, canvasIndex != NOT_EXIST_CANVAS, E_SYSTEM, E_SYSTEM,
700 "[E_SYSTEM] Failed to search canvas");
701 __currentItemIndex--;
705 r = SetCanvasImage(itemIndex + 1);
706 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
708 canvasIndex = SearchCanvasIndex(itemIndex + 1);
709 SysTryReturn(NID_UI_CTRL, canvasIndex != NOT_EXIST_CANVAS, E_SYSTEM, E_SYSTEM,
710 "[E_SYSTEM] Failed to search canvas");
713 r = __galleryRenderer.SetCanvasVisibility(canvasIndex, true);
714 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
716 r = __galleryRenderer.SetCanvasBounds(canvasIndex, __galleryRenderer.GetViewRect());
717 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
719 if(ChangedItem() == false)
722 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
725 else if (itemIndex < __currentItemIndex)
727 __currentItemIndex--;
731 r = __pGalleryModel->RequestToUnloadItem(itemIndex);
732 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
734 SortItemToCanvasIndex(itemIndex, false);
736 r = __galleryRenderer.RefreshView();
737 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
743 _GalleryPresenter::RequestToUnloadAllItems(void)
745 result r = __pGalleryModel->RequestToUnloadAllItems();
746 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
748 for (int i = 0; i < MAX_CANVAS_COUNT; i++)
750 __pItemToCanvas[i] = NOT_USED_CANVAS;
753 r = SetCurrentItemIndex(NO_CURRENT_IMAGE);
754 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
756 r = __galleryRenderer.EnableEmptyView();
757 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
759 //r = __galleryRenderer.RefreshView();
760 //SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
766 _GalleryPresenter::RequestToUpdateItem(int itemIndex)
768 result r = __pGalleryModel->RequestToUpdateItem(itemIndex);
769 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
771 int canvasIndex = SearchCanvasIndex(itemIndex);
772 if (itemIndex == GetCurrentItemIndex())
774 _GalleryBitmap* pImage = __pGalleryImageReader->GetItemImage(itemIndex);
776 SysTryReturn(NID_UI_CTRL, pImage != null, r, r, "[%s] Propagating.", GetErrorMessage(r));
778 r = __galleryRenderer.SetCanvasImage(canvasIndex, (const _GalleryBitmap*)pImage
779 , __verticalAlignment, __horizontalAlignment, __fittingType);
780 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
782 __galleryRenderer.GalleryBoundsChanged(canvasIndex);
783 FloatRectangle canvasBounds = __galleryRenderer.GetCanvasBounds(canvasIndex);
784 FloatRectangle imageBounds = __galleryRenderer.GetCanvasImageBounds(canvasIndex);
785 __pGalleryViewEventHandler->CorrectCanvasPosition(canvasBounds, imageBounds);
786 r = __galleryRenderer.SetCanvasBounds(canvasIndex, canvasBounds);
787 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
789 r = __pGalleryViewEventHandler->AlignCanvas(false);
790 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
792 else if (canvasIndex != NOT_EXIST_CANVAS)
794 __pItemToCanvas[canvasIndex] = NOT_USED_CANVAS;
797 r = __galleryRenderer.RefreshView();
798 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
804 _GalleryPresenter::RequestToUpdateAllItems(void)
806 result r = __pGalleryModel->RequestToUpdateAllItems();
807 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
809 r = __galleryRenderer.ResetAllCanvas();
810 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
812 for (int i = 0; i < MAX_CANVAS_COUNT; i++)
814 __pItemToCanvas[i] = NOT_USED_CANVAS;
817 int itemCount = GetItemCount();
820 r = __galleryRenderer.DisableEmptyView();
821 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
823 if (GetCurrentItemIndex() != NO_CURRENT_IMAGE)
825 r = SetCanvasImage(GetCurrentItemIndex());
826 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
828 r = __galleryRenderer.SetCanvasVisibility(SearchCanvasIndex(GetCurrentItemIndex()), true);
829 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
833 r = SetCurrentItem(0);
834 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
836 r = __galleryRenderer.SetCanvasVisibility(SearchCanvasIndex(0), true);
837 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
842 r = __galleryRenderer.EnableEmptyView();
843 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
850 _GalleryPresenter::RequestToUpdateItemCount(void)
852 __pGalleryModel->UpdateItemCount();
858 _GalleryPresenter::OnTimerExpired(Runtime::Timer& timer)
860 result r = E_SUCCESS;
861 if (&timer == __pSlideShowTimer)
864 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
866 SetLastResult(E_SUCCESS);
870 _GalleryPresenter::OnTransitionCancel(void)
872 __slideShowStarted = false;
873 int endItemIndex = __currentItemIndex + 1;
874 if (GetItemCount() > 0)
876 endItemIndex = endItemIndex % GetItemCount();
883 result r = SetCurrentItemIndex(endItemIndex);
884 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
886 StopSlideShowTimer();
890 _GalleryPresenter::OnTransitionCompleted(void)
892 int endItemIndex = __currentItemIndex + 1;
893 if (GetItemCount() > 0)
895 endItemIndex = endItemIndex % GetItemCount();
902 result r = SetCurrentItemIndex(endItemIndex);
903 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
905 __slideShowStarted = false;
906 if (__slideShowPlayCount > 0 || __slideShowRepeat == true)
908 StartSlideShowTimer(GetSlideShowViewDuration());
913 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating", GetErrorMessage(r));
916 SetLastResult(E_SUCCESS);
920 _GalleryPresenter::OnCanvasAnimationCancel(void)
922 __slideShowStarted = false;
926 _GalleryPresenter::OnCanvasAnimationCompleted(void)
928 __slideShowStarted = false;
932 _GalleryPresenter::OnCanvasAnimationStarted(void)
934 __slideShowStarted = true;
938 _GalleryPresenter::SetCanvasImage(int itemIndex)
940 SysTryReturn(NID_UI_CTRL, itemIndex >= 0, E_INVALID_ARG, E_INVALID_ARG,
941 "[E_INVALID_ARG] The argument(%d) is negative value.", itemIndex);
942 SysTryReturn(NID_UI_CTRL, itemIndex >=0 && itemIndex < __pGalleryModel->GetItemCount(),
943 E_OUT_OF_RANGE, E_OUT_OF_RANGE, "[E_OUT_OF_RANGE] The argument(%d) is out of range.", itemIndex);
945 if (SearchCanvasIndex(itemIndex) != NOT_EXIST_CANVAS)
950 int emptyCanvasIndex = GetEmptyCanvasIndex();
951 if (emptyCanvasIndex == NOT_EXIST_CANVAS)
953 emptyCanvasIndex = ClearCanvasIndex(__currentItemIndex);
956 _GalleryBitmap* pImage = __pGalleryImageReader->GetItemImage(itemIndex);
957 result r = GetLastResult();
958 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
960 __pItemToCanvas[emptyCanvasIndex] = itemIndex;
961 r = __galleryRenderer.SetCanvasImage(emptyCanvasIndex, (const _GalleryBitmap*)pImage
962 , __verticalAlignment, __horizontalAlignment, __fittingType);
963 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
965 FloatRectangle bounds = __galleryRenderer.GetViewRect();
966 r = __galleryRenderer.SetCanvasBounds(emptyCanvasIndex, bounds);
967 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
969 r = __galleryRenderer.SetCanvasVisibility(emptyCanvasIndex, false);
970 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
976 _GalleryPresenter::SetPartialCanvasImage(void)
978 SysTryReturn(NID_UI_CTRL, __currentItemIndex >= 0, E_INVALID_ARG, E_INVALID_ARG,
979 "[E_INVALID_ARG] The argument(%d) is negative value.", __currentItemIndex);
981 _GalleryItem* pGalleryItem = __pGalleryModel->GetItem(__currentItemIndex);
982 if (pGalleryItem->GetGalleryItemFilePath() == L"")
987 int currentCanvasIndex = SearchCanvasIndex(__currentItemIndex);
989 FloatRectangle canvasBounds = __galleryRenderer.GetCanvasBounds(currentCanvasIndex);
990 FloatRectangle imageBounds = __galleryRenderer.GetCanvasImageBounds(currentCanvasIndex);
991 FloatRectangle viewBounds = __galleryRenderer.GetViewRect();
993 if (imageBounds.width < viewBounds.width)
995 imageBounds.x -= (viewBounds.width - imageBounds.width) / 2;
998 if (imageBounds.height < viewBounds.height)
1000 imageBounds.y -= (viewBounds.height - imageBounds.height) / 2;
1003 canvasBounds.x = _Abs(-canvasBounds.x - imageBounds.x);
1004 canvasBounds.y = _Abs(-canvasBounds.y - imageBounds.y);
1005 canvasBounds.width = viewBounds.width < imageBounds.width ? viewBounds.width : imageBounds.width;
1006 canvasBounds.height = viewBounds.height < imageBounds.height ? viewBounds.height : imageBounds.height;
1008 FloatDimension size(imageBounds.width, imageBounds.height);
1010 _GalleryBitmap* pImage = __pGalleryImageReader->GetPartialImageFromFileN(__currentItemIndex, canvasBounds, size);
1011 SysTryReturn(NID_UI_CTRL, pImage != null, GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
1013 __pItemToCanvas[PARTIAL_CANVAS] = __currentItemIndex;
1014 result r = __galleryRenderer.SetCanvasImage(PARTIAL_CANVAS, (const _GalleryBitmap*)pImage
1015 , GALLERY_VERTICAL_ALIGN_MIDDLE, GALLERY_HORIZONTAL_ALIGN_CENTER, __fittingType);
1016 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
1018 r = __galleryRenderer.SetCanvasBounds(PARTIAL_CANVAS, viewBounds);
1019 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
1021 r = __galleryRenderer.SetCanvasVisibility(PARTIAL_CANVAS, true);
1022 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
1034 _GalleryPresenter::SearchCanvasIndex(int itemIndex)
1036 if (itemIndex == NO_CURRENT_IMAGE)
1038 return NOT_EXIST_CANVAS;
1041 for (int i = 1; i < MAX_CANVAS_COUNT; i++)
1043 if (__pItemToCanvas[i] == itemIndex)
1049 return NOT_EXIST_CANVAS;
1053 _GalleryPresenter::GetEmptyCanvasIndex(void) const
1055 for (int i = 1; i < MAX_CANVAS_COUNT; i++)
1057 if (__pItemToCanvas[i] == NOT_USED_CANVAS)
1062 return NOT_EXIST_CANVAS;
1066 _GalleryPresenter::SetCanvasIndex(int canvasIndex, int itemIndex)
1068 SysTryReturn(NID_UI_CTRL, canvasIndex >= 0, E_INVALID_ARG, E_INVALID_ARG,
1069 "[E_INVALID_ARG] The argument(%d) is negative value.", canvasIndex);
1070 SysTryReturn(NID_UI_CTRL, canvasIndex > 0 && canvasIndex < MAX_CANVAS_COUNT, E_OUT_OF_RANGE, E_OUT_OF_RANGE,
1071 "[E_OUT_OF_RANGE] The canvas index(%d) is out of range", canvasIndex);
1072 SysTryReturn(NID_UI_CTRL, itemIndex >= 0, E_INVALID_ARG, E_INVALID_ARG,
1073 "[E_INVALID_ARG] The argument(%d) is negative value.", itemIndex);
1074 SysTryReturn(NID_UI_CTRL, itemIndex >=0 && itemIndex < __pGalleryModel->GetItemCount(), E_OUT_OF_RANGE, E_OUT_OF_RANGE,
1075 "[E_OUT_OF_RANGE] The argument(%d) is out of range.", itemIndex);
1077 if (__pItemToCanvas[canvasIndex] == NOT_USED_CANVAS)
1079 __pItemToCanvas[canvasIndex] = itemIndex;
1083 SysTryReturn(NID_UI_CTRL, false, E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The canvas index(%d) is used.", canvasIndex);
1090 _GalleryPresenter::ClearCanvasIndex(int currentItemIndex)
1092 SysTryReturn(NID_UI_CTRL, currentItemIndex >= 0, E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The argument(%d) is negative value.", currentItemIndex);
1094 int clearCanvasIndex = 1;
1095 int maxAbsValue = 0;
1098 for (int i = 1; i < MAX_CANVAS_COUNT; i++)
1100 absValue = _Abs(currentItemIndex - __pItemToCanvas[i]);
1101 if (absValue > maxAbsValue)
1103 maxAbsValue = absValue;
1104 clearCanvasIndex = i;
1107 __pItemToCanvas[clearCanvasIndex] = NOT_USED_CANVAS;
1109 SetLastResult(E_SUCCESS);
1110 return clearCanvasIndex;
1114 _GalleryPresenter::SortItemToCanvasIndex(int itemIndex, bool add)
1118 for (int i = 0; i < MAX_CANVAS_COUNT; i++)
1120 if (__pItemToCanvas[i] >= itemIndex)
1122 __pItemToCanvas[i]++;
1128 for (int i = 0; i < MAX_CANVAS_COUNT; i++)
1130 if (__pItemToCanvas[i] > itemIndex)
1132 __pItemToCanvas[i]--;
1139 _GalleryPresenter::StartSlideShowTimer(int duration)
1141 result r = E_SUCCESS;
1142 if (__pSlideShowTimer != null)
1144 __pSlideShowTimer->Cancel();
1145 delete __pSlideShowTimer;
1146 __pSlideShowTimer = null;
1149 __pSlideShowTimer = new(std::nothrow) Runtime::Timer();
1150 SysTryCatch(NID_UI_CTRL, __pSlideShowTimer != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
1152 r = __pSlideShowTimer->Construct(*this);
1153 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
1155 __pSlideShowTimer->Start(duration);
1156 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
1161 if (__pSlideShowTimer != null)
1163 __pSlideShowTimer->Cancel();
1164 delete __pSlideShowTimer;
1165 __pSlideShowTimer = null;
1168 return GetLastResult();
1172 _GalleryPresenter::StopSlideShowTimer(void)
1174 if (__pSlideShowTimer != null)
1176 __pSlideShowTimer->Cancel();
1177 delete __pSlideShowTimer;
1178 __pSlideShowTimer = null;
1181 __slideShowRepeat = false;
1182 __slideShowPlayCount = 0;
1186 _GalleryPresenter::PlaySlideShow(void)
1188 int startCanvasIndex = SearchCanvasIndex(__currentItemIndex);
1189 SysTryReturn(NID_UI_CTRL, startCanvasIndex != NOT_EXIST_CANVAS, E_SYSTEM, E_SYSTEM,
1190 "[E_SYSTEM] The current item not exist.");
1192 int endItemIndex = __currentItemIndex + 1;
1193 if (endItemIndex >= GetItemCount())
1198 result r = __galleryRenderer.SetCanvasVisibility(PARTIAL_CANVAS, false);
1199 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1201 r = __galleryRenderer.SetCanvasVisibility(startCanvasIndex, true);
1202 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1204 int endCanvasIndex = SearchCanvasIndex(endItemIndex);
1205 if (endCanvasIndex == NOT_EXIST_CANVAS)
1207 r = SetCanvasImage(endItemIndex);
1208 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1209 endCanvasIndex = SearchCanvasIndex(endItemIndex);
1212 _GalleryTransitionType transition = static_cast<_GalleryTransitionType>(GetSlideShowType());
1213 _GalleryAnimationTiming animation = {__slideShowAnimationDuration, GALLERY_ANIMATION_TIMING_FUNC_EASEOUT};
1214 r = __galleryRenderer.SetCanvasVisibility(endCanvasIndex, true);
1215 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1217 r = __galleryRenderer.RunCanvasTransition(startCanvasIndex, endCanvasIndex, transition, &animation);
1218 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1220 if (__slideShowRepeat == false)
1222 __slideShowPlayCount--;
1225 r = __galleryRenderer.RefreshView();
1226 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1233 _GalleryPresenter::GetPropertySlideShowViewDuration(void) const
1235 return Variant(__slideShowViewDuration);
1239 _GalleryPresenter::SetPropertySlideShowViewDuration(const Variant& variant)
1241 __slideShowViewDuration = variant.ToInt();
1247 _GalleryPresenter::GetPropertySlideShowAnimationDuration(void) const
1249 return Variant(__slideShowAnimationDuration);
1253 _GalleryPresenter::SetPropertySlideShowAnimationDuration(const Variant& variant)
1255 __slideShowAnimationDuration = variant.ToInt();
1261 _GalleryPresenter::GetPropertyTextOfEmptyGallery(void) const
1263 return Variant(__emptyText);
1267 _GalleryPresenter::SetPropertyTextOfEmptyGallery(const Variant& variant)
1269 __emptyText = variant.ToString();
1275 _GalleryPresenter::GetPropertyZoomingEnabled(void) const
1277 return Variant(__zoomingEnabled);
1281 _GalleryPresenter::SetPropertyZoomingEnabled(const Variant& variant)
1283 __zoomingEnabled = variant.ToBool();
1289 _GalleryPresenter::OnPropertyChanging(_PropertyBase& source, const String& name,
1290 const Variant& oldProperty, const Variant& newProperty)
1295 _GalleryPresenter::OnPropertyChanged(_PropertyBase& source, const String& name,
1296 const Variant& oldProperty, const Variant& newProperty)
1301 _GalleryPresenter::SetFontSize(int size)
1303 __emptyFontSize = size;
1307 _GalleryPresenter::GetFontSize(void) const
1309 return __emptyFontSize;
1313 _GalleryPresenter::SetFontStyle(FontStyle style)
1315 __emptyFontStyle = style;
1319 _GalleryPresenter::GetFontStyle(void) const
1321 return __emptyFontStyle;
1325 _GalleryPresenter::OnFontInfoRequested(unsigned long& style, int& size)
1327 style = GetFontStyle();
1328 size = GetFontSize();
1332 _GalleryPresenter::OnFontChanged(void)
1334 if (GetItemCount() == 0)
1336 result r = __galleryRenderer.EnableEmptyView();
1337 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1342 _GalleryPresenter::UpdateEmptyString(void)
1344 if (__userSetEmptyText == false)
1346 GET_STRING_CONFIG(IDS_TPLATFORM_BODY_NO_IMAGES, __emptyText);
1347 result r = __galleryRenderer.SetEmptyText(__emptyText);
1348 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1350 if (GetItemCount() == 0)
1352 r = __galleryRenderer.EnableEmptyView();
1353 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1356 r = __galleryRenderer.RefreshView();
1357 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1361 }}} // Tizen::Ui::Controls