Removed setter form
[apps/osp/ImageViewer.git] / inc / IvImageViewerForm.h
1 //
2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
3 //
4 // Licensed under the Flora License, Version 1.0 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 //     http://floralicense.org/license/
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an AS IS BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16
17 /**
18  * @file                IvImageViewerForm.h
19  * @brief               This is the header file for ImageViewerForm class.
20  */
21
22 #ifndef _IV_IMAGE_VIEWER_FORM_H_
23 #define _IV_IMAGE_VIEWER_FORM_H_
24
25 #include <FBase.h>
26 #include <FContent.h>
27 #include <FGraphics.h>
28 #include <FIo.h>
29 #include <FMedia.h>
30 #include <FSystem.h>
31 #include <FUi.h>
32
33 #include "IvBaseForm.h"
34 #include "IvFileUpdateEventListener.h"
35 #include "IvImageProvider.h"
36 #include "IvImageViewerEventListener.h"
37 #include "IvSlideShowPopUp.h"
38 #include "IvSlideSettingListener.h"
39 #include "IvTypes.h"
40
41 class ImageInfo;
42 class ImageViewerForm;
43 class ImageViewerPresentationModel;
44 class SettingPresentationModel;
45
46 class ImageViewerForm
47         : public BaseForm
48         , public Tizen::App::IAppControlResponseListener
49         , public Tizen::Base::Runtime::ITimerEventListener
50         , public Tizen::Content::IContentTransferListener
51         , public Tizen::Media::IImageDecodeUrlEventListener
52         , public Tizen::Ui::IActionEventListener
53         , public Tizen::Ui::IOrientationEventListener
54         , public Tizen::Ui::IScrollPanelEventListener
55         , public Tizen::Ui::Controls::IFormBackEventListener
56         , public Tizen::Ui::Controls::IGalleryEventListener
57         , public Tizen::Ui::Controls::IGalleryItemProvider
58         , public Tizen::Ui::Scenes::ISceneEventListener
59         , public IImageViewerEventListener
60         , public IFileUpdateEventListener
61         , public ISlideSettingListener
62 {
63 public:
64         ImageViewerForm(void);
65         virtual ~ImageViewerForm(void);
66
67         result Initialize();
68
69         virtual result OnInitializing(void);
70         virtual result OnInitialized(void);
71         virtual result OnTerminating(void);
72         virtual void OnUpdateContentList(void);
73
74         virtual void OnAppControlCompleteResponseReceived(const Tizen::App::AppId& appId,
75                         const Tizen::Base::String& operationId, Tizen::App::AppCtrlResult appControlResult,
76                         const Tizen::Base::Collection::IMap* pExtraData);
77
78         virtual void OnTimerExpired(Tizen::Base::Runtime::Timer &timer);
79
80         virtual void OnContentTransferInProgress(RequestId requestID, int totalReceivedSize);
81         virtual void OnContentUploadCompleted(RequestId requestID, result res,
82                         const Tizen::Base::String& errorCode,
83                         const Tizen::Base::String& errorMessage);
84         virtual void OnContentDownloadCompleted(RequestId requestID, Tizen::Content::ContentId contentID, result res,
85                         const Tizen::Base::String& errorCode, const Tizen::Base::String& errorMessage);
86         virtual void OnContentDownloadToBufferCompleted(RequestId reqId, Tizen::Base::ByteBuffer* pBuffer, result r,
87                         const Tizen::Base::String& errorCode, const Tizen::Base::String& errorMessage);
88         virtual void OnContentTransferCanceled(RequestId reqId, result res, const Tizen::Base::String& errorCode,
89                         const Tizen::Base::String& errorMessage);
90
91         virtual void OnImageDecodeUrlReceived (RequestId reqId, Tizen::Graphics::Bitmap *pBitmap,
92                                                 result r, const Tizen::Base::String errorCode, const Tizen::Base::String errorMessage);
93
94         virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
95
96         virtual void OnOrientationChanged(const Tizen::Ui::Control &source, Tizen::Ui::OrientationStatus orientationStatus);
97
98         virtual void OnOverlayControlCreated(const Tizen::Ui::Control& source);
99         virtual void OnOverlayControlOpened(const Tizen::Ui::Control& source);
100         virtual void OnOverlayControlClosed(const Tizen::Ui::Control& source);
101         virtual void OnOtherControlSelected(const Tizen::Ui::Control& source);
102
103         virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
104
105         virtual void OnGalleryCurrentItemChanged (Tizen::Ui::Controls::Gallery &view, int index);
106         virtual void OnGalleryItemClicked(Tizen::Ui::Controls::Gallery& listView, int index);
107         virtual void OnGallerySlideShowStarted(Tizen::Ui::Controls::Gallery& gallery);
108         virtual void OnGallerySlideShowStopped(Tizen::Ui::Controls::Gallery& gallery);
109
110         virtual Tizen::Ui::Controls::GalleryItem* CreateItem(int index);
111         virtual bool DeleteItem(int index, Tizen::Ui::Controls::GalleryItem* pItem);
112         virtual int GetItemCount(void);
113
114         virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
115                                                                    const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
116         virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
117                                                                         const Tizen::Ui::Scenes::SceneId& nextSceneId);
118
119         virtual void OnImageDecodedN(const int index);
120
121         virtual void OnFormFileEventOccuered(const int index, const unsigned long eventId);
122
123         virtual void OnSlideSettingPopUpItemSelected(int index);
124
125 private:
126         enum AppControlMode
127         {
128                   APPCONTROL_MODE_NORMAL = 0
129                 , APPCONTROL_MODE_WEB_LINK
130                 , APPCONTROL_MODE_CROP
131                 , APPCONTROL_MODE_MESSAGE
132                 , APPCONTROL_MODE_EMAIL
133         };
134
135         enum RotateMode
136         {
137                 ROTATE_MODE_RIGHT = 0
138           , ROTATE_MODE_LEFT
139         };
140
141         void InitializeDisplay(AppControlMode status);
142         void InitShowGallery(void);
143         void CreateGallery(void);
144         result InitializePanelDetail(void);
145         result SetDetailInfo(void);
146         result InitializePopup(void);
147
148         result InitializeContextMenuMore(void);
149         result InitializeContextMenuCopy(void);
150         result InitializeContextMenuSetAs(void);
151         result InitializeContextMenuShare(void);
152
153         result InitializeSliderPanel(void);
154         result ShowPanelDetail(bool showStatus);
155         result ChangeFooterItem(bool isChanged, Tizen::Ui::Controls::Footer* pFooter, int position);
156         long long GetFileSize(Tizen::Base::String filePath);
157         void GetLabelText(int index, Tizen::Base::String& page);
158         void DownloadFile(void);
159         void RotateImage(Tizen::Base::String& filePath, RotateMode rotateMode);
160         void CallVideoPlayer(void);
161         result DeleteImageFile(void);
162         void RequestDecodeUrl(void);
163         void OnRequestEmailAction(void);
164         void OnRequestMessagesAction(void);
165
166         void SetFooterItemState(bool isEnable);
167         Tizen::Graphics::Bitmap* GetQuickThumbnailN(Tizen::Base::String& fileName);
168
169         void CreateShuffledList(int count);
170         void SlideShowStopped(int index);
171
172 private:
173         int __shuffelStartIndex;
174         AppControlMode __initializeDisplayModeCurrent;
175         Tizen::Ui::Controls::Label* __pLabel;
176         Tizen::Ui::Controls::Footer* __pFooter;
177         Tizen::Ui::Controls::ScrollPanel* __pScrollPanel;
178         Tizen::Ui::Controls::Label* __pDetail_Label;
179         Tizen::Ui::Controls::Label* __pDetail_FileInfo_Label[9];
180         Tizen::Ui::Controls::Label* __pDetail_FileInfo_Value_Label[9];
181         Tizen::Ui::Controls::Label *__pLabelMessage;
182         Tizen::Ui::Controls::Button* __pPlayButton;
183         Tizen::Ui::Controls::Button* __pRenameButton;
184         Tizen::Ui::Controls::FooterItem* __pDetailFooterItem;
185         Tizen::Ui::Controls::Gallery* __pGallery;
186         Tizen::Base::Runtime::Timer* __pTimer;
187         Tizen::Base::Runtime::Timer* __pShuffelTimer;
188         Tizen::Ui::Controls::ContextMenu* __pContextMenuMore;
189         Tizen::Ui::Controls::ContextMenu* __pContextMenuCopy;
190         Tizen::Ui::Controls::ContextMenu* __pContextMenuSetAs;
191         Tizen::Ui::Controls::ContextMenu* __pContextMenuShare;
192         Tizen::Ui::Controls::Popup* __pDeletePopup;
193         bool __visible;
194         bool __detail;
195         bool __startSlide;
196         bool __shuffle;
197         Tizen::Base::String __downLordFileName;
198         RequestId __requestId;
199         Tizen::Content::ContentTransfer __contentTransfer;
200         SlideShowPopUp* __pPopUp;
201         int* __pShuffledList;
202         ImageViewerPresentationModel* __pPresentationModel;
203         SettingPresentationModel* __pSettingPresentationModel;
204
205 };
206
207 #endif  /* _IV_IMAGE_VIEWER_FORM_H_ */