2d489f7187c598bc08c8f03aff6f393dae36383e
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / ubrowser / window.h
1 // Copyright 2014 Samsung Electronics. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef _WINDOW_H_
6 #define _WINDOW_H_
7
8 #include <string>
9 #include <Ecore_Evas.h>
10 #include <ewk_settings.h>
11 #include <ewk_quota_permission_request.h>
12
13 class Browser;
14 class WindowUI;
15
16 class Window {
17  public:
18   typedef void* IdType;
19
20   Window(Browser&, int width, int height, bool incognito);
21   ~Window();
22
23   Evas_Object* GetEvasObject() const { return window_; };
24   Ewk_Settings* GetEwkSettings() const;
25
26   void LoadURL(std::string url);
27   const char* GetURL() const;
28   void Activate();
29   void Close();
30   void Show();
31   void Hide();
32   void Back();
33   void Forward();
34   void Reload();
35   void Stop();
36   void SetUserAgent(const char* new_ua);
37   const char* GetUserAgent() const;
38   void FakeRotate();
39   void Resize(int width, int height);
40   void EnableTouchEvents(bool);
41   void EnableMouseEvents(bool);
42   bool AreTouchEventsEnabled() const;
43   bool IsRememberFormDataEnabled() const;
44   bool IsRememberPasswordEnabled() const;
45   bool IsFormProfileEnabled() const;
46   double GetScale() const;
47   void GetScaleRange(double* minScale, double* maxScale) const;
48   void SetScale(double);
49   void Exit() const;
50
51   IdType Id() const;
52
53  private:
54   static void OnWindowDelRequest(void* data, Evas_Object*, void*);
55   static void OnNewWindowRequest(void *data, Evas_Object*, void*);
56   static void OnTitleChanged(void*, Evas_Object*, void*);
57   static void OnURLChanged(void*, Evas_Object*, void*);
58   static void OnLoadStarted(void*, Evas_Object*, void*);
59   static void OnLoadFinished(void*, Evas_Object*, void*);
60   static void OnConsoleMessage(void*, Evas_Object*, void*);
61   static void OnOrientationChanged(void*, Evas_Object*, void*);
62   static void OnNewWindowPolicyDecide(void*, Evas_Object*, void*);
63   static void OnBackForwardListChanged(void*, Evas_Object*, void*);
64   static void OnQuotaPermissionRequest(Evas_Object*, const Ewk_Quota_Permission_Request*, void*);
65   static void OnUserMediaPermissionRequest(void* data, Evas_Object*, void* event_info);
66   static void OnUserMediaPermissionDecisionTaken(bool decision, void* data);
67   static void OnEnterFullScreenRequest(void*, Evas_Object*, void*);
68   static void OnExitFullScreenRequest(void*, Evas_Object*, void*);
69
70   Browser& browser_;
71   WindowUI* ui_;
72   Evas_Object* window_;
73   Evas_Object* web_view_;
74   bool is_fullscreen_;
75 };
76
77 #endif // _WINDOW_H_