[M120 Migration] Apply opacity/filter/border-radius for video hole.
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / ubrowser / window_ui.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_UI_H_
6 #define _WINDOW_UI_H_
7
8 #include <Evas.h>
9
10 class Window;
11 class Browser;
12
13 typedef void (* PermissionCallback)(bool decision, void* data);
14
15 typedef struct {
16   void* callbackData;
17   PermissionCallback callback;
18   void* popupData;
19 } PermissionPopupButtonData;
20
21 class WindowUI {
22  public:
23   WindowUI(Window&, Browser&);
24   ~WindowUI();
25
26   Evas_Object* GetNavBar() const { return navbar_; }
27   Evas_Object* GetURLBar() const { return urlbar_; }
28
29   void OnURLChanged(const char* url);
30   void OnLoadingStarted();
31   void OnLoadingFinished();
32
33   void EnableBackButton(bool);
34   void EnableForwardButton(bool);
35
36   void ShowPermissionPopup(const char* title, const char* description,
37                            PermissionCallback, void* data);
38   void ShowInspectorURLPopup(const char* url);
39
40   void OnThemeColorChanged(int r, int g, int b, int a);
41   void ClosePopup();
42
43  private:
44   void CreateTopBar();
45   void CreateBottomBar();
46   Evas_Object* AddButton(Evas_Object*, const char*,
47                          const char*, Evas_Smart_Cb);
48   Evas_Object* CreateExtraActionsMenu(Evas_Object*);
49   void ShowTextEntryPopup(const char* title,
50                           const char* initial_content, Evas_Smart_Cb);
51   void ShowNotification(const char* text);
52 #if defined(PWE_SUPPORT)
53   void ShowTextEntriesPopup(const char* title,
54                             const std::vector<const char*>& keys,
55                             Evas_Smart_Cb cb);
56 #endif
57
58   void CloseMenu();
59
60   // Nav bar callbacks
61   static void OnCreateWindow(void* data, Evas_Object*, void*);
62   static void OnCreateIncognitoWindow(void* data, Evas_Object*, void*);
63   static void OnBack(void* data, Evas_Object*, void*);
64   static void OnForward(void* data, Evas_Object*, void*);
65   static void OnStopOrReload(void* data, Evas_Object*, void*);
66   static void OnShowExtraActionsMenu(void* data, Evas_Object*, void*);
67
68   // URL bar callbacks
69   static void OnURLEntered(void* data, Evas_Object*, void*);
70
71   // Extra actions callbacks
72   static void OnUAOverride(void* data, Evas_Object*, void*);
73   static void OnUAOverrideEntered(void* data, Evas_Object*, void*);
74   static void OnInspectorShow(void* data, Evas_Object*, void*);
75   static void OnInspectorServerStart(void* data, Evas_Object* obj, void*);
76   static void OnUseGoogleDataProxy(void* data, Evas_Object* obj, void*);
77   static void OnRotate(void* data, Evas_Object*, void*);
78   static void OnSelectMouseInput(void* data, Evas_Object*, void*);
79   static void OnSelectTouchInput(void* data, Evas_Object*, void*);
80   static void OnStartTracing(void* data, Evas_Object*, void*);
81   static void OnStopTracing(void* data, Evas_Object*, void*);
82   static void OnAutoFittingEnabled(void* data, Evas_Object*, void*);
83   static void OnAutoFittingDisabled(void* data, Evas_Object*, void*);
84   static void OnAutoFillEnabled(void* data, Evas_Object*, void*);
85   static void OnAutoFillDisabled(void* data, Evas_Object*, void*);
86
87   static void OnScriptWindowOpenEnabled(void* data, Evas_Object* obj, void*);
88   static void OnScriptWindowOpenDisabled(void* data, Evas_Object* obj, void*);
89
90   static void ClosePopup(void* data, Evas_Object*, void*);
91   static void OnShowZoomPopup(void* data, Evas_Object*, void*);
92   static void OnTakeScreenshotAsync(void* data, Evas_Object*, void*);
93   static void OnZoomChanged(void* data, Evas_Object*, void*);
94   static void OnRememberFormDataChange(void* data, Evas_Object*, void*);
95   static void OnRememberPasswordChange(void* data, Evas_Object*, void*);
96   static void OnFormProfileChange(void* data, Evas_Object*, void*);
97
98   // Permission popup buttons callbacks
99   static void PermissionDeclined(void* data, Evas_Object*, void*);
100   static void PermissionGranted(void* data, Evas_Object*, void*);
101
102   static void Exit(void* data, Evas_Object*, void*);
103
104   Window& window_;
105   Browser& browser_;
106   Evas_Object* navbar_;
107   Evas_Object* urlbar_;
108   Evas_Object* url_entry_;
109   Evas_Object* stop_reload_button_;
110   Evas_Object* progress_bar_;
111   Evas_Object* forward_button_;
112   Evas_Object* back_button_;
113   Evas_Object* active_popup_;
114   Evas_Object* menu_;
115
116   bool should_show_label_;
117   bool is_loading_;
118
119   struct Color {
120     int r;
121     int g;
122     int b;
123     int a;
124   } url_entry_color_;
125 };
126
127 #endif // _WINDOW_UI_H_