TizenRefApp-8667 [Gallery] Replace forward declaration on header include 79/133479/1
authorIgor Nazarov <i.nazarov@samsung.com>
Mon, 12 Jun 2017 10:35:12 +0000 (13:35 +0300)
committerIgor Nazarov <i.nazarov@samsung.com>
Mon, 12 Jun 2017 10:43:10 +0000 (13:43 +0300)
Change-Id: I8e6781dae1e7f350609e9f64468cdc1c35ea2c33

41 files changed:
inc/model/Gallery.h
inc/model/IJob.h
inc/model/IMediaAlbum.h
inc/model/MediaItem.h
inc/model/types.h
inc/presenters/AlertDialog.h
inc/presenters/IMoreOptionsListener.h [deleted file]
inc/presenters/ISelectModeListener.h [deleted file]
inc/presenters/Instance.h
inc/presenters/MoreOptionsPresenter.h
inc/presenters/NoContentPage.h
inc/presenters/Page.h
inc/presenters/Presenter.h
inc/presenters/PreviewPage.h
inc/presenters/ProcessingPresenter.h
inc/presenters/SelectModePresenter.h
inc/presenters/ThumbnailPage.h
inc/presenters/VideoPlayerPage.h
inc/presenters/ViewerPage.h
inc/presenters/types.h
inc/view/IImageGridListener.h [deleted file]
inc/view/ImageGrid.h
inc/view/ImageViewer.h
inc/view/PageContent.h
inc/view/TouchParser.h
inc/view/types.h
src/model/BaseJob.h
src/model/GalleryAlbum.cpp
src/model/internal.h
src/presenters/Instance.cpp
src/presenters/MoreOptionsPresenter.cpp
src/presenters/Page.cpp
src/presenters/PreviewPage.cpp
src/presenters/ProcessingPresenter.cpp
src/presenters/SelectModePresenter.cpp
src/presenters/ThumbnailPage.cpp
src/presenters/VideoPlayerPage.cpp
src/presenters/ViewerPage.cpp
src/view/ImageGrid.cpp
ucl/inc/ucl/appfw/SysEventProvider.h
ucl/inc/ucl/appfw/types.h

index e3f994d2a7247b9bc864bf108bf720bcfce988c9..1a711f9d353360afe2b679b518d3b3e7464724d8 100644 (file)
 #ifndef __GALLERY_MODEL_GALLERY_H__
 #define __GALLERY_MODEL_GALLERY_H__
 
