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