4 * @image html img/widget/web/preview-00.png
5 * @image latex img/widget/web/preview-00.eps
7 * A web object is used for displaying web pages (HTML/CSS/JS)
8 * using WebKit-EFL. You must have compiled Elementary with
11 * Signals that you can add callbacks for are:
12 * @li "download,request": A file download has been requested. Event info is
13 * a pointer to a Elm_Web_Download
14 * @li "editorclient,contents,changed": Editor client's contents changed
15 * @li "editorclient,selection,changed": Editor client's selection changed
16 * @li "frame,created": A new frame was created. Event info is an
17 * Evas_Object which can be handled with WebKit's ewk_frame API
18 * @li "icon,received": An icon was received by the main frame
19 * @li "inputmethod,changed": Input method changed. Event info is an
20 * Eina_Bool indicating whether it's enabled or not
21 * @li "js,windowobject,clear": JS window object has been cleared
22 * @li "link,hover,in": Mouse cursor is hovering over a link. Event info
23 * is a char *link[2], where the first string contains the URL the link
24 * points to, and the second one the title of the link
25 * @li "link,hover,out": Mouse cursor left the link
26 * @li "load,document,finished": Loading of a document finished. Event info
27 * is the frame that finished loading
28 * @li "load,error": Load failed. Event info is a pointer to
29 * Elm_Web_Frame_Load_Error
30 * @li "load,finished": Load finished. Event info is NULL on success, on
31 * error it's a pointer to Elm_Web_Frame_Load_Error
32 * @li "load,newwindow,show": A new window was created and is ready to be
34 * @li "load,progress": Overall load progress. Event info is a pointer to
35 * a double containing a value between 0.0 and 1.0
36 * @li "load,provisional": Started provisional load
37 * @li "load,started": Loading of a document started
38 * @li "menubar,visible,get": Queries if the menubar is visible. Event info
39 * is a pointer to Eina_Bool where the callback should set EINA_TRUE if
40 * the menubar is visible, or EINA_FALSE in case it's not
41 * @li "menubar,visible,set": Informs menubar visibility. Event info is
42 * an Eina_Bool indicating the visibility
43 * @li "popup,created": A dropdown widget was activated, requesting its
44 * popup menu to be created. Event info is a pointer to Elm_Web_Menu
45 * @li "popup,willdelete": The web object is ready to destroy the popup
46 * object created. Event info is a pointer to Elm_Web_Menu
47 * @li "ready": Page is fully loaded
48 * @li "scrollbars,visible,get": Queries visibility of scrollbars. Event
49 * info is a pointer to Eina_Bool where the visibility state should be set
50 * @li "scrollbars,visible,set": Informs scrollbars visibility. Event info
51 * is an Eina_Bool with the visibility state set
52 * @li "statusbar,text,set": Text of the statusbar changed. Even info is
53 * a string with the new text
54 * @li "statusbar,visible,get": Queries visibility of the status bar.
55 * Event info is a pointer to Eina_Bool where the visibility state should be
57 * @li "statusbar,visible,set": Informs statusbar visibility. Event info is
58 * an Eina_Bool with the visibility value
59 * @li "title,changed": Title of the main frame changed. Event info is a
60 * string with the new title
61 * @li "toolbars,visible,get": Queries visibility of toolbars. Event info
62 * is a pointer to Eina_Bool where the visibility state should be set
63 * @li "toolbars,visible,set": Informs the visibility of toolbars. Event
64 * info is an Eina_Bool with the visibility state
65 * @li "tooltip,text,set": Show and set text of a tooltip. Event info is
66 * a string with the text to show
67 * @li "uri,changed": URI of the main frame changed. Event info is a string
69 * @li "view,resized": The web object internal's view changed sized
70 * @li "windows,close,request": A JavaScript request to close the current
71 * window was requested
72 * @li "zoom,animated,end": Animated zoom finished
77 * An example of use of web:
79 * - @ref web_example_01 TBD
88 * Structure used to report load errors.
90 * Load errors are reported as signal by elm_web. All the strings are
91 * temporary references and should @b not be used after the signal
92 * callback returns. If it's required, make copies with strdup() or
93 * eina_stringshare_add() (they are not even guaranteed to be
94 * stringshared, so must use eina_stringshare_add() and not
95 * eina_stringshare_ref()).
97 typedef struct _Elm_Web_Frame_Load_Error Elm_Web_Frame_Load_Error;
100 * Structure used to report load errors.
102 * Load errors are reported as signal by elm_web. All the strings are
103 * temporary references and should @b not be used after the signal
104 * callback returns. If it's required, make copies with strdup() or
105 * eina_stringshare_add() (they are not even guaranteed to be
106 * stringshared, so must use eina_stringshare_add() and not
107 * eina_stringshare_ref()).
109 struct _Elm_Web_Frame_Load_Error
111 int code; /**< Numeric error code */
112 Eina_Bool is_cancellation; /**< Error produced by cancelling a request */
113 const char *domain; /**< Error domain name */
114 const char *description; /**< Error description (already localized) */
115 const char *failing_url; /**< The URL that failed to load */
116 Evas_Object *frame; /**< Frame object that produced the error */
120 * The possibles types that the items in a menu can be
124 ELM_WEB_MENU_SEPARATOR,
127 } Elm_Web_Menu_Item_Type;
130 * Structure describing the items in a menu
132 typedef struct _Elm_Web_Menu_Item Elm_Web_Menu_Item;
135 * Structure describing the items in a menu
137 struct _Elm_Web_Menu_Item
139 const char *text; /**< The text for the item */
140 Elm_Web_Menu_Item_Type type; /**< The type of the item */
144 * Structure describing the menu of a popup
146 * This structure will be passed as the @c event_info for the "popup,create"
147 * signal, which is emitted when a dropdown menu is opened. Users wanting
148 * to handle these popups by themselves should listen to this signal and
149 * set the @c handled property of the struct to @c EINA_TRUE. Leaving this
150 * property as @c EINA_FALSE means that the user will not handle the popup
151 * and the default implementation will be used.
153 * When the popup is ready to be dismissed, a "popup,willdelete" signal
154 * will be emitted to notify the user that it can destroy any objects and
155 * free all data related to it.
157 * @see elm_web_popup_selected_set()
158 * @see elm_web_popup_destroy()
160 typedef struct _Elm_Web_Menu Elm_Web_Menu;
163 * Structure describing the menu of a popup
165 * This structure will be passed as the @c event_info for the "popup,create"
166 * signal, which is emitted when a dropdown menu is opened. Users wanting
167 * to handle these popups by themselves should listen to this signal and
168 * set the @c handled property of the struct to @c EINA_TRUE. Leaving this
169 * property as @c EINA_FALSE means that the user will not handle the popup
170 * and the default implementation will be used.
172 * When the popup is ready to be dismissed, a "popup,willdelete" signal
173 * will be emitted to notify the user that it can destroy any objects and
174 * free all data related to it.
176 * @see elm_web_popup_selected_set()
177 * @see elm_web_popup_destroy()
181 Eina_List *items; /**< List of #Elm_Web_Menu_Item */
182 int x; /**< The X position of the popup, relative to the elm_web object */
183 int y; /**< The Y position of the popup, relative to the elm_web object */
184 int width; /**< Width of the popup menu */
185 int height; /**< Height of the popup menu */
187 Eina_Bool handled : 1; /**< Set to @c EINA_TRUE by the user to indicate that the popup has been handled and the default implementation should be ignored. Leave as @c EINA_FALSE otherwise. */
190 typedef struct _Elm_Web_Download Elm_Web_Download;
191 struct _Elm_Web_Download
197 * Types of zoom available.
201 ELM_WEB_ZOOM_MODE_MANUAL = 0, /**< Zoom controlled normally by elm_web_zoom_set */
202 ELM_WEB_ZOOM_MODE_AUTO_FIT, /**< Zoom until content fits in web object */
203 ELM_WEB_ZOOM_MODE_AUTO_FILL, /**< Zoom until content fills web object */
204 ELM_WEB_ZOOM_MODE_LAST
208 * Opaque handler containing the features (such as statusbar, menubar, etc)
209 * that are to be set on a newly requested window.
211 typedef struct _Elm_Web_Window_Features Elm_Web_Window_Features;
214 * Callback type for the create_window hook.
216 * The function parameters are:
217 * @li @p data User data pointer set when setting the hook function
218 * @li @p obj The elm_web object requesting the new window
219 * @li @p js Set to @c EINA_TRUE if the request was originated from
220 * JavaScript. @c EINA_FALSE otherwise.
221 * @li @p window_features A pointer of #Elm_Web_Window_Features indicating
222 * the features requested for the new window.
224 * The returned value of the function should be the @c elm_web widget where
225 * the request will be loaded. That is, if a new window or tab is created,
226 * the elm_web widget in it should be returned, and @b NOT the window
228 * Returning @c NULL should cancel the request.
230 * @see elm_web_window_create_hook_set()
232 typedef Evas_Object *(*Elm_Web_Window_Open)(void *data, Evas_Object *obj, Eina_Bool js, const Elm_Web_Window_Features *window_features);
235 * Callback type for the JS alert hook.
237 * The function parameters are:
238 * @li @p data User data pointer set when setting the hook function
239 * @li @p obj The elm_web object requesting the new window
240 * @li @p message The message to show in the alert dialog
242 * The function should return the object representing the alert dialog.
243 * Elm_Web will run a second main loop to handle the dialog and normal
244 * flow of the application will be restored when the object is deleted, so
245 * the user should handle the popup properly in order to delete the object
246 * when the action is finished.
247 * If the function returns @c NULL the popup will be ignored.
249 * @see elm_web_dialog_alert_hook_set()
251 typedef Evas_Object *(*Elm_Web_Dialog_Alert)(void *data, Evas_Object *obj, const char *message);
254 * Callback type for the JS confirm hook.
256 * The function parameters are:
257 * @li @p data User data pointer set when setting the hook function
258 * @li @p obj The elm_web object requesting the new window
259 * @li @p message The message to show in the confirm dialog
260 * @li @p ret Pointer where to store the user selection. @c EINA_TRUE if
261 * the user selected @c Ok, @c EINA_FALSE otherwise.
263 * The function should return the object representing the confirm dialog.
264 * Elm_Web will run a second main loop to handle the dialog and normal
265 * flow of the application will be restored when the object is deleted, so
266 * the user should handle the popup properly in order to delete the object
267 * when the action is finished.
268 * If the function returns @c NULL the popup will be ignored.
270 * @see elm_web_dialog_confirm_hook_set()
272 typedef Evas_Object *(*Elm_Web_Dialog_Confirm)(void *data, Evas_Object *obj, const char *message, Eina_Bool *ret);
275 * Callback type for the JS prompt hook.
277 * The function parameters are:
278 * @li @p data User data pointer set when setting the hook function
279 * @li @p obj The elm_web object requesting the new window
280 * @li @p message The message to show in the prompt dialog
281 * @li @p def_value The default value to present the user in the entry
282 * @li @p value Pointer where to store the value given by the user. Must
283 * be a malloc'ed string or @c NULL if the user cancelled the popup.
284 * @li @p ret Pointer where to store the user selection. @c EINA_TRUE if
285 * the user selected @c Ok, @c EINA_FALSE otherwise.
287 * The function should return the object representing the prompt dialog.
288 * Elm_Web will run a second main loop to handle the dialog and normal
289 * flow of the application will be restored when the object is deleted, so
290 * the user should handle the popup properly in order to delete the object
291 * when the action is finished.
292 * If the function returns @c NULL the popup will be ignored.
294 * @see elm_web_dialog_prompt_hook_set()
296 typedef Evas_Object *(*Elm_Web_Dialog_Prompt)(void *data, Evas_Object *obj, const char *message, const char *def_value, char **value, Eina_Bool *ret);
299 * Callback type for the JS file selector hook.
301 * The function parameters are:
302 * @li @p data User data pointer set when setting the hook function
303 * @li @p obj The elm_web object requesting the new window
304 * @li @p allows_multiple @c EINA_TRUE if multiple files can be selected.
305 * @li @p accept_types Mime types accepted
306 * @li @p selected Pointer where to store the list of malloc'ed strings
307 * containing the path to each file selected. Must be @c NULL if the file
308 * dialog is cancelled
309 * @li @p ret Pointer where to store the user selection. @c EINA_TRUE if
310 * the user selected @c Ok, @c EINA_FALSE otherwise.
312 * The function should return the object representing the file selector
314 * Elm_Web will run a second main loop to handle the dialog and normal
315 * flow of the application will be restored when the object is deleted, so
316 * the user should handle the popup properly in order to delete the object
317 * when the action is finished.
318 * If the function returns @c NULL the popup will be ignored.
320 * @see elm_web_dialog_file selector_hook_set()
322 typedef Evas_Object *(*Elm_Web_Dialog_File_Selector)(void *data, Evas_Object *obj, Eina_Bool allows_multiple, Eina_List *accept_types, Eina_List **selected, Eina_Bool *ret);
325 * Callback type for the JS console message hook.
327 * When a console message is added from JavaScript, any set function to the
328 * console message hook will be called for the user to handle. There is no
329 * default implementation of this hook.
331 * The function parameters are:
332 * @li @p data User data pointer set when setting the hook function
333 * @li @p obj The elm_web object that originated the message
334 * @li @p message The message sent
335 * @li @p line_number The line number
336 * @li @p source_id Source id
338 * @see elm_web_console_message_hook_set()
340 typedef void (*Elm_Web_Console_Message)(void *data, Evas_Object *obj, const char *message, unsigned int line_number, const char *source_id);
343 * Add a new web object to the parent.
345 * @param parent The parent object.
346 * @return The new object or NULL if it cannot be created.
348 * @see elm_web_uri_set()
349 * @see elm_web_webkit_view_get()
351 EAPI Evas_Object *elm_web_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
354 * Get internal ewk_view object from web object.
356 * Elementary may not provide some low level features of EWebKit,
357 * instead of cluttering the API with proxy methods we opted to
358 * return the internal reference. Be careful using it as it may
359 * interfere with elm_web behavior.
361 * @param obj The web object.
362 * @return The internal ewk_view object or NULL if it does not
363 * exist. (Failure to create or Elementary compiled without
368 EAPI Evas_Object *elm_web_webkit_view_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
371 * Sets the function to call when a new window is requested
373 * This hook will be called when a request to create a new window is
374 * issued from the web page loaded.
375 * There is no default implementation for this feature, so leaving this
376 * unset or passing @c NULL in @p func will prevent new windows from
379 * @param obj The web object where to set the hook function
380 * @param func The hook function to be called when a window is requested
381 * @param data User data
383 EAPI void elm_web_window_create_hook_set(Evas_Object *obj, Elm_Web_Window_Open func, void *data);
386 * Sets the function to call when an alert dialog
388 * This hook will be called when a JavaScript alert dialog is requested.
389 * If no function is set or @c NULL is passed in @p func, the default
390 * implementation will take place.
392 * @param obj The web object where to set the hook function
393 * @param func The callback function to be used
394 * @param data User data
396 * @see elm_web_inwin_mode_set()
398 EAPI void elm_web_dialog_alert_hook_set(Evas_Object *obj, Elm_Web_Dialog_Alert func, void *data);
401 * Sets the function to call when an confirm dialog
403 * This hook will be called when a JavaScript confirm dialog is requested.
404 * If no function is set or @c NULL is passed in @p func, the default
405 * implementation will take place.
407 * @param obj The web object where to set the hook function
408 * @param func The callback function to be used
409 * @param data User data
411 * @see elm_web_inwin_mode_set()
413 EAPI void elm_web_dialog_confirm_hook_set(Evas_Object *obj, Elm_Web_Dialog_Confirm func, void *data);
416 * Sets the function to call when an prompt dialog
418 * This hook will be called when a JavaScript prompt dialog is requested.
419 * If no function is set or @c NULL is passed in @p func, the default
420 * implementation will take place.
422 * @param obj The web object where to set the hook function
423 * @param func The callback function to be used
424 * @param data User data
426 * @see elm_web_inwin_mode_set()
428 EAPI void elm_web_dialog_prompt_hook_set(Evas_Object *obj, Elm_Web_Dialog_Prompt func, void *data);
431 * Sets the function to call when an file selector dialog
433 * This hook will be called when a JavaScript file selector dialog is
435 * If no function is set or @c NULL is passed in @p func, the default
436 * implementation will take place.
438 * @param obj The web object where to set the hook function
439 * @param func The callback function to be used
440 * @param data User data
442 * @see elm_web_inwin_mode_set()
444 EAPI void elm_web_dialog_file_selector_hook_set(Evas_Object *obj, Elm_Web_Dialog_File_Selector func, void *data);
447 * Sets the function to call when a console message is emitted from JS
449 * This hook will be called when a console message is emitted from
450 * JavaScript. There is no default implementation for this feature.
452 * @param obj The web object where to set the hook function
453 * @param func The callback function to be used
454 * @param data User data
456 EAPI void elm_web_console_message_hook_set(Evas_Object *obj, Elm_Web_Console_Message func, void *data);
459 * Gets the status of the tab propagation
461 * @param obj The web object to query
462 * @return EINA_TRUE if tab propagation is enabled, EINA_FALSE otherwise
464 * @see elm_web_tab_propagate_set()
466 EAPI Eina_Bool elm_web_tab_propagate_get(const Evas_Object *obj);
469 * Sets whether to use tab propagation
471 * If tab propagation is enabled, whenever the user presses the Tab key,
472 * Elementary will handle it and switch focus to the next widget.
473 * The default value is disabled, where WebKit will handle the Tab key to
474 * cycle focus though its internal objects, jumping to the next widget
475 * only when that cycle ends.
477 * @param obj The web object
478 * @param propagate Whether to propagate Tab keys to Elementary or not
480 EAPI void elm_web_tab_propagate_set(Evas_Object *obj, Eina_Bool propagate);
483 * Sets the URI for the web object
485 * It must be a full URI, with resource included, in the form
486 * http://www.enlightenment.org or file:///tmp/something.html
488 * @param obj The web object
489 * @param uri The URI to set
490 * @return EINA_TRUE if the URI could be, EINA_FALSE if an error occurred
492 EAPI Eina_Bool elm_web_uri_set(Evas_Object *obj, const char *uri);
495 * Gets the current URI for the object
497 * The returned string must not be freed and is guaranteed to be
500 * @param obj The web object
501 * @return A stringshared internal string with the current URI, or NULL on
504 EAPI const char *elm_web_uri_get(const Evas_Object *obj);
507 * Gets the current title
509 * The returned string must not be freed and is guaranteed to be
512 * @param obj The web object
513 * @return A stringshared internal string with the current title, or NULL on
516 EAPI const char *elm_web_title_get(const Evas_Object *obj);
519 * Sets the background color to be used by the web object
521 * This is the color that will be used by default when the loaded page
522 * does not set it's own. Color values are pre-multiplied.
524 * @param obj The web object
525 * @param r Red component
526 * @param g Green component
527 * @param b Blue component
528 * @param a Alpha component
530 EAPI void elm_web_bg_color_set(Evas_Object *obj, int r, int g, int b, int a);
533 * Gets the background color to be used by the web object
535 * This is the color that will be used by default when the loaded page
536 * does not set it's own. Color values are pre-multiplied.
538 * @param obj The web object
539 * @param r Red component
540 * @param g Green component
541 * @param b Blue component
542 * @param a Alpha component
544 EAPI void elm_web_bg_color_get(const Evas_Object *obj, int *r, int *g, int *b, int *a);
547 * Gets a copy of the currently selected text
549 * The string returned must be freed by the user when it's done with it.
551 * @param obj The web object
552 * @return A newly allocated string, or NULL if nothing is selected or an
555 EAPI char *elm_view_selection_get(const Evas_Object *obj);
558 * Tells the web object which index in the currently open popup was selected
560 * When the user handles the popup creation from the "popup,created" signal,
561 * it needs to tell the web object which item was selected by calling this
562 * function with the index corresponding to the item.
564 * @param obj The web object
565 * @param index The index selected
567 * @see elm_web_popup_destroy()
569 EAPI void elm_web_popup_selected_set(Evas_Object *obj, int index);
572 * Dismisses an open dropdown popup
574 * When the popup from a dropdown widget is to be dismissed, either after
575 * selecting an option or to cancel it, this function must be called, which
576 * will later emit an "popup,willdelete" signal to notify the user that
577 * any memory and objects related to this popup can be freed.
579 * @param obj The web object
580 * @return EINA_TRUE if the menu was successfully destroyed, or EINA_FALSE
581 * if there was no menu to destroy
583 EAPI Eina_Bool elm_web_popup_destroy(Evas_Object *obj);
586 * Searches the given string in a document.
588 * @param obj The web object where to search the text
589 * @param string String to search
590 * @param case_sensitive If search should be case sensitive or not
591 * @param forward If search is from cursor and on or backwards
592 * @param wrap If search should wrap at the end
594 * @return @c EINA_TRUE if the given string was found, @c EINA_FALSE if not
597 EAPI Eina_Bool elm_web_text_search(const Evas_Object *obj, const char *string, Eina_Bool case_sensitive, Eina_Bool forward, Eina_Bool wrap);
600 * Marks matches of the given string in a document.
602 * @param obj The web object where to search text
603 * @param string String to match
604 * @param case_sensitive If match should be case sensitive or not
605 * @param highlight If matches should be highlighted
606 * @param limit Maximum amount of matches, or zero to unlimited
608 * @return number of matched @a string
610 EAPI unsigned int elm_web_text_matches_mark(Evas_Object *obj, const char *string, Eina_Bool case_sensitive, Eina_Bool highlight, unsigned int limit);
613 * Clears all marked matches in the document
615 * @param obj The web object
617 * @return EINA_TRUE on success, EINA_FALSE otherwise
619 EAPI Eina_Bool elm_web_text_matches_unmark_all(Evas_Object *obj);
622 * Sets whether to highlight the matched marks
624 * If enabled, marks set with elm_web_text_matches_mark() will be
627 * @param obj The web object
628 * @param highlight Whether to highlight the marks or not
630 * @return EINA_TRUE on success, EINA_FALSE otherwise
632 EAPI Eina_Bool elm_web_text_matches_highlight_set(Evas_Object *obj, Eina_Bool highlight);
635 * Gets whether highlighting marks is enabled
637 * @param The web object
639 * @return EINA_TRUE is marks are set to be highlighted, EINA_FALSE
642 EAPI Eina_Bool elm_web_text_matches_highlight_get(const Evas_Object *obj);
645 * Gets the overall loading progress of the page
647 * Returns the estimated loading progress of the page, with a value between
648 * 0.0 and 1.0. This is an estimated progress accounting for all the frames
649 * included in the page.
651 * @param The web object
653 * @return A value between 0.0 and 1.0 indicating the progress, or -1.0 on
656 EAPI double elm_web_load_progress_get(const Evas_Object *obj);
659 * Stops loading the current page
661 * Cancels the loading of the current page in the web object. This will
662 * cause a "load,error" signal to be emitted, with the is_cancellation
663 * flag set to EINA_TRUE.
665 * @param obj The web object
667 * @return EINA_TRUE if the cancel was successful, EINA_FALSE otherwise
669 EAPI Eina_Bool elm_web_stop(Evas_Object *obj);
672 * Requests a reload of the current document in the object
674 * @param obj The web object
676 * @return EINA_TRUE on success, EINA_FALSE otherwise
678 EAPI Eina_Bool elm_web_reload(Evas_Object *obj);
681 * Requests a reload of the current document, avoiding any existing caches
683 * @param obj The web object
685 * @return EINA_TRUE on success, EINA_FALSE otherwise
687 EAPI Eina_Bool elm_web_reload_full(Evas_Object *obj);
690 * Goes back one step in the browsing history
692 * This is equivalent to calling elm_web_object_navigate(obj, -1);
694 * @param obj The web object
696 * @return EINA_TRUE on success, EINA_FALSE otherwise
698 * @see elm_web_history_enable_set()
699 * @see elm_web_back_possible()
700 * @see elm_web_forward()
701 * @see elm_web_navigate()
703 EAPI Eina_Bool elm_web_back(Evas_Object *obj);
706 * Goes forward one step in the browsing history
708 * This is equivalent to calling elm_web_object_navigate(obj, 1);
710 * @param obj The web object
712 * @return EINA_TRUE on success, EINA_FALSE otherwise
714 * @see elm_web_history_enable_set()
715 * @see elm_web_forward_possible()
716 * @see elm_web_back()
717 * @see elm_web_navigate()
719 EAPI Eina_Bool elm_web_forward(Evas_Object *obj);
722 * Jumps the given number of steps in the browsing history
724 * The @p steps value can be a negative integer to back in history, or a
725 * positive to move forward.
727 * @param obj The web object
728 * @param steps The number of steps to jump
730 * @return EINA_TRUE on success, EINA_FALSE on error or if not enough
731 * history exists to jump the given number of steps
733 * @see elm_web_history_enable_set()
734 * @see elm_web_navigate_possible()
735 * @see elm_web_back()
736 * @see elm_web_forward()
738 EAPI Eina_Bool elm_web_navigate(Evas_Object *obj, int steps);
741 * Queries whether it's possible to go back in history
743 * @param obj The web object
745 * @return EINA_TRUE if it's possible to back in history, EINA_FALSE
748 EAPI Eina_Bool elm_web_back_possible(Evas_Object *obj);
751 * Queries whether it's possible to go forward in history
753 * @param obj The web object
755 * @return EINA_TRUE if it's possible to forward in history, EINA_FALSE
758 EAPI Eina_Bool elm_web_forward_possible(Evas_Object *obj);
761 * Queries whether it's possible to jump the given number of steps
763 * The @p steps value can be a negative integer to back in history, or a
764 * positive to move forward.
766 * @param obj The web object
767 * @param steps The number of steps to check for
769 * @return EINA_TRUE if enough history exists to perform the given jump,
770 * EINA_FALSE otherwise
772 EAPI Eina_Bool elm_web_navigate_possible(Evas_Object *obj, int steps);
775 * Gets whether browsing history is enabled for the given object
777 * @param obj The web object
779 * @return EINA_TRUE if history is enabled, EINA_FALSE otherwise
781 EAPI Eina_Bool elm_web_history_enable_get(const Evas_Object *obj);
784 * Enables or disables the browsing history
786 * @param obj The web object
787 * @param enable Whether to enable or disable the browsing history
789 EAPI void elm_web_history_enable_set(Evas_Object *obj, Eina_Bool enable);
792 * Sets the zoom level of the web object
794 * Zoom level matches the Webkit API, so 1.0 means normal zoom, with higher
795 * values meaning zoom in and lower meaning zoom out. This function will
796 * only affect the zoom level if the mode set with elm_web_zoom_mode_set()
797 * is ::ELM_WEB_ZOOM_MODE_MANUAL.
799 * @param obj The web object
800 * @param zoom The zoom level to set
802 EAPI void elm_web_zoom_set(Evas_Object *obj, double zoom);
805 * Gets the current zoom level set on the web object
807 * Note that this is the zoom level set on the web object and not that
808 * of the underlying Webkit one. In the ::ELM_WEB_ZOOM_MODE_MANUAL mode,
809 * the two zoom levels should match, but for the other two modes the
810 * Webkit zoom is calculated internally to match the chosen mode without
811 * changing the zoom level set for the web object.
813 * @param obj The web object
815 * @return The zoom level set on the object
817 EAPI double elm_web_zoom_get(const Evas_Object *obj);
820 * Sets the zoom mode to use
822 * The modes can be any of those defined in ::Elm_Web_Zoom_Mode, except
823 * ::ELM_WEB_ZOOM_MODE_LAST. The default is ::ELM_WEB_ZOOM_MODE_MANUAL.
825 * ::ELM_WEB_ZOOM_MODE_MANUAL means the zoom level will be controlled
826 * with the elm_web_zoom_set() function.
827 * ::ELM_WEB_ZOOM_MODE_AUTO_FIT will calculate the needed zoom level to
828 * make sure the entirety of the web object's contents are shown.
829 * ::ELM_WEB_ZOOM_MODE_AUTO_FILL will calculate the needed zoom level to
830 * fit the contents in the web object's size, without leaving any space
833 * @param obj The web object
834 * @param mode The mode to set
836 EAPI void elm_web_zoom_mode_set(Evas_Object *obj, Elm_Web_Zoom_Mode mode);
839 * Gets the currently set zoom mode
841 * @param obj The web object
843 * @return The current zoom mode set for the object, or
844 * ::ELM_WEB_ZOOM_MODE_LAST on error
846 EAPI Elm_Web_Zoom_Mode elm_web_zoom_mode_get(const Evas_Object *obj);
849 * Shows the given region in the web object
851 * @param obj The web object
852 * @param x The x coordinate of the region to show
853 * @param y The y coordinate of the region to show
854 * @param w The width of the region to show
855 * @param h The height of the region to show
857 EAPI void elm_web_region_show(Evas_Object *obj, int x, int y, int w, int h);
860 * Brings in the region to the visible area
862 * Like elm_web_region_show(), but it animates the scrolling of the object
865 * @param obj The web object
866 * @param x The x coordinate of the region to show
867 * @param y The y coordinate of the region to show
868 * @param w The width of the region to show
869 * @param h The height of the region to show
871 EAPI void elm_web_region_bring_in(Evas_Object *obj, int x, int y, int w, int h);
874 * Sets the default dialogs to use an Inwin instead of a normal window
876 * If set, then the default implementation for the JavaScript dialogs and
877 * file selector will be opened in an Inwin. Otherwise they will use a
878 * normal separated window.
880 * @param obj The web object
881 * @param value EINA_TRUE to use Inwin, EINA_FALSE to use a normal window
883 EAPI void elm_web_inwin_mode_set(Evas_Object *obj, Eina_Bool value);
886 * Gets whether Inwin mode is set for the current object
888 * @param obj The web object
890 * @return EINA_TRUE if Inwin mode is set, EINA_FALSE otherwise
892 EAPI Eina_Bool elm_web_inwin_mode_get(const Evas_Object *obj);
894 EAPI void elm_web_window_features_ref(Elm_Web_Window_Features *wf);
895 EAPI void elm_web_window_features_unref(Elm_Web_Window_Features *wf);
896 EAPI void elm_web_window_features_bool_property_get(const Elm_Web_Window_Features *wf, Eina_Bool *toolbar_visible, Eina_Bool *statusbar_visible, Eina_Bool *scrollbars_visible, Eina_Bool *menubar_visible, Eina_Bool *locationbar_visble, Eina_Bool *fullscreen);
897 EAPI void elm_web_window_features_int_property_get(const Elm_Web_Window_Features *wf, int *x, int *y, int *w, int *h);