[Release] wrt_0.8.257
[platform/framework/web/wrt.git] / src / wrt-client / wrt-client.h
index 026558a..7a7e703 100644 (file)
 #ifndef WRT_CLIENT_H
 #define WRT_CLIENT_H
 
+#include <memory>
 #include <dpl/application.h>
 #include <dpl/generic_event.h>
 #include <dpl/event/controller.h>
 #include <dpl/type_list.h>
 #include <dpl/task.h>
+#include <dpl/optional_typedefs.h>
 #include <bundle.h>
 #include <i_runnable_widget_object.h>
+#include <dpl/wrt-dao-ro/widget_dao_read_only.h>
+#include <dpl/wrt-dao-ro/common_dao_types.h>
 #include "widget_state.h"
-#include <common_error.h>
 #include <launch_user_data.h>
-#include <widget_model.h>
+#include "window_data.h"
+#include "splash_screen_support.h"
 
 DECLARE_GENERIC_EVENT_0(NextStepEvent)
 
+namespace ClientModule {
+class SubmodeSupport;
+}
+
 class WrtClient :
-        public DPL::Application,
-        private DPL::Event::Controller<DPL::TypeListDecl<NextStepEvent>::Type>,
-        public DPL::TaskDecl<WrtClient>
+    public DPL::Application,
+    private DPL::Event::Controller<DPL::TypeListDecl<NextStepEvent>::Type>,
+    public DPL::TaskDecl<WrtClient>
 {
   public:
     WrtClient(int argc,
@@ -51,49 +59,96 @@ class WrtClient :
     };
 
     ReturnStatus::Type   getReturnStatus() const;
+    virtual void Quit();
+    static std::string getTizenIdFromArgument(int argc, char **argv);
+    void autoRotationSetOrientation(Evas_Object* obj);
 
   protected:
-    virtual void         OnStop();
-    virtual void         OnCreate();
-    virtual void         OnResume();
-    virtual void         OnPause();
-    virtual void         OnReset(bundle *b);
-    virtual void         OnTerminate();
+    virtual void OnStop();
+    virtual void OnCreate();
+    virtual void OnResume();
+    virtual void OnPause();
+    virtual void OnReset(bundle *b);
+    virtual void OnTerminate();
 
-    void                 setStep();
+    void setStep();
 
   private:
-    void                 showHelpAndQuit();
-    bool                 checkArgument();
-    void                 setSdkLauncherDebugData();
-    bool                 checkDebugMode(
-                            WidgetModel* model, 
-                            SDKDebugData* debugData);
-    bool                 checkWACTestCertififedWidget();
-    void                 localizeWidgetModel();
+    void showHelpAndQuit();
+    void setDebugMode(bundle* b);
+    void initializeWindowModes();
 
     // Events
-    virtual void         OnEventReceived(const NextStepEvent& event);
+    virtual void OnEventReceived(const NextStepEvent& event);
+
+    // static Callback
+    static Eina_Bool naviframeBackButtonCallback(void* data,
+                                                 Elm_Object_Item* it);
+    static int appcoreLowMemoryCallback(void* data);
+    static int languageChangedCallback(void *data);
+    static void autoRotationCallback(void* data, Evas_Object* obj, void* event);
+    static void focusedCallback(void* data,
+                                Evas_Object* obj,
+                                void* eventInfo);
+    static void unfocusedCallback(void* data,
+                                  Evas_Object* obj,
+                                  void* eventInfo);
+
+    //view-mode
+    void setInitialViewMode();
+
+    //orientation
+    void setWindowOrientation(int angle);
+    void setWindowInitialOrientation();
+    void unsetWindowOrientation();
+    void setEwkInitialOrientation();
+
+    //ctxpopup
+    void setCtxpopupItem();
+    void ctxpopupShare();
+    void ctxpopupReload();
+    void ctxpopupLaunchBrowser();
+
+    // hwkey
+    void hwkeyCallback(const std::string& key);
 
     // launching steps
-    void                 initStep();
-    void                 launchStep();
-    void                 shutdownStep();
-    static int           languageChangedCallback(void *data);
-    static void          loadFinishCallback(bool success, void* data);
+    void initStep();
+    void launchStep();
+    void shutdownStep();
+    void loadFinishCallback(Evas_Object* webview);
+    void resetCallback(bool result);
+    void progressStartedCallback();
+    void loadProgressCallback(Evas_Object* webview, double value);
+    void progressFinishCallback();
+    void webkitExitCallback();
+    void webCrashCallback();
+    void enterFullscreenCallback(Evas_Object* obj, bool isFullscreenByPlatform);
+    void exitFullscreenCallback(Evas_Object* obj);
+    void setLayout(Evas_Object* newBuffer);
+    void unsetLayout(Evas_Object* currentBuffer);
+
     // Private data
-    int m_handle;
+    std::string m_tizenId;
+    DPL::OptionalUInt m_appControlIndex;
+
     bool m_launched;
     bool m_initializing;
     bool m_initialized;
-    int m_sdkLauncherPid;
     bool m_debugMode;
-    bundle *m_bundle;
-    unsigned short m_debuggerPort;
     ReturnStatus::Type m_returnStatus;
     WRT::RunnableWidgetObjectPtr m_widget;
-    WRT::UserCallbacksPtr m_cbs;
+    WrtDB::WidgetDAOReadOnlyPtr m_dao;
+    WidgetSettingListPtr m_settingList;
     WidgetState m_widgetState;
+    std::unique_ptr<WindowData> m_windowData;
+    std::unique_ptr<SplashScreenSupport> m_splashScreen;
+    std::string m_initialViewMode;
+    std::string m_currentViewMode;
+    bool m_isWebkitFullscreen;
+    bool m_isFullscreenByPlatform;
+
+    std::unique_ptr<ClientModule::SubmodeSupport> m_submodeSupport;
 };
 
 #endif // WRT_CLIENT_H