e86ac78b28346e9be249f5b8c0026d94447c8339
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / efl_integration / private / webview_delegate_ewk.cc
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 #include "webview_delegate_ewk.h"
6 #include <cassert>
7 #include "public/ewk_view.h"
8 #include "private/ewk_view_private.h"
9
10 // static
11 const WebViewDelegateEwk& WebViewDelegateEwk::GetInstance() {
12   static WebViewDelegateEwk instance;
13   return instance;
14 }
15
16 tizen_webview::WebView* WebViewDelegateEwk::GetWebViewFromEvasObject(
17     Evas_Object* evas_object) {
18   return ::GetWebViewFromEvasObject(evas_object);
19 }
20
21 bool WebViewDelegateEwk::IsWebViewEvasObject(Evas_Object* evas_object) {
22   return ::IsWebViewObject(evas_object);
23 }
24
25 Evas_Object_Smart_Clipped_Data* WebViewDelegateEwk::GetSmartClippedData(
26     Evas_Object* evas_object) {
27   if (!WebViewDelegateEwk::IsWebViewEvasObject(evas_object)) {
28     return NULL;
29   }
30   return &GetEwkViewSmartDataFromEvasObject(evas_object)->base;
31 }
32
33 Eina_Rectangle WebViewDelegateEwk::GetLastUsedViewPortArea(
34     Evas_Object* evas_object) {
35   Eina_Rectangle result = {-1, -1, -1, -1};
36   if (WebViewDelegateEwk::IsWebViewEvasObject(evas_object)) {
37     Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromEvasObject(evas_object);
38     assert(sd);
39     result.x = sd->view.x;
40     result.y = sd->view.y;
41     result.w = sd->view.w;
42     result.h = sd->view.h;
43   }
44   return result;
45 }
46
47 bool WebViewDelegateEwk::RequestHandleEvent_FocusIn(WebView* wv) {
48   Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromWebView(wv);
49   if (sd && sd->api && sd->api->focus_in) {
50     // XXX: is it what we want, or do we want to return false if api->focus_in
51     // returns false?
52     sd->api->focus_in(sd);
53     return true;
54   }
55   return false;
56 }
57
58 bool WebViewDelegateEwk::RequestHandleEvent_FocusOut(WebView* wv) {
59   Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromWebView(wv);
60   if (sd && sd->api && sd->api->focus_out) {
61     // XXX: is it what we want, or do we want to return false if api->focus_out
62     // returns false?
63     sd->api->focus_out(sd);
64     return true;
65   }
66   return false;
67 }
68
69 bool WebViewDelegateEwk::RequestHandleEvent_MouseUp(WebView* wv,
70     const Evas_Event_Mouse_Up* event_info) {
71   Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromWebView(wv);
72   if (sd && sd->api && sd->api->mouse_up) {
73     // XXX: is it what we want, or do we want to return false if api->mouse_up
74     // returns false?
75     sd->api->mouse_up(sd, event_info);
76     return true;
77   }
78   return false;
79 }
80
81 bool WebViewDelegateEwk::RequestHandleEvent_MouseDown(WebView* wv,
82     const Evas_Event_Mouse_Down* event_info) {
83   Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromWebView(wv);
84   if (sd && sd->api && sd->api->mouse_down) {
85     // XXX: is it what we want, or do we want to return false if api->mouse_down
86     // returns false?
87     sd->api->mouse_down(sd, event_info);
88     return true;
89   }
90   return false;
91 }
92
93 bool WebViewDelegateEwk::RequestHandleEvent_MouseMove(WebView* wv,
94     const Evas_Event_Mouse_Move* event_info) {
95   Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromWebView(wv);
96   if (sd && sd->api && sd->api->mouse_move) {
97     // XXX: is it what we want, or do we want to return false if api->mouse_move
98     // returns false?
99     sd->api->mouse_move(sd, event_info);
100     return true;
101   }
102   return false;
103 }
104
105 bool WebViewDelegateEwk::RequestHandleEvent_MouseWheel(WebView* wv,
106     const Evas_Event_Mouse_Wheel* event_info) {
107   Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromWebView(wv);
108   if (sd && sd->api && sd->api->mouse_wheel) {
109     // XXX: is it what we want, or do we want to return false if api->mouse_wheel
110     // returns false?
111     sd->api->mouse_wheel(sd, event_info);
112     return true;
113   }
114   return false;
115 }
116
117 bool WebViewDelegateEwk::RequestHandleEvent_KeyUp(WebView* wv,
118     const Evas_Event_Key_Up* event_info) {
119   Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromWebView(wv);
120   if (sd && sd->api && sd->api->key_up) {
121     // XXX: is it what we want, or do we want to return false if api->key_up
122     // returns false?
123     sd->api->key_up(sd, event_info);
124     return true;
125   }
126   return false;
127 }
128
129 bool WebViewDelegateEwk::RequestHandleEvent_KeyDown(WebView* wv,
130     const Evas_Event_Key_Down* event_info) {
131   Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromWebView(wv);
132   if (sd && sd->api && sd->api->key_down) {
133     // XXX: is it what we want, or do we want to return false if api->key_down
134     // returns false?
135     sd->api->key_down(sd, event_info);
136     return true;
137   }
138   return false;
139 }