#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,
};
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 connectElmCallback();
- void initializeWindowModes();
+ void showHelpAndQuit();
+ void setDebugMode(bundle* b);
+ void initializeWindowModes();
// Events
- virtual void OnEventReceived(const NextStepEvent& event);
- // UI callback
- static void backButtonCallback(void* data,
- Evas_Object* obj,
- void* event_info);
+ 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);
- static void progressFinishCallback(void* data);
- static void windowCloseCallback(void* data);
- static void webCrashCallback(void* data);
- static void setLayout(Evas_Object* newBuffer, void* data);
- static void unsetLayout(Evas_Object* currentBuffer, 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;
+ 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