-#include "types.h"
+#include "IMediaAlbum.h"
 
 namespace gallery {
 
+       UCL_DECLARE_REF_ALIASES(Gallery);
+
        class Gallery final : public ucl::NonCopyable {
        public:
                static GallerySRef newInstance();
index 66fc5ce5553841a15b392160f860eee9efa157ba..8c7d56e0a8d2a0fbbba6ae76a0a22b0c35a9e1fc 100644 (file)
@@ -21,6 +21,8 @@
 
 namespace gallery {
 
+       UCL_DECLARE_REF_ALIASES(IJob);
+
        class IJob : public ucl::Polymorphic {
        public:
                virtual ucl::Result getResult() const = 0;
index 81db7596c0448bc7a814d71fd4c07912bb34116b..80eb22210646ab9126eb6374004f383469c1dbea 100644 (file)
 #ifndef __GALLERY_MODEL_I_MEDIA_ALBUM_H__
 #define __GALLERY_MODEL_I_MEDIA_ALBUM_H__
 
-#include "types.h"
+#include "MediaItem.h"
 
 namespace gallery {
 
+       UCL_DECLARE_REF_ALIASES(IMediaAlbum);
+
        class IMediaAlbum : public ucl::Polymorphic {
        public:
                using EachCb = ucl::Delegate<bool(MediaItemSRef &&media)>;
index 16ce969a14f8b20a3abb9d2554620f7acb7a9f36..20d2a3f6960ca3193409f2460677ea13d9b9aa5e 100644 (file)
 #ifndef __GALLERY_MODEL_MEDIA_ITEM_H__
 #define __GALLERY_MODEL_MEDIA_ITEM_H__
 
-#include "types.h"
+#include <vector>
+
+#include <media_content.h>
+
+#include "ucl/misc/AutoHandle.h"
+
+#include "IJob.h"
 
 namespace gallery {
 
+       UCL_DECLARE_REF_ALIASES(MediaItem);
+
+       using MediaItems = std::vector<MediaItemSRef>;
+
        class MediaItem : public ucl::Polymorphic {
        public:
                using ThumbnailPathGetCb =
index 181b26b6a78b05b750f37f1540aedc91b5a8f414..87beb8f0b5e9cd7da2e8e26b2af012a7d451f59e 100644 (file)
 #ifndef __GALLERY_MODEL_TYPES_H__
 #define __GALLERY_MODEL_TYPES_H__
 
-#include <vector>
-
-#include <media_content.h>
-
-#include "ucl/misc/AutoHandle.h"
-
 #include "../types.h"
 
 namespace gallery {
@@ -34,16 +28,6 @@ namespace gallery {
                MUSIC,
                OTHERS
        };
-
-       UCL_DECLARE_REF_ALIASES(IJob);
-
-       UCL_DECLARE_REF_ALIASES(Gallery);
-
-       UCL_DECLARE_REF_ALIASES(IMediaAlbum);
-
-       UCL_DECLARE_REF_ALIASES(MediaItem);
-
-       using MediaItems = std::vector<MediaItemSRef>;
 }
 
 #endif // __GALLERY_MODEL_TYPES_H__
index 7b8e8430d5b1f772fb73daae6b50f3d95d135806..59274a2147f07250434b196f8b11cb7e60e00c38 100644 (file)
@@ -24,6 +24,8 @@
 
 namespace gallery {
 
+       UCL_DECLARE_REF_ALIASES(AlertDialog);
+
        class AlertDialog final : public Presenter,
                        public ucl::IDisposable {
        public:
diff --git a/inc/presenters/IMoreOptionsListener.h b/inc/presenters/IMoreOptionsListener.h
deleted file mode 100644 (file)
index e8e61b6..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __GALLERY_PRESENTERS_MORE_OPTIONS_LISTENER_H__
-#define __GALLERY_PRESENTERS_MORE_OPTIONS_LISTENER_H__
-
-#include "types.h"
-
-namespace gallery {
-
-       class IMoreOptionsListener : public ucl::Polymorphic {
-       public:
-               virtual void onMoreOptionClicked(MoreOptionsPresenter &sender,
-                               const MoreOption &option) = 0;
-               virtual void onMoreOptionSelected(MoreOptionsPresenter &sender,
-                               const MoreOption &option) {};
-               virtual void onMoreOptionsOpened(MoreOptionsPresenter &sender) {};
-               virtual void onMoreOptionsClosed(MoreOptionsPresenter &sender) {};
-       };
-}
-
-#endif // __GALLERY_PRESENTERS_MORE_OPTIONS_LISTENER_H__
diff --git a/inc/presenters/ISelectModeListener.h b/inc/presenters/ISelectModeListener.h
deleted file mode 100644 (file)
index 35fef58..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __GALLERY_PRESENTERS_SELECT_MODE_LISTENER_H__
-#define __GALLERY_PRESENTERS_SELECT_MODE_LISTENER_H__
-
-#include "types.h"
-
-namespace gallery {
-
-       class ISelectModeListener : public ucl::Polymorphic {
-       public:
-               virtual void onSelectModeEvent(int event) = 0;
-       };
-}
-
-#endif // __GALLERY_PRESENTERS_SELECT_MODE_LISTENER_H__
index a9c949acfebe3c48f9816061935451862f051a56..bdd20f6c9e6f8e4081c9b16b8547bd6ffd887ccd 100644 (file)
 
 #include "ucl/appfw/IInstance.h"
 #include "ucl/appfw/IInstanceAppControlExt.h"
+#include "ucl/appfw/SysEventProvider.h"
 
 #include "ucl/gui/Theme.h"
 #include "ucl/gui/Naviframe.h"
 
-#include "types.h"
+#include "model/Gallery.h"
+#include "Page.h"
 
 namespace gallery {
 
index 8b34e684736688db2a0fac301a7aede3cf73ddb3..c959b3c4c8fa9ff20884fd28da4d302d637a1d13 100644 (file)
 #ifndef __GALLERY_PRESENTERS_MORE_OPTIONS_PRESENTER_H__
 #define __GALLERY_PRESENTERS_MORE_OPTIONS_PRESENTER_H__
 
+#include <list>
+
 #include "ucl/misc/HashMap.h"
 
 #include "Presenter.h"
 
 namespace gallery {
 
+       UCL_DECLARE_REF_ALIASES(MoreOptionsPresenter);
+
        class MoreOptionsPresenter final : public Presenter {
        public:
+               UCL_DECLARE_REF_ALIASES(IListener);
+
+               struct Option {
+                       int id;
+                       ucl::TString text;
+                       ucl::TString subText;
+                       ucl::LayoutTheme iconTheme;
+               };
+
+               using MoreOptions = std::list<Option>;
+
                class Builder {
                public:
                        Builder();
                        ~Builder();
                        bool isEmpty() const;
                        Builder &clear();
-                       Builder &addOption(MoreOption option);
+                       Builder &addOption(Option option);
                        MoreOptionsPresenterSRef build(ucl::ElmWidget &parent) const;
                private:
                        ucl::SharedRef<MoreOptions> m_options;
                };
 
+               class IListener : public ucl::Polymorphic {
+               public:
+                       virtual void onMoreOptionClicked(MoreOptionsPresenter &sender,
+                                       const Option &option) = 0;
+                       virtual void onMoreOptionSelected(MoreOptionsPresenter &sender,
+                                       const Option &option) {};
+                       virtual void onMoreOptionsOpened(MoreOptionsPresenter &sender) {};
+                       virtual void onMoreOptionsClosed(MoreOptionsPresenter &sender) {};
+               };
+
        public:
-               void setListener(const IMoreOptionsListenerWRef &listener);
+               void setListener(const IListenerWRef &listener);
 
                ucl::Widget &getWidget();
 
@@ -57,7 +82,7 @@ namespace gallery {
                virtual ~MoreOptionsPresenter();
 
                ucl::Result prepare(ucl::ElmWidget &parent);
-               ucl::Result addItem(const MoreOption &option);
+               ucl::Result addItem(const Option &option);
 
                bool resetTimer(double timeout);
                void stopTimer();
@@ -71,9 +96,9 @@ namespace gallery {
 
        private:
                const MoreOptionsCSRef m_options;
-               ucl::HashMap<void *, const MoreOption *> m_map;
+               ucl::HashMap<void *, const Option *> m_map;
                ucl::ElmWidgetSRef m_widget;
-               IMoreOptionsListenerWRef m_listener;
+               IListenerWRef m_listener;
                Ecore_Timer *m_timer;
                bool m_newOpenedState;
        };
index 639feb2f04abe90dcd04e9dda66d11e4a0823df3..c107a8eab6ea989ab227b450754c98447300552c 100644 (file)
@@ -21,6 +21,8 @@
 
 namespace gallery {
 
+       UCL_DECLARE_REF_ALIASES(NoContentPage);
+
        class NoContentPage final : public Page {
        public:
                class Builder {
index 915a1be7ff00b8a924c9c9ea799588041b0e4e40..efeded61fd79fe2bb374e486c523a4458e1821aa 100644 (file)
@@ -23,6 +23,8 @@
 
 namespace gallery {
 
+       UCL_DECLARE_REF_ALIASES(Page);
+
        class Page : public Presenter {
        public:
                using ExitRequestHandler = ucl::Delegate<void(Page &page)>;
index b0fe70ef9dfb6ba9b42bbe7ded8a2d662801c114..4ed3530cb6dd4d8a32c1b81da6ee6686a598c7b4 100644 (file)
@@ -25,6 +25,8 @@
 
 namespace gallery {
 
+       UCL_DECLARE_REF_ALIASES(Presenter);
+
        class Presenter : public ucl::RefCountAware {
        public:
                struct DeactivatorInfo {
index fe05dec26ce6ec8d9d019441c279199ec74ebea3..076d4c8cea4f519e947abe7840d2bc25996e3c29 100644 (file)
 
 #include "Page.h"
 
-#include "view/IImageGridListener.h"
+#include "model/IMediaAlbum.h"
 
+#include "view/PageContent.h"
+#include "view/ImageGrid.h"
+
+#include "MoreOptionsPresenter.h"
+#include "SelectModePresenter.h"
+#include "AlertDialog.h"
+#include "ProcessingPresenter.h"
 #include "AtspiHighlightHelper.h"
-#include "IMoreOptionsListener.h"
-#include "ISelectModeListener.h"
 
 namespace gallery {
 
+       UCL_DECLARE_REF_ALIASES(PreviewPage);
+
        class PreviewPage final : public Page,
-                       private IImageGridListener,
-                       private IMoreOptionsListener,
-                       private ISelectModeListener {
+                       private ImageGrid::IListener,
+                       private MoreOptionsPresenter::IListener,
+                       private SelectModePresenter::IListener {
        public:
                class Builder {
                public:
@@ -95,24 +102,25 @@ namespace gallery {
 
                virtual void onBackKey() final override;
 
-               // IImageGridListener //
+               // ImageGrid::IListener //
 
                virtual void onItemRealized(int itemIndex) final override;
                virtual void onItemUnrealized(int itemIndex) final override;
                virtual void onItemEvent(int itemIndex,
-                               int event, int x, int y) final override;
+                               ImageGrid::ItemEvent event, int x, int y) final override;
                virtual void onTransitionFinished() final override;
                virtual Elm_Interface_Atspi_Accessible *onAccessObjectRequest(
                                bool isFlowsTo) final override;
 
-               // IMoreOptionsListener //
+               // MoreOptionsPresenter::IListener //
 
                virtual void onMoreOptionClicked(MoreOptionsPresenter &sender,
-                               const MoreOption &option) final override;
+                               const MoreOptionsPresenter::Option &option) final override;
 
-               // ISelectModeListener //
+               // SelectModePresenter::IListener //
 
-               virtual void onSelectModeEvent(int event) final override;
+               virtual void onSelectModeEvent(
+                               SelectModePresenter::Event event) final override;
 
        private:
                class Item;
index 4cb29997a32c3fc4dc5ee66334bf2b39de4cc796..59ff50f584e3de782c963892d9de95854100e66f 100644 (file)
@@ -24,6 +24,8 @@
 
 namespace gallery {
 
+       UCL_DECLARE_REF_ALIASES(ProcessingPresenter);
+
        class ProcessingPresenter final : public Presenter {
        public:
                enum class IconType {
index 2fe45462b96ab389500b3ace1a5528762f4d1e1e..b7de8bfb8f9ea392c568d94fe0e8a33f690fab58 100644 (file)
 
 #include "Presenter.h"
 
+#include "view/PageContent.h"
+
 namespace gallery {
 
+       UCL_DECLARE_REF_ALIASES(SelectModePresenter);
+
        class SelectModePresenter final : public Presenter {
        public:
+               UCL_DECLARE_REF_ALIASES(IListener);
+
                enum {
                        FLAG_NO_BOTTOM_BUTTON = 1,
                        FLAG_NO_MORE_OPTIONS = 2,
@@ -41,14 +47,19 @@ namespace gallery {
                        int m_flags;
                };
 
-               enum Event {
-                       EVENT_SELECT_ALL,
-                       EVENT_DESELECT_ALL,
-                       EVENT_BOTTOM_BUTTON_CLICK
+               enum class Event {
+                       SELECT_ALL,
+                       DESELECT_ALL,
+                       BOTTOM_BUTTON_CLICK
+               };
+
+               class IListener : public ucl::Polymorphic {
+               public:
+                       virtual void onSelectModeEvent(Event event) = 0;
                };
 
        public:
-               void setListener(const ISelectModeListenerWRef &listener);
+               void setListener(const IListenerWRef &listener);
 
                void setVisible(bool value);
                bool isVisible() const;
@@ -96,7 +107,7 @@ namespace gallery {
                ucl::StyledWidgetSRef m_selectButton;
                ucl::StyledWidgetSRef m_bottomButton;
                ucl::StyledWidgetSRef m_popup;
-               ISelectModeListenerWRef m_listener;
+               IListenerWRef m_listener;
                int m_totalCount;
                int m_selectCount;
                bool m_isVisible;
index 626ab183bb1ba4ed2949a167de1d40ca7906bec5..26fead485a0a799803296b5964a69064952ad997 100644 (file)
 
 #include "Page.h"
 
-#include "view/IImageGridListener.h"
+#include "model/IMediaAlbum.h"
 
+#include "view/PageContent.h"
+#include "view/ImageGrid.h"
+
+#include "MoreOptionsPresenter.h"
 #include "AtspiHighlightHelper.h"
-#include "IMoreOptionsListener.h"
 
 namespace gallery {
 
+       UCL_DECLARE_REF_ALIASES(ThumbnailPage);
+
        class ThumbnailPage final : public Page,
-                       private IImageGridListener,
-                       private IMoreOptionsListener {
+                       private ImageGrid::IListener,
+                       private MoreOptionsPresenter::IListener {
        public:
                class Builder {
                public:
@@ -67,17 +72,17 @@ namespace gallery {
                virtual void onActivateBy(const DeactivatorInfo &info) final override;
                virtual void onDeactivateBy(const DeactivatorInfo &info) final override;
 
-               // IImageGridListener //
+               // ImageGrid::IListener //
 
                virtual void onItemRealized(int itemIndex) final override;
                virtual void onItemUnrealized(int itemIndex) final override;
                virtual void onItemEvent(int itemIndex,
-                               int event, int x, int y) final override;
+                               ImageGrid::ItemEvent event, int x, int y) final override;
 
-               // IMoreOptionsListener //
+               // MoreOptionsPresenter::IListener //
 
                virtual void onMoreOptionClicked(MoreOptionsPresenter &sender,
-                               const MoreOption &option) final override;
+                               const MoreOptionsPresenter::Option &option) final override;
 
        private:
                class RealizedItem;
index e7d1794fa9fe0d649b6960b7bc63d0683303dace..3750f386200eea0cd8b285699c18fe1c1cf0dd3b 100644 (file)
 #include "Page.h"
 
 #include "model/SoundManager.h"
+#include "model/MediaItem.h"
+
+#include "view/TouchParser.h"
 
 namespace gallery {
 
+       UCL_DECLARE_REF_ALIASES(VideoPlayerPage);
+
        class VideoPlayerPage final : public Page {
        public:
                class Builder {
index c685909b20e63ece0d07362e601f5575a71bbef1..caffed4bb4cde1d9a008878b3b7c48225cd0e413 100644 (file)
 
 #include "Page.h"
 
-#include "IMoreOptionsListener.h"
+#include "model/MediaItem.h"
+
+#include "view/PageContent.h"
+#include "view/ImageViewer.h"
+#include "view/TouchParser.h"
+
+#include "MoreOptionsPresenter.h"
+#include "ProcessingPresenter.h"
 
 namespace gallery {
 
+       UCL_DECLARE_REF_ALIASES(ViewerPage);
+
        class ViewerPage final : public Page,
-                       private IMoreOptionsListener {
+                       private MoreOptionsPresenter::IListener {
        public:
                class Builder {
                public:
@@ -75,10 +84,10 @@ namespace gallery {
 
                virtual void onBackKey() final override;
 
-               // IMoreOptionsListener //
+               // MoreOptionsPresenter::IListener //
 
                virtual void onMoreOptionClicked(MoreOptionsPresenter &sender,
-                               const MoreOption &option) final override;
+                               const MoreOptionsPresenter::Option &option) final override;
 
        private:
                const MediaItemSRef m_media;
index 2cc1e316869a210a16b1253d1583a73215b9edca..86e3572a7efdd06707d2f2fa2e9f3d6f99e99b6e 100644 (file)
 #ifndef __GALLERY_PRESENTERS_TYPES_H__
 #define __GALLERY_PRESENTERS_TYPES_H__
 
-#include <list>
-
-#include "../types.h"
 #include "view/types.h"
 #include "model/types.h"
 
-namespace gallery {
-
-       struct MoreOption {
-               int id;
-               ucl::TString text;
-               ucl::TString subText;
-               ucl::LayoutTheme iconTheme;
-       };
-
-       using MoreOptions = std::list<MoreOption>;
-
-       UCL_DECLARE_REF_ALIASES(Presenter);
-
-       UCL_DECLARE_REF_ALIASES(IMoreOptionsListener);
-       UCL_DECLARE_REF_ALIASES(MoreOptionsPresenter);
-
-       UCL_DECLARE_REF_ALIASES(ISelectModeListener);
-       UCL_DECLARE_REF_ALIASES(SelectModePresenter);
-
-       UCL_DECLARE_REF_ALIASES(ProcessingPresenter);
-
-       UCL_DECLARE_REF_ALIASES(AlertDialog);
-
-       UCL_DECLARE_REF_ALIASES(Page);
-
-       UCL_DECLARE_REF_ALIASES(NoContentPage);
-       UCL_DECLARE_REF_ALIASES(ThumbnailPage);
-       UCL_DECLARE_REF_ALIASES(PreviewPage);
-       UCL_DECLARE_REF_ALIASES(ViewerPage);
-       UCL_DECLARE_REF_ALIASES(VideoPlayerPage);
-}
-
 #endif // __GALLERY_PRESENTERS_TYPES_H__
diff --git a/inc/view/IImageGridListener.h b/inc/view/IImageGridListener.h
deleted file mode 100644 (file)
index 3a7d2b9..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://floralicense.org/license/
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __GALLERY_VIEW_I_IMAGE_GRID_LISTENER_H__
-#define __GALLERY_VIEW_I_IMAGE_GRID_LISTENER_H__
-
-#include "types.h"
-
-namespace gallery {
-
-       class IImageGridListener : public ucl::Polymorphic {
-       public:
-               virtual void onItemRealized(int itemIndex) = 0;
-               virtual void onItemUnrealized(int itemIndex) = 0;
-               virtual void onItemEvent(int itemIndex, int event, int x, int y) = 0;
-               virtual void onTransitionFinished() {}
-               virtual Elm_Interface_Atspi_Accessible *onAccessObjectRequest(
-                               bool isFlowsTo) { return nullptr; }
-       };
-}
-
-#endif // __GALLERY_VIEW_I_IMAGE_GRID_LISTENER_H__
index 054f880e024e29d22a8d23c8aace90e99bbd9c0a..31aa0a54a3068f096911d2db6894086eb79a5460 100644 (file)
 
 #include "ucl/misc/Timeout.h"
 
-#include "types.h"
-
 namespace gallery {
 
+       UCL_DECLARE_REF_ALIASES(ImageGrid);
+
        class ImageGrid : public ucl::ElmWidget {
        public:
+               UCL_DECLARE_REF_ALIASES(IListener);
+
                enum class Type {
                        HCOMB_3X3,
                        LINEAR
@@ -38,19 +40,30 @@ namespace gallery {
                public:
                        Builder();
                        Builder &setType(Type value);
-                       Builder &setListener(IImageGridListener *value);
+                       Builder &setListener(const IListenerWRef &value);
                        Builder &setSelectModeStartup(bool value);
                        ImageGridSRef build(ElmWidget &parent) const;
                private:
                        Type m_type;
-                       IImageGridListener *m_listener;
+                       IListenerWRef m_listener;
                        bool m_selectModeStartup;
                };
 
-               enum ItemEvent {
-                       ITEM_EVENT_CLICK,
-                       ITEM_EVENT_DOUBLE_TAP,
-                       ITEM_EVENT_TAP_AND_HOLD
+               enum class ItemEvent {
+                       CLICK,
+                       DOUBLE_TAP,
+                       TAP_AND_HOLD
+               };
+
+               class IListener : public ucl::Polymorphic {
+               public:
+                       virtual void onItemRealized(int itemIndex) = 0;
+                       virtual void onItemUnrealized(int itemIndex) = 0;
+                       virtual void onItemEvent(int itemIndex,
+                                       ItemEvent event, int x, int y) = 0;
+                       virtual void onTransitionFinished() {}
+                       virtual Elm_Interface_Atspi_Accessible *onAccessObjectRequest(
+                                       bool isFlowsTo) { return nullptr; }
                };
 
                enum {
@@ -83,7 +96,7 @@ namespace gallery {
                };
 
        public:
-               void setListener(IImageGridListener *listener);
+               void setListener(const IListenerWRef &listener);
 
                ucl::Result setItemCount(int count);
 
@@ -142,7 +155,8 @@ namespace gallery {
                void addUnrealizeLock();
                void removeUnrealizeLock();
 
-               void handleItemEvent(int itemIndex, int event, int x, int y) const;
+               void handleItemEvent(int itemIndex,
+                               ItemEvent event, int x, int y) const;
 
                // Accessibility
 
@@ -235,7 +249,7 @@ namespace gallery {
                ucl::Widget m_rect2;
                Evas_Object *m_circleScroller;
 
-               IImageGridListener *m_listener;
+               IListenerWRef m_listener;
                int m_itemCount;
 
                std::deque<SlotUPtr> m_slots;
index 73395dbfd950eec913b1e24fb2bb4375a8d00f9a..5b6f21585ad47e2a6c8b2e5535b431b5920ea39e 100644 (file)
@@ -26,6 +26,8 @@ namespace gallery {
 
        constexpr ucl::SmartEvent IMAGE_VIEWER_ZOOM_END {"gallery,zoom,end"};
 
+       UCL_DECLARE_REF_ALIASES(ImageViewer);
+
        class ImageViewer final : public ucl::ElmWidget {
        public:
                class Builder {
index 3995ccc7a3a5d1c6dc3f0ff9b26778ae94c6547d..9e581b4d84597b9039be1391c99650f1871f439b 100644 (file)
@@ -23,6 +23,8 @@
 
 namespace gallery {
 
+       UCL_DECLARE_REF_ALIASES(PageContent);
+
        class PageContent : public ucl::ElmWidget {
        public:
                class Builder {
index 6551e3c8fbbef62f862264e7f69555b9c85e8d97..659a51204f16e706e8aa134829d2e5321dc542eb 100644 (file)
@@ -23,6 +23,8 @@
 
 namespace gallery {
 
+       UCL_DECLARE_REF_ALIASES(TouchParser);
+
        class TouchParser final : public ucl::RefCountAware {
        public:
                using TapHandler = ucl::Delegate<void(int x, int y)>;
index f11e5c3fa27995d8fa21c9b872e4cbca80010563..d458dc336083af505053c5221c69bfa30cd531f6 100644 (file)
 
 #include "../types.h"
 
-namespace gallery {
-
-       class IImageGridListener;
-
-       UCL_DECLARE_REF_ALIASES(TouchParser);
-
-       UCL_DECLARE_REF_ALIASES(PageContent);
-
-       UCL_DECLARE_REF_ALIASES(ImageGrid);
-       UCL_DECLARE_REF_ALIASES(ImageViewer);
-}
-
 #endif // __GALLERY_VIEW_TYPES_H__
index 939d88e230a4d841f31345334709c06231743bb2..33c28cd155601e26def30ad3f0a80ff4b3712a96 100644 (file)
@@ -22,7 +22,6 @@
 #include "ucl/util/threading/Thread.h"
 
 #include "model/IJob.h"
-#include "types.h"
 
 namespace gallery {
 
index b0eb5f06b61704afccf9a011179b700cd44bd648..a560e636810350de290a61755e98eb733bc5b5be 100644 (file)
@@ -21,8 +21,6 @@
 
 #include "ucl/misc/TString.h"
 
-#include "model/MediaItem.h"
-
 #include "common.h"
 
 namespace gallery { namespace { namespace impl {
index 788e2ddec878cbace2c861fe47b5f7af6e37ba39..61a9176060057647ef2d2f9bd5c831467e018398 100644 (file)
@@ -17,6 +17,8 @@
 #ifndef __GALLERY_MODEL_INTERNAL_H__
 #define __GALLERY_MODEL_INTERNAL_H__
 
+#include <media_content.h>
+
 #include "ucl/util/threading.h"
 
 #include "model/types.h"
index 137e4e6c928c84870f9cf90b0e1ff1f4e0fba2ef..f060c0ffd5f83e556af741cc14bd2083b3d740ae 100644 (file)
 
 #include <system_settings.h>
 
-#include "ucl/appfw/SysEventProvider.h"
 #include "ucl/appfw/helpers.h"
 
-#include "model/Gallery.h"
-#include "model/MediaItem.h"
-#include "model/IMediaAlbum.h"
-
 #include "presenters/NoContentPage.h"
 #include "presenters/ThumbnailPage.h"
 #include "presenters/ViewerPage.h"
@@ -47,6 +42,7 @@ namespace gallery {
                        SysEventProvider &sysEventProvider) :
                RefCountAware(&rc),
                m_sysEventProvider(sysEventProvider),
+               m_context(nullptr),
                m_isScanInProgress(false),
                m_isGroupMode(false)
        {
index 351cedae961c68099906cba90acfaa063d8e45f4..067753a5011ed35bbc827978b187559615b9db71 100644 (file)
@@ -18,8 +18,6 @@
 
 #include "ucl/gui/Layout.h"
 
-#include "presenters/IMoreOptionsListener.h"
-
 #include "common.h"
 
 namespace gallery { namespace { namespace impl {
@@ -75,7 +73,7 @@ namespace gallery {
        }
 
        MoreOptionsPresenter::Builder &MoreOptionsPresenter::Builder::addOption(
-                       MoreOption option)
+                       Option option)
        {
                if (!m_options) {
                        m_options = makeShared<MoreOptions>();
@@ -152,7 +150,7 @@ namespace gallery {
                return RES_OK;
        }
 
-       Result MoreOptionsPresenter::addItem(const MoreOption &option)
+       Result MoreOptionsPresenter::addItem(const Option &option)
        {
                const auto item = eext_more_option_item_append(*m_widget);
                if (!item) {
@@ -258,7 +256,7 @@ namespace gallery {
        }
 
        void MoreOptionsPresenter::setListener(
-                       const IMoreOptionsListenerWRef &listener)
+                       const IListenerWRef &listener)
        {
                m_listener = listener;
        }
index c3d4f7bf40d163153367d7ff8ec9e9b535be0ae7..24c6bbd7372ace41d6f594f4bff174992710f03b 100644 (file)
@@ -97,7 +97,7 @@ namespace gallery {
 
        void Page::exit()
        {
-               if (isAtTop() && !isAtBottom()) {
+               if (isAtTop() && !isAtBottom() && !m_navi->isInTransition()) {
                        m_navi->pop();
                        m_item = nullptr;
                } else {
index 283ec7a4f515334b2d01d9c9d4a3e9dbaa79b696..13f96aee66160f07bb10a1dd835af5945b21c880 100644 (file)
 
 #include "presenters/PreviewPage.h"
 
-#include "model/IMediaAlbum.h"
-#include "model/MediaItem.h"
-#include "model/IJob.h"
-
-#include "view/PageContent.h"
-#include "view/ImageGrid.h"
-
-#include "presenters/MoreOptionsPresenter.h"
-#include "presenters/SelectModePresenter.h"
-#include "presenters/AlertDialog.h"
-#include "presenters/ProcessingPresenter.h"
 #include "presenters/ViewerPage.h"
 
 #include "resources.h"
@@ -294,7 +283,7 @@ namespace gallery {
                }
 
                m_imageGrid = ImageGrid::Builder().
-                               setListener(this).
+                               setListener(asWeakThis<ImageGrid::IListener>(this)).
                                setType(ImageGrid::Type::LINEAR).
                                setSelectModeStartup(m_selectModeStartup).
                                build(*m_content);
@@ -345,8 +334,8 @@ namespace gallery {
                m_album->addChangeHandler(WEAK_DELEGATE(
                                PreviewPage::onAlbumChanged, asWeak(*this)));
 
-               m_more->setListener(asWeakThis<IMoreOptionsListener>(this));
-               m_smp->setListener(asWeakThis<ISelectModeListener>(this));
+               m_more->setListener(asWeakThis<MoreOptionsPresenter::IListener>(this));
+               m_smp->setListener(asWeakThis<SelectModePresenter::IListener>(this));
 
                m_atspiHelper->setEventHandler(WEAK_DELEGATE(
                                PreviewPage::onAtspiHighlight, asWeak(*this)));
@@ -465,14 +454,14 @@ namespace gallery {
        }
 
        void PreviewPage::onItemEvent(const int itemIndex,
-                       const int event, const int x, const int y)
+                       const ImageGrid::ItemEvent event, const int x, const int y)
        {
                if (!isActive() || m_more->isOpened()) {
                        return;
                }
 
                if (m_isInSelectMode) {
-                       if (event == ImageGrid::ITEM_EVENT_CLICK) {
+                       if (event == ImageGrid::ItemEvent::CLICK) {
                                toggleItemSelected(itemIndex);
                                m_imageGrid->bringInItem(itemIndex);
                        }
@@ -480,13 +469,15 @@ namespace gallery {
                }
 
                switch (event) {
-               case ImageGrid::ITEM_EVENT_TAP_AND_HOLD:
+               case ImageGrid::ItemEvent::TAP_AND_HOLD:
                        switchToSelectMode();
                        toggleItemSelected(itemIndex);
                        break;
-               case ImageGrid::ITEM_EVENT_DOUBLE_TAP:
+               case ImageGrid::ItemEvent::DOUBLE_TAP:
                        openViewer(itemIndex, x, y);
                        break;
+               default:
+                       break;
                }
        }
 
@@ -534,7 +525,7 @@ namespace gallery {
        }
 
        void PreviewPage::onMoreOptionClicked(MoreOptionsPresenter &sender,
-                       const MoreOption &option)
+                       const MoreOptionsPresenter::Option &option)
        {
                switch (option.id) {
                case impl::MORE_OPTION_ID_DELETE:
@@ -548,18 +539,18 @@ namespace gallery {
                }
        }
 
-       void PreviewPage::onSelectModeEvent(const int event)
+       void PreviewPage::onSelectModeEvent(const SelectModePresenter::Event event)
        {
                if (m_more->isOpened()) {
                        return;
                }
 
                switch (event) {
-               case SelectModePresenter::EVENT_SELECT_ALL:
-               case SelectModePresenter::EVENT_DESELECT_ALL:
+               case SelectModePresenter::Event::SELECT_ALL:
+               case SelectModePresenter::Event::DESELECT_ALL:
                        {
                                const bool isSelect =
-                                               (event == SelectModePresenter::EVENT_SELECT_ALL);
+                                               (event == SelectModePresenter::Event::SELECT_ALL);
                                for (auto &item: m_items) {
                                        item->setSelected(isSelect);
                                }
@@ -568,7 +559,7 @@ namespace gallery {
                        }
                        break;
 
-               case SelectModePresenter::EVENT_BOTTOM_BUTTON_CLICK:
+               case SelectModePresenter::Event::BOTTOM_BUTTON_CLICK:
                        confirmItemsDelete();
                        break;
                }
index bccd4cb44447e23e5a65abf6a24df453d5544b4e..390b4844df66702e20166587824b29bbd7410db8 100644 (file)
@@ -16,8 +16,6 @@
 
 #include "presenters/ProcessingPresenter.h"
 
-#include "ucl/gui/Window.h"
-
 #include "common.h"
 
 namespace gallery { namespace { namespace impl {
index bba872c072234c98fc1dba610a08e4b51f2547b4..c6a72f76e372924c97fd1bf95c0ea4086a5df782 100644 (file)
 
 #include "ucl/gui/WidgetItem.h"
 
-#include "view/PageContent.h"
-
-#include "presenters/ISelectModeListener.h"
-
 #include "resources.h"
 #include "common.h"
 
@@ -125,8 +121,7 @@ namespace gallery {
                return RES_OK;
        }
 
-       void SelectModePresenter::setListener(
-                       const ISelectModeListenerWRef &listener)
+       void SelectModePresenter::setListener(const IListenerWRef &listener)
        {
                m_listener = listener;
        }
@@ -346,7 +341,7 @@ namespace gallery {
        {
                if (m_popup && (m_popup->getEo() == obj)) {
                        dismissPopup();
-                       dispatchEvent(EVENT_SELECT_ALL);
+                       dispatchEvent(Event::SELECT_ALL);
                }
        }
 
@@ -355,7 +350,7 @@ namespace gallery {
        {
                if (m_popup && (m_popup->getEo() == obj)) {
                        dismissPopup();
-                       dispatchEvent(EVENT_DESELECT_ALL);
+                       dispatchEvent(Event::DESELECT_ALL);
                }
        }
 
@@ -371,7 +366,7 @@ namespace gallery {
                        Widget &widget, void *eventInfo)
        {
                if (isActive() && !m_popup && (m_selectCount > 0)) {
-                       dispatchEvent(EVENT_BOTTOM_BUTTON_CLICK);
+                       dispatchEvent(Event::BOTTOM_BUTTON_CLICK);
                }
        }
 
index 5cf6e5b2d89dbc29676c21803b4c45aa42b65eeb..9cb4eb5439e9271a9f7f59f3c201a8b737109e7f 100644 (file)
 
 #include "presenters/ThumbnailPage.h"
 
-#include "model/IMediaAlbum.h"
-#include "model/MediaItem.h"
-
-#include "view/PageContent.h"
-#include "view/ImageGrid.h"
-
-#include "presenters/MoreOptionsPresenter.h"
 #include "presenters/PreviewPage.h"
 
 #include "resources.h"
@@ -178,7 +171,7 @@ namespace gallery {
                }
 
                m_imageGrid = ImageGrid::Builder().
-                               setListener(this).
+                               setListener(asWeakThis<ImageGrid::IListener>(this)).
                                setType(ImageGrid::Type::HCOMB_3X3).
                                build(*m_content);
                if (!m_imageGrid) {
@@ -297,7 +290,7 @@ namespace gallery {
        }
 
        void ThumbnailPage::onItemEvent(const int itemIndex,
-                       const int event, const int x, const int y)
+                       const ImageGrid::ItemEvent event, const int x, const int y)
        {
                if (!isActive() || m_more->isOpened()) {
                        return;
@@ -306,9 +299,9 @@ namespace gallery {
                bool selectModeStartup = false;
 
                switch (event) {
-               case ImageGrid::ITEM_EVENT_CLICK:
+               case ImageGrid::ItemEvent::CLICK:
                        break;
-               case ImageGrid::ITEM_EVENT_TAP_AND_HOLD:
+               case ImageGrid::ItemEvent::TAP_AND_HOLD:
                        selectModeStartup = true;
                        break;
                default:
@@ -325,7 +318,7 @@ namespace gallery {
        }
 
        void ThumbnailPage::onMoreOptionClicked(MoreOptionsPresenter &sender,
-                       const MoreOption &option)
+                       const MoreOptionsPresenter::Option &option)
        {
                switch (option.id) {
                case impl::MORE_OPTION_ID_DELETE:
index 8d367af2dea7d34755e28a9ccdee917604aaf9e7..bd4a8c94ba28132e5774b6e041aadcfc138c34b8 100644 (file)
 
 #include "ucl/appfw/types.h"
 
-#include "model/MediaItem.h"
-
-#include "view/TouchParser.h"
-
 #include "resources.h"
 #include "common.h"
 
@@ -146,7 +142,8 @@ namespace gallery {
                m_tickTimer(nullptr),
                m_state(State::PAUSED),
                m_isControlsVisible(false),
-               m_needAutoStart(true)
+               m_needAutoStart(true),
+               m_isPlaybackCompleted(false)
        {
        }
 
index 8765444ba201805a1c69fbe74ce1b30b0267dbcd..5dcd31d959940fed0c601cddbd1c4dedbdcc1adf 100644 (file)
 
 #include "presenters/ViewerPage.h"
 
-#include "model/MediaItem.h"
-#include "model/IJob.h"
-
-#include "view/PageContent.h"
-#include "view/ImageViewer.h"
-#include "view/TouchParser.h"
-
-#include "presenters/MoreOptionsPresenter.h"
-#include "presenters/ProcessingPresenter.h"
-
 #include "resources.h"
 #include "common.h"
 
@@ -185,7 +175,8 @@ namespace gallery {
                                        PageContent::Part::MORE_OPTIONS);
                        addDeactivatorSource(m_more->getWidget());
 
-                       m_more->setListener(asWeakThis<IMoreOptionsListener>(this));
+                       m_more->setListener(asWeakThis<
+                                       MoreOptionsPresenter::IListener>(this));
                }
 
                if (useThumb) {
@@ -278,7 +269,7 @@ namespace gallery {
        }
 
        void ViewerPage::onMoreOptionClicked(MoreOptionsPresenter &sender,
-                       const MoreOption &option)
+                       const MoreOptionsPresenter::Option &option)
        {
                sender.setOpened(false);
 
index 09421c523d3a4cb4579de627a6623146eb89d3b7..e7aa0544a6c5c38636a836f6b6e0afd2210ac9f6 100644 (file)
@@ -22,7 +22,6 @@
 #include "ucl/gui/Layout.h"
 #include "ucl/gui/Window.h"
 
-#include "view/IImageGridListener.h"
 #include "view/TouchParser.h"
 
 #include "common.h"
@@ -83,7 +82,6 @@ namespace gallery {
 
        ImageGrid::Builder::Builder() :
                m_type(Type::HCOMB_3X3),
-               m_listener(nullptr),
                m_selectModeStartup(false)
        {
        }
@@ -95,7 +93,7 @@ namespace gallery {
        }
 
        ImageGrid::Builder &ImageGrid::Builder::setListener(
-                       IImageGridListener *const value)
+                       const IListenerWRef &value)
        {
                m_listener = value;
                return *this;
@@ -524,7 +522,7 @@ namespace gallery {
                                        LOG_RETURN_VOID(RES_ILLEGAL_STATE, "Item is not realized!");
                                }
                                m_imageGrid.handleItemEvent(m_realizeIndex,
-                                               ITEM_EVENT_CLICK, -1, -1);
+                                               ItemEvent::CLICK, -1, -1);
                        }
 
                        void onDoubleTap(const int x, const int y)
@@ -533,7 +531,7 @@ namespace gallery {
                                        LOG_RETURN_VOID(RES_ILLEGAL_STATE, "Item is not realized!");
                                }
                                m_imageGrid.handleItemEvent(m_realizeIndex,
-                                               ITEM_EVENT_DOUBLE_TAP, x, y);
+                                               ItemEvent::DOUBLE_TAP, x, y);
                        }
 
                        void onTapAndHold(const int x, const int y)
@@ -542,7 +540,7 @@ namespace gallery {
                                        LOG_RETURN_VOID(RES_ILLEGAL_STATE, "Item is not realized!");
                                }
                                m_imageGrid.handleItemEvent(m_realizeIndex,
-                                               ITEM_EVENT_TAP_AND_HOLD, x, y);
+                                               ItemEvent::TAP_AND_HOLD, x, y);
                        }
 
                        void onHighlighted(Widget &widget, void *eventInfo)
@@ -755,7 +753,6 @@ namespace gallery {
                m_rect2(evas_object_rectangle_add(m_box.getEvas())),
                m_circleScroller(nullptr),
 
-               m_listener(nullptr),
                m_itemCount(0),
 
                m_slotCount(0), // Must be even >= 2
@@ -898,7 +895,7 @@ namespace gallery {
                                WEAK_DELEGATE(ImageGrid::onKeeperUnhighlighted, asWeak(*this)));
        }
 
-       void ImageGrid::setListener(IImageGridListener *const listener)
+       void ImageGrid::setListener(const IListenerWRef &listener)
        {
                m_listener = listener;
        }
@@ -1282,8 +1279,8 @@ namespace gallery {
                }
        }
 
-       void ImageGrid::handleItemEvent(const int itemIndex, const int event,
-                       const int x, const int y) const
+       void ImageGrid::handleItemEvent(const int itemIndex,
+                       const ItemEvent event, const int x, const int y) const
        {
                if (m_listener) {
                        m_listener->onItemEvent(itemIndex, event, x, y);
index 68539b3f3fa2cac341583f3931200d69028ce918..7d224f42183caa57f56e223db1111d198b38b993 100644 (file)
@@ -23,6 +23,9 @@
 
 namespace ucl {
 
+       class SysEventProvider;
+       using SysEventProviderUPtr = std::unique_ptr<SysEventProvider>;
+
        class SysEventProvider : public NonCopyable {
        public:
                using EventHandlerAddFunc = int (*)(app_event_handler_h *,
index afe1f1d98180e8b187ccfb6f13ca54dd402ec00c..5f10426cfa1feeaf717fa2d5a9249984fb7f7776 100644 (file)
@@ -44,9 +44,6 @@ namespace ucl {
 
        using AppParams = HashMap<AppParam, Variant>;
 
-       class SysEventProvider;
-       using SysEventProviderUPtr = std::unique_ptr<SysEventProvider>;
-
        enum class SysEvent {
                LANGUAGE_CHANGED,
                REGION_FMT_CHANGED,