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"
9 #include "public/ewk_view.h"
10 #include "private/ewk_view_private.h"
13 const WebViewDelegateEwk& WebViewDelegateEwk::GetInstance() {
14 static WebViewDelegateEwk instance;
18 tizen_webview::WebView* WebViewDelegateEwk::GetWebViewFromEvasObject(
19 Evas_Object* evas_object) {
20 return ::GetWebViewFromEvasObject(evas_object);
23 bool WebViewDelegateEwk::IsWebViewEvasObject(Evas_Object* evas_object) {
24 return ::IsWebViewObject(evas_object);
27 Evas_Object_Smart_Clipped_Data* WebViewDelegateEwk::GetSmartClippedData(
28 Evas_Object* evas_object) {
29 if (!WebViewDelegateEwk::IsWebViewEvasObject(evas_object)) {
32 return &GetEwkViewSmartDataFromEvasObject(evas_object)->base;
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);
41 result.x = sd->view.x;
42 result.y = sd->view.y;
43 result.w = sd->view.w;
44 result.h = sd->view.h;
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
54 sd->api->focus_in(sd);
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
65 sd->api->focus_out(sd);
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
77 sd->api->mouse_up(sd, event_info);
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
89 sd->api->mouse_down(sd, event_info);
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
101 sd->api->mouse_move(sd, event_info);
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
113 sd->api->mouse_wheel(sd, event_info);
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
125 sd->api->key_up(sd, event_info);
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
137 sd->api->key_down(sd, event_info);