NABI issue 43925
[apps/osp/Camera.git] / inc / CmBaseForm.h
1 //
2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
3 //
4 // Licensed under the Flora License, Version 1.1 (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                CmBaseForm.h
19  * @brief               This is the header file for BaseForm class.
20  */
21
22 #ifndef _CM_BASE_FORM_H_
23 #define _CM_BASE_FORM_H_
24
25 #include <FApp.h>
26 #include <FBase.h>
27 #include <FAppIAppControlEventListener.h>
28 #include <FContent.h>
29 #include <FGraphics.h>
30 #include <FIo.h>
31 #include <FLocations.h>
32 #include <FMedia.h>
33 #include <FSysBattery.h>
34 #include <FSystem.h>
35 #include <FTelephony.h>
36 #include <FUi.h>
37 #include <FUiWindow.h>
38
39 #include "CmTypes.h"
40 #include "CmCameraApp.h"
41 #include "CmCameraPresentationModel.h"
42 #include "CmCameraResourceManager.h"
43 #include "CmCameraThumbnailPanel.h"
44 #include "CmCameraInfoPanel.h"
45 #include "CmUtility.h"
46
47 class BaseForm :
48 public Tizen::Ui::Controls::Form
49 , public Tizen::Ui::IAccessibilityListener
50 , public Tizen::System::IDeviceEventListener
51 , public Tizen::Ui::IActionEventListener
52 , public Tizen::Ui::IOrientationEventListener
53 , public Tizen::Ui::Controls::IFormBackEventListener
54 , public Tizen::Ui::IKeyEventListener
55 , public Tizen::Ui::Controls::IListViewItemEventListener
56 , public Tizen::Ui::Controls::IListViewItemProvider
57 , public Tizen::Ui::Scenes::ISceneEventListener
58 , public Tizen::Base::Runtime::ITimerEventListener
59 , public Tizen::Base::Runtime::IEventListener
60 , public Tizen::Ui::Controls::ISliderEventListener
61 , public Tizen::Io::IFileEventListener
62 , public Tizen::Ui::IAdjustmentEventListener
63 , public Tizen::Ui::ITouchEventListener
64 {
65 public:
66         BaseForm(void);
67         virtual ~BaseForm(void);
68         bool Initialize();
69         result OnInitializing(void);
70         result OnTerminating(void);
71
72         //IDeviceEventListener
73         virtual void OnDeviceStateChanged(Tizen::System::DeviceType deviceType, const Tizen::Base::String& state);
74
75         //IActionEventListener
76         virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
77
78         // IOrientationEventListener
79         virtual void OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus);
80
81         // IFormBackEventListener
82         virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
83
84         //IListViewItemEventListener
85         virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus status);
86         virtual void OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView, int index, int elementId, bool& invokeListViewItemCallback);
87         virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status);
88         virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction);
89
90         virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth);
91         virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);
92         virtual int GetItemCount(void);
93
94         // ISceneEventListener
95         virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
96         virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId);
97
98         //ISceneManagerEventListener
99         virtual void OnSceneTransitionCompleted (const Tizen::Ui::Scenes::SceneId &previousSceneId, const Tizen::Ui::Scenes::SceneId &currentSceneId);
100         virtual void OnSceneTransitionStarted (const Tizen::Ui::Scenes::SceneId &currentSceneId, const Tizen::Ui::Scenes::SceneId &nextSceneId);
101
102         //ITimerEventListener
103         virtual void OnTimerExpired (Tizen::Base::Runtime::Timer& timer);
104
105         //ISliderEventListener
106         virtual void OnSliderBarMoved (Tizen::Ui::Controls::Slider &source, int value);
107
108         //IFileEventListener
109         virtual void OnFileEventOccured (const unsigned long events, const Tizen::Base::String &path, const unsigned int eventId);
110
111         //IAdjustmentEventListener
112         virtual void OnAdjustmentValueChanged (const Tizen::Ui::Control &source, int adjustment);
113
114         //IKeyEventListener
115         virtual void OnKeyLongPressed (const Tizen::Ui::Control &source, Tizen::Ui::KeyCode keyCode);
116         virtual void OnKeyPressed (const Tizen::Ui::Control &source, Tizen::Ui::KeyCode keyCode);
117         virtual void OnKeyReleased (const Tizen::Ui::Control &source, Tizen::Ui::KeyCode keyCode);
118
119         //ITouchEventListener
120         virtual void OnTouchCanceled (const Tizen::Ui::Control &source, const Tizen::Graphics::Point &currentPosition, const Tizen::Ui::TouchEventInfo &touchInfo);
121         virtual void OnTouchFocusIn (const Tizen::Ui::Control &source, const Tizen::Graphics::Point &currentPosition, const Tizen::Ui::TouchEventInfo &touchInfo);
122         virtual void OnTouchFocusOut (const Tizen::Ui::Control &source, const Tizen::Graphics::Point &currentPosition, const Tizen::Ui::TouchEventInfo &touchInfo);
123         virtual void OnTouchMoved (const Tizen::Ui::Control &source, const Tizen::Graphics::Point &currentPosition, const Tizen::Ui::TouchEventInfo &touchInfo);
124         virtual void OnTouchPressed (const Tizen::Ui::Control &source, const Tizen::Graphics::Point &currentPosition, const Tizen::Ui::TouchEventInfo &touchInfo);
125         virtual void OnTouchReleased (const Tizen::Ui::Control &source, const Tizen::Graphics::Point &currentPosition, const Tizen::Ui::TouchEventInfo &touchInfo);
126
127         //IAccessibilityListener
128         virtual void OnAccessibilityActionPerformed (const Tizen::Ui::Control &control, const Tizen::Ui::AccessibilityElement &element);
129         virtual void OnAccessibilityFocusIn (const Tizen::Ui::Control &control, const Tizen::Ui::AccessibilityElement &element);
130         virtual void OnAccessibilityFocusOut (const Tizen::Ui::Control &control, const Tizen::Ui::AccessibilityElement &element);
131         virtual void OnAccessibilityScreenReaderStatusChanged (const Tizen::Ui::Control &control, const Tizen::Ui::AccessibilityElement &element, Tizen::Ui::AccessibilityScreenReaderStatus status);
132
133 protected:
134         AppLaunchType GetAppLaunchType(void) const;
135         BatteryState GetCurrentBatteryState(void);
136         result ReturnValues(RequestId requestId, Tizen::App::AppCtrlResult appCtrlResult, const Tizen::Base::Collection::IMap* pReturnValue);
137         Tizen::Telephony::CallStatus GetCurrentCallStatus(void);
138         Tizen::Telephony::CallType GetCurrentCallType(void);
139         void BaseFormOnActionPerformed(const Tizen::Ui::Control& source, int actionId);
140         result SendAppControlResult(RequestId requestId);
141         result LaunchAppControl(const Tizen::Base::String& providerId, const Tizen::Base::String& operationId, const Tizen::Base::String* pUriData, const Tizen::Base::String* pDataType, const Tizen::Base::Collection::IMap* extraData);
142         virtual void OnAppControlCompleted(const Tizen::Base::String& providerId, const Tizen::Base::String& operationId, const Tizen::Base::Collection::IList* pResultList);
143         void SetStorageType(int storageType);
144         void ShowCameraFailPopup(void);
145         void ShowUnlaunchPopup(void);
146         void ShowLowBatteryPopup(void);
147         result TerminateApp(void);
148         void RemoveAllEventListener(void);
149         void DeleteTimer(void);
150         int GetCurrentBatteryImage(void);
151         result InitScreenOverlayHelp(void);
152         void HideScreenOverlayHelp();
153         void OnHelpCloseTimerExpired(void);
154         bool CheckCallStatus(void);
155         void ShowMemoryFullPopup(void);
156
157 protected:
158         CameraPresentationModel* _pCameraPresentationModel;
159         SourceForm _pCurrentSourceForm;
160         int _timeCount;
161         bool _isRecording;
162         bool _isRecordingPause;
163         int _chargingCount;
164         int _blinkCount;
165         bool _appControlActionCompleted;
166         bool _isUsedTimerCaptured;
167         int _closeTimerValue;
168         int _currentSettingsMenuIndex;
169
170         Tizen::Base::Runtime::Timer* _pAppTimer;
171         Tizen::Base::Runtime::Timer* _pIntervalValueTimer;
172         Tizen::Base::Runtime::Timer* _pCaptureStartTimer;
173         Tizen::Base::Runtime::Timer* _pPopupTimer;
174         Tizen::Base::Runtime::Timer* _pExposureCloseTimer;
175         Tizen::Base::Runtime::Timer* _pTouchAutoFocusTimer;
176         Tizen::Base::Runtime::Timer* _pHelpCloseTimer;
177         Tizen::Base::Runtime::Timer* _pChargingTimer;
178         Tizen::Base::Runtime::Timer* _pChargingCompletedTimer;
179         Tizen::Base::Runtime::Timer* _pPreviewFailPopupTimer;
180         Tizen::Base::Runtime::Timer* _pMakerFocusTimer;
181
182         BatteryState _batteryStatus;
183
184         Tizen::Ui::Controls::ListView* _pListViewCameraTabMainMenu;
185         Tizen::Ui::Controls::ListView* _pListViewCameraTabSubMenu;
186         Tizen::Ui::Controls::ListView* _pListViewGeneralTabMainMenu;
187         Tizen::Ui::Controls::ListView* _pListViewGeneralTabSubMenu;
188         Tizen::Ui::Controls::ListView* _pListFlashMainMenu;
189         Tizen::Ui::Controls::ListView* _pListWbMainMenu;
190
191         Tizen::Ui::Controls::Label* _pHelpGoToGallery;
192         Tizen::Ui::Controls::Label* _pHelpGoToGalleryText;
193         Tizen::Ui::Controls::Label* _pHelpSwitchCamera;
194         Tizen::Ui::Controls::Label* _pHelpSwitchCameraText;
195         Tizen::Ui::Controls::Label* _pHelpQuickSetting;
196         Tizen::Ui::Controls::Label* _pHelpQuickSettingText;
197         Tizen::Ui::Controls::Label* _pHelpRecordVideo;
198         Tizen::Ui::Controls::Label* _pHelpRecordVideoText;
199         Tizen::Ui::Controls::Label* _pHelpShutter;
200         Tizen::Ui::Controls::Label* _pHelpShutterText;
201
202         Tizen::Ui::Controls::Popup* _pResetPopUp;
203         Tizen::Ui::Controls::Button* _pYes;
204         Tizen::Ui::Controls::Button* _pNo;
205
206         CameraThumbnailPanel* _pThumbnailPanel;
207         CameraInfoPanel* _pCameraInfoPanel;
208         CameraInfoSubPanel* _pCameraInfoSubPanel;
209         CameraInfoGeneralSubPanel* _pCameraInfoGeneralSubPanel;
210
211         Tizen::Ui::Controls::Button* _pFlashButton;
212         Tizen::Ui::Controls::Button* _pSelfShotButton;
213         Tizen::Ui::Controls::Button* _pSettingButton;
214         Tizen::Ui::Controls::Button* _pQuickSettingButton;
215         Tizen::Ui::Controls::Button* _pWhiteBalanceButton;
216         Tizen::Ui::Controls::Button* _pExposureValueButton;
217         Tizen::Ui::Controls::Button* _pCloseButton;
218         Tizen::Ui::Controls::Button* _pAutoFocus;
219         Tizen::Ui::Controls::Button* __pSwButton;
220 };
221
222 #endif