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;
101 delete __pSlideShowTimer;
102 __pSlideShowTimer = null;
106 _GalleryPresenter::CreateGalleryPresenterN(_IGalleryRenderer& galleryRenderer,
107 _GalleryItemProviderAdaptorImpl* pGalleryItemProviderAdaptor, _Gallery* pGalleryView)
109 _GalleryPresenter* pPresenter = new (std::nothrow) _GalleryPresenter(galleryRenderer);
110 SysTryReturn(NID_UI_CTRL, pPresenter != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
112 result r = pPresenter->Construct(pGalleryItemProviderAdaptor, pGalleryView);
113 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
115 SetLastResult(E_SUCCESS);
125 _GalleryPresenter::Construct(_GalleryItemProviderAdaptorImpl* pGalleryItemProviderAdaptor, _Gallery* pGalleryView)
127 SetLastResult(E_SUCCESS);
129 result r = E_SUCCESS;
131 __pGalleryCoreEvent = new (std::nothrow) _GalleryCoreEvent();
132 SysTryCatch(NID_UI_CTRL, __pGalleryCoreEvent != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
134 __pGalleryItemProvider = new (std::nothrow) _GalleryItemProvider(*__pGalleryCoreEvent, pGalleryItemProviderAdaptor);
135 SysTryCatch(NID_UI_CTRL, __pGalleryItemProvider != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
137 __pGalleryModel = _GalleryModel::CreateGalleryModelN(*__pGalleryItemProvider);
138 SysTryCatch(NID_UI_CTRL, __pGalleryModel != null, , GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
140 __pGalleryImageReader = new (std::nothrow) _GalleryImageReader(*__pGalleryModel);
141 SysTryCatch(NID_UI_CTRL, __pGalleryImageReader != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
143 __pItemToCanvas = new(std::nothrow) int[MAX_CANVAS_COUNT];
144 SysTryCatch(NID_UI_CTRL, __pItemToCanvas != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
145 memset(__pItemToCanvas, -1, sizeof(int) * MAX_CANVAS_COUNT);
147 r = __galleryRenderer.SetCanvasMaxCount(MAX_CANVAS_COUNT);
148 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
150 r = __galleryRenderer.EnableEmptyView();
151 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
153 GET_STRING_CONFIG(IDS_COM_BODY_NO_IMAGES, __emptyText);
154 r = __galleryRenderer.SetEmptyText(__emptyText);
155 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
157 __pGalleryViewEventHandler = new (std::nothrow) _GalleryViewEventHandler(*this, __galleryRenderer, *__pGalleryImageReader);
158 SysTryCatch(NID_UI_CTRL, __pGalleryViewEventHandler != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
160 r = __pGalleryViewEventHandler->Construct();
161 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
163 SetFontStyle(FONT_STYLE_PLAIN);
166 __pGalleryView = pGalleryView;
171 delete __pGalleryViewEventHandler;
172 delete __pGalleryImageReader;
173 delete __pGalleryModel;
174 delete __pGalleryItemProvider;
175 delete __pGalleryCoreEvent;
176 delete[] __pItemToCanvas;
182 _GalleryPresenter::GetCurrentItemIndex(void) const
184 return __currentItemIndex;
188 _GalleryPresenter::SetCurrentItemIndex(int index, bool eventFire)
190 SysTryReturn(NID_UI_CTRL, index < __pGalleryModel->GetItemCount(), E_OUT_OF_RANGE, E_OUT_OF_RANGE,
191 "[E_OUT_OF_RANGE] The argument(%d) is out of range.", index);
193 if (__currentItemIndex != NO_CURRENT_IMAGE && __currentItemIndex != index)
195 __currentItemIndex = index;
196 if (eventFire == true)
203 __currentItemIndex = index;
206 __pGalleryViewEventHandler->SetZoomFlag(false);
212 _GalleryPresenter::SetCurrentItem(int index)
214 SysTryReturn(NID_UI_CTRL, index >=0 && index < __pGalleryModel->GetItemCount(), E_OUT_OF_RANGE, E_OUT_OF_RANGE,
215 "[E_OUT_OF_RANGE] The argument(%d) is out of range.", index);
217 int oldCurrentCanvasIndex = 0;
218 result r = E_SUCCESS;
220 if (index == __currentItemIndex)
225 if (__currentItemIndex != NO_CURRENT_IMAGE)
227 oldCurrentCanvasIndex = SearchCanvasIndex(__currentItemIndex);
228 SysTryReturn(NID_UI_CTRL, oldCurrentCanvasIndex != NOT_EXIST_CANVAS, E_SYSTEM, E_SYSTEM,
229 "[E_SYSTEM] The canvas of %d item is not exist.", oldCurrentCanvasIndex);
231 if (__currentItemIndex > index)
233 FloatRectangle rect = __galleryRenderer.GetViewRect();
235 r = __galleryRenderer.SetCanvasBounds(oldCurrentCanvasIndex, rect);
237 else if (__currentItemIndex < index)
239 FloatRectangle rect = __galleryRenderer.GetViewRect();
240 rect.x = -rect.width;
241 r = __galleryRenderer.SetCanvasBounds(oldCurrentCanvasIndex, rect);
244 r = __galleryRenderer.SetCanvasVisibility(oldCurrentCanvasIndex, false);
245 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
248 int newCurrentCanvasIndex = SearchCanvasIndex(index);
249 if (newCurrentCanvasIndex == NOT_EXIST_CANVAS)
251 r = SetCanvasImage(index);
252 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
253 newCurrentCanvasIndex = SearchCanvasIndex(index);
255 r = __galleryRenderer.SetCanvasBounds(newCurrentCanvasIndex, __galleryRenderer.GetViewRect());
256 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
258 r = __galleryRenderer.SetCanvasVisibility(newCurrentCanvasIndex, true);
259 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
261 r = SetCurrentItemIndex(index);
262 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
269 result resultValue = __galleryRenderer.SetCanvasVisibility(oldCurrentCanvasIndex, true);
270 if (resultValue != E_SUCCESS)
272 SysLog(NID_UI_CTRL, "[%s] Failed to setting of canvas visibility.", GetErrorMessage(resultValue));
279 _GalleryPresenter::GetItemCount(void) const
281 return __pGalleryModel->GetItemCount();
285 _GalleryPresenter::SetItemSpacing(int spacing)
287 __itemSpacing = spacing;
290 _GalleryPresenter::GetItemSpacing(void) const
292 return __itemSpacing;
295 _GallerySlideShowType
296 _GalleryPresenter::GetSlideShowType(void) const
298 return __gallerySlideShowType;
302 _GalleryPresenter::SetSlideShowType(_GallerySlideShowType slideShowType)
304 SysTryReturn(NID_UI_CTRL, slideShowType >= GALLERY_SLIDESHOW_DISSOLVE && slideShowType <= GALLERY_SLIDESHOW_PAGE,
305 E_OUT_OF_RANGE, E_OUT_OF_RANGE, "[E_OUT_OF_RANGE] The animation argument(%d) is out of range", slideShowType);
307 __gallerySlideShowType = slideShowType;
313 _GalleryPresenter::GetSlideShowAnimationDuration(void) const
315 Variant variant = GetProperty("slideShowAnimationDuration");
316 return variant.ToInt();
320 _GalleryPresenter::SetSlideShowAnimationDuration(int duration)
322 SysTryReturn(NID_UI_CTRL, duration >= MIN_ANIMATION_DURATION && duration <= MAX_ANIMATION_DURATION,
323 E_OUT_OF_RANGE, E_OUT_OF_RANGE, "[E_OUT_OF_RANGE] The argument(%d) is out of range.", duration);
325 return SetProperty("slideShowAnimationDuration", Variant(duration));
329 _GalleryPresenter::GetSlideShowViewDuration(void) const
331 Variant variant = GetProperty("slideShowViewDuration");
332 return variant.ToInt();
336 _GalleryPresenter::SetSlideShowViewDuration(int duration)
338 SysTryReturn(NID_UI_CTRL, duration >= MIN_VIEW_DURATION, E_OUT_OF_RANGE, E_OUT_OF_RANGE,
339 "[E_OUT_OF_RANGE] The argument(%d) is out of range.", duration);
341 return SetProperty("slideShowViewDuration", Variant(duration));
345 _GalleryPresenter::StartSlideShow(bool repeat)
347 SysTryReturn(NID_UI_CTRL, __pSlideShowTimer == null, E_INVALID_OPERATION, E_INVALID_OPERATION,
348 "[E_INVALID_OPERATION] Slide show is already started");
350 if (GetItemCount() == 0)
355 __slideShowRepeat = repeat;
356 __slideShowPlayCount = GetItemCount() - 1;
358 result r = StartSlideShowTimer(GetSlideShowViewDuration());
359 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
361 _GalleryCoreEventArg* pArg = new(std::nothrow) _GalleryCoreEventArg(GALLERY_CORE_EVENT_SLIDE_SHOW_STARTED);
362 __pGalleryCoreEvent->Fire(*pArg);
368 _GalleryPresenter::StopSlideShow(void)
370 SysTryReturn(NID_UI_CTRL, __pSlideShowTimer != null, E_INVALID_OPERATION, E_INVALID_OPERATION,
371 "[E_INVALID_OPERATION] Slide show is already stopped");
373 StopSlideShowTimer();
374 __galleryRenderer.StopAllCanvasAnimation();
376 result r = __pGalleryViewEventHandler->SetVisibleCanvas();
377 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
379 _GalleryCoreEventArg* pArg = new(std::nothrow) _GalleryCoreEventArg(GALLERY_CORE_EVENT_SLIDE_SHOW_STOPPED);
380 __pGalleryCoreEvent->Fire(*pArg);
382 r = __galleryRenderer.RefreshView();
383 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
389 _GalleryPresenter::GetTextOfEmptyGallery(void) const
391 Variant variant = GetProperty("textOfEmptyGallery");
392 return variant.ToString();
396 _GalleryPresenter::SetTextOfEmptyGallery(const String& text)
398 __userSetEmptyText = true;
399 result r = __galleryRenderer.SetEmptyText(text);
400 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
402 return SetProperty("textOfEmptyGallery", Variant(text));
406 _GalleryPresenter::SetBitmapOfEmptyGallery(const _GalleryBitmap* pBitmap)
408 result r = __galleryRenderer.SetEmptyImage(pBitmap);
409 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
411 __pEmptyGalleryImage = const_cast <_GalleryBitmap*>(pBitmap);
417 _GalleryPresenter::IsSlideShowStarted(void) const
419 return __pSlideShowTimer != null ? true : false;
423 _GalleryPresenter::SetZoomingEnabled(bool enable)
425 return SetProperty("zoomingEnabled", Variant(enable));
429 _GalleryPresenter::IsZoomingEnabled(void) const
431 Variant variant = GetProperty("zoomingEnabled");
433 return variant.ToBool();
437 _GalleryPresenter::PostEvent(_GalleryViewEvent& event)
439 bool slideShowStarted = false;
440 if (__pSlideShowTimer != null && event.GetEventType() != GALLERY_VIEW_EVENT_BOUNDS_CHANGED)
442 result r = StopSlideShow();
443 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
444 slideShowStarted = true;
447 if (GetItemCount() == 0)
449 if (event.GetEventType() == GALLERY_VIEW_EVENT_BOUNDS_CHANGED)
451 return OnBoundsChanged();
453 //SetLastResult(E_SUCCESS);
457 switch (event.GetEventType())
459 case GALLERY_VIEW_EVENT_TOUCH_PRESSED:
461 if (slideShowStarted == true)
463 result r = __pGalleryViewEventHandler->SetVisibleCanvas();
464 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, false, r, "[%s] Propagating.", GetErrorMessage(r));
467 return __pGalleryViewEventHandler->OnTouchPressed(*(event.GetEventInfo()));
470 case GALLERY_VIEW_EVENT_TOUCH_RELEASED:
471 return __pGalleryViewEventHandler->OnTouchReleased(*(event.GetEventInfo()));
473 case GALLERY_VIEW_EVENT_TOUCH_DOUBLE_PRESSED:
474 __galleryRenderer.SetCanvasVisibility(PARTIAL_CANVAS, false);
475 return __pGalleryViewEventHandler->OnTouchDoublePressed(*(event.GetEventInfo()));
477 case GALLERY_VIEW_EVENT_TOUCH_MOVED:
478 __galleryRenderer.SetCanvasVisibility(PARTIAL_CANVAS, false);
479 return __pGalleryViewEventHandler->OnTouchMoved(*(event.GetEventInfo()));
481 case GALLERY_VIEW_EVENT_TOUCH_PINCH_ZOOM:
482 return __pGalleryViewEventHandler->OnTouchPinchZoom(*(event.GetEventInfo()));
484 case GALLERY_VIEW_EVENT_TOUCH_FLICK:
485 //__galleryRenderer.SetCanvasVisibility(PARTIAL_CANVAS, false);
486 return __pGalleryViewEventHandler->OnTouchFlicked(*(event.GetEventInfo()));
488 case GALLERY_VIEW_EVENT_BOUNDS_CHANGED:
489 return OnBoundsChanged();
492 SysTryReturn(NID_UI_CTRL, false, false, E_INVALID_ARG,
493 "[E_INVALID_ARG] The event type(%d) is invalid type", event.GetEventType());
496 //SetLastResult(E_SUCCESS);
501 _GalleryPresenter::OnBoundsChanged(void)
504 result r = E_SUCCESS;
506 if (__pSlideShowTimer != null && GetSlideShowType() == GALLERY_SLIDESHOW_PAGE)
508 int slideShowPlayCount = __slideShowPlayCount;
509 bool slideShowRepeat = __slideShowRepeat;
510 __galleryRenderer.StopAllCanvasAnimation();
511 __slideShowPlayCount = slideShowPlayCount;
512 __slideShowRepeat = slideShowRepeat;
513 r = StartSlideShowTimer(GetSlideShowViewDuration());
514 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
517 r = __galleryRenderer.InitializeCanvasBounds();
518 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
520 if (GetItemCount() > 0)
522 for (int canvasIndex = PARTIAL_CANVAS + 1; canvasIndex < MAX_CANVAS_COUNT; canvasIndex++)
524 itemIndex = __pItemToCanvas[canvasIndex];
525 if (itemIndex != NOT_EXIST_CANVAS)
527 r = __galleryRenderer.SetCanvasImage(canvasIndex, __pGalleryImageReader->GetItemImage(itemIndex)
528 , __verticalAlignment, __horizontalAlignment, __fittingType);
529 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
535 r = __galleryRenderer.EnableEmptyView();
536 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
537 SetLastResult(E_SUCCESS);
541 int currentItemIndex = GetCurrentItemIndex();
542 int currentCanvasIndex = SearchCanvasIndex(currentItemIndex);
543 int nextItemIndex = GetCurrentItemIndex() + 1;
544 if (nextItemIndex >= GetItemCount())
548 int nextCanvasIndex = SearchCanvasIndex(nextItemIndex);
550 r = __galleryRenderer.SetCanvasShowState(currentCanvasIndex, true);
551 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
553 if (__pSlideShowTimer != null && __slideShowStarted == true)
555 r = __galleryRenderer.SetCanvasShowState(nextCanvasIndex, true);
556 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
560 __galleryRenderer.GalleryBoundsChanged(currentCanvasIndex);
561 FloatRectangle canvasBounds = __galleryRenderer.GetCanvasBounds(currentCanvasIndex);
562 FloatRectangle imageBounds = __galleryRenderer.GetCanvasImageBounds(currentCanvasIndex);
563 __pGalleryViewEventHandler->CorrectCanvasPosition(canvasBounds, imageBounds);
564 r = __galleryRenderer.SetCanvasBounds(currentCanvasIndex, canvasBounds);
565 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
567 __pGalleryViewEventHandler->ResetTouch();
569 r = __pGalleryViewEventHandler->AlignCanvas(false);
570 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
573 SetLastResult(E_SUCCESS);
579 _GalleryPresenter::OnDraw(void)
581 result r = E_SUCCESS;
583 if (GetItemCount() > 0 && GetCurrentItemIndex() == NO_CURRENT_IMAGE)
585 r = SetCurrentItem(0);
586 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
589 r = __galleryRenderer.Draw();
590 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
592 SetLastResult(E_SUCCESS);
596 _GalleryPresenter::SetCoreEventListener(const _IGalleryCoreEventListener& coreEventListener)
598 return __pGalleryCoreEvent->AddListener(coreEventListener);
602 _GalleryPresenter::RemoveCoreEventListener(const _IGalleryCoreEventListener& coreEventListener)
604 return __pGalleryCoreEvent->RemoveListener(coreEventListener);
608 _GalleryPresenter::ClickedItem(void)
610 _GalleryCoreEventArg* pArg = new(std::nothrow) _GalleryCoreEventArg(GALLERY_CORE_EVENT_ITEM_CLICKED, __currentItemIndex);
611 return __pGalleryCoreEvent->Fire(*pArg);
615 _GalleryPresenter::ChangedItem(void)
617 if (__currentItemIndex == NO_CURRENT_IMAGE)
622 __pGalleryView->ResizeGalleryAccessibilityElement();
624 _GalleryCoreEventArg* pArg = new(std::nothrow) _GalleryCoreEventArg(GALLERY_CORE_EVENT_CURRENT_ITEM_CHANGED, __currentItemIndex);
625 return __pGalleryCoreEvent->Fire(*pArg);
629 _GalleryPresenter::RequestToLoadItem(int itemIndex)
631 result r = __pGalleryModel->RequestToLoadItem(itemIndex);
632 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
633 SortItemToCanvasIndex(itemIndex, true);
635 if (GetItemCount() == 1)
637 r = __galleryRenderer.DisableEmptyView();
638 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
640 r = SetCurrentItem(itemIndex);
641 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
644 r = __galleryRenderer.RefreshView();
645 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
651 _GalleryPresenter::RequestToUnloadItem(int itemIndex)
653 result r = E_SUCCESS;
655 int canvasIndex = SearchCanvasIndex(itemIndex);
656 if (canvasIndex != NOT_EXIST_CANVAS)
658 __galleryRenderer.SetCanvasVisibility(canvasIndex, false);
659 __pItemToCanvas[canvasIndex] = NOT_USED_CANVAS;
662 if (GetItemCount() == 1)
664 r = SetCurrentItemIndex(NO_CURRENT_IMAGE);
665 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
667 r = __galleryRenderer.EnableEmptyView();
668 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
672 if (itemIndex == __currentItemIndex)
674 __pGalleryImageReader->ResetLoadedPartialImageIndex();
675 r = __galleryRenderer.SetCanvasVisibility(PARTIAL_CANVAS, false);
676 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
678 __pGalleryViewEventHandler->SetZoomFlag(false);
680 int canvasIndex = NOT_EXIST_CANVAS;
681 if (itemIndex == GetItemCount() - 1)
683 r = SetCanvasImage(itemIndex - 1);
684 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
686 canvasIndex = SearchCanvasIndex(itemIndex - 1);
687 SysTryReturn(NID_UI_CTRL, canvasIndex != NOT_EXIST_CANVAS, E_SYSTEM, E_SYSTEM,
688 "[E_SYSTEM] Failed to search canvas");
689 __currentItemIndex--;
693 r = SetCanvasImage(itemIndex + 1);
694 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
696 canvasIndex = SearchCanvasIndex(itemIndex + 1);
697 SysTryReturn(NID_UI_CTRL, canvasIndex != NOT_EXIST_CANVAS, E_SYSTEM, E_SYSTEM,
698 "[E_SYSTEM] Failed to search canvas");
701 r = __galleryRenderer.SetCanvasVisibility(canvasIndex, true);
702 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
704 r = __galleryRenderer.SetCanvasBounds(canvasIndex, __galleryRenderer.GetViewRect());
705 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
707 if(ChangedItem() == false)
710 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
713 else if (itemIndex < __currentItemIndex)
715 __currentItemIndex--;
719 r = __pGalleryModel->RequestToUnloadItem(itemIndex);
720 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
722 SortItemToCanvasIndex(itemIndex, false);
724 r = __galleryRenderer.RefreshView();
725 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
731 _GalleryPresenter::RequestToUnloadAllItems(void)
733 result r = __pGalleryModel->RequestToUnloadAllItems();
734 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
736 for (int i = 0; i < MAX_CANVAS_COUNT; i++)
738 __pItemToCanvas[i] = NOT_USED_CANVAS;
741 r = SetCurrentItemIndex(NO_CURRENT_IMAGE);
742 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
744 r = __galleryRenderer.EnableEmptyView();
745 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
747 //r = __galleryRenderer.RefreshView();
748 //SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
754 _GalleryPresenter::RequestToUpdateItem(int itemIndex)
756 result r = __pGalleryModel->RequestToUpdateItem(itemIndex);
757 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
759 int canvasIndex = SearchCanvasIndex(itemIndex);
760 if (itemIndex == GetCurrentItemIndex())
762 _GalleryBitmap* pImage = __pGalleryImageReader->GetItemImage(itemIndex);
764 SysTryReturn(NID_UI_CTRL, pImage != null, r, r, "[%s] Propagating.", GetErrorMessage(r));
766 r = __galleryRenderer.SetCanvasImage(canvasIndex, (const _GalleryBitmap*)pImage
767 , __verticalAlignment, __horizontalAlignment, __fittingType);
768 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
770 __galleryRenderer.GalleryBoundsChanged(canvasIndex);
771 FloatRectangle canvasBounds = __galleryRenderer.GetCanvasBounds(canvasIndex);
772 FloatRectangle imageBounds = __galleryRenderer.GetCanvasImageBounds(canvasIndex);
773 __pGalleryViewEventHandler->CorrectCanvasPosition(canvasBounds, imageBounds);
774 r = __galleryRenderer.SetCanvasBounds(canvasIndex, canvasBounds);
775 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
777 r = __pGalleryViewEventHandler->AlignCanvas(false);
778 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, true, r, "[%s] Propagating.", GetErrorMessage(r));
780 else if (canvasIndex != NOT_EXIST_CANVAS)
782 __pItemToCanvas[canvasIndex] = NOT_USED_CANVAS;
785 r = __galleryRenderer.RefreshView();
786 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
792 _GalleryPresenter::RequestToUpdateAllItems(void)
794 result r = __pGalleryModel->RequestToUpdateAllItems();
795 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
797 r = __galleryRenderer.ResetAllCanvas();
798 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
800 for (int i = 0; i < MAX_CANVAS_COUNT; i++)
802 __pItemToCanvas[i] = NOT_USED_CANVAS;
805 int itemCount = GetItemCount();
808 r = __galleryRenderer.DisableEmptyView();
809 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
811 if (GetCurrentItemIndex() != NO_CURRENT_IMAGE)
813 r = SetCanvasImage(GetCurrentItemIndex());
814 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
816 r = __galleryRenderer.SetCanvasVisibility(SearchCanvasIndex(GetCurrentItemIndex()), true);
817 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
821 r = SetCurrentItem(0);
822 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
824 r = __galleryRenderer.SetCanvasVisibility(SearchCanvasIndex(0), true);
825 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
830 r = __galleryRenderer.EnableEmptyView();
831 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
838 _GalleryPresenter::RequestToUpdateItemCount(void)
840 __pGalleryModel->UpdateItemCount();
846 _GalleryPresenter::OnTimerExpired(Runtime::Timer& timer)
848 result r = E_SUCCESS;
849 if (&timer == __pSlideShowTimer)
852 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
854 SetLastResult(E_SUCCESS);
858 _GalleryPresenter::OnTransitionCancel(void)
860 __slideShowStarted = false;
861 int endItemIndex = __currentItemIndex + 1;
862 if (GetItemCount() > 0)
864 endItemIndex = endItemIndex % GetItemCount();
871 result r = SetCurrentItemIndex(endItemIndex);
872 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
874 StopSlideShowTimer();
878 _GalleryPresenter::OnTransitionCompleted(void)
880 int endItemIndex = __currentItemIndex + 1;
881 if (GetItemCount() > 0)
883 endItemIndex = endItemIndex % GetItemCount();
890 result r = SetCurrentItemIndex(endItemIndex);
891 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
893 __slideShowStarted = false;
894 if (__slideShowPlayCount > 0 || __slideShowRepeat == true)
896 StartSlideShowTimer(GetSlideShowViewDuration());
901 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating", GetErrorMessage(r));
904 SetLastResult(E_SUCCESS);
908 _GalleryPresenter::OnCanvasAnimationCancel(void)
910 __slideShowStarted = false;
914 _GalleryPresenter::OnCanvasAnimationCompleted(void)
916 __slideShowStarted = false;
920 _GalleryPresenter::OnCanvasAnimationStarted(void)
922 __slideShowStarted = true;
926 _GalleryPresenter::SetCanvasImage(int itemIndex)
928 SysTryReturn(NID_UI_CTRL, itemIndex >= 0, E_INVALID_ARG, E_INVALID_ARG,
929 "[E_INVALID_ARG] The argument(%d) is negative value.", itemIndex);
930 SysTryReturn(NID_UI_CTRL, itemIndex >=0 && itemIndex < __pGalleryModel->GetItemCount(),
931 E_OUT_OF_RANGE, E_OUT_OF_RANGE, "[E_OUT_OF_RANGE] The argument(%d) is out of range.", itemIndex);
933 if (SearchCanvasIndex(itemIndex) != NOT_EXIST_CANVAS)
938 int emptyCanvasIndex = GetEmptyCanvasIndex();
939 if (emptyCanvasIndex == NOT_EXIST_CANVAS)
941 emptyCanvasIndex = ClearCanvasIndex(__currentItemIndex);
944 _GalleryBitmap* pImage = __pGalleryImageReader->GetItemImage(itemIndex);
945 result r = GetLastResult();
946 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
948 __pItemToCanvas[emptyCanvasIndex] = itemIndex;
949 r = __galleryRenderer.SetCanvasImage(emptyCanvasIndex, (const _GalleryBitmap*)pImage
950 , __verticalAlignment, __horizontalAlignment, __fittingType);
951 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
953 FloatRectangle bounds = __galleryRenderer.GetViewRect();
954 r = __galleryRenderer.SetCanvasBounds(emptyCanvasIndex, bounds);
955 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
957 r = __galleryRenderer.SetCanvasVisibility(emptyCanvasIndex, false);
958 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
964 _GalleryPresenter::SetPartialCanvasImage(void)
966 SysTryReturn(NID_UI_CTRL, __currentItemIndex >= 0, E_INVALID_ARG, E_INVALID_ARG,
967 "[E_INVALID_ARG] The argument(%d) is negative value.", __currentItemIndex);
969 _GalleryItem* pGalleryItem = __pGalleryModel->GetItem(__currentItemIndex);
970 if (pGalleryItem->GetGalleryItemFilePath() == L"")
975 int currentCanvasIndex = SearchCanvasIndex(__currentItemIndex);
977 FloatRectangle canvasBounds = __galleryRenderer.GetCanvasBounds(currentCanvasIndex);
978 FloatRectangle imageBounds = __galleryRenderer.GetCanvasImageBounds(currentCanvasIndex);
979 FloatRectangle viewBounds = __galleryRenderer.GetViewRect();
981 if (imageBounds.width < viewBounds.width)
983 imageBounds.x -= (viewBounds.width - imageBounds.width) / 2;
986 if (imageBounds.height < viewBounds.height)
988 imageBounds.y -= (viewBounds.height - imageBounds.height) / 2;
991 canvasBounds.x = _Abs(-canvasBounds.x - imageBounds.x);
992 canvasBounds.y = _Abs(-canvasBounds.y - imageBounds.y);
993 canvasBounds.width = viewBounds.width < imageBounds.width ? viewBounds.width : imageBounds.width;
994 canvasBounds.height = viewBounds.height < imageBounds.height ? viewBounds.height : imageBounds.height;
996 FloatDimension size(imageBounds.width, imageBounds.height);
998 _GalleryBitmap* pImage = __pGalleryImageReader->GetPartialImageFromFileN(__currentItemIndex, canvasBounds, size);
999 SysTryReturn(NID_UI_CTRL, pImage != null, GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
1001 __pItemToCanvas[PARTIAL_CANVAS] = __currentItemIndex;
1002 result r = __galleryRenderer.SetCanvasImage(PARTIAL_CANVAS, (const _GalleryBitmap*)pImage
1003 , GALLERY_VERTICAL_ALIGN_MIDDLE, GALLERY_HORIZONTAL_ALIGN_CENTER, __fittingType);
1004 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
1006 r = __galleryRenderer.SetCanvasBounds(PARTIAL_CANVAS, viewBounds);
1007 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
1009 r = __galleryRenderer.SetCanvasVisibility(PARTIAL_CANVAS, true);
1010 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
1022 _GalleryPresenter::SearchCanvasIndex(int itemIndex)
1024 if (itemIndex == NO_CURRENT_IMAGE)
1026 return NOT_EXIST_CANVAS;
1029 for (int i = 1; i < MAX_CANVAS_COUNT; i++)
1031 if (__pItemToCanvas[i] == itemIndex)
1037 return NOT_EXIST_CANVAS;
1041 _GalleryPresenter::GetEmptyCanvasIndex(void) const
1043 for (int i = 1; i < MAX_CANVAS_COUNT; i++)
1045 if (__pItemToCanvas[i] == NOT_USED_CANVAS)
1050 return NOT_EXIST_CANVAS;
1054 _GalleryPresenter::SetCanvasIndex(int canvasIndex, int itemIndex)
1056 SysTryReturn(NID_UI_CTRL, canvasIndex >= 0, E_INVALID_ARG, E_INVALID_ARG,
1057 "[E_INVALID_ARG] The argument(%d) is negative value.", canvasIndex);
1058 SysTryReturn(NID_UI_CTRL, canvasIndex > 0 && canvasIndex < MAX_CANVAS_COUNT, E_OUT_OF_RANGE, E_OUT_OF_RANGE,
1059 "[E_OUT_OF_RANGE] The canvas index(%d) is out of range", canvasIndex);
1060 SysTryReturn(NID_UI_CTRL, itemIndex >= 0, E_INVALID_ARG, E_INVALID_ARG,
1061 "[E_INVALID_ARG] The argument(%d) is negative value.", itemIndex);
1062 SysTryReturn(NID_UI_CTRL, itemIndex >=0 && itemIndex < __pGalleryModel->GetItemCount(), E_OUT_OF_RANGE, E_OUT_OF_RANGE,
1063 "[E_OUT_OF_RANGE] The argument(%d) is out of range.", itemIndex);
1065 if (__pItemToCanvas[canvasIndex] == NOT_USED_CANVAS)
1067 __pItemToCanvas[canvasIndex] = itemIndex;
1071 SysTryReturn(NID_UI_CTRL, false, E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The canvas index(%d) is used.", canvasIndex);
1078 _GalleryPresenter::ClearCanvasIndex(int currentItemIndex)
1080 SysTryReturn(NID_UI_CTRL, currentItemIndex >= 0, E_INVALID_ARG, E_INVALID_ARG, "[E_INVALID_ARG] The argument(%d) is negative value.", currentItemIndex);
1082 int clearCanvasIndex = 1;
1083 int maxAbsValue = 0;
1086 for (int i = 1; i < MAX_CANVAS_COUNT; i++)
1088 absValue = _Abs(currentItemIndex - __pItemToCanvas[i]);
1089 if (absValue > maxAbsValue)
1091 maxAbsValue = absValue;
1092 clearCanvasIndex = i;
1095 __pItemToCanvas[clearCanvasIndex] = NOT_USED_CANVAS;
1097 SetLastResult(E_SUCCESS);
1098 return clearCanvasIndex;
1102 _GalleryPresenter::SortItemToCanvasIndex(int itemIndex, bool add)
1106 for (int i = 0; i < MAX_CANVAS_COUNT; i++)
1108 if (__pItemToCanvas[i] >= itemIndex)
1110 __pItemToCanvas[i]++;
1116 for (int i = 0; i < MAX_CANVAS_COUNT; i++)
1118 if (__pItemToCanvas[i] > itemIndex)
1120 __pItemToCanvas[i]--;
1127 _GalleryPresenter::StartSlideShowTimer(int duration)
1129 result r = E_SUCCESS;
1130 if (__pSlideShowTimer != null)
1132 delete __pSlideShowTimer;
1133 __pSlideShowTimer = null;
1136 __pSlideShowTimer = new(std::nothrow) Runtime::Timer();
1137 SysTryCatch(NID_UI_CTRL, __pSlideShowTimer != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed.");
1139 r = __pSlideShowTimer->Construct(*this);
1140 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
1142 __pSlideShowTimer->Start(duration);
1143 SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
1148 delete __pSlideShowTimer;
1149 __pSlideShowTimer = null;
1151 return GetLastResult();
1155 _GalleryPresenter::StopSlideShowTimer(void)
1157 delete __pSlideShowTimer;
1158 __pSlideShowTimer = null;
1160 __slideShowRepeat = false;
1161 __slideShowPlayCount = 0;
1165 _GalleryPresenter::PlaySlideShow(void)
1167 int startCanvasIndex = SearchCanvasIndex(__currentItemIndex);
1168 SysTryReturn(NID_UI_CTRL, startCanvasIndex != NOT_EXIST_CANVAS, E_SYSTEM, E_SYSTEM,
1169 "[E_SYSTEM] The current item not exist.");
1171 int endItemIndex = __currentItemIndex + 1;
1172 if (endItemIndex >= GetItemCount())
1177 result r = __galleryRenderer.SetCanvasVisibility(PARTIAL_CANVAS, false);
1178 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1180 r = __galleryRenderer.SetCanvasVisibility(startCanvasIndex, true);
1181 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1183 int endCanvasIndex = SearchCanvasIndex(endItemIndex);
1184 if (endCanvasIndex == NOT_EXIST_CANVAS)
1186 r = SetCanvasImage(endItemIndex);
1187 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1188 endCanvasIndex = SearchCanvasIndex(endItemIndex);
1191 _GalleryTransitionType transition = static_cast<_GalleryTransitionType>(GetSlideShowType());
1192 _GalleryAnimationTiming animation = {__slideShowAnimationDuration, GALLERY_ANIMATION_TIMING_FUNC_EASEOUT};
1193 r = __galleryRenderer.SetCanvasVisibility(endCanvasIndex, true);
1194 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1196 r = __galleryRenderer.RunCanvasTransition(startCanvasIndex, endCanvasIndex, transition, &animation);
1197 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1199 if (__slideShowRepeat == false)
1201 __slideShowPlayCount--;
1204 r = __galleryRenderer.RefreshView();
1205 SysTryReturn(NID_UI_CTRL, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
1212 _GalleryPresenter::GetPropertySlideShowViewDuration(void) const
1214 return Variant(__slideShowViewDuration);
1218 _GalleryPresenter::SetPropertySlideShowViewDuration(const Variant& variant)
1220 __slideShowViewDuration = variant.ToInt();
1226 _GalleryPresenter::GetPropertySlideShowAnimationDuration(void) const
1228 return Variant(__slideShowAnimationDuration);
1232 _GalleryPresenter::SetPropertySlideShowAnimationDuration(const Variant& variant)
1234 __slideShowAnimationDuration = variant.ToInt();
1240 _GalleryPresenter::GetPropertyTextOfEmptyGallery(void) const
1242 return Variant(__emptyText);
1246 _GalleryPresenter::SetPropertyTextOfEmptyGallery(const Variant& variant)
1248 __emptyText = variant.ToString();
1254 _GalleryPresenter::GetPropertyZoomingEnabled(void) const
1256 return Variant(__zoomingEnabled);
1260 _GalleryPresenter::SetPropertyZoomingEnabled(const Variant& variant)
1262 __zoomingEnabled = variant.ToBool();
1268 _GalleryPresenter::OnPropertyChanging(_PropertyBase& source, const String& name,
1269 const Variant& oldProperty, const Variant& newProperty)
1274 _GalleryPresenter::OnPropertyChanged(_PropertyBase& source, const String& name,
1275 const Variant& oldProperty, const Variant& newProperty)
1280 _GalleryPresenter::SetFontSize(int size)
1282 __emptyFontSize = size;
1286 _GalleryPresenter::GetFontSize(void) const
1288 return __emptyFontSize;
1292 _GalleryPresenter::SetFontStyle(FontStyle style)
1294 __emptyFontStyle = style;
1298 _GalleryPresenter::GetFontStyle(void) const
1300 return __emptyFontStyle;
1304 _GalleryPresenter::OnFontInfoRequested(unsigned long& style, int& size)
1306 style = GetFontStyle();
1307 size = GetFontSize();
1311 _GalleryPresenter::OnFontChanged(void)
1313 if (GetItemCount() == 0)
1315 result r = __galleryRenderer.EnableEmptyView();
1316 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1321 _GalleryPresenter::UpdateEmptyString(void)
1323 if (__userSetEmptyText == false)
1325 GET_STRING_CONFIG(IDS_COM_BODY_NO_IMAGES, __emptyText);
1326 result r = __galleryRenderer.SetEmptyText(__emptyText);
1327 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1329 if (GetItemCount() == 0)
1331 r = __galleryRenderer.EnableEmptyView();
1332 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1335 r = __galleryRenderer.RefreshView();
1336 SysTryReturnVoidResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
1340 }}} // Tizen::Ui::Controls