123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997 |
- /*
- Copyright (C) 2009-2010 ProFUSION embedded systems
- Copyright (C) 2009-2010 Samsung Electronics
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
- */
- /**
- * @file ewk_frame.h
- * @brief WebKit frame smart object.
- *
- * This object is the low level access to WebKit-EFL browser
- * component. It represents both the main and internal frames that
- * HTML pages contain.
- *
- * Every ewk_view has at least one frame, called "main frame" and
- * retrieved with ewk_view_frame_main_get(). One can retrieve frame's
- * owner view with ewk_frame_view_get(). Parent frame can be retrieved
- * with standard smart object's evas_object_smart_parent_get().
- * Children can be accessed with ewk_frame_children_iterator_new() or
- * ewk_frame_child_find().
- *
- * The following signals (see evas_object_smart_callback_add()) are emitted:
- *
- * - "contents,size,changed", Evas_Coord[2]: reports contents size
- * were changed due new layout, script actions or any other events.
- * - "editorclient,contents,changed", void: reports that editor client's
- * contents were changed
- * - "icon,changed", void: frame favicon changed.
- * - "load,committed", void: reports load committed.
- * - "load,document,finished", void: frame finished loading the document.
- * - "load,error", const Ewk_Frame_Load_Error*: reports load failed
- * and it gives a pointer to structure defining the error as an argument.
- * - "load,finished", const Ewk_Frame_Load_Error*: reports load
- * finished and it gives @c NULL on success or pointer to
- * structure defining the error.
- * - "load,resource,finished", unsigned long*: reports resource load finished and it gives
- * a pointer to its identifier.
- * - "load,resource,failed", Ewk_Frame_Load_Error*: reports resource load failure and it
- * gives a pointer to structure defining the error as an argument.
- * - "load,firstlayout,finished", void: frame finished first layout.
- * - "load,nonemptylayout,finished", void: frame finished first
- * non-empty layout.
- * - "load,progress", double*: load progress is changed (overall value
- * from 0.0 to 1.0, connect to individual frames for fine grained).
- * - "load,provisional", void: frame started provisional load.
- * - "load,provisional,failed", Ewk_Frame_Load_Error*: frame provisional load failed.
- * - "load,started", void: frame started loading the document.
- * - "mixedcontent,displayed", void: frame has loaded and displayed mixed content.
- * - "mixedcontent,run", void: frame has loaded and run mixed content.
- * - "navigation,first", void: first navigation was occurred.
- * - "redirect,cancelled", void: client redirect was cancelled.
- * - "redirect,load,provisional", void: received server redirect for provisional load.
- * - "redirect,requested", const char*: url of the client redirect that will be performed.
- * - "resource,request,new", Ewk_Frame_Resource_Request*: reports that
- * there's a new resource request.
- * - "resource,request,willsend", Ewk_Frame_Resource_Messages*: a resource will be requested.
- * and the possible redirect response.
- * - "resource,response,received", Ewk_Frame_Resource_Response*: reports that a response
- * to a resource request was received.
- * - "state,save", void: frame's state will be saved as a history item.
- * - "title,changed", Ewk_Text_With_Direction*: title of the main frame was changed.
- * - "uri,changed", const char*: uri of the main frame was changed.
- * - "xss,detected", Ewk_Frame_Xss_Notification*: reflected XSS is encountered in the page and suppressed.
- */
- #ifndef ewk_frame_h
- #define ewk_frame_h
- #include "ewk_security_origin.h"
- #include <Evas.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- /// Creates a type name for _Ewk_Frame_Load_Error.
- typedef struct _Ewk_Frame_Load_Error Ewk_Frame_Load_Error;
- /**
- * @brief Structure used to report load errors.
- *
- * Load errors are reported as signal by ewk_view. All the strings are
- * temporary references and should @b not be used after the signal
- * callback returns. If it's required, make copies with strdup() or
- * eina_stringshare_add() (they are not even guaranteed to be
- * stringshared, so must use eina_stringshare_add() and not
- * eina_stringshare_ref()).
- */
- struct _Ewk_Frame_Load_Error {
- int code; /**< numeric error code */
- Eina_Bool is_cancellation; /**< if load failed because it was canceled */
- const char *domain; /**< error domain name */
- const char *description; /**< error description already localized */
- const char *failing_url; /**< the url that failed to load */
- unsigned long resource_identifier; /**< identifier of resource */
- Evas_Object *frame; /**< frame where the failure happened */
- };
- /// Creates a type name for _Ewk_Frame_Resource_Request.
- typedef struct _Ewk_Frame_Resource_Request Ewk_Frame_Resource_Request;
- /**
- * @brief Structure containing details about a resource request.
- *
- * Details given before a resource is loaded on a given frame. It's used in
- * Ewk_Frame_Resource_Messages to inform about the details of a resource request.
- */
- struct _Ewk_Frame_Resource_Request {
- const char *url; /**< url of the resource */
- const char *first_party; /**< first party for cookies, can not be changed */
- const char *http_method; /**< http method, can not be changed */
- const unsigned long identifier; /**< identifier of resource, can not be changed */
- Evas_Object *frame; /**< frame where the resource is requested */
- Eina_Bool is_main_frame_request; /** < indicates if the request is for the main frame */
- };
- /// Creates a type name for _Ewk_Frame_Resource_Response.
- typedef struct _Ewk_Frame_Resource_Response Ewk_Frame_Resource_Response;
- /**
- * @brief Structure containing details about a response to a resource request.
- *
- * Details given in the response to a resource request. It's used by
- * ewk_frame_response_received() to inform about the details of a response.
- */
- struct _Ewk_Frame_Resource_Response {
- const char *url; /**< url of the resource */
- int status_code; /**< http status code */
- unsigned long identifier; /**< identifier of resource */
- const char *mime_type; /**< MIME type of the resource */
- };
- /// Creates a type name for _Ewk_Frame_Resource_Messages.
- typedef struct _Ewk_Frame_Resource_Messages Ewk_Frame_Resource_Messages;
- struct _Ewk_Frame_Resource_Messages {
- Ewk_Frame_Resource_Request *request; /**< resource request */
- Ewk_Frame_Resource_Response *redirect_response; /**< redirect response, can not be changed */
- };
- /// Enum containing text directionality values.
- typedef enum {
- EWK_TEXT_DIRECTION_DEFAULT, /**< Natural writing direction ("inherit") */
- EWK_TEXT_DIRECTION_LEFT_TO_RIGHT,
- EWK_TEXT_DIRECTION_RIGHT_TO_LEFT
- } Ewk_Text_Direction;
- /// Creates a type name for Ewk_Text_With_Direction.
- typedef struct _Ewk_Text_With_Direction Ewk_Text_With_Direction;
- struct _Ewk_Text_With_Direction {
- const char *string;
- Ewk_Text_Direction direction;
- };
- /// Creates a type name for Ewk_Frame_Xss_Notification.
- typedef struct _Ewk_Frame_Xss_Notification Ewk_Frame_Xss_Notification;
- /**
- * @brief Structure used to report reflected XSS is encountered in the page.
- *
- * This structure contains information received from the XSSAuditor when reflected XSS
- * is encountered in the page. The string is temporary reference and should @b not
- * be used after the signal callback returns. If it's required, make a copy of it.
- */
- struct _Ewk_Frame_Xss_Notification {
- const char *insecure_url; /**< insecure url of the document */
- Eina_Bool is_entire_page_blocked; /** < indicates if the entire page was blocked by XSSAuditor */
- };
- /// Enum containing hit test data types
- typedef enum {
- EWK_HIT_TEST_RESULT_CONTEXT_DOCUMENT = 1 << 1,
- EWK_HIT_TEST_RESULT_CONTEXT_LINK = 1 << 2,
- EWK_HIT_TEST_RESULT_CONTEXT_IMAGE = 1 << 3,
- EWK_HIT_TEST_RESULT_CONTEXT_MEDIA = 1 << 4,
- EWK_HIT_TEST_RESULT_CONTEXT_SELECTION = 1 << 5,
- EWK_HIT_TEST_RESULT_CONTEXT_EDITABLE = 1 << 6
- } Ewk_Hit_Test_Result_Context;
- /// Enum containing navigation types
- typedef enum {
- EWK_NAVIGATION_TYPE_LINK_CLICKED,
- EWK_NAVIGATION_TYPE_FORM_SUBMITTED,
- EWK_NAVIGATION_TYPE_BACK_FORWARD,
- EWK_NAVIGATION_TYPE_RELOAD,
- EWK_NAVIGATION_TYPE_FORM_RESUBMITTED,
- EWK_NAVIGATION_TYPE_OTHER
- } Ewk_Navigation_Type;
- /// Creates a type name for _Ewk_Hit_Test.
- typedef struct _Ewk_Hit_Test Ewk_Hit_Test;
- /// Structure used to report hit test result.
- struct _Ewk_Hit_Test {
- int x; /**< the horizontal position of the hit test */
- int y; /**< the vertical position of the hit test */
- struct {
- int x, y, w, h;
- } bounding_box; /**< DEPRECATED, see ewk_frame_hit_test_new() */
- Ewk_Text_With_Direction title; /**< title of the element */
- const char *alternate_text; /**< the alternate text for image, area, input and applet */
- Evas_Object *frame; /**< the pointer to frame where hit test was requested */
- struct {
- const char *text; /**< the text of the link */
- const char *url; /**< URL of the link */
- const char *title; /**< the title of link */
- Evas_Object *target_frame;
- } link;
- const char *image_uri;
- const char *media_uri;
- Ewk_Hit_Test_Result_Context context;
- };
- /// Represents actions of touch events.
- typedef enum {
- EWK_TOUCH_START,
- EWK_TOUCH_MOVE,
- EWK_TOUCH_END,
- EWK_TOUCH_CANCEL
- } Ewk_Touch_Event_Type;
- /// Represents states of touch events.
- typedef enum {
- EWK_TOUCH_POINT_RELEASED,
- EWK_TOUCH_POINT_PRESSED,
- EWK_TOUCH_POINT_MOVED,
- EWK_TOUCH_POINT_STATIONARY,
- EWK_TOUCH_POINT_CANCELLED,
- EWK_TOUCH_POINT_END
- } Ewk_Touch_Point_Type;
- /// Creates a type name for _Ewk_Touch_Point.
- typedef struct _Ewk_Touch_Point Ewk_Touch_Point;
- /// Represents a touch point.
- struct _Ewk_Touch_Point {
- unsigned int id; /**< identifier of the touch event */
- int x; /**< the horizontal position of the touch event */
- int y; /**< the horizontal position of the touch event */
- Ewk_Touch_Point_Type state; /**< state of the touch event */
- };
- typedef enum {
- EWK_TEXT_SELECTION_NONE,
- EWK_TEXT_SELECTION_CARET,
- EWK_TEXT_SELECTION_RANGE
- } Ewk_Text_Selection_Type;
- /**
- * Represents the validity of a X.509 certificate related to the current frame.
- *
- * A certificate is considered untrusted when any problem is found in it: it may have
- * expired, the certificate's Common Name does not match the current host, the certificate
- * does not validate against the current set of root CA certificates etc.
- *
- * @sa ewk_frame_certificate_status_get, ewk_network_tls_ca_certificates_path_set
- */
- typedef enum {
- EWK_CERTIFICATE_STATUS_NO_CERTIFICATE = 1 << 1, /**< No certificate provided (non-HTTPS connection). */
- EWK_CERTIFICATE_STATUS_UNTRUSTED = 1 << 2, /**< The certificate provided is not trusted. */
- EWK_CERTIFICATE_STATUS_TRUSTED = 1 << 3 /**< The certificate is valid and fully trusted. */
- } Ewk_Certificate_Status;
- /**
- * Retrieves the ewk_view object that owns this frame.
- *
- * @param o frame object to get view object
- *
- * @return view object or @c NULL on failure
- */
- EAPI Evas_Object *ewk_frame_view_get(const Evas_Object *o);
- /**
- * Retrieves the Ewk_Security_Origin of this frame.
- *
- * The returned object should be freed by ewk_security_origin_free().
- *
- * @param o frame object to get the security origin
- *
- * @return security origin object
- */
- EAPI Ewk_Security_Origin *ewk_frame_security_origin_get(const Evas_Object *o);
- /**
- * Returns a new iterator over all direct children frames.
- *
- * Keep frame object intact while iteration happens otherwise frame
- * may be destroyed while iterated.
- *
- * Iteration results are Evas_Object*, so give eina_iterator_next() a
- * pointer to it.
- *
- * Returned iterator should be freed by eina_iterator_free().
- *
- * @param o frame object to create the iterator
- *
- * @return a newly allocated iterator on sucess, or @c NULL if not possible to
- * create the iterator
- */
- EAPI Eina_Iterator *ewk_frame_children_iterator_new(Evas_Object *o);
- /**
- * Finds a child frame by its name, recursively.
- *
- * For pre-defined names, returns @a o if @a name is "_self" or
- * "_current", returns @a o's parent frame if @a name is "_parent",
- * and returns the main frame if @a name is "_top". Also returns @a o
- * if it is the main frame and @a name is either "_parent" or
- * "_top". For other names, this function returns the first frame that
- * matches @a name. This function searches @a o and its descendents
- * first, then @a o's parent and its children moving up the hierarchy
- * until a match is found. If no match is found in @a o's hierarchy,
- * this function will search for a matching frame in other main frame
- * hierarchies.
- *
- * @param o frame object to find a child frame
- * @param name child frame name
- *
- * @return child frame of the given frame, or @c NULL if the the child wasn't found
- */
- EAPI Evas_Object *ewk_frame_child_find(Evas_Object *o, const char *name);
- /**
- * Asks the main frame to load the given URI.
- *
- * @param o frame object to load uri
- * @param uri uniform resource identifier to load
- *
- * @return @c EINA_TRUE on success, or @c EINA_FALSE on failure
- */
- EAPI Eina_Bool ewk_frame_uri_set(Evas_Object *o, const char *uri);
- /**
- * Gets the uri of this frame.
- *
- * It returns an internal string and should not
- * be modified. The string is guaranteed to be stringshared.
- *
- * @param o frame object to get uri
- *
- * @return frame uri on success or @c NULL on failure
- */
- EAPI const char *ewk_frame_uri_get(const Evas_Object *o);
- /**
- * Gets the title of this frame.
- *
- * It returns an internal string and should not
- * be modified. The string is guaranteed to be stringshared.
- *
- * @param o frame object to get title
- *
- * @return frame title on success or @c NULL on failure
- */
- EAPI const Ewk_Text_With_Direction *ewk_frame_title_get(const Evas_Object *o);
- /**
- * Gets the name of this frame.
- *
- * It returns an internal string and should not
- * be modified. The string is guaranteed to be stringshared.
- *
- * @param o frame object to get name
- *
- * @return frame name on success or @c NULL on failure
- */
- EAPI const char *ewk_frame_name_get(const Evas_Object *o);
- /**
- * Gets last known contents size.
- *
- * @param o frame object to get contents size
- * @param w pointer to store contents size width, may be @c NULL
- * @param h pointer to store contents size height, may be @c NULL
- *
- * @return @c EINA_TRUE on success or @c EINA_FALSE on failure and
- * @a w and @a h will be zeroed
- */
- EAPI Eina_Bool ewk_frame_contents_size_get(const Evas_Object *o, Evas_Coord *w, Evas_Coord *h);
- /**
- * Requests loading the given contents in this frame.
- *
- * @param o frame object to load document
- * @param contents what to load into frame
- * @param contents_size size of @a contents (in bytes),
- * if @c 0 is given, length of @a contents is used
- * @param mime_type type of @a contents data, if @c NULL is given "text/html" is assumed
- * @param encoding encoding for @a contents data, if @c NULL is given "UTF-8" is assumed
- * @param base_uri base uri to use for relative resources, may be @c NULL,
- * if provided @b must be an absolute uri
- *
- * @return @c EINA_TRUE on successful request, @c EINA_FALSE on errors
- */
- EAPI 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);
- /**
- * Requests loading alternative contents for unreachable URI in this frame.
- *
- * This is similar to ewk_frame_contents_set(), but is used when some
- * URI was failed to load, using the provided content instead. The main
- * difference is that back-forward navigation list is not changed.
- *
- * @param o frame object to load alternative content
- * @param contents what to load into frame, must @b not be @c NULL
- * @param contents_size size of @a contents (in bytes),
- * if @c 0 is given, length of @a contents is used
- * @param mime_type type of @a contents data, if @c NULL is given "text/html" is assumed
- * @param encoding encoding used for @a contents data, if @c NULL is given "UTF-8" is assumed
- * @param base_uri base URI to use for relative resources, may be @c NULL,
- * if provided must be an absolute uri
- * @param unreachable_uri the URI that failed to load and is getting the
- * alternative representation, must @b not be @c NULL
- *
- * @return @c EINA_TRUE on successful request, @c EINA_FALSE on errors
- */
- EAPI 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);
- /**
- * Requests execution of the given script.
- *
- * The returned string @b should be freed by eina_stringshare_del() after use.
- *
- * @param o frame object to execute script
- * @param script Java Script to execute
- *
- * @return newly allocated string for result or @c NULL if the result cannot be converted to string or failure
- */
- EAPI const char *ewk_frame_script_execute(Evas_Object *o, const char *script);
- /**
- * Queries if the frame is editable.
- *
- * @param o the frame object to query editable state
- *
- * @return @c EINA_TRUE if the frame is editable, @c EINA_FALSE otherwise
- */
- EAPI Eina_Bool ewk_frame_editable_get(const Evas_Object *o);
- /**
- * Sets editable state for frame.
- *
- * @param o the frame object to set editable state
- * @param editable a new state to set
- *
- * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
- */
- EAPI Eina_Bool ewk_frame_editable_set(Evas_Object *o, Eina_Bool editable);
- /**
- * Gets the copy of the selected text.
- *
- * The returned string @b should be freed by eina_stringshare_del() after use.
- *
- * @param o the frame object to get selected text
- *
- * @return a newly allocated string or @c NULL if nothing is selected or on failure
- */
- EAPI const char *ewk_frame_selection_get(const Evas_Object *o);
- /**
- * Searches the given string in a document.
- *
- * @param o frame object where to search the text
- * @param string reference string to search
- * @param case_sensitive if search should be case sensitive or not
- * @param forward if search is from cursor and on or backwards
- * @param wrap if search should wrap at the end
- *
- * @return @c EINA_TRUE if the given string was found, @c EINA_FALSE if not or failure
- */
- EAPI Eina_Bool ewk_frame_text_search(const Evas_Object *o, const char *string, Eina_Bool case_sensitive, Eina_Bool forward, Eina_Bool wrap);
- /**
- * Marks matches the given string in a document.
- *
- * @param o frame object where to search text
- * @param string reference string to match
- * @param case_sensitive if match should be case sensitive or not
- * @param highlight if matches should be highlighted
- * @param limit maximum amount of matches, or zero to unlimited
- *
- * @return number of matched @a string
- */
- EAPI unsigned int ewk_frame_text_matches_mark(Evas_Object *o, const char *string, Eina_Bool case_sensitive, Eina_Bool highlight, unsigned int limit);
- /**
- * Unmarks all marked matches in a document.
- * Reverses the effect of ewk_frame_text_matches_mark().
- *
- * @param o frame object where to unmark matches
- *
- * @return @c EINA_TRUE on success, @c EINA_FALSE on failure
- */
- EAPI Eina_Bool ewk_frame_text_matches_unmark_all(Evas_Object *o);
- /**
- * Sets whether matches marked with ewk_frame_text_matches_mark() should be highlighted.
- *
- * @param o frame object where to set if matches are highlighted or not
- * @param highlight @c EINA_TRUE if matches are highlighted, @c EINA_FALSE if not
- *
- * @return @c EINA_TRUE on success, @c EINA_FALSE on failure
- */
- EAPI Eina_Bool ewk_frame_text_matches_highlight_set(Evas_Object *o, Eina_Bool highlight);
- /**
- * Returns whether matches marked with ewk_frame_text_matches_mark() are highlighted.
- *
- * @param o frame object to query if matches are highlighted or not
- *
- * @return @c EINA_TRUE if matches are highlighted, @c EINA_FALSE otherwise
- */
- EAPI Eina_Bool ewk_frame_text_matches_highlight_get(const Evas_Object *o);
- /**
- * Returns the position of the n-th matched text in the frame.
- *
- * @param o frame object where matches are marked
- * @param n index of element
- * @param x the pointer to store the horizontal position of @a n matched text, may be @c NULL
- * @param y the pointer to store the vertical position of @a n matched text, may be @c NULL
- *
- * @return @c EINA_TRUE on success, @c EINA_FALSE when no matches were found or
- * @a n is bigger than search results or on failure
- */
- EAPI Eina_Bool ewk_frame_text_matches_nth_pos_get(const Evas_Object *o, size_t n, int *x, int *y);
- /**
- * Asks frame to stop loading.
- *
- * @param o frame object to stop loading
- *
- * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
- */
- EAPI Eina_Bool ewk_frame_stop(Evas_Object *o);
- /**
- * Asks frame to reload current document.
- *
- * @param o frame object to reload current document
- *
- * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
- *
- * @see ewk_frame_reload_full()
- */
- EAPI Eina_Bool ewk_frame_reload(Evas_Object *o);
- /**
- * Asks frame to fully reload current document, using no previous caches.
- *
- * @param o frame object to reload current document
- *
- * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
- */
- EAPI Eina_Bool ewk_frame_reload_full(Evas_Object *o);
- /**
- * Asks the frame to navigate back in the history.
- *
- * @param o frame object to navigate back
- *
- * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
- *
- * @see ewk_frame_navigate()
- */
- EAPI Eina_Bool ewk_frame_back(Evas_Object *o);
- /**
- * Asks frame to navigate forward in the history.
- *
- * @param o frame object to navigate forward
- *
- * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
- *
- * @see ewk_frame_navigate()
- */
- EAPI Eina_Bool ewk_frame_forward(Evas_Object *o);
- /**
- * Navigates back or forward in the history.
- *
- * @param o frame object to navigate
- * @param steps if positive navigates that amount forwards, if negative
- * does backwards
- *
- * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
- */
- EAPI Eina_Bool ewk_frame_navigate(Evas_Object *o, int steps);
- /**
- * Queries if it's possible to navigate backwards one item in the history.
- *
- * @param o frame object to query if backward navigation is possible
- *
- * @return @c EINA_TRUE if it's possible to navigate backwards one item in the history, @c EINA_FALSE otherwise
- *
- * @see ewk_frame_navigate_possible()
- */
- EAPI Eina_Bool ewk_frame_back_possible(Evas_Object *o);
- /**
- * Queries if it's possible to navigate forwards one item in the history.
- *
- * @param o frame object to query if forward navigation is possible
- *
- * @return @c EINA_TRUE if it's possible to navigate forwards in the history, @c EINA_FALSE otherwise
- *
- * @see ewk_frame_navigate_possible()
- */
- EAPI Eina_Bool ewk_frame_forward_possible(Evas_Object *o);
- /**
- * Queries if it's possible to navigate given @a steps in the history.
- *
- * @param o frame object to query if is possible to navigate @a steps in the history
- * @param steps positive value navigates that amount forwards, negative value
- * does backwards
- *
- * @return @c EINA_TRUE if it's possible to navigate @a steps in the history, @c EINA_FALSE otherwise
- */
- EAPI Eina_Bool ewk_frame_navigate_possible(Evas_Object *o, int steps);
- /**
- * Gets the current page zoom level used by this frame.
- *
- * @param o frame object to get zoom level
- *
- * @return page zoom level for the frame or @c -1.0 on failure
- *
- * @see ewk_frame_text_zoom_get()
- */
- EAPI float ewk_frame_page_zoom_get(const Evas_Object *o);
- /**
- * Sets the current page zoom level used by this frame.
- *
- * @param o frame object to change zoom level
- * @param page_zoom_factor a new zoom level
- *
- * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
- *
- * @see ewk_frame_text_zoom_set()
- */
- EAPI Eina_Bool ewk_frame_page_zoom_set(Evas_Object *o, float page_zoom_factor);
- /**
- * Gets the current text zoom level used by this frame.
- *
- * @param o frame object to get zoom level
- *
- * @return text zoom level for the frame or @c -1.0 on failure
- *
- * @see ewk_frame_page_zoom_get()
- */
- EAPI float ewk_frame_text_zoom_get(const Evas_Object *o);
- /**
- * Sets the current text zoom level used by this frame.
- *
- * @param o frame object to change zoom level
- * @param textZoomFactor a new zoom level
- *
- * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
- *
- * @see ewk_frame_page_zoom_set()
- */
- EAPI Eina_Bool ewk_frame_text_zoom_set(Evas_Object *o, float text_zoom_factor);
- /**
- * Frees hit test instance created by ewk_frame_hit_test_new().
- *
- * @param hit_test instance
- */
- EAPI void ewk_frame_hit_test_free(Ewk_Hit_Test *hit_test);
- /**
- * Creates a new hit test for the given frame and point.
- *
- * The returned object should be freed by ewk_frame_hit_test_free().
- *
- * @param o frame object to do hit test on
- * @param x the horizontal position to query
- * @param y the vertical position to query
- *
- * @return a newly allocated hit test on success, @c NULL otherwise
- */
- EAPI Ewk_Hit_Test *ewk_frame_hit_test_new(const Evas_Object *o, int x, int y);
- /**
- * Sets a relative scroll of the given frame.
- *
- * This function does scroll @a dx and @a dy pixels
- * from the current position of scroll.
- *
- * @param o frame object to scroll
- * @param dx horizontal offset to scroll
- * @param dy vertical offset to scroll
- *
- * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
- */
- EAPI Eina_Bool ewk_frame_scroll_add(Evas_Object *o, int dx, int dy);
- /**
- * Sets an absolute scroll of the given frame.
- *
- * Both values are from zero to the contents size minus the viewport
- * size. See ewk_frame_scroll_size_get().
- *
- * @param o frame object to scroll
- * @param x horizontal position to scroll
- * @param y vertical position to scroll
- *
- * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
- */
- EAPI Eina_Bool ewk_frame_scroll_set(Evas_Object *o, int x, int y);
- /**
- * Gets the possible scroll size of the given frame.
- *
- * Possible scroll size is contents size minus the viewport
- * size. It's the last allowed value for ewk_frame_scroll_set()
- *
- * @param o frame object to get scroll size
- * @param w the pointer to store the horizontal size that is possible to scroll,
- * may be @c NULL
- * @param h the pointer to store the vertical size that is possible to scroll,
- * may be @c NULL
- *
- * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise and
- * values are zeroed
- */
- EAPI Eina_Bool ewk_frame_scroll_size_get(const Evas_Object *o, int *w, int *h);
- /**
- * Gets the current scroll position of given frame.
- *
- * @param o frame object to get the current scroll position
- * @param x the pointer to store the horizontal position, may be @c NULL
- * @param y the pointer to store the vertical position. may be @c NULL
- *
- * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise and
- * values are zeroed.
- */
- EAPI Eina_Bool ewk_frame_scroll_pos_get(const Evas_Object *o, int *x, int *y);
- /**
- * Gets the visible content geometry of the frame.
- *
- * @param o frame object to query visible content geometry
- * @param include_scrollbars whenever to include scrollbars size
- * @param x the pointer to store the horizontal position, may be @c NULL
- * @param y the pointer to store the vertical position, may be @c NULL
- * @param w the pointer to store width, may be @c NULL
- * @param h the pointer to store height, may be @c NULL
- *
- * @return @c EINA_TRUE on success, @c EINA_FALSE otherwise and
- * values are zeroed
- */
- EAPI Eina_Bool ewk_frame_visible_content_geometry_get(const Evas_Object *o, Eina_Bool include_scrollbars, int *x, int *y, int *w, int *h);
- /**
- * Queries if the frame should be repainted completely.
- *
- * Function tells if dirty areas should be repainted
- * even if they are out of the screen.
- *
- * @param o frame object to query if the frame should be repainted completely
- *
- * @return @c EINA_TRUE if any dirty areas should be repainted, @c EINA_FALSE
- * otherwise
- */
- EAPI Eina_Bool ewk_frame_paint_full_get(const Evas_Object *o);
- /**
- * Sets if the frame should be repainted completely.
- *
- * Function sets if dirty areas should be repainted
- * even if they are out of the screen.
- *
- * @param o frame object to set if the frame should be repainted completely
- * @param flag @c EINA_TRUE to repaint the frame completely,
- * @c EINA_FALSE if not
- */
- EAPI void ewk_frame_paint_full_set(Evas_Object *o, Eina_Bool flag);
- /**
- * Feeds the focus in event to the frame.
- *
- * @param o frame object to feed focus
- *
- * @return @c EINA_TRUE if the focus was handled, @c EINA_FALSE otherwise
- */
- EAPI Eina_Bool ewk_frame_feed_focus_in(Evas_Object *o);
- /**
- * Feeds the focus out event to the frame.
- *
- * @param o frame object to remove focus
- *
- * @return @c EINA_FALSE since the feature is not implemented
- */
- EAPI Eina_Bool ewk_frame_feed_focus_out(Evas_Object *o);
- /**
- * Gets the geometry, relative to the frame, of the focused element in the
- * document.
- *
- * @param o frame object containing the focused element
- * @param x pointer where to store the X value of the geometry, may be @c NULL
- * @param x pointer where to store the Y value of the geometry, may be @c NULL
- * @param x pointer where to store width of the geometry, may be @c NULL
- * @param x pointer where to store height of the geometry, may be @c NULL
- *
- * @return @c EINA_TRUE if the frame contains the currently focused element and
- * its geometry was correctly fetched, @c EINA_FALSE in any other case
- */
- EAPI Eina_Bool ewk_frame_focused_element_geometry_get(const Evas_Object *o, int *x, int *y, int *w, int *h);
- /**
- * Feeds the mouse wheel event to the frame.
- *
- * @param o frame object to feed the mouse wheel event
- * @param ev the mouse wheel event
- *
- * @return @c EINA_TRUE if the mouse wheel event was handled, @c EINA_FALSE otherwise
- */
- EAPI Eina_Bool ewk_frame_feed_mouse_wheel(Evas_Object *o, const Evas_Event_Mouse_Wheel *ev);
- /**
- * Feeds the mouse down event to the frame.
- *
- * @param o frame object to feed the mouse down event
- * @param ev the mouse down event
- *
- * @return @c EINA_TRUE if the mouse down event was handled, @c EINA_FALSE otherwise
- */
- EAPI Eina_Bool ewk_frame_feed_mouse_down(Evas_Object *o, const Evas_Event_Mouse_Down *ev);
- /**
- * Feeds the mouse up event to the frame.
- *
- * @param o frame object to feed the mouse up event
- * @param ev the mouse up event
- *
- * @return @c EINA_TRUE if the mouse up event was handled, @c EINA_FALSE otherwise
- */
- EAPI Eina_Bool ewk_frame_feed_mouse_up(Evas_Object *o, const Evas_Event_Mouse_Up *ev);
- /**
- * Feeds the mouse move event to the frame.
- *
- * @param o frame object to feed the mouse move event
- * @param ev the mouse move event
- *
- * @return @c EINA_TRUE if the mouse move event was handled, @c EINA_FALSE otherwise
- */
- EAPI Eina_Bool ewk_frame_feed_mouse_move(Evas_Object *o, const Evas_Event_Mouse_Move *ev);
- /**
- * Feeds the touch event to the frame.
- *
- * @param o frame object to feed touch event
- * @param action the action of touch event
- * @param points a list of points (Ewk_Touch_Point) to process
- * @param metaState modifiers state of touch event. Users are expected to pass ORed values of the ECORE_EVENT_MODIFIER macros in Ecore_Input.h, such as ECORE_EVENT_MODIFIER_ALT or ECORE_EVENT_MODIFIER_SHIFT
- *
- * @return @c EINA_TRUE if touch event was handled, @c EINA_FALSE otherwise
- */
- EAPI Eina_Bool ewk_frame_feed_touch_event(Evas_Object *o, Ewk_Touch_Event_Type action, Eina_List *points, unsigned modifiers);
- /**
- * Feeds the keyboard key down event to the frame.
- *
- * @param o frame object to feed event
- * @param ev keyboard key down event
- *
- * @return @c EINA_TRUE if the key down event was handled, @c EINA_FALSE otherwise
- */
- EAPI Eina_Bool ewk_frame_feed_key_down(Evas_Object *o, const Evas_Event_Key_Down *ev);
- /**
- * Feeds the keyboard key up event to the frame.
- *
- * @param o frame object to feed event
- * @param ev keyboard key up event
- *
- * @return @c EINA_TRUE if the key up event was handled, @c EINA_FALSE otherwise
- */
- EAPI Eina_Bool ewk_frame_feed_key_up(Evas_Object *o, const Evas_Event_Key_Up *ev);
- /**
- * Returns current text selection type.
- *
- * @param o a frame object to check selection type
- * @return current text selection type on success or no selection otherwise
- */
- EAPI Ewk_Text_Selection_Type ewk_frame_text_selection_type_get(const Evas_Object *o);
- /**
- * Gets the frame source.
- *
- * It's part of HTML saving feature. Currently only HTML documents are supported.
- *
- * @param o frame smart object to get the frame source
- * @param frame_source a pointer to store the source of frame,
- * must @b not be @c NULL, this value @b should be freed after use
- *
- * @return @c length of @a frame_source on success, or @c -1 on failure
- *
- * @see ewk_frame_resources_location_get()
- */
- EAPI ssize_t ewk_frame_source_get(const Evas_Object *o, char **frame_source);
- /**
- * Gets the resource list of this frame.
- *
- * It's part of HTML saving feature. Currently only locations of images are supported.
- * An application might find these values in frame source and
- * replace them to the local paths. Values are not duplicated and they are decoded.
- *
- * @param o frame smart object to get the resources list
- * @return @c Eina_List with location of resources on success, or @c NULL on failure,
- * the Eina_List should be freed after use
- *
- * @see ewk_frame_source_get()
- */
- EAPI Eina_List *ewk_frame_resources_location_get(const Evas_Object *o);
- /**
- * Retrieve the frame's contents in plain text.
- *
- * This function returns the contents of the given frame converted to plain text,
- * removing all the HTML formatting.
- *
- * The returned string @b should be freed by eina_stringshare_del() after use.
- *
- * @param ewkFrame Frame object whose contents to retrieve.
- *
- * @return A newly allocated string (which must be freed by the caller with @c free())
- * or @c NULL in case of failure.
- */
- EAPI const char *ewk_frame_plain_text_get(const Evas_Object *o);
- /**
- * Returns whether the frame has displayed mixed content.
- *
- * When a frame has displayed mixed content, its current URI is an HTTPS one, but it has
- * loaded and displayed a resource (such as an image) from an insecure (non-HTTPS) URI.
- * Both the frame and the container view send a "mixedcontent,displayed" signal in this case.
- *
- * The status is reset only when a load event occurs (eg. the page is reloaded or a new page is loaded).
- *
- * @param o The frame to query.
- *
- * @sa ewk_view_mixed_content_displayed_get
- */
- EAPI Eina_Bool ewk_frame_mixed_content_displayed_get(const Evas_Object *o);
- /**
- * Returns whether the frame has run mixed content.
- *
- * When a frame has run mixed content, its current URI is an HTTPS one, but it has
- * loaded and run a resource (such as an image) from an insecure (non-HTTPS) URI.
- * Both the frame and the container view send a "mixedcontent,run" signal in this case.
- *
- * The status is reset only when a load event occurs (eg. the page is reloaded or a new page is loaded).
- *
- * @param o The frame to query.
- *
- * @sa ewk_view_mixed_content_run_get
- */
- EAPI Eina_Bool ewk_frame_mixed_content_run_get(const Evas_Object *o);
- /**
- * Returns the validity of the X.509 certificate related to the current frame.
- */
- EAPI Ewk_Certificate_Status ewk_frame_certificate_status_get(Evas_Object *o);
- #ifdef __cplusplus
- }
- #endif
- #endif // ewk_frame_h
|