1dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/*
2dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Copyright (C) 2009-2010 ProFUSION embedded systems
3dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Copyright (C) 2009-2010 Samsung Electronics
4dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
5dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    This library is free software; you can redistribute it and/or
6dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    modify it under the terms of the GNU Library General Public
7dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    License as published by the Free Software Foundation; either
8dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    version 2 of the License, or (at your option) any later version.
9dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
10dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    This library is distributed in the hope that it will be useful,
11dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    but WITHOUT ANY WARRANTY; without even the implied warranty of
12dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Library General Public License for more details.
14dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
15dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    You should have received a copy of the GNU Library General Public License
16dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    along with this library; see the file COPYING.LIB.  If not, write to
17dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Boston, MA 02110-1301, USA.
19dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block*/
20dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
21dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#ifndef ewk_frame_h
22dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define ewk_frame_h
23dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
24dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "ewk_eapi.h"
25dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include <Evas.h>
26dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
27dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#ifdef __cplusplus
28dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockextern "C" {
29dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif
30dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
31dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/**
32dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * @file
33dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
34dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * WebKit frame smart object.
35dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
36dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * This object is the low level access to WebKit-EFL browser
37dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * component. It represents both the main and internal frames that
38dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * HTML pages contain.
39dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
40dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Every ewk_view has at least one frame, called "main frame" and
41dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * retrieved with ewk_view_frame_main_get(). One can retrieve frame's
42dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * owner view with ewk_frame_view_get(). Parent frame can be retrieved
43dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * with standard smart object's evas_object_smart_parent_get().
44dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Children can be accessed with ewk_frame_children_iterator_new() or
45dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * ewk_frame_child_find().
46dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
47dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * The following signals (see evas_object_smart_callback_add()) are emitted:
48dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
49dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "title,changed", const char*: title of the main frame changed.
50dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "uri,changed", const char*: uri of the main frame changed.
51e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke *  - "load,document,finished", void: loading of a document has
52e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke *    finished on this frame.
53e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke *  - "load,nonemptylayout,finished", void: frame finished first
54e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke *    non-empty layout.
55dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "load,started", void: frame started loading.
56dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "load,progress", double*: load progress changed (overall value
57dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *    from 0.0 to 1.0, connect to individual frames for fine grained).
58dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "load,finished", const Ewk_Frame_Load_Error*: reports load
59dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *    finished and as argument @c NULL if successfully or pointer to
60dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *    structure defining the error.
61e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke *  - "load,provisional", void: frame started provisional load.
62e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke *  - "load,firstlayout,finished", void: frame finished first layout.
63dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "load,error", const Ewk_Frame_Load_Error*: reports load failed
64dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *    and as argument a pointer to structure defining the error.
65dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "contents,size,changed", Evas_Coord[2]: reports contents size
66dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *    changed due new layout, script actions or any other events.
67e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke *  - "navigation,first", void: first navigation occurred.
68e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke *  - "resource,request,new", Ewk_Frame_Resource_Request*: reports that
69e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke *    there's a new resource request.
70e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke *  - "resource,request,willsend", Ewk_Frame_Resource_Request*: a resource will
71e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke *    be requested.
72e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke *  - "state,save", void: frame's state will be saved as a history item.
73dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block */
74dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
75dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
76dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/**
77dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Structure used to report load errors.
78dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
79dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Load errors are reported as signal by ewk_view. All the strings are
80dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * temporary references and should @b not be used after the signal
81dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * callback returns. If required, make copies with strdup() or
82dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * eina_stringshare_add() (they are not even guaranteed to be
83dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * stringshared, so must use eina_stringshare_add() and not
84dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * eina_stringshare_ref()).
85dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block */
86dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blocktypedef struct _Ewk_Frame_Load_Error Ewk_Frame_Load_Error;
87dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockstruct _Ewk_Frame_Load_Error {
88dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    int code; /**< numeric error code */
89dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Eina_Bool is_cancellation; /**< if load failed because it was canceled */
90dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    const char *domain; /**< error domain name */
91dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    const char *description; /**< error description already localized */
92dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    const char *failing_url; /**< the url that failed to load */
93dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Evas_Object *frame; /**< frame where the failure happened */
94dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block};
95dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
96dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/**
97e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * Structure used to report resource requests
98e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke *
99e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * Details given before a resource is loaded on a given frame. It's used by
100e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * ewk_frame_request_will_send() to inform the details of a to-be-loaded
101e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke * resource, allowing them to be overridden.
102e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke */
103e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarketypedef struct _Ewk_Frame_Resource_Request Ewk_Frame_Resource_Request;
104e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkestruct _Ewk_Frame_Resource_Request {
105e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    const char *url; /**< url of this resource */
106e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke    const unsigned long identifier; /**< resource's identifier. Can not be changed */
107e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke};
108e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
109e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke/**
110dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Structure used to report hit test results.
111dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block */
112dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blocktypedef struct _Ewk_Hit_Test Ewk_Hit_Test;
113dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockstruct _Ewk_Hit_Test {
114dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    int x, y;
115dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    struct {
116dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        int x, y, w, h;
117dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    } bounding_box;
118dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    const char *title;
119dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    const char *alternate_text; /**< for image, area, input and applet */
120dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Evas_Object *frame;
121dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    struct {
122dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        const char *text;
123dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        const char *url;
124dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        const char *title;
125dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        Evas_Object *target_frame;
126dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    } link;
127dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    struct {
128dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        Eina_Bool editable:1;
129dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        Eina_Bool selected:1;
130dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    } flags;
131dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block};
132dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
133cad810f21b803229eb11403f9209855525a25d57Steve Blocktypedef enum {
134cad810f21b803229eb11403f9209855525a25d57Steve Block    EWK_TOUCH_START,
135cad810f21b803229eb11403f9209855525a25d57Steve Block    EWK_TOUCH_END,
136cad810f21b803229eb11403f9209855525a25d57Steve Block    EWK_TOUCH_MOVE,
137cad810f21b803229eb11403f9209855525a25d57Steve Block    EWK_TOUCH_CANCEL
138cad810f21b803229eb11403f9209855525a25d57Steve Block} Ewk_Touch_Event_Type;
139cad810f21b803229eb11403f9209855525a25d57Steve Block
140cad810f21b803229eb11403f9209855525a25d57Steve Blocktypedef enum {
141cad810f21b803229eb11403f9209855525a25d57Steve Block    EWK_TOUCH_POINT_PRESSED,
142cad810f21b803229eb11403f9209855525a25d57Steve Block    EWK_TOUCH_POINT_RELEASED,
143cad810f21b803229eb11403f9209855525a25d57Steve Block    EWK_TOUCH_POINT_MOVED,
144cad810f21b803229eb11403f9209855525a25d57Steve Block    EWK_TOUCH_POINT_CANCELLED
145cad810f21b803229eb11403f9209855525a25d57Steve Block} Ewk_Touch_Point_Type;
146cad810f21b803229eb11403f9209855525a25d57Steve Block
147cad810f21b803229eb11403f9209855525a25d57Steve Blocktypedef struct _Ewk_Touch_Point Ewk_Touch_Point;
148cad810f21b803229eb11403f9209855525a25d57Steve Blockstruct _Ewk_Touch_Point {
149cad810f21b803229eb11403f9209855525a25d57Steve Block    unsigned int id;
150cad810f21b803229eb11403f9209855525a25d57Steve Block    int x, y;
151cad810f21b803229eb11403f9209855525a25d57Steve Block    Ewk_Touch_Point_Type state;
152cad810f21b803229eb11403f9209855525a25d57Steve Block};
153dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
154dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Evas_Object *ewk_frame_view_get(const Evas_Object *o);
155dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI void         ewk_frame_theme_set(Evas_Object *o, const char *path);
156dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI const char  *ewk_frame_theme_get(Evas_Object *o);
157dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
158dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Iterator *ewk_frame_children_iterator_new(Evas_Object *o);
159dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Evas_Object   *ewk_frame_child_find(Evas_Object *o, const char *name);
160dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
161dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_uri_set(Evas_Object *o, const char *uri);
162dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI const char  *ewk_frame_uri_get(const Evas_Object *o);
163dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI const char  *ewk_frame_title_get(const Evas_Object *o);
164dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI const char  *ewk_frame_name_get(const Evas_Object *o);
165dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_contents_size_get(const Evas_Object *o, Evas_Coord *w, Evas_Coord *h);
166dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
167dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_contents_set(Evas_Object *o, const char *contents, size_t contents_size, const char *mime_type, const char *encoding, const char *base_uri);
168dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_contents_alternate_set(Evas_Object *o, const char *contents, size_t contents_size, const char *mime_type, const char *encoding, const char *base_uri, const char *unreachable_uri);
169dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
170dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_script_execute(Evas_Object *o, const char *script);
171dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
172dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_editable_get(const Evas_Object *o);
173dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_editable_set(Evas_Object *o, Eina_Bool editable);
174dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
175dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI char        *ewk_frame_selection_get(const Evas_Object *o);
176dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
177dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_text_search(const Evas_Object *o, const char *string, Eina_Bool case_sensitive, Eina_Bool forward, Eina_Bool wrap);
178dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
179dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI unsigned int ewk_frame_text_matches_mark(Evas_Object *o, const char *string, Eina_Bool case_sensitive, Eina_Bool highlight, unsigned int limit);
180dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_text_matches_unmark_all(Evas_Object *o);
181dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_text_matches_highlight_set(Evas_Object *o, Eina_Bool highlight);
182dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_text_matches_highlight_get(const Evas_Object *o);
183bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian MonsenEAPI Eina_Bool    ewk_frame_text_matches_nth_pos_get(Evas_Object *o, size_t n, int *x, int *y);
184dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
185dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_stop(Evas_Object *o);
186dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_reload(Evas_Object *o);
187dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_reload_full(Evas_Object *o);
188dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
189dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_back(Evas_Object *o);
190dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_forward(Evas_Object *o);
191dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_navigate(Evas_Object *o, int steps);
192dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
193dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_back_possible(Evas_Object *o);
194dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_forward_possible(Evas_Object *o);
195dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_navigate_possible(Evas_Object *o, int steps);
196dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
197dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI float        ewk_frame_zoom_get(const Evas_Object *o);
198dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_zoom_set(Evas_Object *o, float zoom);
199dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_zoom_text_only_get(const Evas_Object *o);
200dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_zoom_text_only_set(Evas_Object *o, Eina_Bool setting);
201dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
202dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI void          ewk_frame_hit_test_free(Ewk_Hit_Test *hit_test);
203dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Ewk_Hit_Test *ewk_frame_hit_test_new(const Evas_Object *o, int x, int y);
204dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
205dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_scroll_add(Evas_Object *o, int dx, int dy);
206dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_scroll_set(Evas_Object *o, int x, int y);
207dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
208dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_scroll_size_get(const Evas_Object *o, int *w, int *h);
209dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_scroll_pos_get(const Evas_Object *o, int *x, int *y);
210dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
211dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_visible_content_geometry_get(const Evas_Object *o, Eina_Bool include_scrollbars, int *x, int *y, int *w, int *h);
212dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
213dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_paint_full_get(const Evas_Object *o);
214dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI void         ewk_frame_paint_full_set(Evas_Object *o, Eina_Bool flag);
215dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
216dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_feed_focus_in(Evas_Object *o);
217dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_feed_focus_out(Evas_Object *o);
218dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
219dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_feed_mouse_wheel(Evas_Object *o, const Evas_Event_Mouse_Wheel *ev);
220dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_feed_mouse_down(Evas_Object *o, const Evas_Event_Mouse_Down *ev);
221dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_feed_mouse_up(Evas_Object *o, const Evas_Event_Mouse_Up *ev);
222dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_feed_mouse_move(Evas_Object *o, const Evas_Event_Mouse_Move *ev);
223cad810f21b803229eb11403f9209855525a25d57Steve BlockEAPI Eina_Bool    ewk_frame_feed_touch_event(Evas_Object* o, Ewk_Touch_Event_Type action, Eina_List* points, int metaState);
224dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_feed_key_down(Evas_Object *o, const Evas_Event_Key_Down *ev);
225dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_frame_feed_key_up(Evas_Object *o, const Evas_Event_Key_Up *ev);
226dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
227dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
228dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#ifdef __cplusplus
229dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block}
230dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif
231dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif // ewk_frame_h
232