One can divide Elemementary into three main groups:
@li @ref infralist - These are modules that deal with Elementary as a whole.
@li @ref widgetslist - These are the widgets you'll compose your UI out of.
-@li @ref containerslist - These are the containers in which the widgets will be
- layouted.
+@li @ref containerslist - These are the containers which hold the widgets.
@section license License
@author Thierry el Borgi <thierry@substantiel.fr>
@author Shilpa Singh <shilpa.singh@samsung.com> <shilpasingh.o@gmail.com>
@author Chanwook Jung <joey.jung@samsung.com>
+@author Hyoyoung Chang <hyoyoung.chang@samsung.com>
+@author Guillaume "Kuri" Friloux <guillaume.friloux@asp64.com>
+@author Kim Yunhan <spbear@gmail.com>
Please contact <enlightenment-devel@lists.sourceforge.net> to get in
contact with the developers and maintainers.
@ELM_EDBUS_DEF@ ELM_EDBUS
@ELM_EFREET_DEF@ ELM_EFREET
@ELM_ETHUMB_DEF@ ELM_ETHUMB
+@ELM_WEB_DEF@ ELM_WEB
@ELM_EMAP_DEF@ ELM_EMAP
@ELM_DEBUG_DEF@ ELM_DEBUG
@ELM_ALLOCA_H_DEF@ ELM_ALLOCA_H
EAPI extern int ELM_ECORE_EVENT_ETHUMB_CONNECT;
/**
+ * Emitted when the application has reconfigured elementary settings due
+ * to an external configuration tool asking it to.
+ */
+ EAPI extern int ELM_EVENT_CONFIG_ALL_CHANGED;
+
+ /**
* Emitted when any Elementary's policy value is changed.
*/
EAPI extern int ELM_EVENT_POLICY_CHANGED;
EAPI Eina_Bool elm_need_ethumb(void);
/**
+ * This must be called before any other function that handle with
+ * elm_web objects or ewk_view instances.
+ *
+ * @ingroup Web
+ */
+ EAPI Eina_Bool elm_need_web(void);
+
+ /**
* Set a new policy's value (for a given policy group/identifier).
*
* @param policy policy identifier, as in @ref Elm_Policy.
EAPI int elm_policy_get(unsigned int policy);
/**
+ * Change the language of the current application
+ *
+ * The @p lang passed must be the full name of the locale to use, for
+ * example "en_US.utf8" or "es_ES@euro".
+ *
+ * Changing language with this function will make Elementary run through
+ * all its widgets, translating strings set with
+ * elm_object_domain_translatable_text_part_set(). This way, an entire
+ * UI can have its language changed without having to restart the program.
+ *
+ * For more complex cases, like having formatted strings that need
+ * translation, widgets will also emit a "language,changed" signal that
+ * the user can listen to to manually translate the text.
+ *
+ * @param lang Language to set, must be the full name of the locale
+ *
+ * @ingroup General
+ */
+ EAPI void elm_language_set(const char *lang);
+
+ /**
* Set a label of an object
*
* @param obj The Elementary object
#define elm_object_text_get(obj) elm_object_text_part_get((obj), NULL)
/**
+ * Set the text for an objects part, marking it as translatable
+ *
+ * The string to set as @p text must be the original one. Do not pass the
+ * return of @c gettext() here. Elementary will translate the string
+ * internally and set it on the object using elm_object_text_part_set(),
+ * also storing the original string so that it can be automatically
+ * translated when the language is changed with elm_language_set().
+ *
+ * The @p domain will be stored along to find the translation in the
+ * correct catalog. It can be NULL, in which case it will use whatever
+ * domain was set by the application with @c textdomain(). This is useful
+ * in case you are building a library on top of Elementary that will have
+ * its own translatable strings, that should not be mixed with those of
+ * programs using the library.
+ *
+ * @param obj The object
+ * @param part The name of the part to set
+ * @param domain The translation domain to use
+ * @param text The original, non-translated text to set
+ *
+ * @ingroup General
+ */
+ EAPI void elm_object_domain_translatable_text_part_set(Evas_Object *obj, const char *part, const char *domain, const char *text);
+
+#define elm_object_domain_translatable_text_set(obj, domain, text) elm_object_domain_translatable_text_part_set((obj), NULL, (domain), (text))
+
+#define elm_object_translatable_text_set(obj, text) elm_object_domain_translatable_text_part_set((obj), NULL, NULL, (text))
+
+ /**
+ * Gets the original string set as translatable for an object
+ *
+ * When setting translated strings, the function elm_object_text_part_get()
+ * will return the translation returned by @c gettext(). To get the
+ * original string use this function.
+ *
+ * @param obj The object
+ * @param part The name of the part that was set
+ *
+ * @return The original, untranslated string
+ *
+ * @ingroup General
+ */
+ EAPI const char *elm_object_translatable_text_part_get(const Evas_Object *obj, const char *part);
+
+#define elm_object_translatable_text_get(obj) elm_object_translatable_text_part_get((obj), NULL)
+
+ /**
* Set a content of an object
*
* @param obj The Elementary object
#define elm_object_content_unset(obj) elm_object_content_part_unset((obj), NULL)
/**
+ * Get the wiget object's handle which contains a given item
+ *
+ * @param item The Elementary object item
+ * @return The widget object
+ *
+ * @note This returns the widget object itself that an item belongs to.
+ *
+ * @ingroup General
+ */
+ EAPI Evas_Object *elm_object_item_object_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
+
+ /**
* Set a content of an object item
*
* @param it The Elementary object item
*
* @ingroup General
*/
- EAPI Evas_Object *elm_object_item_content_part_get(const Elm_Object_Item *it, const char *item);
+ EAPI Evas_Object *elm_object_item_content_part_get(const Elm_Object_Item *it, const char *part);
#define elm_object_item_content_get(it) elm_object_item_content_part_get((it), NULL)
*/
EAPI Evas_Object *elm_object_item_content_part_unset(Elm_Object_Item *it, const char *part);
-#define elm_object_item_content_unset(it, content) elm_object_item_content_part_unset((it), (content))
+#define elm_object_item_content_unset(it) elm_object_item_content_part_unset((it), NULL)
/**
- * Set a label of an objec itemt
+ * Set a label of an object item
*
* @param it The Elementary object item
* @param part The text part name to set (NULL for the default label)
*/
EAPI const char *elm_object_item_text_part_get(const Elm_Object_Item *it, const char *part);
+#define elm_object_item_text_get(it) elm_object_item_text_part_get((it), NULL)
+
/**
* Set the text to read out when in accessibility mode
*
*/
EAPI void elm_object_item_access_info_set(Elm_Object_Item *it, const char *txt);
-
-#define elm_object_item_text_get(it) elm_object_item_text_part_get((it), NULL)
-
/**
* Get the data associated with an object item
* @param it The object item
* @li "software_16_sdl"
* @li "opengl_sdl"
* @li "buffer"
+ * @li "ews"
*
* @{
*/
EAPI void elm_scroll_thumbscroll_border_friction_all_set(double friction);
/**
+ * Get the sensitivity amount which is be multiplied by the length of
+ * mouse dragging.
+ *
+ * @return the thumb scroll sensitivity friction
+ *
+ * @ingroup Scrolling
+ */
+ EAPI double elm_scroll_thumbscroll_sensitivity_friction_get(void);
+
+ /**
+ * Set the sensitivity amount which is be multiplied by the length of
+ * mouse dragging.
+ *
+ * @param friction the thumb scroll sensitivity friction. @c 0.1 for
+ * minimun sensitivity, @c 1.0 for maximum sensitivity. 0.25
+ * is proper.
+ *
+ * @see elm_thumbscroll_sensitivity_friction_get()
+ * @note parameter value will get bound to 0.1 - 1.0 interval, always
+ *
+ * @ingroup Scrolling
+ */
+ EAPI void elm_scroll_thumbscroll_sensitivity_friction_set(double friction);
+
+ /**
+ * Set the sensitivity amount which is be multiplied by the length of
+ * mouse dragging, for all Elementary application windows.
+ *
+ * @param friction the thumb scroll sensitivity friction. @c 0.1 for
+ * minimun sensitivity, @c 1.0 for maximum sensitivity. 0.25
+ * is proper.
+ *
+ * @see elm_thumbscroll_sensitivity_friction_get()
+ * @note parameter value will get bound to 0.1 - 1.0 interval, always
+ *
+ * @ingroup Scrolling
+ */
+ EAPI void elm_scroll_thumbscroll_sensitivity_friction_all_set(double friction);
+
+ /**
* @}
*/
* (Windows CE rendering via GDI with 16bit software renderer)
* @li "sdl-16", "software-16-sdl", "software_16_sdl" (Rendering to SDL
* buffer with 16bit software renderer)
+ * @li "ews" (rendering to EWS - Ecore + Evas Single Process Windowing System)
*
* All engines use a simple string to select the engine to render, EXCEPT
* the "shot" engine. This actually encodes the output of the virtual
EAPI void elm_box_align_get(const Evas_Object *obj, double *horizontal, double *vertical) EINA_ARG_NONNULL(1);
/**
+ * Force the box to recalculate its children packing.
+ *
+ * If any children was added or removed, box will not calculate the
+ * values immediately rather leaving it to the next main loop
+ * iteration. While this is great as it would save lots of
+ * recalculation, whenever you need to get the position of a just
+ * added item you must force recalculate before doing so.
+ *
+ * @param obj The box object.
+ */
+ EAPI void elm_box_recalculate(Evas_Object *obj);
+
+ /**
* Set the layout defining function to be used by the box
*
* Whenever anything changes that requires the box in @p obj to recalculate
* This enables or disabled event propagation from the scroller content to
* the scroller and its parent. By default event propagation is disabled.
*/
- EAPI void elm_scroller_propagate_events_set(Evas_Object *obj, Eina_Bool propagation);
+ EAPI void elm_scroller_propagate_events_set(Evas_Object *obj, Eina_Bool propagation) EINA_ARG_NONNULL(1);
/**
* @brief Get event propagation for a scroller
*
*
* @see elm_scroller_propagate_events_set()
*/
- EAPI Eina_Bool elm_scroller_propagate_events_get(const Evas_Object *obj);
+ EAPI Eina_Bool elm_scroller_propagate_events_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Set scrolling gravity on a scroller
+ *
+ * @param obj The scroller object
+ * @param x The scrolling horizontal gravity
+ * @param y The scrolling vertical gravity
+ *
+ * It set scrolling gravity. It adds scrolling weight values
+ * to the scroller. Usually it uses for stopping the scroller.
+ * To set y as 0.0 for lower growing child objects,
+ * even though child objects are added to bottom, the scroller doesn't move.
+ * To set y as 1.0 for upper growing child objects. And x is horizontal gravity.
+ * By default 0.0 for x and y.
+ */
+ EAPI void elm_scroller_gravity_set(Evas_Object *obj, double x, double y) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Get scrolling gravity values for a scroller
+ *
+ * @param obj The scroller object
+ * @param x The scrolling horizontal gravity
+ * @param y The scrolling vertical gravity
+ *
+ * This gets gravity values for a scroller.
+ *
+ * @see elm_scroller_gravity_set()
+ *
+ */
+ EAPI void elm_scroller_gravity_get(const Evas_Object *obj, double *x, double *y) EINA_ARG_NONNULL(1);
/**
* @}
*/
* started.
* - @c "scroll,drag,stop" - called when dragging the content has
* stopped.
+ * - @c "scroll,edge,top" - This is called when the gengrid is scrolled until
+ * the top edge.
+ * - @c "scroll,edge,bottom" - This is called when the gengrid is scrolled
+ * until the bottom edge.
+ * - @c "scroll,edge,left" - This is called when the gengrid is scrolled
+ * until the left edge.
+ * - @c "scroll,edge,right" - This is called when the gengrid is scrolled
+ * until the right edge.
*
* List of gengrid examples:
* @li @ref gengrid_example
* ELM_MAIN()
* @endcode
*
- * @note There's only one client handle for Ethumb, so once a configuration
- * change is done to it, any other request for thumbnails (for any thumbnail
- * object) will use that configuration. Thus, this configuration is global.
+ * @note There's only one client handle for Ethumb, so once a configuration
+ * change is done to it, any other request for thumbnails (for any thumbnail
+ * object) will use that configuration. Thus, this configuration is global.
+ *
+ * @ingroup Thumb
+ */
+ EAPI void *elm_thumb_ethumb_client_get(void);
+ /**
+ * Get the ethumb_client connection state.
+ *
+ * @return EINA_TRUE if the client is connected to the server or EINA_FALSE
+ * otherwise.
+ */
+ EAPI Eina_Bool elm_thumb_ethumb_client_connected(void);
+ /**
+ * Make the thumbnail 'editable'.
+ *
+ * @param obj Thumb object.
+ * @param set Turn on or off editability. Default is @c EINA_FALSE.
+ *
+ * This means the thumbnail is a valid drag target for drag and drop, and can be
+ * cut or pasted too.
+ *
+ * @see elm_thumb_editable_get()
+ *
+ * @ingroup Thumb
+ */
+ EAPI Eina_Bool elm_thumb_editable_set(Evas_Object *obj, Eina_Bool edit) EINA_ARG_NONNULL(1);
+ /**
+ * Make the thumbnail 'editable'.
+ *
+ * @param obj Thumb object.
+ * @return Editability.
+ *
+ * This means the thumbnail is a valid drag target for drag and drop, and can be
+ * cut or pasted too.
+ *
+ * @see elm_thumb_editable_set()
+ *
+ * @ingroup Thumb
+ */
+ EAPI Eina_Bool elm_thumb_editable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * @}
+ */
+
+ /**
+ * @defgroup Web Web
+ *
+ * @image html img/widget/web/preview-00.png
+ * @image latex img/widget/web/preview-00.eps
+ *
+ * A web object is used for displaying web pages (HTML/CSS/JS)
+ * using WebKit-EFL. You must have compiled Elementary with
+ * ewebkit support.
+ *
+ * Signals that you can add callbacks for are:
+ * @li "download,request": A file download has been requested. Event info is
+ * a pointer to a Elm_Web_Download
+ * @li "editorclient,contents,changed": Editor client's contents changed
+ * @li "editorclient,selection,changed": Editor client's selection changed
+ * @li "frame,created": A new frame was created. Event info is an
+ * Evas_Object which can be handled with WebKit's ewk_frame API
+ * @li "icon,received": An icon was received by the main frame
+ * @li "inputmethod,changed": Input method changed. Event info is an
+ * Eina_Bool indicating whether it's enabled or not
+ * @li "js,windowobject,clear": JS window object has been cleared
+ * @li "link,hover,in": Mouse cursor is hovering over a link. Event info
+ * is a char *link[2], where the first string contains the URL the link
+ * points to, and the second one the title of the link
+ * @li "link,hover,out": Mouse cursor left the link
+ * @li "load,document,finished": Loading of a document finished. Event info
+ * is the frame that finished loading
+ * @li "load,error": Load failed. Event info is a pointer to
+ * Elm_Web_Frame_Load_Error
+ * @li "load,finished": Load finished. Event info is NULL on success, on
+ * error it's a pointer to Elm_Web_Frame_Load_Error
+ * @li "load,newwindow,show": A new window was created and is ready to be
+ * shown
+ * @li "load,progress": Overall load progress. Event info is a pointer to
+ * a double containing a value between 0.0 and 1.0
+ * @li "load,provisional": Started provisional load
+ * @li "load,started": Loading of a document started
+ * @li "menubar,visible,get": Queries if the menubar is visible. Event info
+ * is a pointer to Eina_Bool where the callback should set EINA_TRUE if
+ * the menubar is visible, or EINA_FALSE in case it's not
+ * @li "menubar,visible,set": Informs menubar visibility. Event info is
+ * an Eina_Bool indicating the visibility
+ * @li "popup,created": A dropdown widget was activated, requesting its
+ * popup menu to be created. Event info is a pointer to Elm_Web_Menu
+ * @li "popup,willdelete": The web object is ready to destroy the popup
+ * object created. Event info is a pointer to Elm_Web_Menu
+ * @li "ready": Page is fully loaded
+ * @li "scrollbars,visible,get": Queries visibility of scrollbars. Event
+ * info is a pointer to Eina_Bool where the visibility state should be set
+ * @li "scrollbars,visible,set": Informs scrollbars visibility. Event info
+ * is an Eina_Bool with the visibility state set
+ * @li "statusbar,text,set": Text of the statusbar changed. Even info is
+ * a string with the new text
+ * @li "statusbar,visible,get": Queries visibility of the status bar.
+ * Event info is a pointer to Eina_Bool where the visibility state should be
+ * set.
+ * @li "statusbar,visible,set": Informs statusbar visibility. Event info is
+ * an Eina_Bool with the visibility value
+ * @li "title,changed": Title of the main frame changed. Event info is a
+ * string with the new title
+ * @li "toolbars,visible,get": Queries visibility of toolbars. Event info
+ * is a pointer to Eina_Bool where the visibility state should be set
+ * @li "toolbars,visible,set": Informs the visibility of toolbars. Event
+ * info is an Eina_Bool with the visibility state
+ * @li "tooltip,text,set": Show and set text of a tooltip. Event info is
+ * a string with the text to show
+ * @li "uri,changed": URI of the main frame changed. Event info is a string
+ * with the new URI
+ * @li "view,resized": The web object internal's view changed sized
+ * @li "windows,close,request": A JavaScript request to close the current
+ * window was requested
+ * @li "zoom,animated,end": Animated zoom finished
+ *
+ * available styles:
+ * - default
+ *
+ * An example of use of web:
+ *
+ * - @ref web_example_01 TBD
+ */
+
+ /**
+ * @addtogroup 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 cancelling 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_Item_Type
+ {
+ 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 @c 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 @c 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;
+ };
+
+ /**
+ * Types of zoom available.
+ */
+ typedef enum _Elm_Web_Zoom_Mode
+ {
+ ELM_WEB_ZOOM_MODE_MANUAL = 0, /**< Zoom controled normally by elm_web_zoom_set */
+ ELM_WEB_ZOOM_MODE_AUTO_FIT, /**< Zoom until content fits in web object */
+ ELM_WEB_ZOOM_MODE_AUTO_FILL, /**< Zoom until content fills web object */
+ ELM_WEB_ZOOM_MODE_LAST
+ } Elm_Web_Zoom_Mode;
+ /**
+ * 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;
+ /**
+ * Callback type for the create_window hook.
+ *
+ * The function parameters are:
+ * @li @p data User data pointer set when setting the hook function
+ * @li @p obj The elm_web object requesting the new window
+ * @li @p js Set to @c EINA_TRUE if the request was originated from
+ * JavaScript. @c EINA_FALSE otherwise.
+ * @li @p window_features A pointer of #Elm_Web_Window_Features indicating
+ * the features requested for the new window.
+ *
+ * The returned value of the function should be 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.
+ *
+ * The function parameters are:
+ * @li @p data User data pointer set when setting the hook function
+ * @li @p obj The elm_web object requesting the new window
+ * @li @p message The message to show in the alert dialog
+ *
+ * The function should 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.
+ *
+ * The function parameters are:
+ * @li @p data User data pointer set when setting the hook function
+ * @li @p obj The elm_web object requesting the new window
+ * @li @p message The message to show in the confirm dialog
+ * @li @p ret Pointer where to store the user selection. @c EINA_TRUE if
+ * the user selected @c Ok, @c EINA_FALSE otherwise.
+ *
+ * The function should 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.
+ *
+ * The function parameters are:
+ * @li @p data User data pointer set when setting the hook function
+ * @li @p obj The elm_web object requesting the new window
+ * @li @p message The message to show in the prompt dialog
+ * @li @p def_value The default value to present the user in the entry
+ * @li @p value Pointer where to store the value given by the user. Must
+ * be a malloc'ed string or @c NULL if the user cancelled the popup.
+ * @li @p ret Pointer where to store the user selection. @c EINA_TRUE if
+ * the user selected @c Ok, @c EINA_FALSE otherwise.
+ *
+ * The function should 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, char **value, Eina_Bool *ret);
+ /**
+ * Callback type for the JS file selector hook.
+ *
+ * The function parameters are:
+ * @li @p data User data pointer set when setting the hook function
+ * @li @p obj The elm_web object requesting the new window
+ * @li @p allows_multiple @c EINA_TRUE if multiple files can be selected.
+ * @li @p accept_types Mime types accepted
+ * @li @p selected Pointer where to store the list of malloc'ed strings
+ * containing the path to each file selected. Must be @c NULL if the file
+ * dialog is cancelled
+ * @li @p ret Pointer where to store the user selection. @c EINA_TRUE if
+ * the user selected @c Ok, @c EINA_FALSE otherwise.
+ *
+ * The function should 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, const char *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.
+ *
+ * The function parameters are:
+ * @li @p data User data pointer set when setting the hook function
+ * @li @p obj The elm_web object that originated the message
+ * @li @p message The message sent
+ * @li @p line_number The line number
+ * @li @p 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);
+ /**
+ * Add a new web object to the parent.
+ *
+ * @param parent The parent object.
+ * @return The new object or NULL if it cannot be created.
+ *
+ * @see elm_web_uri_set()
+ * @see elm_web_webkit_view_get()
+ */
+ EAPI Evas_Object *elm_web_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get internal ewk_view object from web object.
+ *
+ * Elementary may not provide some low level features of EWebKit,
+ * instead of cluttering the API with proxy methods we opted to
+ * return the internal reference. Be careful using it as it may
+ * interfere with elm_web behavior.
+ *
+ * @param obj The web object.
+ * @return The internal ewk_view object or NULL if it does not
+ * exist. (Failure to create or Elementary compiled without
+ * ewebkit)
+ *
+ * @see elm_web_add()
+ */
+ EAPI Evas_Object *elm_web_webkit_view_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Sets the function to call when a new window is requested
+ *
+ * This hook will be called when a request to create a new window is
+ * issued from the web page loaded.
+ * There is no default implementation for this feature, so leaving this
+ * unset or passing @c NULL in @p func will prevent new windows from
+ * opening.
+ *
+ * @param obj The web object where to set the hook function
+ * @param func The hook function to be called when a window is requested
+ * @param data User data
+ */
+ EAPI void elm_web_window_create_hook_set(Evas_Object *obj, Elm_Web_Window_Open func, void *data);
+ /**
+ * Sets the function to call when an alert dialog
+ *
+ * This hook will be called when a JavaScript alert dialog is requested.
+ * If no function is set or @c NULL is passed in @p func, the default
+ * implementation will take place.
+ *
+ * @param obj The web object where to set the hook function
+ * @param func The callback function to be used
+ * @param data User data
+ *
+ * @see elm_web_inwin_mode_set()
+ */
+ EAPI void elm_web_dialog_alert_hook_set(Evas_Object *obj, Elm_Web_Dialog_Alert func, void *data);
+ /**
+ * Sets the function to call when an confirm dialog
+ *
+ * This hook will be called when a JavaScript confirm dialog is requested.
+ * If no function is set or @c NULL is passed in @p func, the default
+ * implementation will take place.
+ *
+ * @param obj The web object where to set the hook function
+ * @param func The callback function to be used
+ * @param data User data
+ *
+ * @see elm_web_inwin_mode_set()
+ */
+ EAPI void elm_web_dialog_confirm_hook_set(Evas_Object *obj, Elm_Web_Dialog_Confirm func, void *data);
+ /**
+ * Sets the function to call when an prompt dialog
+ *
+ * This hook will be called when a JavaScript prompt dialog is requested.
+ * If no function is set or @c NULL is passed in @p func, the default
+ * implementation will take place.
+ *
+ * @param obj The web object where to set the hook function
+ * @param func The callback function to be used
+ * @param data User data
+ *
+ * @see elm_web_inwin_mode_set()
+ */
+ EAPI void elm_web_dialog_prompt_hook_set(Evas_Object *obj, Elm_Web_Dialog_Prompt func, void *data);
+ /**
+ * Sets the function to call when an file selector dialog
+ *
+ * This hook will be called when a JavaScript file selector dialog is
+ * requested.
+ * If no function is set or @c NULL is passed in @p func, the default
+ * implementation will take place.
+ *
+ * @param obj The web object where to set the hook function
+ * @param func The callback function to be used
+ * @param data User data
+ *
+ * @see elm_web_inwin_mode_set()
+ */
+ EAPI void elm_web_dialog_file_selector_hook_set(Evas_Object *obj, Elm_Web_Dialog_File_Selector func, void *data);
+ /**
+ * Sets the function to call when a console message is emitted from JS
+ *
+ * This hook will be called when a console message is emitted from
+ * JavaScript. There is no default implementation for this feature.
+ *
+ * @param obj The web object where to set the hook function
+ * @param func The callback function to be used
+ * @param data User data
+ */
+ EAPI void elm_web_console_message_hook_set(Evas_Object *obj, Elm_Web_Console_Message func, void *data);
+ /**
+ * Gets the status of the tab propagation
+ *
+ * @param obj The web object to query
+ * @return EINA_TRUE if tab propagation is enabled, EINA_FALSE otherwise
+ *
+ * @see elm_web_tab_propagate_set()
+ */
+ EAPI Eina_Bool elm_web_tab_propagate_get(const Evas_Object *obj);
+ /**
+ * Sets whether to use tab propagation
+ *
+ * If tab propagation is enabled, whenever the user presses the Tab key,
+ * Elementary will handle it and switch focus to the next widget.
+ * The default value is disabled, where WebKit will handle the Tab key to
+ * cycle focus though its internal objects, jumping to the next widget
+ * only when that cycle ends.
+ *
+ * @param obj The web object
+ * @param propagate Whether to propagate Tab keys to Elementary or not
+ */
+ EAPI void elm_web_tab_propagate_set(Evas_Object *obj, Eina_Bool propagate);
+ /**
+ * Sets the URI for the web object
+ *
+ * It must be a full URI, with resource included, in the form
+ * http://www.enlightenment.org or file:///tmp/something.html
+ *
+ * @param obj The web object
+ * @param uri The URI to set
+ * @return EINA_TRUE if the URI could be, EINA_FALSE if an error occurred
+ */
+ EAPI Eina_Bool elm_web_uri_set(Evas_Object *obj, const char *uri);
+ /**
+ * Gets the current URI for the object
+ *
+ * The returned string must not be freed and is guaranteed to be
+ * stringshared.
+ *
+ * @param obj The web object
+ * @return A stringshared internal string with the current URI, or NULL on
+ * failure
+ */
+ EAPI const char *elm_web_uri_get(const Evas_Object *obj);
+ /**
+ * Gets the current title
+ *
+ * The returned string must not be freed and is guaranteed to be
+ * stringshared.
+ *
+ * @param obj The web object
+ * @return A stringshared internal string with the current title, or NULL on
+ * failure
+ */
+ EAPI const char *elm_web_title_get(const Evas_Object *obj);
+ /**
+ * Sets the background color to be used by the web object
+ *
+ * This is the color that will be used by default when the loaded page
+ * does not set it's own. Color values are pre-multiplied.
+ *
+ * @param obj The web object
+ * @param r Red component
+ * @param g Green component
+ * @param b Blue component
+ * @param a Alpha component
+ */
+ EAPI void elm_web_bg_color_set(Evas_Object *obj, int r, int g, int b, int a);
+ /**
+ * Gets the background color to be used by the web object
+ *
+ * This is the color that will be used by default when the loaded page
+ * does not set it's own. Color values are pre-multiplied.
+ *
+ * @param obj The web object
+ * @param r Red component
+ * @param g Green component
+ * @param b Blue component
+ * @param a Alpha component
+ */
+ EAPI void elm_web_bg_color_get(const Evas_Object *obj, int *r, int *g, int *b, int *a);
+ /**
+ * Gets a copy of the currently selected text
+ *
+ * The string returned must be freed by the user when it's done with it.
+ *
+ * @param obj The web object
+ * @return A newly allocated string, or NULL if nothing is selected or an
+ * error occurred
+ */
+ EAPI char *elm_view_selection_get(const Evas_Object *obj);
+ /**
+ * Tells the web object which index in the currently open popup was selected
+ *
+ * When the user handles the popup creation from the "popup,created" signal,
+ * it needs to tell the web object which item was selected by calling this
+ * function with the index corresponding to the item.
+ *
+ * @param obj The web object
+ * @param index The index selected
+ *
+ * @see elm_web_popup_destroy()
+ */
+ EAPI void elm_web_popup_selected_set(Evas_Object *obj, int index);
+ /**
+ * Dismisses an open dropdown popup
+ *
+ * When the popup from a dropdown widget is to be dismissed, either after
+ * selecting an option or to cancel it, this function must be called, which
+ * will later emit an "popup,willdelete" signal to notify the user that
+ * any memory and objects related to this popup can be freed.
+ *
+ * @param obj The web object
+ * @return EINA_TRUE if the menu was successfully destroyed, or EINA_FALSE
+ * if there was no menu to destroy
+ */
+ EAPI Eina_Bool elm_web_popup_destroy(Evas_Object *obj);
+ /**
+ * Searches the given string in a document.
+ *
+ * @param obj The web object where to search the text
+ * @param string 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 elm_web_text_search(const Evas_Object *obj, const char *string, Eina_Bool case_sensitive, Eina_Bool forward, Eina_Bool wrap);
+ /**
+ * Marks matches of the given string in a document.
+ *
+ * @param obj The web object where to search text
+ * @param string 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 elm_web_text_matches_mark(Evas_Object *obj, const char *string, Eina_Bool case_sensitive, Eina_Bool highlight, unsigned int limit);
+ /**
+ * Clears all marked matches in the document
+ *
+ * @param obj The web object
+ *
+ * @return EINA_TRUE on success, EINA_FALSE otherwise
+ */
+ EAPI Eina_Bool elm_web_text_matches_unmark_all(Evas_Object *obj);
+ /**
+ * Sets whether to highlight the matched marks
+ *
+ * If enabled, marks set with elm_web_text_matches_mark() will be
+ * highlighted.
+ *
+ * @param obj The web object
+ * @param highlight Whether to highlight the marks or not
+ *
+ * @return EINA_TRUE on success, EINA_FALSE otherwise
+ */
+ EAPI Eina_Bool elm_web_text_matches_highlight_set(Evas_Object *obj, Eina_Bool highlight);
+ /**
+ * Gets whether highlighting marks is enabled
+ *
+ * @param The web object
+ *
+ * @return EINA_TRUE is marks are set to be highlighted, EINA_FALSE
+ * otherwise
+ */
+ EAPI Eina_Bool elm_web_text_matches_highlight_get(const Evas_Object *obj);
+ /**
+ * Gets the overall loading progress of the page
+ *
+ * Returns the estimated loading progress of the page, with a value between
+ * 0.0 and 1.0. This is an estimated progress accounting for all the frames
+ * included in the page.
+ *
+ * @param The web object
+ *
+ * @return A value between 0.0 and 1.0 indicating the progress, or -1.0 on
+ * failure
+ */
+ EAPI double elm_web_load_progress_get(const Evas_Object *obj);
+ /**
+ * Stops loading the current page
+ *
+ * Cancels the loading of the current page in the web object. This will
+ * cause a "load,error" signal to be emitted, with the is_cancellation
+ * flag set to EINA_TRUE.
+ *
+ * @param obj The web object
+ *
+ * @return EINA_TRUE if the cancel was successful, EINA_FALSE otherwise
+ */
+ EAPI Eina_Bool elm_web_stop(Evas_Object *obj);
+ /**
+ * Requests a reload of the current document in the object
+ *
+ * @param obj The web object
+ *
+ * @return EINA_TRUE on success, EINA_FALSE otherwise
+ */
+ EAPI Eina_Bool elm_web_reload(Evas_Object *obj);
+ /**
+ * Requests a reload of the current document, avoiding any existing caches
+ *
+ * @param obj The web object
+ *
+ * @return EINA_TRUE on success, EINA_FALSE otherwise
+ */
+ EAPI Eina_Bool elm_web_reload_full(Evas_Object *obj);
+ /**
+ * Goes back one step in the browsing history
+ *
+ * This is equivalent to calling elm_web_object_navigate(obj, -1);
+ *
+ * @param obj The web object
+ *
+ * @return EINA_TRUE on success, EINA_FALSE otherwise
+ *
+ * @see elm_web_history_enable_set()
+ * @see elm_web_back_possible()
+ * @see elm_web_forward()
+ * @see elm_web_navigate()
+ */
+ EAPI Eina_Bool elm_web_back(Evas_Object *obj);
+ /**
+ * Goes forward one step in the browsing history
+ *
+ * This is equivalent to calling elm_web_object_navigate(obj, 1);
+ *
+ * @param obj The web object
+ *
+ * @return EINA_TRUE on success, EINA_FALSE otherwise
+ *
+ * @see elm_web_history_enable_set()
+ * @see elm_web_forward_possible()
+ * @see elm_web_back()
+ * @see elm_web_navigate()
+ */
+ EAPI Eina_Bool elm_web_forward(Evas_Object *obj);
+ /**
+ * Jumps the given number of steps in the browsing history
+ *
+ * The @p steps value can be a negative integer to back in history, or a
+ * positive to move forward.
+ *
+ * @param obj The web object
+ * @param steps The number of steps to jump
+ *
+ * @return EINA_TRUE on success, EINA_FALSE on error or if not enough
+ * history exists to jump the given number of steps
+ *
+ * @see elm_web_history_enable_set()
+ * @see elm_web_navigate_possible()
+ * @see elm_web_back()
+ * @see elm_web_forward()
+ */
+ EAPI Eina_Bool elm_web_navigate(Evas_Object *obj, int steps);
+ /**
+ * Queries whether it's possible to go back in history
+ *
+ * @param obj The web object
+ *
+ * @return EINA_TRUE if it's possible to back in history, EINA_FALSE
+ * otherwise
+ */
+ EAPI Eina_Bool elm_web_back_possible(Evas_Object *obj);
+ /**
+ * Queries whether it's possible to go forward in history
+ *
+ * @param obj The web object
+ *
+ * @return EINA_TRUE if it's possible to forward in history, EINA_FALSE
+ * otherwise
+ */
+ EAPI Eina_Bool elm_web_forward_possible(Evas_Object *obj);
+ /**
+ * Queries whether it's possible to jump the given number of steps
+ *
+ * The @p steps value can be a negative integer to back in history, or a
+ * positive to move forward.
+ *
+ * @param obj The web object
+ * @param steps The number of steps to check for
+ *
+ * @return EINA_TRUE if enough history exists to perform the given jump,
+ * EINA_FALSE otherwise
+ */
+ EAPI Eina_Bool elm_web_navigate_possible(Evas_Object *obj, int steps);
+ /**
+ * Gets whether browsing history is enabled for the given object
+ *
+ * @param obj The web object
+ *
+ * @return EINA_TRUE if history is enabled, EINA_FALSE otherwise
+ */
+ EAPI Eina_Bool elm_web_history_enable_get(const Evas_Object *obj);
+ /**
+ * Enables or disables the browsing history
+ *
+ * @param obj The web object
+ * @param enable Whether to enable or disable the browsing history
+ */
+ EAPI void elm_web_history_enable_set(Evas_Object *obj, Eina_Bool enable);
+ /**
+ * Sets the zoom level of the web object
+ *
+ * Zoom level matches the Webkit API, so 1.0 means normal zoom, with higher
+ * values meaning zoom in and lower meaning zoom out. This function will
+ * only affect the zoom level if the mode set with elm_web_zoom_mode_set()
+ * is ::ELM_WEB_ZOOM_MODE_MANUAL.
+ *
+ * @param obj The web object
+ * @param zoom The zoom level to set
+ */
+ EAPI void elm_web_zoom_set(Evas_Object *obj, double zoom);
+ /**
+ * Gets the current zoom level set on the web object
+ *
+ * Note that this is the zoom level set on the web object and not that
+ * of the underlying Webkit one. In the ::ELM_WEB_ZOOM_MODE_MANUAL mode,
+ * the two zoom levels should match, but for the other two modes the
+ * Webkit zoom is calculated internally to match the chosen mode without
+ * changing the zoom level set for the web object.
+ *
+ * @param obj The web object
*
- * @ingroup Thumb
+ * @return The zoom level set on the object
*/
- EAPI void *elm_thumb_ethumb_client_get(void);
+ EAPI double elm_web_zoom_get(const Evas_Object *obj);
/**
- * Get the ethumb_client connection state.
+ * Sets the zoom mode to use
*
- * @return EINA_TRUE if the client is connected to the server or EINA_FALSE
- * otherwise.
+ * The modes can be any of those defined in ::Elm_Web_Zoom_Mode, except
+ * ::ELM_WEB_ZOOM_MODE_LAST. The default is ::ELM_WEB_ZOOM_MODE_MANUAL.
+ *
+ * ::ELM_WEB_ZOOM_MODE_MANUAL means the zoom level will be controlled
+ * with the elm_web_zoom_set() function.
+ * ::ELM_WEB_ZOOM_MODE_AUTO_FIT will calculate the needed zoom level to
+ * make sure the entirety of the web object's contents are shown.
+ * ::ELM_WEB_ZOOM_MODE_AUTO_FILL will calculate the needed zoom level to
+ * fit the contents in the web object's size, without leaving any space
+ * unused.
+ *
+ * @param obj The web object
+ * @param mode The mode to set
*/
- EAPI Eina_Bool elm_thumb_ethumb_client_connected(void);
+ EAPI void elm_web_zoom_mode_set(Evas_Object *obj, Elm_Web_Zoom_Mode mode);
/**
- * Make the thumbnail 'editable'.
+ * Gets the currently set zoom mode
*
- * @param obj Thumb object.
- * @param set Turn on or off editability. Default is @c EINA_FALSE.
+ * @param obj The web object
*
- * This means the thumbnail is a valid drag target for drag and drop, and can be
- * cut or pasted too.
+ * @return The current zoom mode set for the object, or
+ * ::ELM_WEB_ZOOM_MODE_LAST on error
+ */
+ EAPI Elm_Web_Zoom_Mode elm_web_zoom_mode_get(const Evas_Object *obj);
+ /**
+ * Shows the given region in the web object
*
- * @see elm_thumb_editable_get()
+ * @param obj The web object
+ * @param x The x coordinate of the region to show
+ * @param y The y coordinate of the region to show
+ * @param w The width of the region to show
+ * @param h The height of the region to show
+ */
+ EAPI void elm_web_region_show(Evas_Object *obj, int x, int y, int w, int h);
+ /**
+ * Brings in the region to the visible area
*
- * @ingroup Thumb
+ * Like elm_web_region_show(), but it animates the scrolling of the object
+ * to show the area
+ *
+ * @param obj The web object
+ * @param x The x coordinate of the region to show
+ * @param y The y coordinate of the region to show
+ * @param w The width of the region to show
+ * @param h The height of the region to show
*/
- EAPI Eina_Bool elm_thumb_editable_set(Evas_Object *obj, Eina_Bool edit) EINA_ARG_NONNULL(1);
+ EAPI void elm_web_region_bring_in(Evas_Object *obj, int x, int y, int w, int h);
/**
- * Make the thumbnail 'editable'.
+ * Sets the default dialogs to use an Inwin instead of a normal window
*
- * @param obj Thumb object.
- * @return Editability.
+ * If set, then the default implementation for the JavaScript dialogs and
+ * file selector will be opened in an Inwin. Otherwise they will use a
+ * normal separated window.
*
- * This means the thumbnail is a valid drag target for drag and drop, and can be
- * cut or pasted too.
+ * @param obj The web object
+ * @param value EINA_TRUE to use Inwin, EINA_FALSE to use a normal window
+ */
+ EAPI void elm_web_inwin_mode_set(Evas_Object *obj, Eina_Bool value);
+ /**
+ * Gets whether Inwin mode is set for the current object
*
- * @see elm_thumb_editable_set()
+ * @param obj The web object
*
- * @ingroup Thumb
+ * @return EINA_TRUE if Inwin mode is set, EINA_FALSE otherwise
*/
- EAPI Eina_Bool elm_thumb_editable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EAPI Eina_Bool elm_web_inwin_mode_get(const Evas_Object *obj);
+
+ EAPI void elm_web_window_features_ref(Elm_Web_Window_Features *wf);
+ EAPI void elm_web_window_features_unref(Elm_Web_Window_Features *wf);
+ 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);
+ EAPI void elm_web_window_features_int_property_get(const Elm_Web_Window_Features *wf, int *x, int *y, int *w, int *h);
/**
* @}
EAPI Elm_Icon_Lookup_Order elm_toolbar_icon_order_lookup_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
+ * Set whether the toolbar should always have an item selected.
+ *
+ * @param obj The toolbar object.
+ * @param wrap @c EINA_TRUE to enable always-select mode or @c EINA_FALSE to
+ * disable it.
+ *
+ * This will cause the toolbar to always have an item selected, and clicking
+ * the selected item will not cause a selected event to be emitted. Enabling this mode
+ * will immediately select the first toolbar item.
+ *
+ * Always-selected is disabled by default.
+ *
+ * @see elm_toolbar_always_select_mode_get().
+ *
+ * @ingroup Toolbar
+ */
+ EAPI void elm_toolbar_always_select_mode_set(Evas_Object *obj, Eina_Bool always_select) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get whether the toolbar should always have an item selected.
+ *
+ * @param obj The toolbar object.
+ * @return @c EINA_TRUE means an item will always be selected, @c EINA_FALSE indicates
+ * that it is possible to have no items selected. If @p obj is @c NULL, @c EINA_FALSE is returned.
+ *
+ * @see elm_toolbar_always_select_mode_set() for details.
+ *
+ * @ingroup Toolbar
+ */
+ EAPI Eina_Bool elm_toolbar_always_select_mode_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
* Set whether the toolbar items' should be selected by the user or not.
*
* @param obj The toolbar object.
EAPI const char *elm_toolbar_item_icon_get(const Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
/**
+ * Get the object of @p item.
+ *
+ * @param item The toolbar item.
+ * @return The object
+ *
+ * @ingroup Toolbar
+ */
+ EAPI Evas_Object *elm_toolbar_item_object_get(const Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the icon object of @p item.
+ *
+ * @param item The toolbar item.
+ * @return The icon object
+ *
+ * @see elm_toolbar_item_icon_set() or elm_toolbar_item_icon_memfile_set() for details.
+ *
+ * @ingroup Toolbar
+ */
+ EAPI Evas_Object *elm_toolbar_item_icon_object_get(Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set the icon associated with @p item to an image in a binary buffer.
+ *
+ * @param item The toolbar item.
+ * @param img The binary data that will be used as an image
+ * @param size The size of binary data @p img
+ * @param format Optional format of @p img to pass to the image loader
+ * @param key Optional key of @p img to pass to the image loader (eg. if @p img is an edje file)
+ *
+ * @return (@c EINA_TRUE = success, @c EINA_FALSE = error)
+ *
+ * @note The icon image set by this function can be changed by
+ * elm_toolbar_item_icon_set().
+ *
+ * @ingroup Toolbar
+ */
+ EAPI Eina_Bool elm_toolbar_item_icon_memfile_set(Elm_Toolbar_Item *item, const void *img, size_t size, const char *format, const char *key) EINA_ARG_NONNULL(1);
+
+ /**
* Delete them item from the toolbar.
*
* @param item The item of toolbar to be deleted.
*
* @ingroup Toolbar
*/
- EAPI Evas_Object *elm_toolbar_item_menu_get(Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
+ EAPI Evas_Object *elm_toolbar_item_menu_get(const Elm_Toolbar_Item *item) EINA_ARG_NONNULL(1);
/**
* Add a new state to @p item.
EAPI void elm_object_tooltip_show(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_object_tooltip_hide(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_object_tooltip_text_set(Evas_Object *obj, const char *text) EINA_ARG_NONNULL(1, 2);
+ EAPI void elm_object_tooltip_domain_translatable_text_set(Evas_Object *obj, const char *domain, const char *text) EINA_ARG_NONNULL(1, 3);
+#define elm_object_tooltip_translatable_text_set(obj, text) elm_object_tooltip_domain_translatable_text_set((obj), NULL, (text))
EAPI void elm_object_tooltip_content_cb_set(Evas_Object *obj, Elm_Tooltip_Content_Cb func, const void *data, Evas_Smart_Cb del_cb) EINA_ARG_NONNULL(1);
EAPI void elm_object_tooltip_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_object_tooltip_style_set(Evas_Object *obj, const char *style) EINA_ARG_NONNULL(1);
* @return The top object or NULL if none
*/
EAPI Evas_Object *elm_pager_content_top_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
/**
* @}
*/
* @ingroup Panes
*/
EAPI Eina_Bool elm_panes_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EAPI void elm_panes_fixed_set(Evas_Object *obj, Eina_Bool fixed) EINA_ARG_NONNULL(1);
+ EAPI Eina_Bool elm_panes_fixed_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* @}
* @}
*/
- typedef struct _Elm_Store Elm_Store;
- typedef struct _Elm_Store_Filesystem Elm_Store_Filesystem;
- typedef struct _Elm_Store_Item Elm_Store_Item;
- typedef struct _Elm_Store_Item_Filesystem Elm_Store_Item_Filesystem;
- typedef struct _Elm_Store_Item_Info Elm_Store_Item_Info;
- typedef struct _Elm_Store_Item_Info_Filesystem Elm_Store_Item_Info_Filesystem;
- typedef struct _Elm_Store_Item_Mapping Elm_Store_Item_Mapping;
- typedef struct _Elm_Store_Item_Mapping_Empty Elm_Store_Item_Mapping_Empty;
- typedef struct _Elm_Store_Item_Mapping_Icon Elm_Store_Item_Mapping_Icon;
- typedef struct _Elm_Store_Item_Mapping_Photo Elm_Store_Item_Mapping_Photo;
- typedef struct _Elm_Store_Item_Mapping_Custom Elm_Store_Item_Mapping_Custom;
-
- typedef Eina_Bool (*Elm_Store_Item_List_Cb) (void *data, Elm_Store_Item_Info *info);
- typedef void (*Elm_Store_Item_Fetch_Cb) (void *data, Elm_Store_Item *sti);
- typedef void (*Elm_Store_Item_Unfetch_Cb) (void *data, Elm_Store_Item *sti);
- typedef void *(*Elm_Store_Item_Mapping_Cb) (void *data, Elm_Store_Item *sti, const char *part);
-
- typedef enum
- {
- ELM_STORE_ITEM_MAPPING_NONE = 0,
- ELM_STORE_ITEM_MAPPING_LABEL, // const char * -> label
- ELM_STORE_ITEM_MAPPING_STATE, // Eina_Bool -> state
- ELM_STORE_ITEM_MAPPING_ICON, // char * -> icon path
- ELM_STORE_ITEM_MAPPING_PHOTO, // char * -> photo path
- ELM_STORE_ITEM_MAPPING_CUSTOM, // item->custom(it->data, it, part) -> void * (-> any)
- // can add more here as needed by common apps
- ELM_STORE_ITEM_MAPPING_LAST
- } Elm_Store_Item_Mapping_Type;
-
- struct _Elm_Store_Item_Mapping_Icon
- {
- // FIXME: allow edje file icons
- int w, h;
- Elm_Icon_Lookup_Order lookup_order;
- Eina_Bool standard_name : 1;
- Eina_Bool no_scale : 1;
- Eina_Bool smooth : 1;
- Eina_Bool scale_up : 1;
- Eina_Bool scale_down : 1;
- };
+ typedef struct _Elm_Store Elm_Store;
+ typedef struct _Elm_Store_Filesystem Elm_Store_Filesystem;
+ typedef struct _Elm_Store_Item Elm_Store_Item;
+ typedef struct _Elm_Store_Item_Filesystem Elm_Store_Item_Filesystem;
+ typedef struct _Elm_Store_Item_Info Elm_Store_Item_Info;
+ typedef struct _Elm_Store_Item_Info_Filesystem Elm_Store_Item_Info_Filesystem;
+ typedef struct _Elm_Store_Item_Mapping Elm_Store_Item_Mapping;
+ typedef struct _Elm_Store_Item_Mapping_Empty Elm_Store_Item_Mapping_Empty;
+ typedef struct _Elm_Store_Item_Mapping_Icon Elm_Store_Item_Mapping_Icon;
+ typedef struct _Elm_Store_Item_Mapping_Photo Elm_Store_Item_Mapping_Photo;
+ typedef struct _Elm_Store_Item_Mapping_Custom Elm_Store_Item_Mapping_Custom;
- struct _Elm_Store_Item_Mapping_Empty
- {
- Eina_Bool dummy;
- };
+ typedef Eina_Bool (*Elm_Store_Item_List_Cb) (void *data, Elm_Store_Item_Info *info);
+ typedef void (*Elm_Store_Item_Fetch_Cb) (void *data, Elm_Store_Item *sti);
+ typedef void (*Elm_Store_Item_Unfetch_Cb) (void *data, Elm_Store_Item *sti);
+ typedef void *(*Elm_Store_Item_Mapping_Cb) (void *data, Elm_Store_Item *sti, const char *part);
- struct _Elm_Store_Item_Mapping_Photo
- {
- int size;
- };
+ typedef enum
+ {
+ ELM_STORE_ITEM_MAPPING_NONE = 0,
+ ELM_STORE_ITEM_MAPPING_LABEL, // const char * -> label
+ ELM_STORE_ITEM_MAPPING_STATE, // Eina_Bool -> state
+ ELM_STORE_ITEM_MAPPING_ICON, // char * -> icon path
+ ELM_STORE_ITEM_MAPPING_PHOTO, // char * -> photo path
+ ELM_STORE_ITEM_MAPPING_CUSTOM, // item->custom(it->data, it, part) -> void * (-> any)
+ // can add more here as needed by common apps
+ ELM_STORE_ITEM_MAPPING_LAST
+ } Elm_Store_Item_Mapping_Type;
+
+ struct _Elm_Store_Item_Mapping_Icon
+ {
+ // FIXME: allow edje file icons
+ int w, h;
+ Elm_Icon_Lookup_Order lookup_order;
+ Eina_Bool standard_name : 1;
+ Eina_Bool no_scale : 1;
+ Eina_Bool smooth : 1;
+ Eina_Bool scale_up : 1;
+ Eina_Bool scale_down : 1;
+ };
- struct _Elm_Store_Item_Mapping_Custom
- {
- Elm_Store_Item_Mapping_Cb func;
- };
+ struct _Elm_Store_Item_Mapping_Empty
+ {
+ Eina_Bool dummy;
+ };
- struct _Elm_Store_Item_Mapping
- {
- Elm_Store_Item_Mapping_Type type;
- const char *part;
- int offset;
- union
- {
- Elm_Store_Item_Mapping_Empty empty;
- Elm_Store_Item_Mapping_Icon icon;
- Elm_Store_Item_Mapping_Photo photo;
- Elm_Store_Item_Mapping_Custom custom;
- // add more types here
- } details;
- };
+ struct _Elm_Store_Item_Mapping_Photo
+ {
+ int size;
+ };
- struct _Elm_Store_Item_Info
- {
- Elm_Genlist_Item_Class *item_class;
- const Elm_Store_Item_Mapping *mapping;
- void *data;
- char *sort_id;
- };
+ struct _Elm_Store_Item_Mapping_Custom
+ {
+ Elm_Store_Item_Mapping_Cb func;
+ };
- struct _Elm_Store_Item_Info_Filesystem
- {
- Elm_Store_Item_Info base;
- char *path;
- };
+ struct _Elm_Store_Item_Mapping
+ {
+ Elm_Store_Item_Mapping_Type type;
+ const char *part;
+ int offset;
+ union
+ {
+ Elm_Store_Item_Mapping_Empty empty;
+ Elm_Store_Item_Mapping_Icon icon;
+ Elm_Store_Item_Mapping_Photo photo;
+ Elm_Store_Item_Mapping_Custom custom;
+ // add more types here
+ } details;
+ };
+
+ struct _Elm_Store_Item_Info
+ {
+ Elm_Genlist_Item_Class *item_class;
+ const Elm_Store_Item_Mapping *mapping;
+ void *data;
+ char *sort_id;
+ };
+
+ struct _Elm_Store_Item_Info_Filesystem
+ {
+ Elm_Store_Item_Info base;
+ char *path;
+ };
#define ELM_STORE_ITEM_MAPPING_END { ELM_STORE_ITEM_MAPPING_NONE, NULL, 0, { .empty = { EINA_TRUE } } }
#define ELM_STORE_ITEM_MAPPING_OFFSET(st, it) offsetof(st, it)
- EAPI void elm_store_free(Elm_Store *st);
+ EAPI void elm_store_free(Elm_Store *st);
- EAPI Elm_Store *elm_store_filesystem_new(void);
- EAPI void elm_store_filesystem_directory_set(Elm_Store *st, const char *dir) EINA_ARG_NONNULL(1);
- EAPI const char *elm_store_filesystem_directory_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
- EAPI const char *elm_store_item_filesystem_path_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
+ EAPI Elm_Store *elm_store_filesystem_new(void);
+ EAPI void elm_store_filesystem_directory_set(Elm_Store *st, const char *dir) EINA_ARG_NONNULL(1);
+ EAPI const char *elm_store_filesystem_directory_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
+ EAPI const char *elm_store_item_filesystem_path_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
- EAPI void elm_store_target_genlist_set(Elm_Store *st, Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EAPI void elm_store_target_genlist_set(Elm_Store *st, Evas_Object *obj) EINA_ARG_NONNULL(1);
- EAPI void elm_store_cache_set(Elm_Store *st, int max) EINA_ARG_NONNULL(1);
- EAPI int elm_store_cache_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
- EAPI void elm_store_list_func_set(Elm_Store *st, Elm_Store_Item_List_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
- EAPI void elm_store_fetch_func_set(Elm_Store *st, Elm_Store_Item_Fetch_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
- EAPI void elm_store_fetch_thread_set(Elm_Store *st, Eina_Bool use_thread) EINA_ARG_NONNULL(1);
- EAPI Eina_Bool elm_store_fetch_thread_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
+ EAPI void elm_store_cache_set(Elm_Store *st, int max) EINA_ARG_NONNULL(1);
+ EAPI int elm_store_cache_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
+ EAPI void elm_store_list_func_set(Elm_Store *st, Elm_Store_Item_List_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
+ EAPI void elm_store_fetch_func_set(Elm_Store *st, Elm_Store_Item_Fetch_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
+ EAPI void elm_store_fetch_thread_set(Elm_Store *st, Eina_Bool use_thread) EINA_ARG_NONNULL(1);
+ EAPI Eina_Bool elm_store_fetch_thread_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
- EAPI void elm_store_unfetch_func_set(Elm_Store *st, Elm_Store_Item_Unfetch_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
- EAPI void elm_store_sorted_set(Elm_Store *st, Eina_Bool sorted) EINA_ARG_NONNULL(1);
- EAPI Eina_Bool elm_store_sorted_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
- EAPI void elm_store_item_data_set(Elm_Store_Item *sti, void *data) EINA_ARG_NONNULL(1);
- EAPI void *elm_store_item_data_get(Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
- EAPI const Elm_Store *elm_store_item_store_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
- EAPI const Elm_Genlist_Item *elm_store_item_genlist_item_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
+ EAPI void elm_store_unfetch_func_set(Elm_Store *st, Elm_Store_Item_Unfetch_Cb func, const void *data) EINA_ARG_NONNULL(1, 2);
+ EAPI void elm_store_sorted_set(Elm_Store *st, Eina_Bool sorted) EINA_ARG_NONNULL(1);
+ EAPI Eina_Bool elm_store_sorted_get(const Elm_Store *st) EINA_ARG_NONNULL(1);
+ EAPI void elm_store_item_data_set(Elm_Store_Item *sti, void *data) EINA_ARG_NONNULL(1);
+ EAPI void *elm_store_item_data_get(Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
+ EAPI const Elm_Store *elm_store_item_store_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
+ EAPI const Elm_Genlist_Item *elm_store_item_genlist_item_get(const Elm_Store_Item *sti) EINA_ARG_NONNULL(1);
/**
* @defgroup SegmentControl SegmentControl
/**
* @defgroup Video Video
*
- * This object display an player that let you control an Elm_Video
- * object. It take care of updating it's content according to what is
- * going on inside the Emotion object. It does activate the remember
- * function on the linked Elm_Video object.
+ * @addtogroup Video
+ * @{
+ *
+ * Elementary comes with two object that help design application that need
+ * to display video. The main one, Elm_Video, display a video by using Emotion.
+ * It does embedded the video inside an Edje object, so you can do some
+ * animation depending on the video state change. It does also implement a
+ * ressource management policy to remove this burden from the application writer.
+ *
+ * The second one, Elm_Player is a video player that need to be linked with and Elm_Video.
+ * It take care of updating its content according to Emotion event and provide a
+ * way to theme itself. It also does automatically raise the priority of the
+ * linked Elm_Video so it will use the video decoder if available. It also does
+ * activate the remember function on the linked Elm_Video object.
*
* Signals that you can add callback for are :
*
* "rewind,clicked" - the user clicked the rewind button.
* "stop,clicked" - the user clicked the stop button.
*/
+
+ /**
+ * @brief Add a new Elm_Player object to the given parent Elementary (container) object.
+ *
+ * @param parent The parent object
+ * @return a new player widget handle or @c NULL, on errors.
+ *
+ * This function inserts a new player widget on the canvas.
+ *
+ * @see elm_player_video_set()
+ *
+ * @ingroup Video
+ */
+ EAPI Evas_Object *elm_player_add(Evas_Object *parent);
+
+ /**
+ * @brief Link a Elm_Payer with an Elm_Video object.
+ *
+ * @param player the Elm_Player object.
+ * @param video The Elm_Video object.
+ *
+ * This mean that action on the player widget will affect the
+ * video object and the state of the video will be reflected in
+ * the player itself.
+ *
+ * @see elm_player_add()
+ * @see elm_video_add()
+ *
+ * @ingroup Video
+ */
+ EAPI void elm_player_video_set(Evas_Object *player, Evas_Object *video);
+
+ /**
+ * @brief Add a new Elm_Video object to the given parent Elementary (container) object.
+ *
+ * @param parent The parent object
+ * @return a new video widget handle or @c NULL, on errors.
+ *
+ * This function inserts a new video widget on the canvas.
+ *
+ * @seeelm_video_file_set()
+ * @see elm_video_uri_set()
+ *
+ * @ingroup Video
+ */
EAPI Evas_Object *elm_video_add(Evas_Object *parent);
+
+ /**
+ * @brief Define the file that will be the video source.
+ *
+ * @param video The video object to define the file for.
+ * @param filename The file to target.
+ *
+ * This function will explicitly define a filename as a source
+ * for the video of the Elm_Video object.
+ *
+ * @see elm_video_uri_set()
+ * @see elm_video_add()
+ * @see elm_player_add()
+ *
+ * @ingroup Video
+ */
EAPI void elm_video_file_set(Evas_Object *video, const char *filename);
+
+ /**
+ * @brief Define the uri that will be the video source.
+ *
+ * @param video The video object to define the file for.
+ * @param uri The uri to target.
+ *
+ * This function will define an uri as a source for the video of the
+ * Elm_Video object. URI could be remote source of video, like http:// or local source
+ * like for example WebCam who are most of the time v4l2:// (but that depend and
+ * you should use Emotion API to request and list the available Webcam on your system).
+ *
+ * @see elm_video_file_set()
+ * @see elm_video_add()
+ * @see elm_player_add()
+ *
+ * @ingroup Video
+ */
EAPI void elm_video_uri_set(Evas_Object *video, const char *uri);
+
+ /**
+ * @brief Get the underlying Emotion object.
+ *
+ * @param video The video object to proceed the request on.
+ * @return the underlying Emotion object.
+ *
+ * @ingroup Video
+ */
EAPI Evas_Object *elm_video_emotion_get(Evas_Object *video);
+
+ /**
+ * @brief Start to play the video
+ *
+ * @param video The video object to proceed the request on.
+ *
+ * Start to play the video and cancel all suspend state.
+ *
+ * @ingroup Video
+ */
EAPI void elm_video_play(Evas_Object *video);
+
+ /**
+ * @brief Pause the video
+ *
+ * @param video The video object to proceed the request on.
+ *
+ * Pause the video and start a timer to trigger suspend mode.
+ *
+ * @ingroup Video
+ */
EAPI void elm_video_pause(Evas_Object *video);
+
+ /**
+ * @brief Stop the video
+ *
+ * @param video The video object to proceed the request on.
+ *
+ * Stop the video and put the emotion in deep sleep mode.
+ *
+ * @ingroup Video
+ */
EAPI void elm_video_stop(Evas_Object *video);
+
+ /**
+ * @brief Is the video actually playing.
+ *
+ * @param video The video object to proceed the request on.
+ * @return EINA_TRUE if the video is actually playing.
+ *
+ * You should consider watching event on the object instead of polling
+ * the object state.
+ *
+ * @ingroup Video
+ */
EAPI Eina_Bool elm_video_is_playing(Evas_Object *video);
+
+ /**
+ * @brief Is it possible to seek inside the video.
+ *
+ * @param video The video object to proceed the request on.
+ * @return EINA_TRUE if is possible to seek inside the video.
+ *
+ * @ingroup Video
+ */
EAPI Eina_Bool elm_video_is_seekable(Evas_Object *video);
+
+ /**
+ * @brief Is the audio muted.
+ *
+ * @param video The video object to proceed the request on.
+ * @return EINA_TRUE if the audio is muted.
+ *
+ * @ingroup Video
+ */
EAPI Eina_Bool elm_video_audio_mute_get(Evas_Object *video);
+
+ /**
+ * @brief Change the mute state of the Elm_Video object.
+ *
+ * @param video The video object to proceed the request on.
+ * @param mute The new mute state.
+ *
+ * @ingroup Video
+ */
EAPI void elm_video_audio_mute_set(Evas_Object *video, Eina_Bool mute);
+
+ /**
+ * @brief Get the audio level of the current video.
+ *
+ * @param video The video object to proceed the request on.
+ * @return the current audio level.
+ *
+ * @ingroup Video
+ */
EAPI double elm_video_audio_level_get(Evas_Object *video);
+
+ /**
+ * @brief Set the audio level of anElm_Video object.
+ *
+ * @param video The video object to proceed the request on.
+ * @param volume The new audio volume.
+ *
+ * @ingroup Video
+ */
EAPI void elm_video_audio_level_set(Evas_Object *video, double volume);
+
EAPI double elm_video_play_position_get(Evas_Object *video);
EAPI void elm_video_play_position_set(Evas_Object *video, double position);
EAPI double elm_video_play_length_get(Evas_Object *video);
EAPI void elm_video_remember_position_set(Evas_Object *video, Eina_Bool remember);
EAPI Eina_Bool elm_video_remember_position_get(Evas_Object *video);
EAPI const char *elm_video_title_get(Evas_Object *video);
-
- EAPI Evas_Object *elm_player_add(Evas_Object *parent);
- EAPI void elm_player_video_set(Evas_Object *player, Evas_Object *video);
+ /**
+ * @}
+ */
/**
* @defgroup Naviframe Naviframe
+ * @ingroup Elementary
*
* @brief Naviframe is a kind of view manager for the applications.
*
- * Naviframe provies functions to switch the different pages with stack
+ * Naviframe provides functions to switch different pages with stack
* mechanism. It means if one page(item) needs to be changed to the new one,
* then naviframe would push the new page to it's internal stack. Of course,
* it can be back to the previous page by popping the top page. Naviframe
- * provides some transition effect while the pages are switching (such as
+ * provides some transition effect while the pages are switching (same as
* pager).
*
- * Since the each item could keep the different styles, users could keep the
+ * Since each item could keep the different styles, users could keep the
* same look & feel for the pages or different styles for the items in it's
* application.
*
* @li "elm.swallow.prev_btn" - The button to go to the previous page
* @li "elm.swallow.next_btn" - The button to go to the next page
*
- * Default text parts for the naviframe items that you can use for are:
+ * Default text parts of naviframe items that you can be used are:
*
* @li "elm.text.title" - The title label in the title area
*
* @ref tutorial_naviframe gives a good overview of the usage of the API.
+ */
+
+ /**
+ * @addtogroup Naviframe
* @{
*/
+
/**
* @brief Add a new Naviframe object to the parent.
*
* @param parent Parent object
* @return New object or @c NULL, if it cannot be created
+ *
+ * @ingroup Naviframe
*/
EAPI Evas_Object *elm_naviframe_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
/**
*
* The following styles are available for this item:
* @li @c "default"
+ *
+ * @ingroup Naviframe
*/
EAPI Elm_Object_Item *elm_naviframe_item_push(Evas_Object *obj, const char *title_label, Evas_Object *prev_btn, Evas_Object *next_btn, Evas_Object *content, const char *item_style) EINA_ARG_NONNULL(1, 5);
/**
* stack will become visible.
*
* @see also elm_naviframe_content_preserve_on_pop_get()
+ *
+ * @ingroup Naviframe
*/
EAPI Evas_Object *elm_naviframe_item_pop(Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* @brief Pop the items between the top and the above one on the given item.
*
* @param it The naviframe item
+ *
+ * @ingroup Naviframe
*/
EAPI void elm_naviframe_item_pop_to(Elm_Object_Item *it) EINA_ARG_NONNULL(1);
/**
+ * @brief Delete the given item instantly.
+ *
+ * @param it The naviframe item
+ *
+ * This just deletes the given item from the naviframe item list instantly.
+ * So this would not emit any signals for view transitions but just change
+ * the current view if the given item is a top one.
+ *
+ * @ingroup Naviframe
+ */
+ EAPI void elm_naviframe_item_del(Elm_Object_Item *it) EINA_ARG_NONNULL(1);
+ /**
* @brief preserve the content objects when items are popped.
*
* @param obj The naviframe object
* @param preserve Enable the preserve mode if EINA_TRUE, disable otherwise
*
* @see also elm_naviframe_content_preserve_on_pop_get()
+ *
+ * @ingroup Naviframe
*/
EAPI void elm_naviframe_content_preserve_on_pop_set(Evas_Object *obj, Eina_Bool preserve) EINA_ARG_NONNULL(1);
/**
* @return If @c EINA_TRUE, preserve mode is enabled
*
* @see also elm_naviframe_content_preserve_on_pop_set()
+ *
+ * @ingroup Naviframe
*/
EAPI Eina_Bool elm_naviframe_content_preserve_on_pop_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* @param obj The naviframe object
* @return The top item on the naviframe stack or @c NULL, if the stack is
* empty
+ *
+ * @ingroup Naviframe
*/
EAPI Elm_Object_Item *elm_naviframe_top_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* @param obj The naviframe object
* @return The bottom item on the naviframe stack or @c NULL, if the stack is
* empty
+ *
+ * @ingroup Naviframe
*/
EAPI Elm_Object_Item *elm_naviframe_bottom_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* @li @c "default"
*
* @see also elm_naviframe_item_style_get()
+ *
+ * @ingroup Naviframe
*/
EAPI void elm_naviframe_item_style_set(Elm_Object_Item *it, const char *item_style) EINA_ARG_NONNULL(1);
/**
* @return The current item style name
*
* @see also elm_naviframe_item_style_set()
+ *
+ * @ingroup Naviframe
*/
EAPI const char *elm_naviframe_item_style_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
/**
* @brief Show/Hide the title area
*
* @param it The naviframe item
- * @param visible If @c EINA_TRUE, title area will be visible, disable
+ * @param visible If @c EINA_TRUE, title area will be visible, hidden
* otherwise
*
* When the title area is invisible, then the controls would be hidden so as * to expand the content area to full-size.
*
* @see also elm_naviframe_item_title_visible_get()
+ *
+ * @ingroup Naviframe
*/
EAPI void elm_naviframe_item_title_visible_set(Elm_Object_Item *it, Eina_Bool visible) EINA_ARG_NONNULL(1);
/**
* @return If @c EINA_TRUE, title area is visible
*
* @see also elm_naviframe_item_title_visible_set()
+ *
+ * @ingroup Naviframe
*/
EAPI Eina_Bool elm_naviframe_item_title_visible_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
/**
+ * @brief Set creating prev button automatically or not
+ *
+ * @param obj The naviframe object
+ * @param auto_pushed If @c EINA_TRUE, the previous button(back button) will
+ * be created internally when you pass the @c NULL to the prev_btn
+ * parameter in elm_naviframe_item_push
+ *
+ * @see also elm_naviframe_item_push()
+ */
+ EAPI void elm_naviframe_prev_btn_auto_pushed_set(Evas_Object *obj, Eina_Bool auto_pushed) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Get a value whether prev button(back button) will be auto pushed or
+ * not.
+ *
+ * @param obj The naviframe object
+ * @return If @c EINA_TRUE, prev button will be auto pushed.
+ *
+ * @see also elm_naviframe_item_push()
+ * elm_naviframe_prev_btn_auto_pushed_set()
+ */
+ EAPI Eina_Bool elm_naviframe_prev_btn_auto_pushed_get(const Evas_Object *obj); EINA_ARG_NONNULL(1);
+
+ /**
* @}
*/