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.
5 #include "webview_delegate_ewk.h"
7 #include "public/ewk_view.h"
8 #include "private/ewk_view_private.h"
11 const WebViewDelegateEwk& WebViewDelegateEwk::GetInstance() {
12 static WebViewDelegateEwk instance;
16 tizen_webview::WebView* WebViewDelegateEwk::GetWebViewFromEvasObject(
17 Evas_Object* evas_object) {
18 return ::GetWebViewFromEvasObject(evas_object);
21 bool WebViewDelegateEwk::IsWebViewEvasObject(Evas_Object* evas_object) {
22 return ::IsWebViewObject(evas_object);
25 Evas_Object_Smart_Clipped_Data* WebViewDelegateEwk::GetSmartClippedData(
26 Evas_Object* evas_object) {
27 if (!WebViewDelegateEwk::IsWebViewEvasObject(evas_object)) {
30 return &GetEwkViewSmartDataFromEvasObject(evas_object)->base;
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);
39 result.x = sd->view.x;
40 result.y = sd->view.y;
41 result.w = sd->view.w;
42 result.h = sd->view.h;
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
52 sd->api->focus_in(sd);
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
63 sd->api->focus_out(sd);
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
75 sd->api->mouse_up(sd, event_info);
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
87 sd->api->mouse_down(sd, event_info);
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
99 sd->api->mouse_move(sd, event_info);
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
111 sd->api->mouse_wheel(sd, event_info);
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
123 sd->api->key_up(sd, event_info);
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
135 sd->api->key_down(sd, event_info);