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_view_h
22dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define ewk_view_h
23dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
24f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick#include "ewk_frame.h"
2506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#include "ewk_history.h"
2606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#include "ewk_window_features.h"
2706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen
28dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include <Evas.h>
29dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include <cairo.h>
30dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
31dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#ifdef __cplusplus
32dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockextern "C" {
33dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif
34dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
35dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/**
36dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * @brief WebKit main smart object.
37dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
38dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * This object is the high level access to WebKit-EFL browser
39dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * component. It is responsible for managing the main frame and other
40dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * critical resources.
41dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
42dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Every ewk_view has at least one frame, called "main frame" and
43dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * retrieved with ewk_view_frame_main_get(). Direct frame access is
44dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * often discouraged, it is recommended to use ewk_view functions
45dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * instead.
46dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
47dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * The following signals (see evas_object_smart_callback_add()) are emitted:
48dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
49dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "ready", void: page is fully loaded.
50dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "title,changed", const char*: title of the main frame changed.
51dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "uri,changed", const char*: uri of the main frame changed.
52dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "load,started", void: frame started loading.
53dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "load,progress", double*: load progress changed (overall value
54dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *    from 0.0 to 1.0, connect to individual frames for fine grained).
55dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "load,finished", const Ewk_Frame_Load_Error*: reports load
56dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *    finished and as argument @c NULL if successfully or pointer to
57dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *    structure defining the error.
58dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "load,provisional", void: view started provisional load.
59dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "load,error", const Ewk_Frame_Load_Error*: reports load failed
60dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *    and as argument a pointer to structure defining the error.
61dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "frame,created", Evas_Object*: when frames are created, they are
62dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *    emitted in this signal.
63dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "zoom,animated,end", void: requested animated zoom is finished.
64dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "menubar,visible,set", Eina_Bool: set menubar visibility.
65dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "menubar,visible,get", Eina_Bool *: expects a @c EINA_TRUE if menubar is
66dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *    visible; otherwise, @c EINA_FALSE.
67dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "menubar,visible,set", Eina_Bool: set menubar visibility.
68dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "menubar,visible,get", Eina_Bool *: expects a @c EINA_TRUE if menubar is
69dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *    visible; @c EINA_FALSE, otherwise.
70dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "scrollbars,visible,set", Eina_Bool: set scrollbars visibility.
71dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "scrollbars,visible,get", Eina_Bool *: expects a @c EINA_TRUE if scrollbars
72dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *    are visible; @c EINA_FALSE, otherwise.
73dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "statusbar,visible,set", Eina_Bool: set statusbar visibility.
74dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "statusbar,visible,get", Eina_Bool *: expects a @c EINA_TRUE if statusbar is
75dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *    visible; @c EINA_FALSE, otherwise.
76dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "toolbar,visible,set", Eina_Bool: set toolbar visibility.
77dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "toolbar,visible,get", Eina_Bool *: expects a @c EINA_TRUE if toolbar
78dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *    is visible; @c EINA_FALSE, otherwise.
79dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "link,hover,in", const char *link[2]: reports mouse is over a link and as
80dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *    argument gives the url in link[0] and link's title in link[1].
81dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "link,hover,out", const char *link[2]: reports mouse moved out from a link
82dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *    and as argument gives the url in link[0] and link's title in link[1].
83dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "popup,create", Ewk_Menu: reports that a new menu was created.
84dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "popup,willdeleted", Ewk_Menu: reports that a previously created menu is
85dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *    about to be deleted.
86dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "download,request", Ewk_Download: reports a download is being requested
87dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *    and as arguments gives its details.
88dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *  - "icon,received", void: main frame received an icon.
89e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke *  - "viewport,changed", void: Report that viewport has changed.
900617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen *  - "inputmethods,changed" with a boolean indicating whether it's enabled or not.
915ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen *  - "view,resized", void: view object's size has changed.
92dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block */
93dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
94dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blocktypedef struct _Ewk_View_Smart_Data Ewk_View_Smart_Data;
95dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
96dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/**
97dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Ewk view's class, to be overridden by sub-classes.
98dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block */
99dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blocktypedef struct _Ewk_View_Smart_Class Ewk_View_Smart_Class;
100dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockstruct _Ewk_View_Smart_Class {
101dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Evas_Smart_Class sc; /**< all but 'data' is free to be changed. */
102dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    unsigned long version;
103dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
10406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen    Evas_Object *(*window_create)(Ewk_View_Smart_Data *sd, Eina_Bool javascript, const Ewk_Window_Features *window_features); /**< creates a new window, requested by webkit */
1050617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen    void (*window_close)(Ewk_View_Smart_Data *sd); /**< creates a new window, requested by webkit */
106dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    // hooks to allow different backing stores
107dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Evas_Object *(*backing_store_add)(Ewk_View_Smart_Data *sd); /**< must be defined */
108dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Eina_Bool (*scrolls_process)(Ewk_View_Smart_Data *sd); /**< must be defined */
109dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Eina_Bool (*repaints_process)(Ewk_View_Smart_Data *sd); /**< must be defined */
110dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Eina_Bool (*contents_resize)(Ewk_View_Smart_Data *sd, int w, int h);
111dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Eina_Bool (*zoom_set)(Ewk_View_Smart_Data *sd, float zoom, Evas_Coord cx, Evas_Coord cy);
112dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Eina_Bool (*zoom_weak_set)(Ewk_View_Smart_Data *sd, float zoom, Evas_Coord cx, Evas_Coord cy);
113dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    void (*zoom_weak_smooth_scale_set)(Ewk_View_Smart_Data *sd, Eina_Bool smooth_scale);
114dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    void (*bg_color_set)(Ewk_View_Smart_Data *sd, unsigned char r, unsigned char g, unsigned char b, unsigned char a);
115dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    void (*flush)(Ewk_View_Smart_Data *sd);
116dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Eina_Bool (*pre_render_region)(Ewk_View_Smart_Data *sd, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, float zoom);
1174576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang    Eina_Bool (*pre_render_relative_radius)(Ewk_View_Smart_Data *sd, unsigned int n, float zoom);
118dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    void (*pre_render_cancel)(Ewk_View_Smart_Data *sd);
1194576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang    Eina_Bool (*disable_render)(Ewk_View_Smart_Data *sd);
1204576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang    Eina_Bool (*enable_render)(Ewk_View_Smart_Data *sd);
1214576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang
122dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    // event handling:
123dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    //  - returns true if handled
124dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    //  - if overridden, have to call parent method if desired
125dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Eina_Bool (*focus_in)(Ewk_View_Smart_Data *sd);
126dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Eina_Bool (*focus_out)(Ewk_View_Smart_Data *sd);
127dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Eina_Bool (*mouse_wheel)(Ewk_View_Smart_Data *sd, const Evas_Event_Mouse_Wheel *ev);
128dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Eina_Bool (*mouse_down)(Ewk_View_Smart_Data *sd, const Evas_Event_Mouse_Down *ev);
129dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Eina_Bool (*mouse_up)(Ewk_View_Smart_Data *sd, const Evas_Event_Mouse_Up *ev);
130dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Eina_Bool (*mouse_move)(Ewk_View_Smart_Data *sd, const Evas_Event_Mouse_Move *ev);
131dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Eina_Bool (*key_down)(Ewk_View_Smart_Data *sd, const Evas_Event_Key_Down *ev);
132dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Eina_Bool (*key_up)(Ewk_View_Smart_Data *sd, const Evas_Event_Key_Up *ev);
133dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
134dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    void (*add_console_message)(Ewk_View_Smart_Data *sd, const char *message, unsigned int lineNumber, const char *sourceID);
135dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    void (*run_javascript_alert)(Ewk_View_Smart_Data *sd, Evas_Object *frame, const char *message);
136dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Eina_Bool (*run_javascript_confirm)(Ewk_View_Smart_Data *sd, Evas_Object *frame, const char *message);
137dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Eina_Bool (*run_javascript_prompt)(Ewk_View_Smart_Data *sd, Evas_Object *frame, const char *message, const char *defaultValue, char **value);
138dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Eina_Bool (*should_interrupt_javascript)(Ewk_View_Smart_Data *sd);
1395af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke    uint64_t (*exceeded_database_quota)(Ewk_View_Smart_Data *sd, Evas_Object *frame, const char *databaseName, uint64_t current_size, uint64_t expected_size);
140dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
141dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Eina_Bool (*run_open_panel)(Ewk_View_Smart_Data *sd, Evas_Object *frame, Eina_Bool allows_multiple_files, const Eina_List *suggested_filenames, Eina_List **selected_filenames);
142f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick
143f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick    Eina_Bool (*navigation_policy_decision)(Ewk_View_Smart_Data *sd, Ewk_Frame_Resource_Request *request);
144dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block};
145dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
146dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define EWK_VIEW_SMART_CLASS_VERSION 1UL /** the version you have to put into the version field in the Ewk_View_Smart_Class structure */
147dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
148dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/**
149dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Initializer for whole Ewk_View_Smart_Class structure.
150dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
151dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * @param smart_class_init initializer to use for the "base" field
152dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * (Evas_Smart_Class).
153dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
154dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * @see EWK_VIEW_SMART_CLASS_INIT_NULL
155dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * @see EWK_VIEW_SMART_CLASS_INIT_VERSION
156dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * @see EWK_VIEW_SMART_CLASS_INIT_NAME_VERSION
157dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block */
158cad810f21b803229eb11403f9209855525a25d57Steve Block#define EWK_VIEW_SMART_CLASS_INIT(smart_class_init) {smart_class_init, EWK_VIEW_SMART_CLASS_VERSION, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
159dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
160dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/**
161dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Initializer to zero a whole Ewk_View_Smart_Class structure.
162dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
163dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * @see EWK_VIEW_SMART_CLASS_INIT_VERSION
164dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * @see EWK_VIEW_SMART_CLASS_INIT_NAME_VERSION
165dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * @see EWK_VIEW_SMART_CLASS_INIT
166dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block */
167dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define EWK_VIEW_SMART_CLASS_INIT_NULL EWK_VIEW_SMART_CLASS_INIT(EVAS_SMART_CLASS_INIT_NULL)
168dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
169dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/**
170dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Initializer to zero a whole Ewk_View_Smart_Class structure and set version.
171dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
172dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Similar to EWK_VIEW_SMART_CLASS_INIT_NULL, but will set version field of
173dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Evas_Smart_Class (base field) to latest EVAS_SMART_CLASS_VERSION
174dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
175dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * @see EWK_VIEW_SMART_CLASS_INIT_NULL
176dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * @see EWK_VIEW_SMART_CLASS_INIT_NAME_VERSION
177dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * @see EWK_VIEW_SMART_CLASS_INIT
178dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block */
179dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define EWK_VIEW_SMART_CLASS_INIT_VERSION EWK_VIEW_SMART_CLASS_INIT(EVAS_SMART_CLASS_INIT_VERSION)
180dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
181dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/**
182dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Initializer to zero a whole Ewk_View_Smart_Class structure and set
183dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * name and version.
184dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
185dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Similar to EWK_VIEW_SMART_CLASS_INIT_NULL, but will set version field of
186dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Evas_Smart_Class (base field) to latest EVAS_SMART_CLASS_VERSION and name
187dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * to the specific value.
188dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
189dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * It will keep a reference to name field as a "const char *", that is,
190dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * name must be available while the structure is used (hint: static or global!)
191dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * and will not be modified.
192dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
193dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * @see EWK_VIEW_SMART_CLASS_INIT_NULL
194dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * @see EWK_VIEW_SMART_CLASS_INIT_VERSION
195dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * @see EWK_VIEW_SMART_CLASS_INIT
196dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block */
197dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#define EWK_VIEW_SMART_CLASS_INIT_NAME_VERSION(name) EWK_VIEW_SMART_CLASS_INIT(EVAS_SMART_CLASS_INIT_NAME_VERSION(name))
198dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
1990617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsenenum _Ewk_Imh {
2000617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen    EWK_IMH_TELEPHONE = (1 << 0),
2010617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen    EWK_IMH_NUMBER = (1 << 1),
2020617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen    EWK_IMH_EMAIL = (1 << 2),
2030617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen    EWK_IMH_URL = (1 << 3),
2040617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen    EWK_IMH_PASSWORD = (1 << 4)
2050617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen};
2060617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsentypedef enum _Ewk_Imh Ewk_Imh;
2070617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen
208dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/**
209dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * @internal
210dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
211dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * private data that is used internally by EFL WebKit and should never
212dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * be modified from outside.
213dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block */
214dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blocktypedef struct _Ewk_View_Private_Data Ewk_View_Private_Data;
215dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
216dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockenum _Ewk_Menu_Item_Type {
217dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    EWK_MENU_SEPARATOR,
218dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    EWK_MENU_GROUP,
219dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    EWK_MENU_OPTION
220dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block};
221dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blocktypedef enum _Ewk_Menu_Item_Type Ewk_Menu_Item_Type;
222dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
223dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
224dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/**
225dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Structure do contain data of each menu item
226dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block */
227dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blocktypedef struct _Ewk_Menu_Item Ewk_Menu_Item;
228dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockstruct _Ewk_Menu_Item {
229dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    const char *text; /**< Item's text */
230dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Ewk_Menu_Item_Type type; /** Item's type */
231dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block};
232dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
233dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/**
234dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Structure to contain Popup menu data.
235dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block */
236dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blocktypedef struct _Ewk_Menu Ewk_Menu;
237dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockstruct _Ewk_Menu {
238dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        Eina_List* items;
239dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        int x;
240dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        int y;
241dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        int width;
242dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        int height;
243dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block};
244dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
245dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/**
246dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Structure to contain Download data
247dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block */
248dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blocktypedef struct _Ewk_Download Ewk_Download;
249dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockstruct _Ewk_Download {
250dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    const char* url;
251dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    /* to be extended */
252dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block};
253dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
254dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/**
255dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Scroll request that should be processed by subclass implementations.
256dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block */
257dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blocktypedef struct _Ewk_Scroll_Request Ewk_Scroll_Request;
258dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockstruct _Ewk_Scroll_Request {
259dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Evas_Coord dx, dy;
260dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Evas_Coord x, y, w, h, x2, y2;
261dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Eina_Bool main_scroll;
262dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block};
263dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
264dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/**
265dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Structure to contain internal View data, it is to be considered
266dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * private by users, but may be extended or changed by sub-classes
267dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * (that's why it's in public header file).
268dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block */
269dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockstruct _Ewk_View_Smart_Data {
270dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Evas_Object_Smart_Clipped_Data base;
271dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    const Ewk_View_Smart_Class *api; /**< reference to casted class instance */
272dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Evas_Object *self; /**< reference to owner object */
273dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Evas_Object *main_frame; /**< reference to main frame object */
274dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Evas_Object *backing_store; /**< reference to backing store */
2754576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang    Evas_Object *events_rect; /**< rectangle that should receive mouse events */
276dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Ewk_View_Private_Data *_priv; /**< should never be accessed, c++ stuff */
277dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    struct {
278dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        Evas_Coord x, y, w, h; /**< last used viewport */
279dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    } view;
280dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    struct {
281dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        struct {
282dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block            float start;
283dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block            float end;
284dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block            float current; /**< if > 0.0, then doing animated zoom. */
285dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        } zoom;
286dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    } animated_zoom;
287dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    struct {
288dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        unsigned char r, g, b, a;
289dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    } bg_color;
290dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    Eina_Bool zoom_weak_smooth_scale:1;
291dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    struct { /**< what changed since last smart_calculate */
292dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        Eina_Bool any:1;
293dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        Eina_Bool size:1;
294dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        Eina_Bool position:1;
295dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block        Eina_Bool frame_rect:1;
296dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block    } changed;
297dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block};
298dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
2994576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang/**
3004576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * Cache (pool) that contains unused tiles for ewk_view_tiled.
3014576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang *
3024576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * This cache will maintain unused tiles and flush them when the total
3034576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * memory exceeds the set amount when
3044576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * ewk_tile_unused_cache_auto_flush() or explicitly set value when
3054576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * ewk_tile_unused_cache_flush() is called.
3064576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang *
3074576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * The tile may be shared among different ewk_view_tiled instances to
3084576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang * group maximum unused memory resident in the system.
3094576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang */
3104576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wangtypedef struct _Ewk_Tile_Unused_Cache Ewk_Tile_Unused_Cache;
3114576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) WangEAPI void   ewk_tile_unused_cache_max_set(Ewk_Tile_Unused_Cache *tuc, size_t max);
3124576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) WangEAPI size_t ewk_tile_unused_cache_max_get(const Ewk_Tile_Unused_Cache *tuc);
3134576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) WangEAPI size_t ewk_tile_unused_cache_used_get(const Ewk_Tile_Unused_Cache *tuc);
3144576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) WangEAPI size_t ewk_tile_unused_cache_flush(Ewk_Tile_Unused_Cache *tuc, size_t bytes);
3154576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) WangEAPI void   ewk_tile_unused_cache_auto_flush(Ewk_Tile_Unused_Cache *tuc);
3164576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang
317dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_base_smart_set(Ewk_View_Smart_Class *api);
318dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_single_smart_set(Ewk_View_Smart_Class *api);
3194576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) WangEAPI Eina_Bool    ewk_view_tiled_smart_set(Ewk_View_Smart_Class *api);
320dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
321dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Evas_Object *ewk_view_single_add(Evas *e);
3224576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) WangEAPI Evas_Object *ewk_view_tiled_add(Evas *e);
3234576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang
3244576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) WangEAPI Ewk_Tile_Unused_Cache *ewk_view_tiled_unused_cache_get(const Evas_Object *o);
3254576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) WangEAPI void                   ewk_view_tiled_unused_cache_set(Evas_Object *o, Ewk_Tile_Unused_Cache *cache);
3264576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang
3274576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang// FIXME: this function should be removed later, when we find the best flag to use.
3284576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) WangEAPI void                   ewk_view_tiled_process_entire_queue_set(Evas_Object *o, Eina_Bool flag);
329dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
330dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI void         ewk_view_fixed_layout_size_set(Evas_Object *o, Evas_Coord w, Evas_Coord h);
331dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI void         ewk_view_fixed_layout_size_get(Evas_Object *o, Evas_Coord *w, Evas_Coord *h);
332dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
333dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI void         ewk_view_theme_set(Evas_Object *o, const char *path);
334dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI const char  *ewk_view_theme_get(Evas_Object *o);
335dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
336dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Evas_Object *ewk_view_frame_main_get(const Evas_Object *o);
337dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Evas_Object *ewk_view_frame_focused_get(const Evas_Object *o);
338dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
339dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_uri_set(Evas_Object *o, const char *uri);
340dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI const char  *ewk_view_uri_get(const Evas_Object *o);
341dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI const char  *ewk_view_title_get(const Evas_Object *o);
342dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
343dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_editable_get(const Evas_Object *o);
344dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_editable_set(Evas_Object *o, Eina_Bool editable);
345dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
346dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI void         ewk_view_bg_color_set(Evas_Object *o, int r, int g, int b, int a);
347dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI void         ewk_view_bg_color_get(const Evas_Object *o, int *r, int *g, int *b, int *a);
348dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
349dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI char        *ewk_view_selection_get(const Evas_Object *o);
350dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_select_none(Evas_Object *o);
351dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_select_all(Evas_Object *o);
352dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_select_paragraph(Evas_Object *o);
353dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_select_sentence(Evas_Object *o);
354dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_select_line(Evas_Object *o);
355dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_select_word(Evas_Object *o);
356dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
3575af96e2c7b73ebc627c6894727826a7576d31758Leon ClarkeEAPI Eina_Bool    ewk_view_context_menu_forward_event(Evas_Object *o, const Evas_Event_Mouse_Down *ev);
3585af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke
359dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI void         ewk_view_popup_selected_set(Evas_Object *o, int index);
360dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_popup_destroy(Evas_Object *o);
361dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
362dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_text_search(const Evas_Object *o, const char *string, Eina_Bool case_sensitive, Eina_Bool forward, Eina_Bool wrap);
363dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
364dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI unsigned int ewk_view_text_matches_mark(Evas_Object *o, const char *string, Eina_Bool case_sensitive, Eina_Bool highlight, unsigned int limit);
365dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_text_matches_unmark_all(Evas_Object *o);
366dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_text_matches_highlight_set(Evas_Object *o, Eina_Bool highlight);
367dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_text_matches_highlight_get(const Evas_Object *o);
368dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
369dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI double       ewk_view_load_progress_get(const Evas_Object *o);
370dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
371dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_stop(Evas_Object *o);
372dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_reload(Evas_Object *o);
373dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_reload_full(Evas_Object *o);
374dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
375dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_back(Evas_Object *o);
376dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_forward(Evas_Object *o);
377dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_navigate(Evas_Object *o, int steps);
378dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
379dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_back_possible(Evas_Object *o);
380dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_forward_possible(Evas_Object *o);
381dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_navigate_possible(Evas_Object *o, int steps);
382dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
383dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_history_enable_get(const Evas_Object *o);
384dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_history_enable_set(Evas_Object *o, Eina_Bool enable);
385dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Ewk_History *ewk_view_history_get(const Evas_Object *o);
386dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
387dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI float        ewk_view_zoom_get(const Evas_Object *o);
388dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_zoom_set(Evas_Object *o, float zoom, Evas_Coord cx, Evas_Coord cy);
389dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
390dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_zoom_weak_smooth_scale_get(const Evas_Object *o);
391dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI void         ewk_view_zoom_weak_smooth_scale_set(Evas_Object *o, Eina_Bool smooth_scale);
392dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
393dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_zoom_weak_set(Evas_Object *o, float zoom, Evas_Coord cx, Evas_Coord cy);
394dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_zoom_animated_mark_start(Evas_Object *o, float zoom);
395dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_zoom_animated_mark_end(Evas_Object *o, float zoom);
396dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_zoom_animated_mark_current(Evas_Object *o, float zoom);
397dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_zoom_animated_mark_stop(Evas_Object *o);
398dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
399dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_zoom_animated_set(Evas_Object *o, float zoom, float duration, Evas_Coord cx, Evas_Coord cy);
400dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_zoom_text_only_get(const Evas_Object *o);
401dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_zoom_text_only_set(Evas_Object *o, Eina_Bool setting);
402dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
403dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_pre_render_region(Evas_Object *o, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, float zoom);
4044576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) WangEAPI Eina_Bool    ewk_view_pre_render_relative_radius(Evas_Object *o, unsigned int n);
405dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI void         ewk_view_pre_render_cancel(Evas_Object *o);
4064576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) WangEAPI Eina_Bool    ewk_view_enable_render(const Evas_Object *o);
4074576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) WangEAPI Eina_Bool    ewk_view_disable_render(const Evas_Object *o);
408dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
4090617145a89917ae7735fe1c9538688ab9a577df5Kristian MonsenEAPI unsigned int ewk_view_imh_get(Evas_Object *o);
4100617145a89917ae7735fe1c9538688ab9a577df5Kristian Monsen
411dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/* settings */
412dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI const char  *ewk_view_setting_user_agent_get(const Evas_Object *o);
413dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_user_agent_set(Evas_Object *o, const char *user_agent);
414dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
415dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_auto_load_images_get(const Evas_Object *o);
416dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_auto_load_images_set(Evas_Object *o, Eina_Bool automatic);
417dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
418dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_auto_shrink_images_get(const Evas_Object *o);
419dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_auto_shrink_images_set(Evas_Object *o, Eina_Bool automatic);
420dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
421a94275402997c11dd2e778633dacf4b7e630a35dBen MurdochEAPI Eina_Bool    ewk_view_setting_enable_auto_resize_window_get(const Evas_Object *o);
422a94275402997c11dd2e778633dacf4b7e630a35dBen MurdochEAPI Eina_Bool    ewk_view_setting_enable_auto_resize_window_set(Evas_Object *o, Eina_Bool resizable);
423dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_enable_scripts_get(const Evas_Object *o);
424dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_enable_scripts_set(Evas_Object *o, Eina_Bool enable);
425dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
426dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_enable_plugins_get(const Evas_Object *o);
427dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_enable_plugins_set(Evas_Object *o, Eina_Bool enable);
428dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
429e8b154fd68f9b33be40a3590e58347f353835f5cSteve BlockEAPI Eina_Bool    ewk_view_setting_enable_frame_flattening_get(const Evas_Object* o);
430e8b154fd68f9b33be40a3590e58347f353835f5cSteve BlockEAPI Eina_Bool    ewk_view_setting_enable_frame_flattening_set(Evas_Object* o, Eina_Bool enable);
431e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block
432dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_scripts_window_open_get(const Evas_Object *o);
433dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_scripts_window_open_set(Evas_Object *o, Eina_Bool allow);
434dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
435dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_resizable_textareas_get(const Evas_Object *o);
436dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_resizable_textareas_set(Evas_Object *o, Eina_Bool enable);
437dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
438dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI const char  *ewk_view_setting_user_stylesheet_get(const Evas_Object *o);
439dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_user_stylesheet_set(Evas_Object *o, const char *uri);
440dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
441dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_private_browsing_get(const Evas_Object *o);
442dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_private_browsing_set(Evas_Object *o, Eina_Bool enable);
4435ddde30071f639962dd557c453f2ad01f8f0fd00Kristian MonsenEAPI Eina_Bool    ewk_view_setting_offline_app_cache_get(const Evas_Object *o);
4445ddde30071f639962dd557c453f2ad01f8f0fd00Kristian MonsenEAPI Eina_Bool    ewk_view_setting_offline_app_cache_set(Evas_Object *o, Eina_Bool enable);
445dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
446dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_caret_browsing_get(const Evas_Object *o);
447dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_caret_browsing_set(Evas_Object *o, Eina_Bool enable);
448dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
449dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI const char  *ewk_view_setting_encoding_custom_get(const Evas_Object *o);
450dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_encoding_custom_set(Evas_Object *o, const char *encoding);
451dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI const char  *ewk_view_setting_encoding_default_get(const Evas_Object *o);
452dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_encoding_default_set(Evas_Object *o, const char *encoding);
453dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
454dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI int          ewk_view_setting_font_minimum_size_get(const Evas_Object *o);
455dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_font_minimum_size_set(Evas_Object *o, int size);
456dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI int          ewk_view_setting_font_minimum_logical_size_get(const Evas_Object *o);
457dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_font_minimum_logical_size_set(Evas_Object *o, int size);
458dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI int          ewk_view_setting_font_default_size_get(const Evas_Object *o);
459dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_font_default_size_set(Evas_Object *o, int size);
460dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI int          ewk_view_setting_font_monospace_size_get(const Evas_Object *o);
461dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_font_monospace_size_set(Evas_Object *o, int size);
462dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
463dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI const char  *ewk_view_setting_font_standard_get(const Evas_Object *o);
464dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_font_standard_set(Evas_Object *o, const char *family);
465dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
466dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI const char  *ewk_view_setting_font_cursive_get(const Evas_Object *o);
467dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_font_cursive_set(Evas_Object *o, const char *family);
468dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
469dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI const char  *ewk_view_setting_font_monospace_get(const Evas_Object *o);
470dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_font_monospace_set(Evas_Object *o, const char *family);
471dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
472dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI const char  *ewk_view_setting_font_fantasy_get(const Evas_Object *o);
473dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_font_fantasy_set(Evas_Object *o, const char *family);
474dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
475dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI const char  *ewk_view_setting_font_serif_get(const Evas_Object *o);
476dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_font_serif_set(Evas_Object *o, const char *family);
477dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
478dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI const char  *ewk_view_setting_font_sans_serif_get(const Evas_Object *o);
479dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool    ewk_view_setting_font_sans_serif_set(Evas_Object *o, const char *family);
480dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
481f486d19d62f1bc33246748b14b14a9dfa617b57fIain MerrickEAPI Eina_Bool    ewk_view_setting_spatial_navigation_get(Evas_Object* o);
482f486d19d62f1bc33246748b14b14a9dfa617b57fIain MerrickEAPI Eina_Bool    ewk_view_setting_spatial_navigation_set(Evas_Object* o, Eina_Bool enable);
483f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick
4845ddde30071f639962dd557c453f2ad01f8f0fd00Kristian MonsenEAPI Eina_Bool    ewk_view_setting_local_storage_get(Evas_Object* o);
4855ddde30071f639962dd557c453f2ad01f8f0fd00Kristian MonsenEAPI Eina_Bool    ewk_view_setting_local_storage_set(Evas_Object* o, Eina_Bool enable);
486bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian MonsenEAPI const char  *ewk_view_setting_local_storage_database_path_get(const Evas_Object *o);
487bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian MonsenEAPI Eina_Bool    ewk_view_setting_local_storage_database_path_set(Evas_Object *o, const char *path);
4885ddde30071f639962dd557c453f2ad01f8f0fd00Kristian Monsen
48968513a70bcd92384395513322f1b801e7bf9c729Steve BlockEAPI Eina_Bool    ewk_view_setting_page_cache_get(Evas_Object* o);
49068513a70bcd92384395513322f1b801e7bf9c729Steve BlockEAPI Eina_Bool    ewk_view_setting_page_cache_set(Evas_Object* o, Eina_Bool enable);
49168513a70bcd92384395513322f1b801e7bf9c729Steve Block
492a94275402997c11dd2e778633dacf4b7e630a35dBen MurdochEAPI Eina_Bool    ewk_view_setting_encoding_detector_get(Evas_Object* o);
493a94275402997c11dd2e778633dacf4b7e630a35dBen MurdochEAPI Eina_Bool    ewk_view_setting_encoding_detector_set(Evas_Object* o, Eina_Bool enable);
494a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch
495dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/* to be used by subclass implementations */
496dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Ewk_View_Smart_Data *ewk_view_smart_data_get(const Evas_Object *o);
497dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
498dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI const Eina_Rectangle *ewk_view_repaints_get(const Ewk_View_Private_Data *priv, size_t *count);
499dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI const Ewk_Scroll_Request *ewk_view_scroll_requests_get(const Ewk_View_Private_Data *priv, size_t *count);
500dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
501dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI void ewk_view_repaint_add(Ewk_View_Private_Data *priv, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h);
502dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
503dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI void ewk_view_layout_if_needed_recursive(Ewk_View_Private_Data *priv);
504dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
505dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI void ewk_view_scrolls_process(Ewk_View_Smart_Data *sd);
506dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
507dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/**
508dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Structure that keeps paint context.
509dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *
510dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * @note this is not for general use but just for subclasses that want
511dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block *       to define their own backing store.
512dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block */
513dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blocktypedef struct _Ewk_View_Paint_Context Ewk_View_Paint_Context;
514dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
515dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Ewk_View_Paint_Context *ewk_view_paint_context_new(Ewk_View_Private_Data *priv, cairo_t *cr);
516dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI void ewk_view_paint_context_free(Ewk_View_Paint_Context *ctxt);
517dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
518dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI void ewk_view_paint_context_save(Ewk_View_Paint_Context *ctxt);
519dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI void ewk_view_paint_context_restore(Ewk_View_Paint_Context *ctxt);
520dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI void ewk_view_paint_context_clip(Ewk_View_Paint_Context *ctxt, const Eina_Rectangle *area);
521dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI void ewk_view_paint_context_paint(Ewk_View_Paint_Context *ctxt, const Eina_Rectangle *area);
522dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI void ewk_view_paint_context_paint_contents(Ewk_View_Paint_Context *ctxt, const Eina_Rectangle *area);
523dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI void ewk_view_paint_context_scale(Ewk_View_Paint_Context *ctxt, float scale_x, float scale_y);
524dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI void ewk_view_paint_context_translate(Ewk_View_Paint_Context *ctxt, float x, float y);
525dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
526dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool ewk_view_paint(Ewk_View_Private_Data *priv, cairo_t *cr, const Eina_Rectangle *area);
527dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve BlockEAPI Eina_Bool ewk_view_paint_contents(Ewk_View_Private_Data *priv, cairo_t *cr, const Eina_Rectangle *area);
528dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block
529a94275402997c11dd2e778633dacf4b7e630a35dBen MurdochEAPI void ewk_view_viewport_attributes_get(Evas_Object *o, float* w, float* h, float* init_scale, float* max_scale, float* min_scale, float* device_pixel_ratio , Eina_Bool* user_scalable);
530e458d70a0d18538346f41b503114c9ebe6b2ce12Leon ClarkeEAPI Eina_Bool ewk_view_zoom_range_set(Evas_Object* o, float min_scale, float max_scale);
531e458d70a0d18538346f41b503114c9ebe6b2ce12Leon ClarkeEAPI float ewk_view_zoom_range_min_get(Evas_Object* o);
532e458d70a0d18538346f41b503114c9ebe6b2ce12Leon ClarkeEAPI float ewk_view_zoom_range_max_get(Evas_Object* o);
533e458d70a0d18538346f41b503114c9ebe6b2ce12Leon ClarkeEAPI void ewk_view_user_scalable_set(Evas_Object* o, Eina_Bool user_scalable);
534e458d70a0d18538346f41b503114c9ebe6b2ce12Leon ClarkeEAPI Eina_Bool ewk_view_user_scalable_get(Evas_Object* o);
535a94275402997c11dd2e778633dacf4b7e630a35dBen MurdochEAPI float ewk_view_device_pixel_ratio_get(Evas_Object* o);
536e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke
537dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#ifdef __cplusplus
538dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block}
539dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif
540dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif // ewk_view_h
541