forked from enlightenment/efl
284 lines
11 KiB
C
284 lines
11 KiB
C
/**
|
|
* @addtogroup Elm_Web
|
|
*
|
|
* @{
|
|
*/
|
|
|
|
/**
|
|
* Structure used to report load errors.
|
|
*
|
|
* Load errors are reported as signal by elm_web. 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()).
|
|
*/
|
|
typedef struct _Elm_Web_Frame_Load_Error Elm_Web_Frame_Load_Error;
|
|
|
|
/**
|
|
* Structure used to report load errors.
|
|
*
|
|
* Load errors are reported as signal by elm_web. 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 _Elm_Web_Frame_Load_Error
|
|
{
|
|
int code; /**< Numeric error code */
|
|
Eina_Bool is_cancellation; /**< Error produced by canceling a request */
|
|
const char *domain; /**< Error domain name */
|
|
const char *description; /**< Error description (already localized) */
|
|
const char *failing_url; /**< The URL that failed to load */
|
|
Evas_Object *frame; /**< Frame object that produced the error */
|
|
};
|
|
|
|
/**
|
|
* The possibles types that the items in a menu can be
|
|
*/
|
|
typedef enum
|
|
{
|
|
ELM_WEB_MENU_SEPARATOR,
|
|
ELM_WEB_MENU_GROUP,
|
|
ELM_WEB_MENU_OPTION
|
|
} Elm_Web_Menu_Item_Type;
|
|
|
|
/**
|
|
* Structure describing the items in a menu
|
|
*/
|
|
typedef struct _Elm_Web_Menu_Item Elm_Web_Menu_Item;
|
|
|
|
/**
|
|
* Structure describing the items in a menu
|
|
*/
|
|
struct _Elm_Web_Menu_Item
|
|
{
|
|
const char *text; /**< The text for the item */
|
|
Elm_Web_Menu_Item_Type type; /**< The type of the item */
|
|
};
|
|
|
|
/**
|
|
* Structure describing the menu of a popup
|
|
*
|
|
* This structure will be passed as the @p event_info for the "popup,create"
|
|
* signal, which is emitted when a dropdown menu is opened. Users wanting
|
|
* to handle these popups by themselves should listen to this signal and
|
|
* set the @c handled property of the struct to @c EINA_TRUE. Leaving this
|
|
* property as @c EINA_FALSE means that the user will not handle the popup
|
|
* and the default implementation will be used.
|
|
*
|
|
* When the popup is ready to be dismissed, a "popup,willdelete" signal
|
|
* will be emitted to notify the user that it can destroy any objects and
|
|
* free all data related to it.
|
|
*
|
|
* @see elm_web_popup_selected_set()
|
|
* @see elm_web_popup_destroy()
|
|
*/
|
|
typedef struct _Elm_Web_Menu Elm_Web_Menu;
|
|
|
|
/**
|
|
* Structure describing the menu of a popup
|
|
*
|
|
* This structure will be passed as the @p event_info for the "popup,create"
|
|
* signal, which is emitted when a dropdown menu is opened. Users wanting
|
|
* to handle these popups by themselves should listen to this signal and
|
|
* set the @c handled property of the struct to @c EINA_TRUE. Leaving this
|
|
* property as @c EINA_FALSE means that the user will not handle the popup
|
|
* and the default implementation will be used.
|
|
*
|
|
* When the popup is ready to be dismissed, a "popup,willdelete" signal
|
|
* will be emitted to notify the user that it can destroy any objects and
|
|
* free all data related to it.
|
|
*
|
|
* @see elm_web_popup_selected_set()
|
|
* @see elm_web_popup_destroy()
|
|
*/
|
|
struct _Elm_Web_Menu
|
|
{
|
|
Eina_List *items; /**< List of #Elm_Web_Menu_Item */
|
|
int x; /**< The X position of the popup, relative to the elm_web object */
|
|
int y; /**< The Y position of the popup, relative to the elm_web object */
|
|
int width; /**< Width of the popup menu */
|
|
int height; /**< Height of the popup menu */
|
|
|
|
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. */
|
|
};
|
|
|
|
typedef struct _Elm_Web_Download Elm_Web_Download;
|
|
struct _Elm_Web_Download
|
|
{
|
|
const char *url;
|
|
};
|
|
|
|
|
|
/**
|
|
* Opaque handler containing the features (such as statusbar, menubar, etc)
|
|
* that are to be set on a newly requested window.
|
|
*/
|
|
typedef struct _Elm_Web_Window_Features Elm_Web_Window_Features;
|
|
|
|
/**
|
|
* Definitions of web window features.
|
|
*
|
|
*/
|
|
typedef enum
|
|
{
|
|
ELM_WEB_WINDOW_FEATURE_TOOLBAR,
|
|
ELM_WEB_WINDOW_FEATURE_STATUSBAR,
|
|
ELM_WEB_WINDOW_FEATURE_SCROLLBARS,
|
|
ELM_WEB_WINDOW_FEATURE_MENUBAR,
|
|
ELM_WEB_WINDOW_FEATURE_LOCATIONBAR,
|
|
ELM_WEB_WINDOW_FEATURE_FULLSCREEN
|
|
} Elm_Web_Window_Feature_Flag;
|
|
|
|
/**
|
|
* Callback type for the create_window hook.
|
|
*
|
|
* @param data User data pointer set when setting the hook function.
|
|
* @param obj The elm_web object requesting the new window.
|
|
* @param js Set to @c EINA_TRUE if the request was originated from
|
|
* JavaScript. @c EINA_FALSE otherwise.
|
|
* @param window_features A pointer of #Elm_Web_Window_Features indicating
|
|
* the features requested for the new window.
|
|
*
|
|
* @return The @c elm_web widget where the request will be loaded. That is,
|
|
* if a new window or tab is created, the elm_web widget in it should be
|
|
* returned, and @b NOT the window object. Returning @c NULL should cancel
|
|
* the request.
|
|
*
|
|
* @see elm_web_window_create_hook_set()
|
|
*/
|
|
typedef Evas_Object *(*Elm_Web_Window_Open)(void *data, Evas_Object *obj, Eina_Bool js, const Elm_Web_Window_Features *window_features);
|
|
|
|
/**
|
|
* Callback type for the JS alert hook.
|
|
*
|
|
* @param data User data pointer set when setting the hook function.
|
|
* @param obj The elm_web object requesting the new window.
|
|
* @param message The message to show in the alert dialog.
|
|
*
|
|
* @return The object representing the alert dialog.
|
|
* Elm_Web will run a second main loop to handle the dialog and normal
|
|
* flow of the application will be restored when the object is deleted, so
|
|
* the user should handle the popup properly in order to delete the object
|
|
* when the action is finished.
|
|
* If the function returns @c NULL the popup will be ignored.
|
|
*
|
|
* @see elm_web_dialog_alert_hook_set()
|
|
*/
|
|
typedef Evas_Object *(*Elm_Web_Dialog_Alert)(void *data, Evas_Object *obj, const char *message);
|
|
|
|
/**
|
|
* Callback type for the JS confirm hook.
|
|
*
|
|
* @param data User data pointer set when setting the hook function.
|
|
* @param obj The elm_web object requesting the new window.
|
|
* @param message The message to show in the confirm dialog.
|
|
* @param ret Pointer to store the user selection. @c EINA_TRUE if
|
|
* the user selected @c Ok, @c EINA_FALSE otherwise.
|
|
*
|
|
* @return The object representing the confirm dialog.
|
|
* Elm_Web will run a second main loop to handle the dialog and normal
|
|
* flow of the application will be restored when the object is deleted, so
|
|
* the user should handle the popup properly in order to delete the object
|
|
* when the action is finished.
|
|
* If the function returns @c NULL the popup will be ignored.
|
|
*
|
|
* @see elm_web_dialog_confirm_hook_set()
|
|
*/
|
|
typedef Evas_Object *(*Elm_Web_Dialog_Confirm)(void *data, Evas_Object *obj, const char *message, Eina_Bool *ret);
|
|
|
|
/**
|
|
* Callback type for the JS prompt hook.
|
|
*
|
|
* @param data User data pointer set when setting the hook function.
|
|
* @param obj The elm_web object requesting the new window.
|
|
* @param message The message to show in the prompt dialog.
|
|
* @param def_value The default value to present the user in the entry
|
|
* @param value Pointer to store the value given by the user. Must
|
|
* be a malloc'ed string or @c NULL if the user canceled the popup.
|
|
* @param ret Pointer to store the user selection. @c EINA_TRUE if
|
|
* the user selected @c Ok, @c EINA_FALSE otherwise.
|
|
*
|
|
* @return The object representing the prompt dialog.
|
|
* Elm_Web will run a second main loop to handle the dialog and normal
|
|
* flow of the application will be restored when the object is deleted, so
|
|
* the user should handle the popup properly in order to delete the object
|
|
* when the action is finished.
|
|
* If the function returns @c NULL the popup will be ignored.
|
|
*
|
|
* @see elm_web_dialog_prompt_hook_set()
|
|
*/
|
|
typedef Evas_Object *(*Elm_Web_Dialog_Prompt)(void *data, Evas_Object *obj, const char *message, const char *def_value, const char **value, Eina_Bool *ret);
|
|
|
|
/**
|
|
* Callback type for the JS file selector hook.
|
|
*
|
|
* @param data User data pointer set when setting the hook function.
|
|
* @param obj The elm_web object requesting the new window.
|
|
* @param allows_multiple @c EINA_TRUE if multiple files can be selected.
|
|
* @param accept_types Mime types accepted.
|
|
* @param selected Pointer to store the list of malloc'ed strings
|
|
* containing the path to each file selected. Must be @c NULL if the file
|
|
* dialog is canceled.
|
|
* @param ret Pointer to store the user selection. @c EINA_TRUE if
|
|
* the user selected @c Ok, @c EINA_FALSE otherwise.
|
|
*
|
|
* @return The object representing the file selector dialog.
|
|
* Elm_Web will run a second main loop to handle the dialog and normal
|
|
* flow of the application will be restored when the object is deleted, so
|
|
* the user should handle the popup properly in order to delete the object
|
|
* when the action is finished.
|
|
* If the function returns @c NULL the popup will be ignored.
|
|
*
|
|
* @see elm_web_dialog_file selector_hook_set()
|
|
*/
|
|
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);
|
|
|
|
/**
|
|
* Callback type for the JS console message hook.
|
|
*
|
|
* When a console message is added from JavaScript, any set function to the
|
|
* console message hook will be called for the user to handle. There is no
|
|
* default implementation of this hook.
|
|
*
|
|
* @param data User data pointer set when setting the hook function.
|
|
* @param obj The elm_web object that originated the message.
|
|
* @param message The message sent.
|
|
* @param line_number The line number.
|
|
* @param source_id Source id.
|
|
*
|
|
* @see elm_web_console_message_hook_set()
|
|
*/
|
|
typedef void (*Elm_Web_Console_Message)(void *data, Evas_Object *obj, const char *message, unsigned int line_number, const char *source_id);
|
|
|
|
/**
|
|
* Get boolean properties from Elm_Web_Window_Features
|
|
* (such as statusbar, menubar, etc) that are on a window.
|
|
*
|
|
* @param wf The web window features object
|
|
* @param flag The web window feature flag whose value is required.
|
|
*
|
|
* @return @c EINA_TRUE if the flag is set, @c EINA_FALSE otherwise
|
|
*/
|
|
EAPI Eina_Bool elm_web_window_features_property_get(const Elm_Web_Window_Features *wf, Elm_Web_Window_Feature_Flag flag);
|
|
|
|
/**
|
|
*
|
|
* TODO : Add documentation.
|
|
*
|
|
* @param wf The web window features object
|
|
* @param x, y, w, h - the co-ordinates of the web view window.
|
|
*/
|
|
EAPI void elm_web_window_features_region_get(const Elm_Web_Window_Features *wf, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
|
|
|
|
EAPI void elm_web_window_features_ref(Elm_Web_Window_Features *wf);
|
|
EAPI void elm_web_window_features_unref(Elm_Web_Window_Features *wf);
|
|
|
|
/**
|
|
* @}
|
|
*/
|