@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
#include <Ecore_Evas.h>
#include <Ecore_File.h>
#include <Ecore_IMF.h>
+#include <Ecore_Con.h>
#include <Edje.h>
#ifdef ELM_EDBUS
# endif
#endif /* ! _WIN32 */
+#ifdef _WIN32
+# define EAPI_MAIN
+#else
+# define EAPI_MAIN EAPI
+#endif
/* allow usage from c++ */
#ifdef __cplusplus
EAPI Eina_Bool elm_need_efreet(void);
EAPI Eina_Bool elm_need_e_dbus(void);
+
+ /**
+ * This must be called before any other function that deals with
+ * elm_thumb objects or ethumb_client instances.
+ *
+ * @ingroup Thumb
+ */
EAPI Eina_Bool elm_need_ethumb(void);
/**
+ * This must be called before any other function that deals 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.
* @param label The new text of the label
*
* @note Elementary objects may have many labels (e.g. Action Slider)
+ * @deprecated Use elm_object_part_text_set() instead.
+ * @ingroup General
+ */
+ EINA_DEPRECATED EAPI void elm_object_text_part_set(Evas_Object *obj, const char *part, const char *label);
+
+ /**
+ * Set a label of an object
+ *
+ * @param obj The Elementary object
+ * @param part The text part name to set (NULL for the default label)
+ * @param label The new text of the label
+ *
+ * @note Elementary objects may have many labels (e.g. Action Slider)
*
* @ingroup General
*/
- EAPI void elm_object_text_part_set(Evas_Object *obj, const char *part, const char *label);
+ EAPI void elm_object_part_text_set(Evas_Object *obj, const char *part, const char *label);
+
+#define elm_object_text_set(obj, label) elm_object_part_text_set((obj), NULL, (label))
-#define elm_object_text_set(obj, label) elm_object_text_part_set((obj), NULL, (label))
+ /**
+ * Get a label of an object
+ *
+ * @param obj The Elementary object
+ * @param part The text part name to get (NULL for the default label)
+ * @return text of the label or NULL for any error
+ *
+ * @note Elementary objects may have many labels (e.g. Action Slider)
+ * @deprecated Use elm_object_part_text_get() instead.
+ * @ingroup General
+ */
+ EINA_DEPRECATED EAPI const char *elm_object_text_part_get(const Evas_Object *obj, const char *part);
/**
* Get a label of an object
*
* @ingroup General
*/
- EAPI const char *elm_object_text_part_get(const Evas_Object *obj, const char *part);
+ EAPI const char *elm_object_part_text_get(const Evas_Object *obj, const char *part);
+
+#define elm_object_text_get(obj) elm_object_part_text_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_part_text_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 containing the text part
+ * @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_part_text_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_text_get(obj) elm_object_text_part_get((obj), NULL)
+#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
+ * @param part The content part name to set (NULL for the default content)
+ * @param content The new content of the object
+ *
+ * @note Elementary objects may have many contents
+ * @deprecated Use elm_object_part_content_set instead.
+ * @ingroup General
+ */
+ EINA_DEPRECATED EAPI void elm_object_content_part_set(Evas_Object *obj, const char *part, Evas_Object *content);
/**
* Set a content of an object
*
* @ingroup General
*/
- EAPI void elm_object_content_part_set(Evas_Object *obj, const char *part, Evas_Object *content);
+ EAPI void elm_object_part_content_set(Evas_Object *obj, const char *part, Evas_Object *content);
+
+#define elm_object_content_set(obj, content) elm_object_part_content_set((obj), NULL, (content))
-#define elm_object_content_set(obj, content) elm_object_content_part_set((obj), NULL, (content))
+ /**
+ * Get a content of an object
+ *
+ * @param obj The Elementary object
+ * @param item The content part name to get (NULL for the default content)
+ * @return content of the object or NULL for any error
+ *
+ * @note Elementary objects may have many contents
+ * @deprecated Use elm_object_part_content_get instead.
+ * @ingroup General
+ */
+ EINA_DEPRECATED EAPI Evas_Object *elm_object_content_part_get(const Evas_Object *obj, const char *part);
/**
* Get a content of an object
*
* @ingroup General
*/
- EAPI Evas_Object *elm_object_content_part_get(const Evas_Object *obj, const char *part);
+ EAPI Evas_Object *elm_object_part_content_get(const Evas_Object *obj, const char *part);
-#define elm_object_content_get(obj) elm_object_content_part_get((obj), NULL)
+#define elm_object_content_get(obj) elm_object_part_content_get((obj), NULL)
+
+ /**
+ * Unset a content of an object
+ *
+ * @param obj The Elementary object
+ * @param item The content part name to unset (NULL for the default content)
+ *
+ * @note Elementary objects may have many contents
+ * @deprecated Use elm_object_part_content_unset instead.
+ * @ingroup General
+ */
+ EINA_DEPRECATED EAPI Evas_Object *elm_object_content_part_unset(Evas_Object *obj, const char *part);
/**
* Unset a content of an object
*
* @ingroup General
*/
- EAPI Evas_Object *elm_object_content_part_unset(Evas_Object *obj, const char *part);
+ EAPI Evas_Object *elm_object_part_content_unset(Evas_Object *obj, const char *part);
-#define elm_object_content_unset(obj) elm_object_content_part_unset((obj), NULL)
+#define elm_object_content_unset(obj) elm_object_part_content_unset((obj), NULL)
+
+ /**
+ * Get the widget 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
*/
EAPI const char *elm_object_item_text_part_get(const Elm_Object_Item *it, const char *part);
+ /**
+ * Set the text to read out when in accessibility mode
+ *
+ * @param obj The object which is to be described
+ * @param txt The text that describes the widget to people with poor or no vision
+ *
+ * @ingroup General
+ */
+ EAPI void elm_object_access_info_set(Evas_Object *obj, const char *txt);
+
+ /**
+ * Set the text to read out when in accessibility mode
+ *
+ * @param it The object item which is to be described
+ * @param txt The text that describes the widget to people with poor or no vision
+ *
+ * @ingroup General
+ */
+ 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
+ * @param it The Elementary object item
* @return The data associated with @p it
*
* @ingroup General
/**
* Set the data associated with an object item
- * @param it The object item
+ * @param it The Elementary object item
* @param data The data to be associated with @p it
*
* @ingroup General
*/
/**
+ * Get the global scaling factor
+ *
+ * This gets the globally configured scaling factor that is applied to all
+ * objects.
+ *
+ * @return The scaling factor
+ * @ingroup Scaling
+ */
+ EAPI double elm_scale_get(void);
+
+ /**
+ * Set the global scaling factor
+ *
+ * This sets the globally configured scaling factor that is applied to all
+ * objects.
+ *
+ * @param scale The scaling factor to set
+ * @ingroup Scaling
+ */
+ EAPI void elm_scale_set(double scale);
+
+ /**
+ * Set the global scaling factor for all applications on the display
+ *
+ * This sets the globally configured scaling factor that is applied to all
+ * objects for all applications.
+ * @param scale The scaling factor to set
+ * @ingroup Scaling
+ */
+ EAPI void elm_scale_all_set(double scale);
+
+ /**
* Set the scaling factor for a given Elementary object
*
* @param obj The Elementary to operate on
* @{
*/
+ EAPI Eina_Bool elm_mirrored_get(void);
+ EAPI void elm_mirrored_set(Eina_Bool mirrored);
+
/**
* Get the system mirrored mode. This determines the default mirrored mode
* of widgets.
*
* @{
*/
- EAPI double elm_scale_get(void);
- EAPI void elm_scale_set(double scale);
- EAPI void elm_scale_all_set(double scale);
/**
* Save back Elementary's configuration, so that it will persist on
* configuration file.
*
*/
- EAPI Eina_Bool elm_mirrored_get(void);
- EAPI void elm_mirrored_set(Eina_Bool mirrored);
+ EAPI Eina_Bool elm_config_save(void);
/**
* Reload Elementary's configuration, bounded to current selected
*
* Useful when you want to force reloading of configuration values for
* a profile. If one removes user custom configuration directories,
- * for example, it will force a reload with system values insted.
+ * for example, it will force a reload with system values instead.
*
*/
- EAPI Eina_Bool elm_config_save(void);
EAPI void elm_config_reload(void);
/**
* @li "opengl_sdl"
* @li "buffer"
* @li "ews"
+ * @li "opengl_cocoa"
+ * @li "psl1ght"
*
* @{
*/
EAPI Eina_Bool elm_object_focus_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
+ * Set/unset focus to a given Elementary object.
+ *
+ * @param obj The Elementary object to operate on.
+ * @param enable @c EINA_TRUE Set focus to a given object,
+ * @c EINA_FALSE Unset focus to a given object.
+ *
+ * @note When you set focus to this object, if it can handle focus, will
+ * take the focus away from the one who had it previously and will, for
+ * now on, be the one receiving input events. Unsetting focus will remove
+ * the focus from @p obj, passing it back to the previous element in the
+ * focus chain list.
+ *
+ * @see elm_object_focus_get(), elm_object_focus_custom_chain_get()
+ *
+ * @ingroup Focus
+ */
+ EAPI void elm_object_focus_set(Evas_Object *obj, Eina_Bool focus) EINA_ARG_NONNULL(1);
+
+ /**
* Make a given Elementary object the focused one.
*
* @param obj The Elementary object to make focused.
* @ingroup General
*/
EAPI void elm_object_signal_emit(Evas_Object *obj, const char *emission, const char *source) EINA_ARG_NONNULL(1);
- EAPI void elm_object_signal_callback_add(Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *o, const char *emission, const char *source), void *data) EINA_ARG_NONNULL(1, 4);
- EAPI void *elm_object_signal_callback_del(Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *o, const char *emission, const char *source)) EINA_ARG_NONNULL(1, 4);
/**
* Add a callback for a signal emitted by widget edje object.
* @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)
+ * @li "gl-cocoa", "gl_cocoa", "opengl-cocoa", "opengl_cocoa" (OpenGL rendering in Cocoa)
+ * @li "psl1ght" (PS3 rendering using PSL1GHT)
*
* 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 Evas_Object *elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type);
/**
+ * Adds a window object with standard setup
+ *
+ * @param name The name of the window
+ * @param title The title for the window
+ *
+ * This creates a window like elm_win_add() but also puts in a standard
+ * background with elm_bg_add(), as well as setting the window title to
+ * @p title. The window type created is of type ELM_WIN_BASIC, with NULL
+ * as the parent widget.
+ *
+ * @return The created object, or NULL on failure
+ *
+ * @see elm_win_add()
+ */
+ EAPI Evas_Object *elm_win_util_standard_add(const char *name, const char *title);
+ /**
* Add @p subobj as a resize object of window @p obj.
*
*
* centered, scaled or stretched.
*
* Default contents parts of the bg widget that you can use for are:
- * @li "elm.swallow.content" - overlay of the bg
+ * @li "overlay" - overlay of the bg
*
* Here is some sample code using it:
* @li @ref bg_01_example_page
* deleted, even if you set the new one to NULL. If you want to keep that
* old content object, use the elm_bg_overlay_unset() function.
*
+ * @deprecated use elm_object_part_content_set() instead
+ *
* @ingroup Bg
*/
*
* Return the content object which is set for this widget
*
+ * @deprecated use elm_object_part_content_get() instead
+ *
* @ingroup Bg
*/
- EAPI Evas_Object *elm_bg_overlay_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI Evas_Object *elm_bg_overlay_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Get the overlay object used for the background object.
*
* Unparent and return the overlay object which was set for this widget
*
+ * @deprecated use elm_object_part_content_unset() instead
+ *
* @ingroup Bg
*/
EAPI Evas_Object *elm_bg_overlay_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
* @ingroup Icon
*/
EAPI void elm_icon_file_get(const Evas_Object *obj, const char **file, const char **group) EINA_ARG_NONNULL(1);
- EAPI void elm_icon_thumb_set(const Evas_Object *obj, const char *file, const char *group) EINA_ARG_NONNULL(1, 2);
+ EAPI void elm_icon_thumb_set(Evas_Object *obj, const char *file, const char *group) EINA_ARG_NONNULL(1, 2);
/**
* Set the icon by icon standards names.
*
*/
EAPI int elm_icon_prescale_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
+ * Gets the image object of the icon. DO NOT MODIFY THIS.
+ *
+ * @param obj The icon object
+ * @return The internal icon object
+ *
+ * @ingroup Icon
+ */
+ EAPI Evas_Object *elm_icon_object_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
* Sets the icon lookup order used by elm_icon_standard_set().
*
* @param obj The icon object
*/
EAPI Elm_Icon_Lookup_Order elm_icon_order_lookup_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
+ * Enable or disable preloading of the icon
+ *
+ * @param obj The icon object
+ * @param disable If EINA_TRUE, preloading will be disabled
+ * @ingroup Icon
+ */
+ EAPI void elm_icon_preload_set(Evas_Object *obj, Eina_Bool disable) EINA_ARG_NONNULL(1);
+ /**
* Get if the icon supports animation or not.
*
* @param obj The icon object
* elm_icon_animated_XXX APIs won't work.
* @ingroup Icon
*/
- EAPI Eina_Bool elm_icon_anim_available_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EAPI Eina_Bool elm_icon_animated_available_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Set animation mode of the icon.
*
* Set it to EINA_TRUE when the icon needs to be animated.
* @ingroup Icon
*/
- EAPI void elm_icon_anim_set(Evas_Object *obj, Eina_Bool anim) EINA_ARG_NONNULL(1);
+ EAPI void elm_icon_animated_set(Evas_Object *obj, Eina_Bool animated) EINA_ARG_NONNULL(1);
/**
* Get animation mode of the icon.
*
* @see elm_icon_animated_set
* @ingroup Icon
*/
- EAPI Eina_Bool elm_icon_anim_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EAPI Eina_Bool elm_icon_animated_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Set animation play mode of the icon.
*
* Then animation will be stopped and vice versa
* @ingroup Icon
*/
- EAPI void elm_icon_anim_play_set(Evas_Object *obj, Eina_Bool play) EINA_ARG_NONNULL(1);
+ EAPI void elm_icon_animated_play_set(Evas_Object *obj, Eina_Bool play) EINA_ARG_NONNULL(1);
/**
* Get animation play mode of the icon.
*
* @see elm_icon_animated_play_get
* @ingroup Icon
*/
- EAPI Eina_Bool elm_icon_anim_play_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EAPI Eina_Bool elm_icon_animated_play_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /* compatibility code to avoid API and ABI breaks */
+ EINA_DEPRECATED EAPI extern inline void elm_icon_anim_set(Evas_Object *obj, Eina_Bool animated)
+ {
+ elm_icon_animated_set(obj, animated);
+ }
+
+ EINA_DEPRECATED EAPI extern inline Eina_Bool elm_icon_anim_get(const Evas_Object *obj)
+ {
+ return elm_icon_animated_get(obj);
+ }
+
+ EINA_DEPRECATED EAPI extern inline void elm_icon_anim_play_set(Evas_Object *obj, Eina_Bool play)
+ {
+ elm_icon_animated_play_set(obj, play);
+ }
+
+ EINA_DEPRECATED EAPI extern inline Eina_Bool elm_icon_anim_play_get(const Evas_Object *obj)
+ {
+ return elm_icon_animated_play_get(obj);
+ }
/**
* @}
*/
/**
+ * @defgroup Image Image
+ *
+ * @image html img/widget/image/preview-00.png
+ * @image latex img/widget/image/preview-00.eps
+
+ *
+ * An object that allows one to load an image file to it. It can be used
+ * anywhere like any other elementary widget.
+ *
+ * This widget provides most of the functionality provided from @ref Bg or @ref
+ * Icon, but with a slightly different API (use the one that fits better your
+ * needs).
+ *
+ * The features not provided by those two other image widgets are:
+ * @li allowing to get the basic @c Evas_Object with elm_image_object_get();
+ * @li change the object orientation with elm_image_orient_set();
+ * @li and turning the image editable with elm_image_editable_set().
+ *
+ * Signals that you can add callbacks for are:
+ *
+ * @li @c "clicked" - This is called when a user has clicked the image
+ *
+ * An example of usage for this API follows:
+ * @li @ref tutorial_image
+ */
+
+ /**
* @addtogroup Image
* @{
*/
* @}
*/
- /**
- * @defgroup GLView
- *
- * A simple GLView widget that allows GL rendering.
- *
- * Signals that you can add callbacks for are:
- *
- * @{
- */
- typedef void (*Elm_GLView_Func)(Evas_Object *obj);
+ /* glview */
+ typedef void (*Elm_GLView_Func_Cb)(Evas_Object *obj);
+
+ /* old API compatibility */
+ typedef Elm_GLView_Func_Cb Elm_GLView_Func;
typedef enum _Elm_GLView_Mode
{
ELM_GLVIEW_STENCIL = 4
} Elm_GLView_Mode;
+ /**
+ * Defines a policy for the glview resizing.
+ *
+ * @note Default is ELM_GLVIEW_RESIZE_POLICY_RECREATE
+ */
typedef enum _Elm_GLView_Resize_Policy
{
ELM_GLVIEW_RESIZE_POLICY_RECREATE = 1, /**< Resize the internal surface along with the image */
ELM_GLVIEW_RENDER_POLICY_ALWAYS = 2 /**< Render always even when it is not visible */
} Elm_GLView_Render_Policy;
+ /**
+ * @defgroup GLView
+ *
+ * A simple GLView widget that allows GL rendering.
+ *
+ * Signals that you can add callbacks for are:
+ *
+ * @{
+ */
/**
* Add a new glview to the parent
*
* @ingroup GLView
*/
- EAPI void elm_glview_init_func_set(Evas_Object *obj, Elm_GLView_Func func) EINA_ARG_NONNULL(1);
+ EAPI void elm_glview_init_func_set(Evas_Object *obj, Elm_GLView_Func_Cb func) EINA_ARG_NONNULL(1);
/**
* Set the render function that runs in the main loop.
*
* @ingroup GLView
*/
- EAPI void elm_glview_del_func_set(Evas_Object *obj, Elm_GLView_Func func) EINA_ARG_NONNULL(1);
+ EAPI void elm_glview_del_func_set(Evas_Object *obj, Elm_GLView_Func_Cb func) EINA_ARG_NONNULL(1);
/**
* Set the resize function that gets called when resize happens.
*
* @ingroup GLView
*/
- EAPI void elm_glview_resize_func_set(Evas_Object *obj, Elm_GLView_Func func) EINA_ARG_NONNULL(1);
+ EAPI void elm_glview_resize_func_set(Evas_Object *obj, Elm_GLView_Func_Cb func) EINA_ARG_NONNULL(1);
/**
* Set the render function that runs in the main loop.
*
* @ingroup GLView
*/
- EAPI void elm_glview_render_func_set(Evas_Object *obj, Elm_GLView_Func func) EINA_ARG_NONNULL(1);
+ EAPI void elm_glview_render_func_set(Evas_Object *obj, Elm_GLView_Func_Cb func) EINA_ARG_NONNULL(1);
/**
* Notifies that there has been changes in the GLView.
/**
* @defgroup Box Box
*
+ * @image html img/widget/box/preview-00.png
+ * @image latex img/widget/box/preview-00.eps width=\textwidth
+ *
+ * @image html img/box.png
+ * @image latex img/box.eps width=\textwidth
+ *
* A box arranges objects in a linear fashion, governed by a layout function
* that defines the details of this arrangement.
*
* Get the horizontal orientation
*
* @param obj The box object
- * @return EINA_TRUE if the box is set to horizintal mode, EINA_FALSE otherwise
+ * @return EINA_TRUE if the box is set to horizontal mode, EINA_FALSE otherwise
*/
EAPI Eina_Bool elm_box_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
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
/**
* @defgroup Button Button
*
- * @image html widget/button/preview-00.png
- * @image html widget/button/preview-01.png
- * @image html widget/button/preview-02.png
+ * @image html img/widget/button/preview-00.png
+ * @image latex img/widget/button/preview-00.eps
+ * @image html img/widget/button/preview-01.png
+ * @image latex img/widget/button/preview-01.eps
+ * @image html img/widget/button/preview-02.png
+ * @image latex img/widget/button/preview-02.eps
*
* This is a push-button. Press it and run some function. It can contain
* a simple label and icon object and it also has an autorepeat feature.
* continuous look across its options.
* @li hoversel_vertical_entry: Another internal for @ref Hoversel.
*
+ * Default contents parts of the button widget that you can use for are:
+ * @li "icon" - A icon of the button
+ *
+ * Default text parts of the button widget that you can use for are:
+ * @li "default" - Label of the button
+ *
* Follow through a complete example @ref button_example_01 "here".
* @{
*/
*
* @param obj The button object
* @param icon The icon object for the button
+ * @deprecated use elm_object_part_content_set() instead.
*/
EAPI void elm_button_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
/**
* @param obj The button object
* @return The icon object that is being used
*
- * @see elm_button_icon_unset()
+ * @deprecated use elm_object_part_content_get() instead
*/
EAPI Evas_Object *elm_button_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
*
* @param obj The button object
* @return The icon object that was being used
+ * @deprecated use elm_object_part_content_unset() instead.
*/
EAPI Evas_Object *elm_button_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* @note When Elementary is in desktop mode the thumbscroll(a.k.a.
* fingerscroll) won't work.
*
- * To set/get/unset the content of the panel, you can use
- * elm_object_content_set/get/unset APIs.
- * Once the content object is set, a previously set one will be deleted.
- * If you want to keep that old content object, use the
- * elm_object_content_unset() function
+ * Default contents parts of the scroller widget that you can use for are:
+ * @li "default" - A content of the scroller
*
* In @ref tutorial_scroller you'll find an example of how to use most of
* this API.
* Once the content object is set, a previously set one will be deleted.
* If you want to keep that old content object, use the
* elm_scroller_content_unset() function.
- * @deprecated See elm_object_content_set()
+ * @deprecated use elm_object_content_set() instead
*/
EAPI void elm_scroller_content_set(Evas_Object *obj, Evas_Object *child) EINA_ARG_NONNULL(1);
/**
*/
EAPI void elm_scroller_page_size_set(Evas_Object *obj, Evas_Coord h_pagesize, Evas_Coord v_pagesize) EINA_ARG_NONNULL(1);
/**
- * @brief Show a specific virtual region within the scroller content object.
+ * @brief Get scroll current page number.
*
* @param obj The scroller object
- * @param x X coordinate of the region
- * @param y Y coordinate of the region
- * @param w Width of the region
- * @param h Height of the region
+ * @param h_pagenumber The horizontal page number
+ * @param v_pagenumber The vertical page number
*
- * This will ensure all (or part if it does not fit) of the designated
- * region in the virtual content object (0, 0 starting at the top-left of the
- * virtual content object) is shown within the scroller. Unlike
- * elm_scroller_region_show(), this allow the scroller to "smoothly slide"
- * to this location (if configuration in general calls for transitions). It
- * may not jump immediately to the new location and make take a while and
- * show other content along the way.
+ * The page number starts from 0. 0 is the first page.
+ * Current page means the page which meets the top-left of the viewport.
+ * If there are two or more pages in the viewport, it returns the number of the page
+ * which meets the top-left of the viewport.
*
- * @see elm_scroller_region_show()
+ * @see elm_scroller_last_page_get()
+ * @see elm_scroller_page_show()
+ * @see elm_scroller_page_brint_in()
*/
- EAPI void elm_scroller_region_bring_in(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) EINA_ARG_NONNULL(1);
+ EAPI void elm_scroller_current_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber) EINA_ARG_NONNULL(1);
/**
- * @brief Set event propagation on a scroller
+ * @brief Get scroll last page number.
*
* @param obj The scroller object
- * @param propagation If propagation is enabled or not
+ * @param h_pagenumber The horizontal page number
+ * @param v_pagenumber The vertical page number
*
- * This enables or disabled event propagation from the scroller content to
- * the scroller and its parent. By default event propagation is disabled.
+ * The page number starts from 0. 0 is the first page.
+ * This returns the last page number among the pages.
+ *
+ * @see elm_scroller_current_page_get()
+ * @see elm_scroller_page_show()
+ * @see elm_scroller_page_brint_in()
*/
- EAPI void elm_scroller_propagate_events_set(Evas_Object *obj, Eina_Bool propagation) EINA_ARG_NONNULL(1);
+ EAPI void elm_scroller_last_page_get(const Evas_Object *obj, int *h_pagenumber, int *v_pagenumber) EINA_ARG_NONNULL(1);
/**
- * @brief Get event propagation for a scroller
+ * Show a specific virtual region within the scroller content object by page number.
*
* @param obj The scroller object
- * @return The propagation state
+ * @param h_pagenumber The horizontal page number
+ * @param v_pagenumber The vertical page number
*
- * This gets the event propagation for a scroller.
+ * 0, 0 of the indicated page is located at the top-left of the viewport.
+ * This will jump to the page directly without animation.
+ *
+ * Example of usage:
+ *
+ * @code
+ * sc = elm_scroller_add(win);
+ * elm_scroller_content_set(sc, content);
+ * elm_scroller_page_relative_set(sc, 1, 0);
+ * elm_scroller_current_page_get(sc, &h_page, &v_page);
+ * elm_scroller_page_show(sc, h_page + 1, v_page);
+ * @endcode
+ *
+ * @see elm_scroller_page_bring_in()
+ */
+ EAPI void elm_scroller_page_show(Evas_Object *obj, int h_pagenumber, int v_pagenumber) EINA_ARG_NONNULL(1);
+ /**
+ * Show a specific virtual region within the scroller content object by page number.
+ *
+ * @param obj The scroller object
+ * @param h_pagenumber The horizontal page number
+ * @param v_pagenumber The vertical page number
+ *
+ * 0, 0 of the indicated page is located at the top-left of the viewport.
+ * This will slide to the page with animation.
+ *
+ * Example of usage:
+ *
+ * @code
+ * sc = elm_scroller_add(win);
+ * elm_scroller_content_set(sc, content);
+ * elm_scroller_page_relative_set(sc, 1, 0);
+ * elm_scroller_last_page_get(sc, &h_page, &v_page);
+ * elm_scroller_page_bring_in(sc, h_page, v_page);
+ * @endcode
+ *
+ * @see elm_scroller_page_show()
+ */
+ EAPI void elm_scroller_page_bring_in(Evas_Object *obj, int h_pagenumber, int v_pagenumber) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Show a specific virtual region within the scroller content object.
+ *
+ * @param obj The scroller object
+ * @param x X coordinate of the region
+ * @param y Y coordinate of the region
+ * @param w Width of the region
+ * @param h Height of the region
+ *
+ * This will ensure all (or part if it does not fit) of the designated
+ * region in the virtual content object (0, 0 starting at the top-left of the
+ * virtual content object) is shown within the scroller. Unlike
+ * elm_scroller_region_show(), this allow the scroller to "smoothly slide"
+ * to this location (if configuration in general calls for transitions). It
+ * may not jump immediately to the new location and make take a while and
+ * show other content along the way.
+ *
+ * @see elm_scroller_region_show()
+ */
+ EAPI void elm_scroller_region_bring_in(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Set event propagation on a scroller
+ *
+ * @param obj The scroller object
+ * @param propagation If propagation is enabled or not
+ *
+ * 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) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Get event propagation for a scroller
+ *
+ * @param obj The scroller object
+ * @return The propagation state
+ *
+ * This gets the event propagation for a scroller.
*
* @see elm_scroller_propagate_events_set()
*/
*/
/**
- * @defgroup Toggle Toggle
- *
- * @image html img/widget/toggle/preview-00.png
- * @image latex img/widget/toggle/preview-00.eps
- *
- * @brief A toggle is a slider which can be used to toggle between
- * two values. It has two states: on and off.
- *
- * This widget is deprecated. Please use elm_check_add() instead using the
- * toggle style like:
- *
- * @code
- * obj = elm_check_add(parent);
- * elm_object_style_set(obj, "toggle");
- * elm_object_text_part_set(obj, "on", "ON");
- * elm_object_text_part_set(obj, "off", "OFF");
- * @endcode
- *
- * Signals that you can add callbacks for are:
- * @li "changed" - Whenever the toggle value has been changed. Is not called
- * until the toggle is released by the cursor (assuming it
- * has been triggered by the cursor in the first place).
- *
- * @ref tutorial_toggle show how to use a toggle.
- * @{
- */
- /**
- * @brief Add a toggle to @p parent.
- *
- * @param parent The parent object
- *
- * @return The toggle object
- */
- EAPI Evas_Object *elm_toggle_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
- /**
- * @brief Sets the label to be displayed with the toggle.
- *
- * @param obj The toggle object
- * @param label The label to be displayed
- *
- * @deprecated use elm_object_text_set() instead.
- */
- EINA_DEPRECATED EAPI void elm_toggle_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
- /**
- * @brief Gets the label of the toggle
- *
- * @param obj toggle object
- * @return The label of the toggle
- *
- * @deprecated use elm_object_text_get() instead.
- */
- EINA_DEPRECATED EAPI const char *elm_toggle_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
- /**
- * @brief Set the icon used for the toggle
- *
- * @param obj The toggle object
- * @param icon The icon object for the button
- *
- * Once the icon object is set, a previously set one will be deleted
- * If you want to keep that old content object, use the
- * elm_toggle_icon_unset() function.
- *
- * @deprecated use elm_object_content_set() instead.
- */
- EAPI void elm_toggle_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
- /**
- * @brief Get the icon used for the toggle
- *
- * @param obj The toggle object
- * @return The icon object that is being used
- *
- * Return the icon object which is set for this widget.
- *
- * @see elm_toggle_icon_set()
- *
- * @deprecated use elm_object_content_get() instead.
- */
- EAPI Evas_Object *elm_toggle_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
- /**
- * @brief Unset the icon used for the toggle
- *
- * @param obj The toggle object
- * @return The icon object that was being used
- *
- * Unparent and return the icon object which was set for this widget.
- *
- * @see elm_toggle_icon_set()
- *
- * @deprecated use elm_object_content_unset() instead.
- */
- EAPI Evas_Object *elm_toggle_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
- /**
- * @brief Sets the labels to be associated with the on and off states of the toggle.
- *
- * @param obj The toggle object
- * @param onlabel The label displayed when the toggle is in the "on" state
- * @param offlabel The label displayed when the toggle is in the "off" state
- *
- * @deprecated use elm_object_text_part_set() for "on" and "off" parts
- * instead.
- */
- EAPI void elm_toggle_states_labels_set(Evas_Object *obj, const char *onlabel, const char *offlabel) EINA_ARG_NONNULL(1);
- /**
- * @brief Gets the labels associated with the on and off states of the
- * toggle.
- *
- * @param obj The toggle object
- * @param onlabel A char** to place the onlabel of @p obj into
- * @param offlabel A char** to place the offlabel of @p obj into
- *
- * @deprecated use elm_object_text_part_get() for "on" and "off" parts
- * instead.
- */
- EAPI void elm_toggle_states_labels_get(const Evas_Object *obj, const char **onlabel, const char **offlabel) EINA_ARG_NONNULL(1);
- /**
- * @brief Sets the state of the toggle to @p state.
- *
- * @param obj The toggle object
- * @param state The state of @p obj
- *
- * @deprecated use elm_check_state_set() instead.
- */
- EAPI void elm_toggle_state_set(Evas_Object *obj, Eina_Bool state) EINA_ARG_NONNULL(1);
- /**
- * @brief Gets the state of the toggle to @p state.
- *
- * @param obj The toggle object
- * @return The state of @p obj
- *
- * @deprecated use elm_check_state_get() instead.
- */
- EAPI Eina_Bool elm_toggle_state_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
- /**
- * @brief Sets the state pointer of the toggle to @p statep.
- *
- * @param obj The toggle object
- * @param statep The state pointer of @p obj
- *
- * @deprecated use elm_check_state_pointer_set() instead.
- */
- EAPI void elm_toggle_state_pointer_set(Evas_Object *obj, Eina_Bool *statep) EINA_ARG_NONNULL(1);
- /**
- * @}
- */
-
- /**
- * @page tutorial_frame Frame example
- * @dontinclude frame_example_01.c
- *
- * In this example we are going to create 4 Frames with different styles and
- * add a rectangle of different color in each.
- *
- * We start we the usual setup code:
- * @until show(bg)
- *
- * And then create one rectangle:
- * @until show
- *
- * To add it in our first frame, which since it doesn't have it's style
- * specifically set uses the default style:
- * @until show
- *
- * And then create another rectangle:
- * @until show
- *
- * To add it in our second frame, which uses the "pad_small" style, note that
- * even tough we are setting a text for this frame it won't be show, only the
- * default style shows the Frame's title:
- * @until show
- * @note The "pad_small", "pad_medium", "pad_large" and "pad_huge" styles are
- * very similar, their only difference is the size of the empty area around
- * the content of the frame.
- *
- * And then create yet another rectangle:
- * @until show
- *
- * To add it in our third frame, which uses the "outdent_top" style, note
- * that even tough we are setting a text for this frame it won't be show,
- * only the default style shows the Frame's title:
- * @until show
- *
- * And then create one last rectangle:
- * @until show
- *
- * To add it in our fourth and final frame, which uses the "outdent_bottom"
- * style, note that even tough we are setting a text for this frame it won't
- * be show, only the default style shows the Frame's title:
- * @until show
- *
- * And now we are left with just some more setup code:
- * @until ELM_MAIN()
- *
- * Our example will look like this:
- * @image html screenshots/frame_example_01.png
- * @image latex screenshots/frame_example_01.eps
- *
- * @example frame_example_01.c
- */
- /**
* @defgroup Frame Frame
*
+ * @image html img/widget/frame/preview-00.png
+ * @image latex img/widget/frame/preview-00.eps
+ *
* @brief Frame is a widget that holds some content and has a title.
*
* The default look is a frame with a title, but Frame supports multple
*
* Of all this styles only default shows the title. Frame emits no signals.
*
+ * Default contents parts of the frame widget that you can use for are:
+ * @li "default" - A content of the frame
+ *
+ * Default text parts of the frame widget that you can use for are:
+ * @li "elm.text" - Label of the frame
+ *
* For a detailed example see the @ref tutorial_frame.
*
* @{
*
* @param obj The frame object
* @param content The content will be filled in this frame object
+ *
+ * @deprecated use elm_object_content_set() instead.
*/
EAPI void elm_frame_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
/**
*
* @param obj The frame object
* @return The content that is being used
+ *
+ * @deprecated use elm_object_content_get() instead.
*/
EAPI Evas_Object *elm_frame_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
*
* @param obj The frame object
* @return The content that was being used
+ *
+ * @deprecated use elm_object_content_unset() instead.
*/
EAPI Evas_Object *elm_frame_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* of the existing text parts in the Edje group implementing the
* item's theme. This function @b must return a strdup'()ed string,
* as the caller will free() it when done. See
- * #GridItemLabelGetFunc.
+ * #Elm_Gengrid_Item_Label_Get_Cb.
* - @c func.content_get - This function is called when an item object
* is actually created. The @c data parameter will point to the
* same data passed to elm_gengrid_item_append() and related item
* item's theme. It must return @c NULL, when no content is desired,
* or a valid object handle, otherwise. The object will be deleted
* by the gengrid on its deletion or when the item is "unrealized".
- * See #GridItemIconGetFunc.
+ * See #Elm_Gengrid_Item_Content_Get_Cb.
* - @c func.state_get - This function is called when an item
* object is actually created. The @c data parameter will point to
* the same data passed to elm_gengrid_item_append() and related
* with @c "elm,state,XXX,active" and @c "elm" as "emission" and
* "source" arguments, respectively, when the state is true (the
* default is false), where @c XXX is the name of the (state) part.
- * See #GridItemStateGetFunc.
+ * See #Elm_Gengrid_Item_State_Get_Cb.
* - @c func.del - This is called when elm_gengrid_item_del() is
* called on an item or elm_gengrid_clear() is called on the
* gengrid. This is intended for use when gengrid items are
* deleted, so any data attached to the item (e.g. its data
- * parameter on creation) can be deleted. See #GridItemDelFunc.
+ * parameter on creation) can be deleted. See #Elm_Gengrid_Item_Del_Cb.
*
* @section Gengrid_Usage_Hints Usage hints
*
typedef struct _Elm_Gengrid_Item_Class Elm_Gengrid_Item_Class; /**< Gengrid item class definition structs */
typedef struct _Elm_Gengrid_Item Elm_Gengrid_Item; /**< Gengrid item handles */
typedef struct _Elm_Gengrid_Item_Class_Func Elm_Gengrid_Item_Class_Func; /**< Class functions for gengrid item classes. */
- typedef char *(*GridItemLabelGetFunc) (void *data, Evas_Object *obj, const char *part); /**< Label fetching class function for gengrid item classes. */
- typedef Evas_Object *(*GridItemIconGetFunc) (void *data, Evas_Object *obj, const char *part); /**< Content (swallowed object) fetching class function for gengrid item classes. */
- typedef Eina_Bool (*GridItemStateGetFunc) (void *data, Evas_Object *obj, const char *part); /**< State fetching class function for gengrid item classes. */
- typedef void (*GridItemDelFunc) (void *data, Evas_Object *obj); /**< Deletion class function for gengrid item classes. */
+ typedef char *(*Elm_Gengrid_Item_Label_Get_Cb) (void *data, Evas_Object *obj, const char *part); /**< Label fetching class function for gengrid item classes. */
+ typedef Evas_Object *(*Elm_Gengrid_Item_Content_Get_Cb) (void *data, Evas_Object *obj, const char *part); /**< Content (swallowed object) fetching class function for gengrid item classes. */
+ typedef Eina_Bool (*Elm_Gengrid_Item_State_Get_Cb) (void *data, Evas_Object *obj, const char *part); /**< State fetching class function for gengrid item classes. */
+ typedef void (*Elm_Gengrid_Item_Del_Cb) (void *data, Evas_Object *obj); /**< Deletion class function for gengrid item classes. */
+
+ /* temporary compatibility code */
+ typedef Elm_Gengrid_Item_Label_Get_Cb GridItemLabelGetFunc EINA_DEPRECATED;
+ typedef Elm_Gengrid_Item_Content_Get_Cb GridItemIconGetFunc EINA_DEPRECATED;
+ typedef Elm_Gengrid_Item_State_Get_Cb GridItemStateGetFunc EINA_DEPRECATED;
+ typedef Elm_Gengrid_Item_Del_Cb GridItemDelFunc EINA_DEPRECATED;
/**
* @struct _Elm_Gengrid_Item_Class
const char *item_style;
struct _Elm_Gengrid_Item_Class_Func
{
- GridItemLabelGetFunc label_get;
- GridItemIconGetFunc icon_get;
- GridItemStateGetFunc state_get;
- GridItemDelFunc del;
+ Elm_Gengrid_Item_Label_Get_Cb label_get;
+ union { /* temporary compatibility code */
+ Elm_Gengrid_Item_Content_Get_Cb icon_get EINA_DEPRECATED;
+ Elm_Gengrid_Item_Content_Get_Cb content_get;
+ };
+ Elm_Gengrid_Item_State_Get_Cb state_get;
+ Elm_Gengrid_Item_Del_Cb del;
} func;
}; /**< #Elm_Gengrid_Item_Class member definitions */
/**
/**
* @defgroup Clock Clock
*
+ * @image html img/widget/clock/preview-00.png
+ * @image latex img/widget/clock/preview-00.eps
+ *
* This is a @b digital clock widget. In its default theme, it has a
* vintage "flipping numbers clock" appearance, which will animate
* sheets of individual algarisms individually as time goes by.
* even if the clock is not in "military" mode.
*
* @warning The behavior for values set out of those ranges is @b
- * indefined.
+ * undefined.
*
* @ingroup Clock
*/
* column or row span if necessary.
*
* Again, we could have this design by adding a @ref Table widget to the @c
- * SWALLOW part using elm_object_content_part_set(). The same difference happens
+ * SWALLOW part using elm_object_part_content_set(). The same difference happens
* here when choosing to use the Layout Table (a @c TABLE part) instead of
* the @ref Table plus @c SWALLOW part. It's just a matter of convenience.
*
*
* Once the content object is set, a previously set one will be deleted.
* If you want to keep that old content object, use the
- * elm_object_content_part_unset() function.
+ * elm_object_part_content_unset() function.
*
* @note In an Edje theme, the part used as a content container is called @c
* SWALLOW. This is why the parameter name is called @p swallow, but it is
* elm_layout_box_append().
*
* @see elm_layout_box_append()
- * @see elm_object_content_part_get()
- * @see elm_object_content_part_unset()
+ * @see elm_object_part_content_get()
+ * @see elm_object_part_content_unset()
* @see @ref secBox
+ * @deprecated use elm_object_part_content_set() instead
*
* @ingroup Layout
*/
*
* @return The swallowed object or NULL if none or an error occurred
*
- * @see elm_object_content_part_set()
+ * @deprecated use elm_object_part_content_get() instead
*
* @ingroup Layout
*/
*
* Unparent and return the content object which was set for this part.
*
- * @see elm_object_content_part_set()
+ * @deprecated use elm_object_part_content_unset() instead
*
* @ingroup Layout
*/
* @param text The text to set
*
* @ingroup Layout
- * @deprecated use elm_object_text_* instead.
+ * @deprecated use elm_object_part_text_set() instead.
*/
EINA_DEPRECATED EAPI void elm_layout_text_set(Evas_Object *obj, const char *part, const char *text) EINA_ARG_NONNULL(1);
/**
* @return The text set in @p part
*
* @ingroup Layout
- * @deprecated use elm_object_text_* instead.
+ * @deprecated use elm_object_part_text_get() instead.
*/
EINA_DEPRECATED EAPI const char *elm_layout_text_get(const Evas_Object *obj, const char *part) EINA_ARG_NONNULL(1);
/**
*
* The object will be removed from the box part and its lifetime will
* not be handled by the layout anymore. This is equivalent to
- * elm_object_content_part_unset() for box.
+ * elm_object_part_content_unset() for box.
*
* @see elm_layout_box_append()
* @see elm_layout_box_remove_all()
*
* The object will be unpacked from the table part and its lifetime
* will not be handled by the layout anymore. This is equivalent to
- * elm_object_content_part_unset() for table.
+ * elm_object_part_content_unset() for table.
*
* @see elm_layout_table_pack()
* @see elm_layout_table_clear()
*
* This returns the edje object. It is not expected to be used to then
* swallow objects via edje_object_part_swallow() for example. Use
- * elm_object_content_part_set() instead so child object handling and sizing is
+ * elm_object_part_content_set() instead so child object handling and sizing is
* done properly.
*
* @note This function should only be used if you really need to call some
*
* @see elm_object_signal_callback_add()
* @see elm_object_signal_emit()
- * @see elm_object_text_part_set()
- * @see elm_object_content_part_set()
+ * @see elm_object_part_text_set()
+ * @see elm_object_part_content_set()
* @see elm_layout_box_append()
* @see elm_layout_table_pack()
* @see elm_layout_data_get()
#define elm_layout_icon_set(_ly, _obj) \
do { \
const char *sig; \
- elm_layout_content_set((_ly), "elm.swallow.icon", (_obj)); \
+ elm_object_part_content_set((_ly), "elm.swallow.icon", (_obj)); \
if ((_obj)) sig = "elm,state,icon,visible"; \
else sig = "elm,state,icon,hidden"; \
elm_object_signal_emit((_ly), sig, "elm"); \
* @ingroup Layout
*/
#define elm_layout_icon_get(_ly) \
- elm_layout_content_get((_ly), "elm.swallow.icon")
+ elm_object_part_content_get((_ly), "elm.swallow.icon")
/**
* @def elm_layout_end_set
#define elm_layout_end_set(_ly, _obj) \
do { \
const char *sig; \
- elm_layout_content_set((_ly), "elm.swallow.end", (_obj)); \
+ elm_object_part_content_set((_ly), "elm.swallow.end", (_obj)); \
if ((_obj)) sig = "elm,state,end,visible"; \
else sig = "elm,state,end,hidden"; \
elm_object_signal_emit((_ly), sig, "elm"); \
* @ingroup Layout
*/
#define elm_layout_end_get(_ly) \
- elm_layout_content_get((_ly), "elm.swallow.end")
+ elm_object_part_content_get((_ly), "elm.swallow.end")
/**
* @def elm_layout_label_set
* Elementary naming convention for its parts.
*
* @ingroup Layout
- * @deprecated use elm_object_text_* instead.
+ * @deprecated use elm_object_text_set() instead.
*/
#define elm_layout_label_set(_ly, _txt) \
elm_layout_text_set((_ly), "elm.text", (_txt))
* Elementary naming convention for its parts.
*
* @ingroup Layout
- * @deprecated use elm_object_text_* instead.
+ * @deprecated use elm_object_text_set() instead.
*/
#define elm_layout_label_get(_ly) \
elm_layout_text_get((_ly), "elm.text")
* @li "block,clicked" - when a click outside of the notify happens
*
* Default contents parts of the notify widget that you can use for are:
- * @li "elm.swallow.content" - A content of the notify
+ * @li "default" - A content of the notify
*
* @ref tutorial_notify show usage of the API.
*
* @}
*/
+ /* composite widgets - these basically put together basic widgets above
+ * in convenient packages that do more than basic stuff */
+
/* anchorview */
/**
* @defgroup Anchorview Anchorview
*
+ * @image html img/widget/anchorview/preview-00.png
+ * @image latex img/widget/anchorview/preview-00.eps
+ *
* Anchorview is for displaying text that contains markup with anchors
* like <c>\<a href=1234\>something\</\></c> in it.
*
* Signals that you can add callbacks for are:
* @li "clicked" - This is called when a user has clicked the bubble.
*
- * For an example of using a buble see @ref bubble_01_example_page "this".
+ * Default contents parts of the bubble that you can use for are:
+ * @li "default" - A content of the bubble
+ * @li "icon" - An icon of the bubble
+ *
+ * Default text parts of the button widget that you can use for are:
+ * @li NULL - Label of the bubble
+ *
+ * For an example of using a buble see @ref bubble_01_example_page "this".
*
* @{
*/
+
/**
* Add a new bubble to the parent
*
*
* This function sets the info of the bubble. Where this appears depends on
* the selected corner.
- * @deprecated use elm_object_text_part_set() instead. (with "info" as the parameter).
+ * @deprecated use elm_object_part_text_set() instead. (with "info" as the parameter).
*/
EINA_DEPRECATED EAPI void elm_bubble_info_set(Evas_Object *obj, const char *info) EINA_ARG_NONNULL(1);
/**
* @return The "info" string of the bubble
*
* This function gets the info text.
- * @deprecated use elm_object_text_part_get() instead. (with "info" as the parameter).
+ * @deprecated use elm_object_part_text_get() instead. (with "info" as the parameter).
*/
EINA_DEPRECATED EAPI const char *elm_bubble_info_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
*
* @param obj The bubble object
* @param icon The given icon for the bubble
+ *
+ * @deprecated use elm_object_part_content_set() instead
+ *
*/
- EAPI void elm_bubble_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI void elm_bubble_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
/**
* Get the icon of the bubble
*
* @return The icon for the bubble
*
* This function gets the icon shown on the top left of bubble.
+ *
+ * @deprecated use elm_object_part_content_get() instead
+ *
*/
- EAPI Evas_Object *elm_bubble_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI Evas_Object *elm_bubble_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Unset the icon of the bubble
*
*
* @param obj The bubble object
* @return The icon that was being used
+ *
+ * @deprecated use elm_object_part_content_unset() instead
+ *
*/
- EAPI Evas_Object *elm_bubble_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI Evas_Object *elm_bubble_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Set the corner of the bubble
*
*/
EAPI Eina_Bool elm_photo_file_set(Evas_Object *obj, const char *file) EINA_ARG_NONNULL(1);
+ /**
+ * Set the file that will be used as thumbnail in the photo.
+ *
+ * @param obj The photo object.
+ * @param file The path to file that will be used as thumb.
+ * @param group The key used in case of an EET file.
+ *
+ * @ingroup Photo
+ */
+ EAPI void elm_photo_thumb_set(const Evas_Object *obj, const char *file, const char *group) EINA_ARG_NONNULL(1, 2);
+
/**
* Set the size that will be used on the photo
*
struct _Elm_Gesture_Line_Info
{ /* Report line ends, timestamps, and momentum computed */
Elm_Gesture_Momentum_Info momentum; /**< Line momentum info */
- /* FIXME should be radians, bot degrees */
double angle; /**< Angle (direction) of lines */
};
* @}
*/
-#if 0
/**
* @defgroup Web Web
*
/**
* @}
*/
-#endif
/**
* @defgroup Hoversel Hoversel
ELM_TOOLBAR_SHRINK_HIDE, /**< Hide exceeding items. */
ELM_TOOLBAR_SHRINK_SCROLL, /**< Allow accessing exceeding items through a scroller. */
ELM_TOOLBAR_SHRINK_MENU, /**< Inserts a button to pop up a menu with exceeding items. */
+ ELM_TOOLBAR_SHRINK_LAST /**< Indicates error if returned by elm_toolbar_shrink_mode_get() */
} Elm_Toolbar_Shrink_Mode;
typedef struct _Elm_Toolbar_Item Elm_Toolbar_Item; /**< Item of Elm_Toolbar. Sub-type of Elm_Widget_Item. Can be created with elm_toolbar_item_append(), elm_toolbar_item_prepend() and functions to add items in relative positions, like elm_toolbar_item_insert_before(), and deleted with elm_toolbar_item_del(). */
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.
*
* @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.
* @}
*/
- /* tooltip */
+ /**
+ * @defgroup Tooltips Tooltips
+ *
+ * The Tooltip is an (internal, for now) smart object used to show a
+ * content in a frame on mouse hover of objects(or widgets), with
+ * tips/information about them.
+ *
+ * @{
+ */
+
EAPI double elm_tooltip_delay_get(void);
EAPI Eina_Bool elm_tooltip_delay_set(double delay);
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);
*/
EAPI Elm_Menu_Item *elm_menu_item_add(Evas_Object *obj, Elm_Menu_Item *parent, const char *icon, const char *label, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
/**
+ * @brief Add an object swallowed in an item at the end of the given menu
+ * widget
+ *
+ * @param obj The menu object.
+ * @param parent The parent menu item (optional)
+ * @param subobj The object to swallow
+ * @param func Function called when the user select the item.
+ * @param data Data sent by the callback.
+ * @return Returns the new item.
+ *
+ * Add an evas object as an item to the menu.
+ */
+ EAPI Elm_Menu_Item *elm_menu_item_add_object(Evas_Object *obj, Elm_Menu_Item *parent, Evas_Object *subobj, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
+ /**
* @brief Set the label of a menu item
*
* @param item The menu item object.
* @return The label of @p item
*/
EAPI const char *elm_menu_item_label_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
- EAPI void elm_menu_item_icon_set(Elm_Menu_Item *item, const char *icon) EINA_ARG_NONNULL(1, 2);
- EAPI const char *elm_menu_item_icon_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
- EAPI const Evas_Object *elm_menu_item_object_icon_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Set the icon of a menu item to the standard icon with name @p icon
+ *
+ * @param item The menu item object.
+ * @param icon The icon object to set for the content of @p item
+ *
+ * Once this icon is set, any previously set icon will be deleted.
+ */
+ EAPI void elm_menu_item_object_icon_name_set(Elm_Menu_Item *item, const char *icon) EINA_ARG_NONNULL(1, 2);
+ /**
+ * @brief Get the string representation from the icon of a menu item
+ *
+ * @param item The menu item object.
+ * @return The string representation of @p item's icon or NULL
+ *
+ * @see elm_menu_item_object_icon_name_set()
+ */
+ EAPI const char *elm_menu_item_object_icon_name_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Set the content object of a menu item
+ *
+ * @param item The menu item object
+ * @param The content object or NULL
+ * @return EINA_TRUE on success, else EINA_FALSE
+ *
+ * Use this function to change the object swallowed by a menu item, deleting
+ * any previously swallowed object.
+ */
+ EAPI Eina_Bool elm_menu_item_object_content_set(Elm_Menu_Item *item, Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Get the content object of a menu item
+ *
+ * @param item The menu item object
+ * @return The content object or NULL
+ * @note If @p item was added with elm_menu_item_add_object, this
+ * function will return the object passed, else it will return the
+ * icon object.
+ *
+ * @see elm_menu_item_object_content_set()
+ */
+ EAPI Evas_Object *elm_menu_item_object_content_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
+
+ EINA_DEPRECATED extern inline void elm_menu_item_icon_set(Elm_Menu_Item *item, const char *icon) EINA_ARG_NONNULL(1, 2)
+ {
+ elm_menu_item_object_icon_name_set(item, icon);
+ }
+
+ EINA_DEPRECATED extern inline Evas_Object *elm_menu_item_object_icon_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1)
+ {
+ return elm_menu_item_object_content_get(item);
+ }
+
+ EINA_DEPRECATED extern inline const char *elm_menu_item_icon_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1)
+ {
+ return elm_menu_item_object_icon_name_get(item);
+ }
/**
* @brief Set the selected state of @p item.
* @see elm_menu_add()
*/
EAPI const Eina_List *elm_menu_item_subitems_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
- EAPI const Elm_Menu_Item *elm_menu_selected_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1);
- EAPI const Elm_Menu_Item *elm_menu_last_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1);
- EAPI const Elm_Menu_Item *elm_menu_first_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1);
- EAPI const Elm_Menu_Item *elm_menu_item_next_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1);
- EAPI const Elm_Menu_Item *elm_menu_item_prev_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1);
-
/**
- * @}
+ * @brief Get the position of a menu item
+ *
+ * @param item The menu item
+ * @return The item's index
+ *
+ * This function returns the index position of a menu item in a menu.
+ * For a sub-menu, this number is relative to the first item in the sub-menu.
+ *
+ * @note Index values begin with 0
*/
-
+ EAPI unsigned int elm_menu_item_index_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1) EINA_PURE;
/**
- * @defgroup List List
- * @ingroup Elementary
+ * @brief @brief Return a menu item's owner menu
*
- * @image html img/widget/list/preview-00.png
- * @image latex img/widget/list/preview-00.eps width=\textwidth
+ * @param item The menu item
+ * @return The menu object owning @p item, or NULL on failure
*
- * @image html img/list.png
- * @image latex img/list.eps width=\textwidth
+ * Use this function to get the menu object owning an item.
+ */
+ EAPI Evas_Object *elm_menu_item_menu_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1) EINA_PURE;
+ /**
+ * @brief Get the selected item in the menu
*
- * A list widget is a container whose children are displayed vertically or
- * horizontally, in order, and can be selected.
- * The list can accept only one or multiple items selection. Also has many
- * modes of items displaying.
+ * @param obj The menu object
+ * @return The selected item, or NULL if none
+ *
+ * @see elm_menu_item_selected_get()
+ * @see elm_menu_item_selected_set()
+ */
+ EAPI Elm_Menu_Item *elm_menu_selected_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Get the last item in the menu
+ *
+ * @param obj The menu object
+ * @return The last item, or NULL if none
+ */
+ EAPI Elm_Menu_Item *elm_menu_last_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Get the first item in the menu
+ *
+ * @param obj The menu object
+ * @return The first item, or NULL if none
+ */
+ EAPI Elm_Menu_Item *elm_menu_first_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Get the next item in the menu.
+ *
+ * @param item The menu item object.
+ * @return The item after it, or NULL if none
+ */
+ EAPI Elm_Menu_Item *elm_menu_item_next_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Get the previous item in the menu.
+ *
+ * @param item The menu item object.
+ * @return The item before it, or NULL if none
+ */
+ EAPI Elm_Menu_Item *elm_menu_item_prev_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1);
+ /**
+ * @}
+ */
+
+ /**
+ * @defgroup List List
+ * @ingroup Elementary
+ *
+ * @image html img/widget/list/preview-00.png
+ * @image latex img/widget/list/preview-00.eps width=\textwidth
+ *
+ * @image html img/list.png
+ * @image latex img/list.eps width=\textwidth
+ *
+ * A list widget is a container whose children are displayed vertically or
+ * horizontally, in order, and can be selected.
+ * The list can accept only one or multiple items selection. Also has many
+ * modes of items displaying.
*
* A list is a very simple type of list widget. For more robust
* lists, @ref Genlist should probably be used.
* - @c "default"
*
* Default contents parts of the slider widget that you can use for are:
- * @li "elm.swallow.icon" - A icon of the slider
- * @li "elm.swallow.end" - A end part content of the slider
+ * @li "icon" - A icon of the slider
+ * @li "end" - A end part content of the slider
*
+ * Default text parts of the silder widget that you can use for are:
+ * @li "default" - Label of the silder
* Here is an example on its usage:
* @li @ref slider_example
*/
-#define ELM_SLIDER_CONTENT_ICON "elm.swallow.icon"
-#define ELM_SLIDER_CONTENT_END "elm.swallow.end"
-
/**
* @addtogroup Slider
* @{
* it won't get properly displayed.
*
* @ingroup Slider
- * @deprecated use elm_object_content_set() instead.
+ * @deprecated use elm_object_part_content_set() instead.
*/
EAPI void elm_slider_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
*
* @see elm_slider_icon_set() for more details
* @see elm_slider_icon_get()
- * @deprecated use elm_object_content_unset() instead.
+ * @deprecated use elm_object_part_content_unset() instead.
*
* @ingroup Slider
*/
* @see elm_slider_icon_set() for more details
* @see elm_slider_icon_unset()
*
+ * @deprecated use elm_object_part_content_get() instead.
+ *
* @ingroup Slider
*/
EAPI Evas_Object *elm_slider_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
* @warning If the object being set does not have minimum size hints set,
* it won't get properly displayed.
*
+ * @deprecated use elm_object_part_content_set() instead.
+ *
* @ingroup Slider
*/
EAPI void elm_slider_end_set(Evas_Object *obj, Evas_Object *end) EINA_ARG_NONNULL(1);
* @see elm_slider_end_set() for more details.
* @see elm_slider_end_get()
*
+ * @deprecated use elm_object_part_content_unset() instead
+ * instead.
+ *
* @ingroup Slider
*/
EAPI Evas_Object *elm_slider_end_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
* @see elm_slider_end_set() for more details.
* @see elm_slider_end_unset()
*
+ *
+ * @deprecated use elm_object_part_content_get() instead
+ * instead.
+ *
* @ingroup Slider
*/
EAPI Evas_Object *elm_slider_end_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
* @}
*/
- /* actionslider */
-
/**
* @addtogroup Actionslider Actionslider
*
- * A actionslider is a switcher for 2 or 3 labels with customizable magnet
- * properties. The indicator is the element the user drags to choose a label.
- * When the position is set with magnet, when released the indicator will be
- * moved to it if it's nearest the magnetized position.
+ * @image html img/widget/actionslider/preview-00.png
+ * @image latex img/widget/actionslider/preview-00.eps
+ *
+ * An actionslider is a switcher for 2 or 3 labels with customizable magnet
+ * properties. The user drags and releases the indicator, to choose a label.
+ *
+ * Labels occupy the following positions.
+ * a. Left
+ * b. Right
+ * c. Center
+ *
+ * Positions can be enabled or disabled.
+ *
+ * Magnets can be set on the above positions.
+ *
+ * When the indicator is released, it will move to its nearest "enabled and magnetized" position.
*
* @note By default all positions are set as enabled.
*
* @deprecated use elm_object_text_get() instead.
*/
EINA_DEPRECATED EAPI const char *elm_actionslider_indicator_label_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
-
- /**
- * Hold actionslider object movement.
- *
- * @param[in] obj The actionslider object
- * @param[in] flag Actionslider hold/release
- * (EINA_TURE = hold/EIN_FALSE = release)
- *
- * @ingroup Actionslider
- */
- EAPI void elm_actionslider_hold(Evas_Object *obj, Eina_Bool flag) EINA_ARG_NONNULL(1);
-
-
/**
- *
+ * @}
*/
/**
* item before another item and elm_genlist_item_insert_after() inserts after
* the indicated item.
*
- * The application can clear the list with elm_genlist_clear() which deletes
+ * The application can clear the list with elm_gen_clear() which deletes
* all the items in the list and elm_genlist_item_del() will delete a specific
* item. elm_genlist_item_subitems_clear() will clear all items that are
* children of the indicated parent item.
*
* @section Genlist_Usage_Hints Usage hints
*
- * There are also convenience functions. elm_genlist_item_genlist_get() will
+ * There are also convenience functions. elm_gen_item_genlist_get() will
* return the genlist object the item belongs to. elm_genlist_item_show()
* will make the scroller scroll to show that specific item so its visible.
* elm_genlist_item_data_get() returns the data pointer set by the item
*
* Items will only call their selection func and callback when first becoming
* selected. Any further clicks will do nothing, unless you enable always
- * select with elm_genlist_always_select_mode_set(). This means even if
+ * select with elm_gen_always_select_mode_set(). This means even if
* selected, every click will make the selected callbacks be called.
* elm_genlist_no_select_mode_set() will turn off the ability to select
* items entirely and they will neither appear selected nor call selected
*
* @see elm_genlist_item_append()
* @see elm_genlist_item_del()
- * @see elm_genlist_clear()
+ * @see elm_gen_clear()
*
* @ingroup Genlist
*/
*
* @ingroup Genlist
*/
- EINA_DEPRECATED EAPI void elm_genlist_item_selected_set(Elm_Genlist_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
+ EAPI void elm_genlist_item_selected_set(Elm_Genlist_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
/**
* Get whether a given genlist item is selected or not
*
*
* @ingroup Genlist
*/
- EINA_DEPRECATED EAPI Eina_Bool elm_genlist_item_selected_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
+ EAPI Eina_Bool elm_genlist_item_selected_get(const Elm_Genlist_Item *item) EINA_ARG_NONNULL(1);
/**
* Sets the expanded state of an item.
*
*/
/**
- * @page tutorial_check Check example
- * @dontinclude check_example_01.c
- *
- * This example will show 2 checkboxes, one with just a label and the second
- * one with both a label and an icon. This example also ilustrates how to
- * have the checkbox change the value of a variable and how to react to those
- * changes.
- *
- * We will start with the usual setup code:
- * @until show(bg)
- *
- * And now we create our first checkbox, set its label, tell it to change
- * the value of @p value when the checkbox stats is changed and ask to be
- * notified of state changes:
- * @until show
- *
- * For our second checkbox we are going to set an icon so we need to create
- * and icon:
- * @until show
- * @note For simplicity we are using a rectangle as icon, but any evas object
- * can be used.
- *
- * And for our second checkbox we set the label, icon and state to true:
- * @until show
- *
- * We now do some more setup:
- * @until ELM_MAIN
- *
- * And finally implement the callback that will be called when the first
- * checkbox's state changes. This callback will use @p data to print a
- * message:
- * @until }
- * @note This work because @p data is @p value(from the main function) and @p
- * value is changed when the checkbox is changed.
- *
- * Our example will look like this:
- * @image html screenshots/check_example_01.png
- * @image latex screenshots/check_example_01.eps
- *
- * @example check_example_01.c
- */
- /**
* @defgroup Check Check
*
+ * @image html img/widget/check/preview-00.png
+ * @image latex img/widget/check/preview-00.eps
+ * @image html img/widget/check/preview-01.png
+ * @image latex img/widget/check/preview-01.eps
+ * @image html img/widget/check/preview-02.png
+ * @image latex img/widget/check/preview-02.eps
+ *
* @brief The check widget allows for toggling a value between true and
* false.
*
* "changed" - This is called whenever the user changes the state of one of
* the check object(event_info is NULL).
*
- * @ref tutorial_check should give you a firm grasp of how to use this widget.
+ * Default contents parts of the check widget that you can use for are:
+ * @li "icon" - A icon of the check
+ *
+ * Default text parts of the check widget that you can use for are:
+ * @li "elm.text" - Label of the check
+ *
+ * @ref tutorial_check should give you a firm grasp of how to use this widget
+ * .
* @{
*/
/**
*
* Once the icon object is set, a previously set one will be deleted.
* If you want to keep that old content object, use the
- * elm_check_icon_unset() function.
+ * elm_object_content_unset() function.
+ *
+ * @deprecated use elm_object_part_content_set() instead.
+ *
*/
- EAPI void elm_check_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI void elm_check_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
/**
* @brief Get the icon object of the check object
*
* @param obj The check object
* @return The icon object
+ *
+ * @deprecated use elm_object_part_content_get() instead.
+ *
*/
- EAPI Evas_Object *elm_check_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI Evas_Object *elm_check_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* @brief Unset the icon used for the check object
*
* @return The icon object that was being used
*
* Unparent and return the icon object which was set for this widget.
+ *
+ * @deprecated use elm_object_part_content_unset() instead.
+ *
*/
- EAPI Evas_Object *elm_check_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI Evas_Object *elm_check_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* @brief Set the on/off state of the check object
*
* @}
*/
+ /* compatibility code for toggle controls */
+
+ EINA_DEPRECATED EAPI extern inline Evas_Object *elm_toggle_add(Evas_Object *parent) EINA_ARG_NONNULL(1)
+ {
+ Evas_Object *obj;
+
+ obj = elm_check_add(parent);
+ elm_object_style_set(obj, "toggle");
+ elm_object_part_text_set(obj, "on", "ON");
+ elm_object_part_text_set(obj, "off", "OFF");
+ return obj;
+ }
+
+ EINA_DEPRECATED EAPI extern inline void elm_toggle_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1)
+ {
+ elm_object_text_set(obj, label);
+ }
+
+ EINA_DEPRECATED EAPI extern inline const char *elm_toggle_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1)
+ {
+ return elm_object_text_get(obj);
+ }
+
+ EINA_DEPRECATED EAPI extern inline void elm_toggle_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1)
+ {
+ elm_object_content_set(obj, icon);
+ }
+
+ EINA_DEPRECATED EAPI extern inline Evas_Object *elm_toggle_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1)
+ {
+ return elm_object_content_get(obj);
+ }
+
+ EINA_DEPRECATED EAPI extern inline Evas_Object *elm_toggle_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1)
+ {
+ return elm_object_content_unset(obj);
+ }
+
+ EINA_DEPRECATED EAPI extern inline void elm_toggle_states_labels_set(Evas_Object *obj, const char *onlabel, const char *offlabel) EINA_ARG_NONNULL(1)
+ {
+ elm_object_part_text_set(obj, "on", onlabel);
+ elm_object_part_text_set(obj, "off", offlabel);
+ }
+
+ EINA_DEPRECATED EAPI extern inline void elm_toggle_states_labels_get(const Evas_Object *obj, const char **onlabel, const char **offlabel) EINA_ARG_NONNULL(1)
+ {
+ if (onlabel) *onlabel = elm_object_part_text_get(obj, "on");
+ if (offlabel) *offlabel = elm_object_part_text_get(obj, "off");
+ }
+
+ EINA_DEPRECATED EAPI extern inline void elm_toggle_state_set(Evas_Object *obj, Eina_Bool state) EINA_ARG_NONNULL(1)
+ {
+ elm_check_state_set(obj, state);
+ }
+
+ EINA_DEPRECATED EAPI extern inline Eina_Bool elm_toggle_state_get(const Evas_Object *obj) EINA_ARG_NONNULL(1)
+ {
+ return elm_check_state_get(obj);
+ }
+
+ EINA_DEPRECATED EAPI extern inline void elm_toggle_state_pointer_set(Evas_Object *obj, Eina_Bool *statep) EINA_ARG_NONNULL(1)
+ {
+ elm_check_state_pointer_set(obj, statep);
+ }
+
/**
* @defgroup Radio Radio
*
* the radio objects within the group of radio objects that work together.
*
* Default contents parts of the radio widget that you can use for are:
- * @li "elm.swallow.content" - A icon of the radio
+ * @li "icon" - A icon of the radio
*
* @ref tutorial_radio show most of this API in action.
* @{
* Once the icon object is set, a previously set one will be deleted. If you
* want to keep that old content object, use the elm_radio_icon_unset()
* function.
- &
- * @deprecated use elm_object_content_set() instead.
+ *
+ * @deprecated use elm_object_part_content_set() instead.
+ *
*/
EAPI void elm_radio_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
/**
* @return The icon object
*
* @see elm_radio_icon_set()
+ *
+ * @deprecated use elm_object_part_content_get() instead.
+ *
*/
EAPI Evas_Object *elm_radio_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Unparent and return the icon object which was set for this widget.
*
* @see elm_radio_icon_set()
- * @deprecated use elm_object_content_unset() instead.
+ * @deprecated use elm_object_part_content_unset() instead.
+ *
*/
EAPI Evas_Object *elm_radio_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
EAPI Evas_Object *elm_pager_content_top_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_pager_to_content_pop(Evas_Object *obj, Evas_Object *content); EINA_ARG_NONNULL(1);
- EAPI void elm_pager_animation_disabled_set(Evas_Object *obj, Eina_Bool disable); EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI void elm_pager_animation_disabled_set(Evas_Object *obj, Eina_Bool disable); EINA_ARG_NONNULL(1);
/**
* @}
* "pulse" effect is available)
*
* Default contents parts of the progressbar widget that you can use for are:
- * @li "elm.swallow.content" - A icon of the progressbar
+ * @li "icon" - A icon of the progressbar
*
* Here is an example on its usage:
* @li @ref progressbar_example
* elm_progressbar_icon_unset() function.
*
* @see elm_progressbar_icon_get()
- * @deprecated use elm_object_content_set() instead.
+ * @deprecated use elm_object_part_content_set() instead.
*
* @ingroup Progressbar
*/
* otherwise (and on errors)
*
* @see elm_progressbar_icon_set() for more details
- * @deprecated use elm_object_content_set() instead.
+ * @deprecated use elm_object_part_content_get() instead.
*
* @ingroup Progressbar
*/
* for this widget, previously, on success.
*
* @see elm_progressbar_icon_set() for more details
- * @deprecated use elm_object_content_unset() instead.
+ * @deprecated use elm_object_part_content_unset() instead.
*
* @ingroup Progressbar
*/
*/
/**
+ * @defgroup Spinner Spinner
+ * @ingroup Elementary
+ *
+ * @image html img/widget/spinner/preview-00.png
+ * @image latex img/widget/spinner/preview-00.eps
+ *
+ * A spinner is a widget which allows the user to increase or decrease
+ * numeric values using arrow buttons, or edit values directly, clicking
+ * over it and typing the new value.
+ *
+ * By default the spinner will not wrap and has a label
+ * of "%.0f" (just showing the integer value of the double).
+ *
+ * A spinner has a label that is formatted with floating
+ * point values and thus accepts a printf-style format string, like
+ * “%1.2f units”.
+ *
+ * It also allows specific values to be replaced by pre-defined labels.
+ *
+ * Smart callbacks one can register to:
+ *
+ * - "changed" - Whenever the spinner value is changed.
+ * - "delay,changed" - A short time after the value is changed by the user.
+ * This will be called only when the user stops dragging for a very short
+ * period or when they release their finger/mouse, so it avoids possibly
+ * expensive reactions to the value change.
+ *
+ * Available styles for it:
+ * - @c "default";
+ * - @c "vertical": up/down buttons at the right side and text left aligned.
+ *
+ * Here is an example on its usage:
+ * @ref spinner_example
+ */
+
+ /**
* @addtogroup Spinner
* @{
*/
EAPI double elm_route_lon_max_get(Evas_Object *obj);
EAPI double elm_route_lat_max_get(Evas_Object *obj);
+
/**
* @defgroup Panel Panel
*
* @li ELM_PANEL_ORIENT_LEFT
* @li ELM_PANEL_ORIENT_RIGHT
*
- * To set/get/unset the content of the panel, you can use
- * elm_object_content_set/get/unset APIs.
- * Once the content object is set, a previously set one will be deleted.
- * If you want to keep that old content object, use the
- * elm_object_content_unset() function
+ * Default contents parts of the panel widget that you can use for are:
+ * @li "default" - A content of the panel
*
* @ref tutorial_panel shows one way to use this widget.
* @{
* - @c "default"
*
* Default contents parts of the panes widget that you can use for are:
- * @li "elm.swallow.left" - A leftside content of the panes
- * @li "elm.swallow.right" - A rightside content of the panes
+ * @li "left" - A leftside content of the panes
+ * @li "right" - A rightside content of the panes
*
* If panes is displayed vertically, left content will be displayed at
* top.
* @li @ref panes_example
*/
-#define ELM_PANES_CONTENT_LEFT "elm.swallow.left"
-#define ELM_PANES_CONTENT_RIGHT "elm.swallow.right"
-
/**
* @addtogroup Panes
* @{
* @see elm_panes_content_left_get()
* @see elm_panes_content_right_set() to set content on the other side.
*
+ * @deprecated use elm_object_part_content_set() instead
+ *
* @ingroup Panes
*/
- EAPI void elm_panes_content_left_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI void elm_panes_content_left_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
/**
* Set the right content of the panes widget.
* @see elm_panes_content_right_get()
* @see elm_panes_content_left_set() to set content on the other side.
*
+ * @deprecated use elm_object_part_content_set() instead
+ *
* @ingroup Panes
*/
- EAPI void elm_panes_content_right_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI void elm_panes_content_right_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
/**
* Get the left content of the panes.
*
* @see elm_panes_content_left_set() for details.
*
+ * @deprecated use elm_object_part_content_get() instead
+ *
* @ingroup Panes
*/
- EAPI Evas_Object *elm_panes_content_left_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI Evas_Object *elm_panes_content_left_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Get the right content of the panes.
*
* @see elm_panes_content_right_set() for details.
*
+ * @deprecated use elm_object_part_content_get() instead
+ *
* @ingroup Panes
*/
- EAPI Evas_Object *elm_panes_content_right_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI Evas_Object *elm_panes_content_right_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Unset the left content used for the panes.
* @see elm_panes_content_left_set() for details.
* @see elm_panes_content_left_get().
*
+ * @deprecated use elm_object_part_content_unset() instead
+ *
* @ingroup Panes
*/
- EAPI Evas_Object *elm_panes_content_left_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI Evas_Object *elm_panes_content_left_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Unset the right content used for the panes.
* @see elm_panes_content_right_set() for details.
* @see elm_panes_content_right_get().
*
+ * @deprecated use elm_object_part_content_unset() instead
+ *
* @ingroup Panes
*/
EAPI Evas_Object *elm_panes_content_right_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
* - @c "default"
*
* Default contents parts of the conformant widget that you can use for are:
- * @li "elm.swallow.content" - A content of the conformant
+ * @li "default" - A content of the conformant
*
* See how to use this widget in this example:
* @ref conformant_example
* @}
*/
- /* mapbuf */
+ /**
+ * @defgroup Mapbuf Mapbuf
+ * @ingroup Elementary
+ *
+ * @image html img/widget/mapbuf/preview-00.png
+ * @image latex img/widget/mapbuf/preview-00.eps width=\textwidth
+ *
+ * This holds one content object and uses an Evas Map of transformation
+ * points to be later used with this content. So the content will be
+ * moved, resized, etc as a single image. So it will improve performance
+ * when you have a complex interafce, with a lot of elements, and will
+ * need to resize or move it frequently (the content object and its
+ * children).
+ *
+ * Default contents parts of the mapbuf widget that you can use for are:
+ * @li "default" - A content of the mapbuf
+ *
+ * To enable map, elm_mapbuf_enabled_set() should be used.
+ *
+ * See how to use this widget in this example:
+ * @ref mapbuf_example
+ */
+
+ /**
+ * @addtogroup Mapbuf
+ * @{
+ */
+
+ /**
+ * Add a new mapbuf widget to the given parent Elementary
+ * (container) object.
+ *
+ * @param parent The parent object.
+ * @return A new mapbuf widget handle or @c NULL, on errors.
+ *
+ * This function inserts a new mapbuf widget on the canvas.
+ *
+ * @ingroup Mapbuf
+ */
EAPI Evas_Object *elm_mapbuf_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set the content of the mapbuf.
+ *
+ * @param obj The mapbuf object.
+ * @param content The content that will be filled in this mapbuf object.
+ *
+ * Once the content object is set, a previously set one will be deleted.
+ * If you want to keep that old content object, use the
+ * elm_mapbuf_content_unset() function.
+ *
+ * To enable map, elm_mapbuf_enabled_set() should be used.
+ *
+ * @ingroup Mapbuf
+ */
EAPI void elm_mapbuf_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the content of the mapbuf.
+ *
+ * @param obj The mapbuf object.
+ * @return The content that is being used.
+ *
+ * Return the content object which is set for this widget.
+ *
+ * @see elm_mapbuf_content_set() for details.
+ *
+ * @ingroup Mapbuf
+ */
EAPI Evas_Object *elm_mapbuf_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Unset the content of the mapbuf.
+ *
+ * @param obj The mapbuf object.
+ * @return The content that was being used.
+ *
+ * Unparent and return the content object which was set for this widget.
+ *
+ * @see elm_mapbuf_content_set() for details.
+ *
+ * @ingroup Mapbuf
+ */
EAPI Evas_Object *elm_mapbuf_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Enable or disable the map.
+ *
+ * @param obj The mapbuf object.
+ * @param enabled @c EINA_TRUE to enable map or @c EINA_FALSE to disable it.
+ *
+ * This enables the map that is set or disables it. On enable, the object
+ * geometry will be saved, and the new geometry will change (position and
+ * size) to reflect the map geometry set.
+ *
+ * Also, when enabled, alpha and smooth states will be used, so if the
+ * content isn't solid, alpha should be enabled, for example, otherwise
+ * a black retangle will fill the content.
+ *
+ * When disabled, the stored map will be freed and geometry prior to
+ * enabling the map will be restored.
+ *
+ * It's disabled by default.
+ *
+ * @see elm_mapbuf_alpha_set()
+ * @see elm_mapbuf_smooth_set()
+ *
+ * @ingroup Mapbuf
+ */
EAPI void elm_mapbuf_enabled_set(Evas_Object *obj, Eina_Bool enabled) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get a value whether map is enabled or not.
+ *
+ * @param obj The mapbuf object.
+ * @return @c EINA_TRUE means map is enabled. @c EINA_FALSE indicates
+ * it's disabled. If @p obj is @c NULL, @c EINA_FALSE is returned.
+ *
+ * @see elm_mapbuf_enabled_set() for details.
+ *
+ * @ingroup Mapbuf
+ */
EAPI Eina_Bool elm_mapbuf_enabled_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Enable or disable smooth map rendering.
+ *
+ * @param obj The mapbuf object.
+ * @param smooth @c EINA_TRUE to enable smooth map rendering or @c EINA_FALSE
+ * to disable it.
+ *
+ * This sets smoothing for map rendering. If the object is a type that has
+ * its own smoothing settings, then both the smooth settings for this object
+ * and the map must be turned off.
+ *
+ * By default smooth maps are enabled.
+ *
+ * @ingroup Mapbuf
+ */
EAPI void elm_mapbuf_smooth_set(Evas_Object *obj, Eina_Bool smooth) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get a value whether smooth map rendering is enabled or not.
+ *
+ * @param obj The mapbuf object.
+ * @return @c EINA_TRUE means smooth map rendering is enabled. @c EINA_FALSE
+ * indicates it's disabled. If @p obj is @c NULL, @c EINA_FALSE is returned.
+ *
+ * @see elm_mapbuf_smooth_set() for details.
+ *
+ * @ingroup Mapbuf
+ */
EAPI Eina_Bool elm_mapbuf_smooth_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set or unset alpha flag for map rendering.
+ *
+ * @param obj The mapbuf object.
+ * @param alpha @c EINA_TRUE to enable alpha blending or @c EINA_FALSE
+ * to disable it.
+ *
+ * This sets alpha flag for map rendering. If the object is a type that has
+ * its own alpha settings, then this will take precedence. Only image objects
+ * have this currently. It stops alpha blending of the map area, and is
+ * useful if you know the object and/or all sub-objects is 100% solid.
+ *
+ * Alpha is enabled by default.
+ *
+ * @ingroup Mapbuf
+ */
EAPI void elm_mapbuf_alpha_set(Evas_Object *obj, Eina_Bool alpha) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get a value whether alpha blending is enabled or not.
+ *
+ * @param obj The mapbuf object.
+ * @return @c EINA_TRUE means alpha blending is enabled. @c EINA_FALSE
+ * indicates it's disabled. If @p obj is @c NULL, @c EINA_FALSE is returned.
+ *
+ * @see elm_mapbuf_alpha_set() for details.
+ *
+ * @ingroup Mapbuf
+ */
EAPI Eina_Bool elm_mapbuf_alpha_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
+ * @}
+ */
+
+ /**
* @defgroup Flipselector Flip Selector
*
+ * @image html img/widget/flipselector/preview-00.png
+ * @image latex img/widget/flipselector/preview-00.eps
+ *
* A flip selector is a widget to show a set of @b text items, one
* at a time, with the same sheet switching style as the @ref Clock
* "clock" widget, when one changes the current displaying sheet
* Available styles for it:
* - @c "default"
*
+ * To set/get the label of the flipselector item, you can use
+ * elm_object_item_text_set/get APIs.
+ * Once the text is set, a previously set one will be deleted.
+ *
* Here is an example on its usage:
* @li @ref flipselector_example
*/
* Get the internal list of items in a given flip selector widget.
*
* @param obj The flipselector object
- * @return The list of items (#Elm_Flipselector_Item as data) or @c
- * NULL on errors.
+ * @return The list of items (#Elm_Flipselector_Item as data) or
+ * @c NULL on errors.
*
* This list is @b not to be modified in any way and must not be
* freed. Use the list members with functions like
* elm_flipselector_item_label_set(),
- * elm_flipselector_item_label_get(), elm_flipselector_item_del(),
+ * elm_flipselector_item_label_get(),
* elm_flipselector_item_del(),
* elm_flipselector_item_selected_get(),
* elm_flipselector_item_selected_set().
* @ingroup Flipselector
*/
EAPI double elm_flipselector_interval_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
-
/**
* @}
*/
/**
- * @addtogroup Animator Animator
- * @ingroup Elementary
+ * @addtogroup Calendar
+ * @{
+ */
+
+ /**
+ * @enum _Elm_Calendar_Mark_Repeat
+ * @typedef Elm_Calendar_Mark_Repeat
*
- * @brief Functions to ease creation of animations.
+ * Event periodicity, used to define if a mark should be repeated
+ * @b beyond event's day. It's set when a mark is added.
*
- * elm_animator is designed to provide an easy way to create animations.
- * Creating an animation with elm_animator is as simple as setting a
- * duration, an operating callback and telling it to run the animation.
- * However that is not the full extent of elm_animator's ability, animations
- * can be paused and resumed, reversed and the animation need not be linear.
+ * So, for a mark added to 13th May with periodicity set to WEEKLY,
+ * there will be marks every week after this date. Marks will be displayed
+ * at 13th, 20th, 27th, 3rd June ...
*
- * To run an animation you must specify at least a duration and operation
- * callback, not setting any other properties will create a linear animation
- * that runs once and is not reversed.
+ * Values don't work as bitmask, only one can be choosen.
*
- * @ref elm_animator_example_page_01 "This" example should make all of that
- * very clear.
+ * @see elm_calendar_mark_add()
*
- * @warning elm_animator is @b not a widget.
- * @{
+ * @ingroup Calendar
*/
+ typedef enum _Elm_Calendar_Mark_Repeat
+ {
+ ELM_CALENDAR_UNIQUE, /**< Default value. Marks will be displayed only on event day. */
+ ELM_CALENDAR_DAILY, /**< Marks will be displayed everyday after event day (inclusive). */
+ ELM_CALENDAR_WEEKLY, /**< Marks will be displayed every week after event day (inclusive) - i.e. each seven days. */
+ ELM_CALENDAR_MONTHLY, /**< Marks will be displayed every month day that coincides to event day. E.g.: if an event is set to 30th Jan, no marks will be displayed on Feb, but will be displayed on 30th Mar*/
+ ELM_CALENDAR_ANNUALLY /**< Marks will be displayed every year that coincides to event day (and month). E.g. an event added to 30th Jan 2012 will be repeated on 30th Jan 2013. */
+ } Elm_Calendar_Mark_Repeat;
+
+ typedef struct _Elm_Calendar_Mark Elm_Calendar_Mark; /**< Item handle for a calendar mark. Created with elm_calendar_mark_add() and deleted with elm_calendar_mark_del(). */
+
/**
- * @brief Type of curve desired for animation.
+ * Add a new calendar widget to the given parent Elementary
+ * (container) object.
+ *
+ * @param parent The parent object.
+ * @return a new calendar widget handle or @c NULL, on errors.
+ *
+ * This function inserts a new calendar widget on the canvas.
*
- * The speed in which an animation happens doesn't have to be linear, some
- * animations will look better if they're accelerating or decelerating, so
- * elm_animator provides four options in this regard:
- * @image html elm_animator_curve_style.png
- * @image latex elm_animator_curve_style.eps width=\textwidth
- * As can be seen in the image the speed of the animation will be:
- * @li ELM_ANIMATOR_CURVE_LINEAR constant
- * @li ELM_ANIMATOR_CURVE_IN_OUT start slow, speed up and then slow down
- * @li ELM_ANIMATOR_CURVE_IN start slow and then speed up
- * @li ELM_ANIMATOR_CURVE_OUT start fast and then slow down
+ * @ref calendar_example_01
+ *
+ * @ingroup Calendar
*/
- typedef enum
- {
- ELM_ANIMATOR_CURVE_LINEAR,
- ELM_ANIMATOR_CURVE_IN_OUT,
- ELM_ANIMATOR_CURVE_IN,
- ELM_ANIMATOR_CURVE_OUT
- } Elm_Animator_Curve_Style;
- typedef struct _Elm_Animator Elm_Animator;
- /**
- * Called back per loop of an elementary animators cycle
- * @param data user-data given to elm_animator_operation_callback_set()
- * @param animator the animator being run
- * @param double the position in the animation
- */
- typedef void (*Elm_Animator_Operation_Cb) (void *data, Elm_Animator *animator, double frame);
- /**
- * Called back when an elementary animator finishes
- * @param data user-data given to elm_animator_completion_callback_set()
- */
- typedef void (*Elm_Animator_Completion_Cb) (void *data);
+ EAPI Evas_Object *elm_calendar_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get weekdays names displayed by the calendar.
+ *
+ * @param obj The calendar object.
+ * @return Array of seven strings to be used as weekday names.
+ *
+ * By default, weekdays abbreviations get from system are displayed:
+ * E.g. for an en_US locale: "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
+ * The first string is related to Sunday, the second to Monday...
+ *
+ * @see elm_calendar_weekdays_name_set()
+ *
+ * @ref calendar_example_05
+ *
+ * @ingroup Calendar
+ */
+ EAPI const char **elm_calendar_weekdays_names_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set weekdays names to be displayed by the calendar.
+ *
+ * @param obj The calendar object.
+ * @param weekdays Array of seven strings to be used as weekday names.
+ * @warning It must have 7 elements, or it will access invalid memory.
+ * @warning The strings must be NULL terminated ('@\0').
+ *
+ * By default, weekdays abbreviations get from system are displayed:
+ * E.g. for an en_US locale: "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
+ *
+ * The first string should be related to Sunday, the second to Monday...
+ *
+ * The usage should be like this:
+ * @code
+ * const char *weekdays[] =
+ * {
+ * "Sunday", "Monday", "Tuesday", "Wednesday",
+ * "Thursday", "Friday", "Saturday"
+ * };
+ * elm_calendar_weekdays_names_set(calendar, weekdays);
+ * @endcode
+ *
+ * @see elm_calendar_weekdays_name_get()
+ *
+ * @ref calendar_example_02
+ *
+ * @ingroup Calendar
+ */
+ EAPI void elm_calendar_weekdays_names_set(Evas_Object *obj, const char *weekdays[]) EINA_ARG_NONNULL(1, 2);
/**
- * @brief Create a new animator.
+ * Set the minimum and maximum values for the year
+ *
+ * @param obj The calendar object
+ * @param min The minimum year, greater than 1901;
+ * @param max The maximum year;
+ *
+ * Maximum must be greater than minimum, except if you don't wan't to set
+ * maximum year.
+ * Default values are 1902 and -1.
*
- * @param[in] parent Parent object
+ * If the maximum year is a negative value, it will be limited depending
+ * on the platform architecture (year 2037 for 32 bits);
*
- * The @a parent argument can be set to NULL for no parent. If a parent is set
- * there is no need to call elm_animator_del(), when the parent is deleted it
- * will delete the animator.
- * @deprecated Use @ref Transit instead.
+ * @see elm_calendar_min_max_year_get()
+ *
+ * @ref calendar_example_03
+ *
+ * @ingroup Calendar
+ */
+ EAPI void elm_calendar_min_max_year_set(Evas_Object *obj, int min, int max) EINA_ARG_NONNULL(1);
+ /**
+ * Get the minimum and maximum values for the year
+ *
+ * @param obj The calendar object.
+ * @param min The minimum year.
+ * @param max The maximum year.
+ *
+ * Default values are 1902 and -1.
+ *
+ * @see elm_calendar_min_max_year_get() for more details.
+ *
+ * @ref calendar_example_05
+ *
+ * @ingroup Calendar
*/
- EINA_DEPRECATED EAPI Elm_Animator* elm_animator_add(Evas_Object *parent);
+ EAPI void elm_calendar_min_max_year_get(const Evas_Object *obj, int *min, int *max) EINA_ARG_NONNULL(1);
+
/**
- * Deletes the animator freeing any resources it used. If the animator was
- * created with a NULL parent this must be called, otherwise it will be
- * automatically called when the parent is deleted.
+ * Enable or disable day selection
+ *
+ * @param obj The calendar object.
+ * @param enabled @c EINA_TRUE to enable selection or @c EINA_FALSE to
+ * disable it.
+ *
+ * Enabled by default. If disabled, the user still can select months,
+ * but not days. Selected days are highlighted on calendar.
+ * It should be used if you won't need such selection for the widget usage.
+ *
+ * When a day is selected, or month is changed, smart callbacks for
+ * signal "changed" will be called.
*
- * @param[in] animator Animator object
- * @deprecated Use @ref Transit instead.
+ * @see elm_calendar_day_selection_enable_get()
+ *
+ * @ref calendar_example_04
+ *
+ * @ingroup Calendar
*/
- EINA_DEPRECATED EAPI void elm_animator_del(Elm_Animator *animator) EINA_ARG_NONNULL(1);
+ EAPI void elm_calendar_day_selection_enabled_set(Evas_Object *obj, Eina_Bool enabled) EINA_ARG_NONNULL(1);
+
/**
- * Set the duration of the animation.
+ * Get a value whether day selection is enabled or not.
*
- * @param[in] animator Animator object
- * @param[in] duration Duration in second
- * @deprecated Use @ref Transit instead.
+ * @see elm_calendar_day_selection_enable_set() for details.
+ *
+ * @param obj The calendar object.
+ * @return EINA_TRUE means day selection is enabled. EINA_FALSE indicates
+ * it's disabled. If @p obj is NULL, EINA_FALSE is returned.
+ *
+ * @ref calendar_example_05
+ *
+ * @ingroup Calendar
*/
- EINA_DEPRECATED EAPI void elm_animator_duration_set(Elm_Animator *animator, double duration) EINA_ARG_NONNULL(1);
+ EAPI Eina_Bool elm_calendar_day_selection_enabled_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+
/**
- * @brief Set the callback function for animator operation.
+ * Set selected date to be highlighted on calendar.
+ *
+ * @param obj The calendar object.
+ * @param selected_time A @b tm struct to represent the selected date.
+ *
+ * Set the selected date, changing the displayed month if needed.
+ * Selected date changes when the user goes to next/previous month or
+ * select a day pressing over it on calendar.
*
- * @param[in] animator Animator object
- * @param[in] func @ref Elm_Animator_Operation_Cb "Callback" function pointer
- * @param[in] data Callback function user argument
+ * @see elm_calendar_selected_time_get()
*
- * The @p func callback will be called with a frame value in range [0, 1] which
- * indicates how far along the animation should be. It is the job of @p func to
- * actually change the state of any object(or objects) that are being animated.
- * @deprecated Use @ref Transit instead.
+ * @ref calendar_example_04
+ *
+ * @ingroup Calendar
*/
- EINA_DEPRECATED EAPI void elm_animator_operation_callback_set(Elm_Animator *animator, Elm_Animator_Operation_Cb func, void *data) EINA_ARG_NONNULL(1);
+ EAPI void elm_calendar_selected_time_set(Evas_Object *obj, struct tm *selected_time) EINA_ARG_NONNULL(1);
+
/**
- * Set the callback function for the when the animation ends.
+ * Get selected date.
+ *
+ * @param obj The calendar object
+ * @param selected_time A @b tm struct to point to selected date
+ * @return EINA_FALSE means an error ocurred and returned time shouldn't
+ * be considered.
*
- * @param[in] animator Animator object
- * @param[in] func Callback function pointe
- * @param[in] data Callback function user argument
+ * Get date selected by the user or set by function
+ * elm_calendar_selected_time_set().
+ * Selected date changes when the user goes to next/previous month or
+ * select a day pressing over it on calendar.
*
- * @warning @a func will not be executed if elm_animator_stop() is called.
- * @deprecated Use @ref Transit instead.
+ * @see elm_calendar_selected_time_get()
+ *
+ * @ref calendar_example_05
+ *
+ * @ingroup Calendar
*/
- EINA_DEPRECATED EAPI void elm_animator_completion_callback_set(Elm_Animator *animator, Elm_Animator_Completion_Cb func, void *data) EINA_ARG_NONNULL(1);
+ EAPI Eina_Bool elm_calendar_selected_time_get(const Evas_Object *obj, struct tm *selected_time) EINA_ARG_NONNULL(1, 2);
+
/**
- * @brief Stop animator.
+ * Set a function to format the string that will be used to display
+ * month and year;
+ *
+ * @param obj The calendar object
+ * @param format_function Function to set the month-year string given
+ * the selected date
+ *
+ * By default it uses strftime with "%B %Y" format string.
+ * It should allocate the memory that will be used by the string,
+ * that will be freed by the widget after usage.
+ * A pointer to the string and a pointer to the time struct will be provided.
+ *
+ * Example:
+ * @code
+ * static char *
+ * _format_month_year(struct tm *selected_time)
+ * {
+ * char buf[32];
+ * if (!strftime(buf, sizeof(buf), "%B %Y", selected_time)) return NULL;
+ * return strdup(buf);
+ * }
+ *
+ * elm_calendar_format_function_set(calendar, _format_month_year);
+ * @endcode
*
- * @param[in] animator Animator object
+ * @ref calendar_example_02
*
- * If called before elm_animator_animate() it does nothing. If there is an
- * animation in progress the animation will be stopped(the operation callback
- * will not be executed again) and it can't be restarted using
- * elm_animator_resume().
- * @deprecated Use @ref Transit instead.
+ * @ingroup Calendar
*/
- EINA_DEPRECATED EAPI void elm_animator_stop(Elm_Animator *animator) EINA_ARG_NONNULL(1);
+ EAPI void elm_calendar_format_function_set(Evas_Object *obj, char * (*format_function) (struct tm *stime)) EINA_ARG_NONNULL(1);
+
/**
- * Set the animator repeat count.
+ * Add a new mark to the calendar
+ *
+ * @param obj The calendar object
+ * @param mark_type A string used to define the type of mark. It will be
+ * emitted to the theme, that should display a related modification on these
+ * days representation.
+ * @param mark_time A time struct to represent the date of inclusion of the
+ * mark. For marks that repeats it will just be displayed after the inclusion
+ * date in the calendar.
+ * @param repeat Repeat the event following this periodicity. Can be a unique
+ * mark (that don't repeat), daily, weekly, monthly or annually.
+ * @return The created mark or @p NULL upon failure.
+ *
+ * Add a mark that will be drawn in the calendar respecting the insertion
+ * time and periodicity. It will emit the type as signal to the widget theme.
+ * Default theme supports "holiday" and "checked", but it can be extended.
+ *
+ * It won't immediately update the calendar, drawing the marks.
+ * For this, call elm_calendar_marks_draw(). However, when user selects
+ * next or previous month calendar forces marks drawn.
+ *
+ * Marks created with this method can be deleted with
+ * elm_calendar_mark_del().
+ *
+ * Example
+ * @code
+ * struct tm selected_time;
+ * time_t current_time;
+ *
+ * current_time = time(NULL) + 5 * 84600;
+ * localtime_r(¤t_time, &selected_time);
+ * elm_calendar_mark_add(cal, "holiday", selected_time,
+ * ELM_CALENDAR_ANNUALLY);
+ *
+ * current_time = time(NULL) + 1 * 84600;
+ * localtime_r(¤t_time, &selected_time);
+ * elm_calendar_mark_add(cal, "checked", selected_time, ELM_CALENDAR_UNIQUE);
+ *
+ * elm_calendar_marks_draw(cal);
+ * @endcode
+ *
+ * @see elm_calendar_marks_draw()
+ * @see elm_calendar_mark_del()
*
- * @param[in] animator Animator object
- * @param[in] repeat_cnt Repeat count
- * @deprecated Use @ref Transit instead.
+ * @ref calendar_example_06
+ *
+ * @ingroup Calendar
*/
- EINA_DEPRECATED EAPI void elm_animator_repeat_set(Elm_Animator *animator, unsigned int repeat_cnt) EINA_ARG_NONNULL(1);
+ EAPI Elm_Calendar_Mark *elm_calendar_mark_add(Evas_Object *obj, const char *mark_type, struct tm *mark_time, Elm_Calendar_Mark_Repeat repeat) EINA_ARG_NONNULL(1);
+
/**
- * @brief Start animation.
+ * Delete mark from the calendar.
+ *
+ * @param mark The mark to be deleted.
+ *
+ * If deleting all calendar marks is required, elm_calendar_marks_clear()
+ * should be used instead of getting marks list and deleting each one.
+ *
+ * @see elm_calendar_mark_add()
*
- * @param[in] animator Animator object
+ * @ref calendar_example_06
*
- * This function starts the animation if the nescessary properties(duration
- * and operation callback) have been set. Once started the animation will
- * run until complete or elm_animator_stop() is called.
- * @deprecated Use @ref Transit instead.
+ * @ingroup Calendar
*/
- EINA_DEPRECATED EAPI void elm_animator_animate(Elm_Animator *animator) EINA_ARG_NONNULL(1);
+ EAPI void elm_calendar_mark_del(Elm_Calendar_Mark *mark) EINA_ARG_NONNULL(1);
+
/**
- * Sets the animation @ref Elm_Animator_Curve_Style "acceleration style".
+ * Remove all calendar's marks
+ *
+ * @param obj The calendar object.
+ *
+ * @see elm_calendar_mark_add()
+ * @see elm_calendar_mark_del()
*
- * @param[in] animator Animator object
- * @param[in] cs Curve style. Default is ELM_ANIMATOR_CURVE_LINEAR
- * @deprecated Use @ref Transit instead.
+ * @ingroup Calendar
*/
- EINA_DEPRECATED EAPI void elm_animator_curve_style_set(Elm_Animator *animator, Elm_Animator_Curve_Style cs) EINA_ARG_NONNULL(1);
+ EAPI void elm_calendar_marks_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+
/**
- * Gets the animation @ref Elm_Animator_Curve_Style "acceleration style".
+ * Get a list of all the calendar marks.
+ *
+ * @param obj The calendar object.
+ * @return An @c Eina_List of calendar marks objects, or @c NULL on failure.
*
- * @param[in] animator Animator object
- * @param[in] cs Curve style. Default is ELM_ANIMATOR_CURVE_LINEAR
- * @deprecated Use @ref Transit instead.
+ * @see elm_calendar_mark_add()
+ * @see elm_calendar_mark_del()
+ * @see elm_calendar_marks_clear()
+ *
+ * @ingroup Calendar
*/
- EINA_DEPRECATED EAPI Elm_Animator_Curve_Style elm_animator_curve_style_get(const Elm_Animator *animator) EINA_ARG_NONNULL(1);
+ EAPI const Eina_List *elm_calendar_marks_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
/**
- * @brief Sets wether the animation should be automatically reversed.
+ * Draw calendar marks.
+ *
+ * @param obj The calendar object.
*
- * @param[in] animator Animator object
- * @param[in] reverse Reverse or not
+ * Should be used after adding, removing or clearing marks.
+ * It will go through the entire marks list updating the calendar.
+ * If lots of marks will be added, add all the marks and then call
+ * this function.
*
- * This controls wether the animation will be run on reverse imediately after
- * running forward. When this is set together with repetition the animation
- * will run in reverse once for each time it ran forward.@n
- * Runnin an animation in reverse is accomplished by calling the operation
- * callback with a frame value starting at 1 and diminshing until 0.
- * @deprecated Use @ref Transit instead.
+ * When the month is changed, i.e. user selects next or previous month,
+ * marks will be drawed.
+ *
+ * @see elm_calendar_mark_add()
+ * @see elm_calendar_mark_del()
+ * @see elm_calendar_marks_clear()
+ *
+ * @ref calendar_example_06
+ *
+ * @ingroup Calendar
*/
- EINA_DEPRECATED EAPI void elm_animator_auto_reverse_set(Elm_Animator *animator, Eina_Bool reverse) EINA_ARG_NONNULL(1);
+ EAPI void elm_calendar_marks_draw(Evas_Object *obj) EINA_ARG_NONNULL(1);
+
/**
- * Gets wether the animation will automatically reversed
+ * Set a day text color to the same that represents Saturdays.
+ *
+ * @param obj The calendar object.
+ * @param pos The text position. Position is the cell counter, from left
+ * to right, up to down. It starts on 0 and ends on 41.
+ *
+ * @deprecated use elm_calendar_mark_add() instead like:
+ *
+ * @code
+ * struct tm t = { 0, 0, 12, 6, 0, 0, 6, 6, -1 };
+ * elm_calendar_mark_add(obj, "sat", &t, ELM_CALENDAR_WEEKLY);
+ * @endcode
*
- * @param[in] animator Animator object
- * @deprecated Use @ref Transit instead.
+ * @see elm_calendar_mark_add()
+ *
+ * @ingroup Calendar
*/
- EINA_DEPRECATED EAPI Eina_Bool elm_animator_auto_reverse_get(const Elm_Animator *animator) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI void elm_calendar_text_saturday_color_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
+
/**
- * Gets the status for the animator operation. The status of the animator @b
- * doesn't take in to account elm_animator_pause() or elm_animator_resume(), it
- * only informs if the animation was started and has not ended(either normally
- * or through elm_animator_stop()).
+ * Set a day text color to the same that represents Sundays.
+ *
+ * @param obj The calendar object.
+ * @param pos The text position. Position is the cell counter, from left
+ * to right, up to down. It starts on 0 and ends on 41.
+
+ * @deprecated use elm_calendar_mark_add() instead like:
+ *
+ * @code
+ * struct tm t = { 0, 0, 12, 7, 0, 0, 0, 0, -1 };
+ * elm_calendar_mark_add(obj, "sat", &t, ELM_CALENDAR_WEEKLY);
+ * @endcode
*
- * @param[in] animator Animator object
- * @deprecated Use @ref Transit instead.
+ * @see elm_calendar_mark_add()
+ *
+ * @ingroup Calendar
*/
- EINA_DEPRECATED EAPI Eina_Bool elm_animator_operating_get(const Elm_Animator *animator) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI void elm_calendar_text_sunday_color_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
+
/**
- * Gets how many times the animation will be repeated
+ * Set a day text color to the same that represents Weekdays.
+ *
+ * @param obj The calendar object
+ * @param pos The text position. Position is the cell counter, from left
+ * to right, up to down. It starts on 0 and ends on 41.
+ *
+ * @deprecated use elm_calendar_mark_add() instead like:
+ *
+ * @code
+ * struct tm t = { 0, 0, 12, 1, 0, 0, 0, 0, -1 };
+ *
+ * elm_calendar_mark_add(obj, "week", &t, ELM_CALENDAR_WEEKLY); // monday
+ * t.tm_tm_mday++; t.tm_wday++; t.tm_yday++;
+ * elm_calendar_mark_add(obj, "week", &t, ELM_CALENDAR_WEEKLY); // tuesday
+ * t.tm_tm_mday++; t.tm_wday++; t.tm_yday++;
+ * elm_calendar_mark_add(obj, "week", &t, ELM_CALENDAR_WEEKLY); // wednesday
+ * t.tm_tm_mday++; t.tm_wday++; t.tm_yday++;
+ * elm_calendar_mark_add(obj, "week", &t, ELM_CALENDAR_WEEKLY); // thursday
+ * t.tm_tm_mday++; t.tm_wday++; t.tm_yday++;
+ * elm_calendar_mark_add(obj, "week", &t, ELM_CALENDAR_WEEKLY); // friday
+ * @endcode
*
- * @param[in] animator Animator object
- * @deprecated Use @ref Transit instead.
+ * @see elm_calendar_mark_add()
+ *
+ * @ingroup Calendar
*/
- EINA_DEPRECATED EAPI unsigned int elm_animator_repeat_get(const Elm_Animator *animator) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI void elm_calendar_text_weekday_color_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
+
/**
- * Pause the animator.
+ * Set the interval on time updates for an user mouse button hold
+ * on calendar widgets' month selection.
+ *
+ * @param obj The calendar object
+ * @param interval The (first) interval value in seconds
+ *
+ * This interval value is @b decreased while the user holds the
+ * mouse pointer either selecting next or previous month.
+ *
+ * This helps the user to get to a given month distant from the
+ * current one easier/faster, as it will start to change quicker and
+ * quicker on mouse button holds.
+ *
+ * The calculation for the next change interval value, starting from
+ * the one set with this call, is the previous interval divided by
+ * 1.05, so it decreases a little bit.
+ *
+ * The default starting interval value for automatic changes is
+ * @b 0.85 seconds.
*
- * @param[in] animator Animator object
+ * @see elm_calendar_interval_get()
*
- * This causes the animation to be temporarily stopped(the operation callback
- * will not be called). If the animation is not yet running this is a no-op.
- * Once an animation has been paused with this function it can be resumed
- * using elm_animator_resume().
- * @deprecated Use @ref Transit instead.
+ * @ingroup Calendar
*/
- EINA_DEPRECATED EAPI void elm_animator_pause(Elm_Animator *animator) EINA_ARG_NONNULL(1);
+ EAPI void elm_calendar_interval_set(Evas_Object *obj, double interval) EINA_ARG_NONNULL(1);
+
/**
- * @brief Resumes the animator.
+ * Get the interval on time updates for an user mouse button hold
+ * on calendar widgets' month selection.
*
- * @param[in] animator Animator object
+ * @param obj The calendar object
+ * @return The (first) interval value, in seconds, set on it
*
- * Resumes an animation that was paused using elm_animator_pause(), after
- * calling this function calls to the operation callback will happen
- * normally. If an animation is stopped by means of elm_animator_stop it
- * @b can't be restarted with this function.@n
+ * @see elm_calendar_interval_set() for more details
*
- * @warning When an animation is resumed it doesn't start from where it was paused, it
- * will go to where it would have been if it had not been paused. If an
- * animation with a duration of 3 seconds is paused after 1 second for 1 second
- * it will resume as if it had ben animating for 2 seconds, the operating
- * callback will be called with a frame value of aproximately 2/3.
- * @deprecated Use @ref Transit instead.
+ * @ingroup Calendar
*/
- EINA_DEPRECATED EAPI void elm_animator_resume(Elm_Animator *animator) EINA_ARG_NONNULL(1);
+ EAPI double elm_calendar_interval_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
/**
* @}
*/
- /* calendar */
- typedef enum
- {
- ELM_CALENDAR_UNIQUE,
- ELM_CALENDAR_DAILY,
- ELM_CALENDAR_WEEKLY,
- ELM_CALENDAR_MONTHLY,
- ELM_CALENDAR_ANNUALLY
- } Elm_Calendar_Mark_Repeat;
- typedef struct _Elm_Calendar_Mark Elm_Calendar_Mark;
+ /**
+ * @defgroup Diskselector Diskselector
+ * @ingroup Elementary
+ *
+ * @image html img/widget/diskselector/preview-00.png
+ * @image latex img/widget/diskselector/preview-00.eps
+ *
+ * A diskselector is a kind of list widget. It scrolls horizontally,
+ * and can contain label and icon objects. Three items are displayed
+ * with the selected one in the middle.
+ *
+ * It can act like a circular list with round mode and labels can be
+ * reduced for a defined length for side items.
+ *
+ * Smart callbacks one can listen to:
+ * - "selected" - when item is selected, i.e. scroller stops.
+ *
+ * Available styles for it:
+ * - @c "default"
+ *
+ * List of examples:
+ * @li @ref diskselector_example_01
+ * @li @ref diskselector_example_02
+ */
- EAPI Evas_Object *elm_calendar_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
- EAPI const char **elm_calendar_weekdays_names_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
- EAPI void elm_calendar_weekdays_names_set(Evas_Object *obj, const char *weekdays[]) EINA_ARG_NONNULL(1, 2);
- EAPI double elm_calendar_interval_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
- EAPI void elm_calendar_interval_set(Evas_Object *obj, double interval) EINA_ARG_NONNULL(1);
- EAPI void elm_calendar_min_max_year_get(const Evas_Object *obj, int *min, int *max) EINA_ARG_NONNULL(1);
- EAPI void elm_calendar_min_max_year_set(Evas_Object *obj, int min, int max) EINA_ARG_NONNULL(1);
- EAPI Eina_Bool elm_calendar_day_selection_enabled_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
- EAPI void elm_calendar_day_selection_enabled_set(Evas_Object *obj, Eina_Bool enabled) EINA_ARG_NONNULL(1);
- EAPI Eina_Bool elm_calendar_selected_time_get(const Evas_Object *obj, struct tm *selected_time) EINA_ARG_NONNULL(1, 2);
- EAPI void elm_calendar_selected_time_set(Evas_Object *obj, struct tm *selected_time) EINA_ARG_NONNULL(1);
- EAPI void elm_calendar_format_function_set(Evas_Object *obj, char * (*format_function) (struct tm *stime)) EINA_ARG_NONNULL(1);
- EAPI Elm_Calendar_Mark *elm_calendar_mark_add(Evas_Object *obj, const char *mark_type, struct tm *mark_time, Elm_Calendar_Mark_Repeat repeat) EINA_ARG_NONNULL(1);
- EAPI void elm_calendar_mark_del(Elm_Calendar_Mark *mark) EINA_ARG_NONNULL(1);
- EAPI void elm_calendar_marks_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
- EAPI const Eina_List *elm_calendar_marks_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
- EAPI void elm_calendar_marks_draw(Evas_Object *obj) EINA_ARG_NONNULL(1);
- EINA_DEPRECATED EAPI void elm_calendar_text_saturday_color_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
- EINA_DEPRECATED EAPI void elm_calendar_text_sunday_color_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
- EINA_DEPRECATED EAPI void elm_calendar_text_weekday_color_set(Evas_Object *obj, int pos) EINA_ARG_NONNULL(1);
- /* smart callbacks called:
- * changed - emitted when the user select a day or change the displayed
- * month.
+ /**
+ * @addtogroup Diskselector
+ * @{
*/
- /* diskselector */
- typedef struct _Elm_Diskselector_Item Elm_Diskselector_Item;
+ typedef struct _Elm_Diskselector_Item Elm_Diskselector_Item; /**< Item handle for a diskselector item. Created with elm_diskselector_item_append() and deleted with elm_diskselector_item_del(). */
+ /**
+ * Add a new diskselector widget to the given parent Elementary
+ * (container) object.
+ *
+ * @param parent The parent object.
+ * @return a new diskselector widget handle or @c NULL, on errors.
+ *
+ * This function inserts a new diskselector widget on the canvas.
+ *
+ * @ingroup Diskselector
+ */
EAPI Evas_Object *elm_diskselector_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
- EAPI Eina_Bool elm_diskselector_round_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Enable or disable round mode.
+ *
+ * @param obj The diskselector object.
+ * @param round @c EINA_TRUE to enable round mode or @c EINA_FALSE to
+ * disable it.
+ *
+ * Disabled by default. If round mode is enabled the items list will
+ * work like a circle list, so when the user reaches the last item,
+ * the first one will popup.
+ *
+ * @see elm_diskselector_round_get()
+ *
+ * @ingroup Diskselector
+ */
EAPI void elm_diskselector_round_set(Evas_Object *obj, Eina_Bool round) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get a value whether round mode is enabled or not.
+ *
+ * @see elm_diskselector_round_set() for details.
+ *
+ * @param obj The diskselector object.
+ * @return @c EINA_TRUE means round mode is enabled. @c EINA_FALSE indicates
+ * it's disabled. If @p obj is @c NULL, @c EINA_FALSE is returned.
+ *
+ * @ingroup Diskselector
+ */
+ EAPI Eina_Bool elm_diskselector_round_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the side labels max length.
+ *
+ * @deprecated use elm_diskselector_side_label_length_get() instead:
+ *
+ * @param obj The diskselector object.
+ * @return The max length defined for side labels, or 0 if not a valid
+ * diskselector.
+ *
+ * @ingroup Diskselector
+ */
EINA_DEPRECATED EAPI int elm_diskselector_side_label_lenght_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set the side labels max length.
+ *
+ * @deprecated use elm_diskselector_side_label_length_set() instead:
+ *
+ * @param obj The diskselector object.
+ * @param len The max length defined for side labels.
+ *
+ * @ingroup Diskselector
+ */
EINA_DEPRECATED EAPI void elm_diskselector_side_label_lenght_set(Evas_Object *obj, int len) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the side labels max length.
+ *
+ * @see elm_diskselector_side_label_length_set() for details.
+ *
+ * @param obj The diskselector object.
+ * @return The max length defined for side labels, or 0 if not a valid
+ * diskselector.
+ *
+ * @ingroup Diskselector
+ */
EAPI int elm_diskselector_side_label_length_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
- EAPI void elm_diskselector_side_label_length_set(Evas_Object *obj, int len) EINA_ARG_NONNULL(1);
- EAPI void elm_diskselector_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
- EAPI void elm_diskselector_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1);
- EAPI void elm_diskselector_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v) EINA_ARG_NONNULL(1);
- EAPI void elm_diskselector_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v) EINA_ARG_NONNULL(1);
- EAPI void elm_diskselector_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
- EAPI const Eina_List *elm_diskselector_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
- EAPI Elm_Diskselector_Item *elm_diskselector_item_append(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
- EAPI void elm_diskselector_item_del(Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set the side labels max length.
+ *
+ * @param obj The diskselector object.
+ * @param len The max length defined for side labels.
+ *
+ * Length is the number of characters of items' label that will be
+ * visible when it's set on side positions. It will just crop
+ * the string after defined size. E.g.:
+ *
+ * An item with label "January" would be displayed on side position as
+ * "Jan" if max length is set to 3, or "Janu", if this property
+ * is set to 4.
+ *
+ * When it's selected, the entire label will be displayed, except for
+ * width restrictions. In this case label will be cropped and "..."
+ * will be concatenated.
+ *
+ * Default side label max length is 3.
+ *
+ * This property will be applyed over all items, included before or
+ * later this function call.
+ *
+ * @ingroup Diskselector
+ */
+ EAPI void elm_diskselector_side_label_length_set(Evas_Object *obj, int len) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set the number of items to be displayed.
+ *
+ * @param obj The diskselector object.
+ * @param num The number of items the diskselector will display.
+ *
+ * Default value is 3, and also it's the minimun. If @p num is less
+ * than 3, it will be set to 3.
+ *
+ * Also, it can be set on theme, using data item @c display_item_num
+ * on group "elm/diskselector/item/X", where X is style set.
+ * E.g.:
+ *
+ * group { name: "elm/diskselector/item/X";
+ * data {
+ * item: "display_item_num" "5";
+ * }
+ *
+ * @ingroup Diskselector
+ */
+ EAPI void elm_diskselector_display_item_num_set(Evas_Object *obj, int num) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the number of items in the diskselector object.
+ *
+ * @param obj The diskselector object.
+ *
+ * @ingroup Diskselector
+ */
+ EAPI int elm_diskselector_display_item_num_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set bouncing behaviour when the scrolled content reaches an edge.
+ *
+ * Tell the internal scroller object whether it should bounce or not
+ * when it reaches the respective edges for each axis.
+ *
+ * @param obj The diskselector object.
+ * @param h_bounce Whether to bounce or not in the horizontal axis.
+ * @param v_bounce Whether to bounce or not in the vertical axis.
+ *
+ * @see elm_scroller_bounce_set()
+ *
+ * @ingroup Diskselector
+ */
+ EAPI void elm_diskselector_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the bouncing behaviour of the internal scroller.
+ *
+ * Get whether the internal scroller should bounce when the edge of each
+ * axis is reached scrolling.
+ *
+ * @param obj The diskselector object.
+ * @param h_bounce Pointer where to store the bounce state of the horizontal
+ * axis.
+ * @param v_bounce Pointer where to store the bounce state of the vertical
+ * axis.
+ *
+ * @see elm_scroller_bounce_get()
+ * @see elm_diskselector_bounce_set()
+ *
+ * @ingroup Diskselector
+ */
+ EAPI void elm_diskselector_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the scrollbar policy.
+ *
+ * @see elm_diskselector_scroller_policy_get() for details.
+ *
+ * @param obj The diskselector object.
+ * @param policy_h Pointer where to store horizontal scrollbar policy.
+ * @param policy_v Pointer where to store vertical scrollbar policy.
+ *
+ * @ingroup Diskselector
+ */
+ EAPI void elm_diskselector_scroller_policy_get(const Evas_Object *obj, Elm_Scroller_Policy *policy_h, Elm_Scroller_Policy *policy_v) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set the scrollbar policy.
+ *
+ * @param obj The diskselector object.
+ * @param policy_h Horizontal scrollbar policy.
+ * @param policy_v Vertical scrollbar policy.
+ *
+ * This sets the scrollbar visibility policy for the given scroller.
+ * #ELM_SCROLLER_POLICY_AUTO means the scrollbar is made visible if it
+ * is needed, and otherwise kept hidden. #ELM_SCROLLER_POLICY_ON turns
+ * it on all the time, and #ELM_SCROLLER_POLICY_OFF always keeps it off.
+ * This applies respectively for the horizontal and vertical scrollbars.
+ *
+ * The both are disabled by default, i.e., are set to
+ * #ELM_SCROLLER_POLICY_OFF.
+ *
+ * @ingroup Diskselector
+ */
+ EAPI void elm_diskselector_scroller_policy_set(Evas_Object *obj, Elm_Scroller_Policy policy_h, Elm_Scroller_Policy policy_v) EINA_ARG_NONNULL(1);
+
+ /**
+ * Remove all diskselector's items.
+ *
+ * @param obj The diskselector object.
+ *
+ * @see elm_diskselector_item_del()
+ * @see elm_diskselector_item_append()
+ *
+ * @ingroup Diskselector
+ */
+ EAPI void elm_diskselector_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get a list of all the diskselector items.
+ *
+ * @param obj The diskselector object.
+ * @return An @c Eina_List of diskselector items, #Elm_Diskselector_Item,
+ * or @c NULL on failure.
+ *
+ * @see elm_diskselector_item_append()
+ * @see elm_diskselector_item_del()
+ * @see elm_diskselector_clear()
+ *
+ * @ingroup Diskselector
+ */
+ EAPI const Eina_List *elm_diskselector_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Appends a new item to the diskselector object.
+ *
+ * @param obj The diskselector object.
+ * @param label The label of the diskselector item.
+ * @param icon The icon object to use at left side of the item. An
+ * icon can be any Evas object, but usually it is an icon created
+ * with elm_icon_add().
+ * @param func The function to call when the item is selected.
+ * @param data The data to associate with the item for related callbacks.
+ *
+ * @return The created item or @c NULL upon failure.
+ *
+ * A new item will be created and appended to the diskselector, i.e., will
+ * be set as last item. Also, if there is no selected item, it will
+ * be selected. This will always happens for the first appended item.
+ *
+ * If no icon is set, label will be centered on item position, otherwise
+ * the icon will be placed at left of the label, that will be shifted
+ * to the right.
+ *
+ * Items created with this method can be deleted with
+ * elm_diskselector_item_del().
+ *
+ * Associated @p data can be properly freed when item is deleted if a
+ * callback function is set with elm_diskselector_item_del_cb_set().
+ *
+ * If a function is passed as argument, it will be called everytime this item
+ * is selected, i.e., the user stops the diskselector with this
+ * item on center position. If such function isn't needed, just passing
+ * @c NULL as @p func is enough. The same should be done for @p data.
+ *
+ * Simple example (with no function callback or data associated):
+ * @code
+ * disk = elm_diskselector_add(win);
+ * ic = elm_icon_add(win);
+ * elm_icon_file_set(ic, "path/to/image", NULL);
+ * elm_icon_scale_set(ic, EINA_TRUE, EINA_TRUE);
+ * elm_diskselector_item_append(disk, "label", ic, NULL, NULL);
+ * @endcode
+ *
+ * @see elm_diskselector_item_del()
+ * @see elm_diskselector_item_del_cb_set()
+ * @see elm_diskselector_clear()
+ * @see elm_icon_add()
+ *
+ * @ingroup Diskselector
+ */
+ EAPI Elm_Diskselector_Item *elm_diskselector_item_append(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
+
+
+ /**
+ * Delete them item from the diskselector.
+ *
+ * @param it The item of diskselector to be deleted.
+ *
+ * If deleting all diskselector items is required, elm_diskselector_clear()
+ * should be used instead of getting items list and deleting each one.
+ *
+ * @see elm_diskselector_clear()
+ * @see elm_diskselector_item_append()
+ * @see elm_diskselector_item_del_cb_set()
+ *
+ * @ingroup Diskselector
+ */
+ EAPI void elm_diskselector_item_del(Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set the function called when a diskselector item is freed.
+ *
+ * @param it The item to set the callback on
+ * @param func The function called
+ *
+ * If there is a @p func, then it will be called prior item's memory release.
+ * That will be called with the following arguments:
+ * @li item's data;
+ * @li item's Evas object;
+ * @li item itself;
+ *
+ * This way, a data associated to a diskselector item could be properly
+ * freed.
+ *
+ * @ingroup Diskselector
+ */
EAPI void elm_diskselector_item_del_cb_set(Elm_Diskselector_Item *item, Evas_Smart_Cb func) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the data associated to the item.
+ *
+ * @param it The diskselector item
+ * @return The data associated to @p it
+ *
+ * The return value is a pointer to data associated to @p item when it was
+ * created, with function elm_diskselector_item_append(). If no data
+ * was passed as argument, it will return @c NULL.
+ *
+ * @see elm_diskselector_item_append()
+ *
+ * @ingroup Diskselector
+ */
EAPI void *elm_diskselector_item_data_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
- EAPI Evas_Object *elm_diskselector_item_icon_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set the icon associated to the item.
+ *
+ * @param it The diskselector item
+ * @param icon The icon object to associate with @p it
+ *
+ * The icon object to use at left side of the item. An
+ * icon can be any Evas object, but usually it is an icon created
+ * with elm_icon_add().
+ *
+ * Once the icon object is set, a previously set one will be deleted.
+ * @warning Setting the same icon for two items will cause the icon to
+ * dissapear from the first item.
+ *
+ * If an icon was passed as argument on item creation, with function
+ * elm_diskselector_item_append(), it will be already
+ * associated to the item.
+ *
+ * @see elm_diskselector_item_append()
+ * @see elm_diskselector_item_icon_get()
+ *
+ * @ingroup Diskselector
+ */
EAPI void elm_diskselector_item_icon_set(Elm_Diskselector_Item *item, Evas_Object *icon) EINA_ARG_NONNULL(1);
- EAPI const char *elm_diskselector_item_label_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the icon associated to the item.
+ *
+ * @param it The diskselector item
+ * @return The icon associated to @p it
+ *
+ * The return value is a pointer to the icon associated to @p item when it was
+ * created, with function elm_diskselector_item_append(), or later
+ * with function elm_diskselector_item_icon_set. If no icon
+ * was passed as argument, it will return @c NULL.
+ *
+ * @see elm_diskselector_item_append()
+ * @see elm_diskselector_item_icon_set()
+ *
+ * @ingroup Diskselector
+ */
+ EAPI Evas_Object *elm_diskselector_item_icon_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set the label of item.
+ *
+ * @param it The item of diskselector.
+ * @param label The label of item.
+ *
+ * The label to be displayed by the item.
+ *
+ * If no icon is set, label will be centered on item position, otherwise
+ * the icon will be placed at left of the label, that will be shifted
+ * to the right.
+ *
+ * An item with label "January" would be displayed on side position as
+ * "Jan" if max length is set to 3 with function
+ * elm_diskselector_side_label_lenght_set(), or "Janu", if this property
+ * is set to 4.
+ *
+ * When this @p item is selected, the entire label will be displayed,
+ * except for width restrictions.
+ * In this case label will be cropped and "..." will be concatenated,
+ * but only for display purposes. It will keep the entire string, so
+ * if diskselector is resized the remaining characters will be displayed.
+ *
+ * If a label was passed as argument on item creation, with function
+ * elm_diskselector_item_append(), it will be already
+ * displayed by the item.
+ *
+ * @see elm_diskselector_side_label_lenght_set()
+ * @see elm_diskselector_item_label_get()
+ * @see elm_diskselector_item_append()
+ *
+ * @ingroup Diskselector
+ */
EAPI void elm_diskselector_item_label_set(Elm_Diskselector_Item *item, const char *label) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the label of item.
+ *
+ * @param it The item of diskselector.
+ * @return The label of item.
+ *
+ * The return value is a pointer to the label associated to @p item when it was
+ * created, with function elm_diskselector_item_append(), or later
+ * with function elm_diskselector_item_label_set. If no label
+ * was passed as argument, it will return @c NULL.
+ *
+ * @see elm_diskselector_item_label_set() for more details.
+ * @see elm_diskselector_item_append()
+ *
+ * @ingroup Diskselector
+ */
+ EAPI const char *elm_diskselector_item_label_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the selected item.
+ *
+ * @param obj The diskselector object.
+ * @return The selected diskselector item.
+ *
+ * The selected item can be unselected with function
+ * elm_diskselector_item_selected_set(), and the first item of
+ * diskselector will be selected.
+ *
+ * The selected item always will be centered on diskselector, with
+ * full label displayed, i.e., max lenght set to side labels won't
+ * apply on the selected item. More details on
+ * elm_diskselector_side_label_length_set().
+ *
+ * @ingroup Diskselector
+ */
EAPI Elm_Diskselector_Item *elm_diskselector_selected_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set the selected state of an item.
+ *
+ * @param it The diskselector item
+ * @param selected The selected state
+ *
+ * This sets the selected state of the given item @p it.
+ * @c EINA_TRUE for selected, @c EINA_FALSE for not selected.
+ *
+ * If a new item is selected the previosly selected will be unselected.
+ * Previoulsy selected item can be get with function
+ * elm_diskselector_selected_item_get().
+ *
+ * If the item @p it is unselected, the first item of diskselector will
+ * be selected.
+ *
+ * Selected items will be visible on center position of diskselector.
+ * So if it was on another position before selected, or was invisible,
+ * diskselector will animate items until the selected item reaches center
+ * position.
+ *
+ * @see elm_diskselector_item_selected_get()
+ * @see elm_diskselector_selected_item_get()
+ *
+ * @ingroup Diskselector
+ */
EAPI void elm_diskselector_item_selected_set(Elm_Diskselector_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
+
+ /*
+ * Get whether the @p item is selected or not.
+ *
+ * @param it The diskselector item.
+ * @return @c EINA_TRUE means item is selected. @c EINA_FALSE indicates
+ * it's not. If @p obj is @c NULL, @c EINA_FALSE is returned.
+ *
+ * @see elm_diskselector_selected_item_set() for details.
+ * @see elm_diskselector_item_selected_get()
+ *
+ * @ingroup Diskselector
+ */
EAPI Eina_Bool elm_diskselector_item_selected_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the first item of the diskselector.
+ *
+ * @param obj The diskselector object.
+ * @return The first item, or @c NULL if none.
+ *
+ * The list of items follows append order. So it will return the first
+ * item appended to the widget that wasn't deleted.
+ *
+ * @see elm_diskselector_item_append()
+ * @see elm_diskselector_items_get()
+ *
+ * @ingroup Diskselector
+ */
EAPI Elm_Diskselector_Item *elm_diskselector_first_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the last item of the diskselector.
+ *
+ * @param obj The diskselector object.
+ * @return The last item, or @c NULL if none.
+ *
+ * The list of items follows append order. So it will return last first
+ * item appended to the widget that wasn't deleted.
+ *
+ * @see elm_diskselector_item_append()
+ * @see elm_diskselector_items_get()
+ *
+ * @ingroup Diskselector
+ */
EAPI Elm_Diskselector_Item *elm_diskselector_last_item_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the item before @p item in diskselector.
+ *
+ * @param it The diskselector item.
+ * @return The item before @p item, or @c NULL if none or on failure.
+ *
+ * The list of items follows append order. So it will return item appended
+ * just before @p item and that wasn't deleted.
+ *
+ * If it is the first item, @c NULL will be returned.
+ * First item can be get by elm_diskselector_first_item_get().
+ *
+ * @see elm_diskselector_item_append()
+ * @see elm_diskselector_items_get()
+ *
+ * @ingroup Diskselector
+ */
EAPI Elm_Diskselector_Item *elm_diskselector_item_prev_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the item after @p item in diskselector.
+ *
+ * @param it The diskselector item.
+ * @return The item after @p item, or @c NULL if none or on failure.
+ *
+ * The list of items follows append order. So it will return item appended
+ * just after @p item and that wasn't deleted.
+ *
+ * If it is the last item, @c NULL will be returned.
+ * Last item can be get by elm_diskselector_last_item_get().
+ *
+ * @see elm_diskselector_item_append()
+ * @see elm_diskselector_items_get()
+ *
+ * @ingroup Diskselector
+ */
EAPI Elm_Diskselector_Item *elm_diskselector_item_next_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set the text to be shown in the diskselector item.
+ *
+ * @param item Target item
+ * @param text The text to set in the content
+ *
+ * Setup the text as tooltip to object. The item can have only one tooltip,
+ * so any previous tooltip data is removed.
+ *
+ * @see elm_object_tooltip_text_set() for more details.
+ *
+ * @ingroup Diskselector
+ */
EAPI void elm_diskselector_item_tooltip_text_set(Elm_Diskselector_Item *item, const char *text) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set the content to be shown in the tooltip item.
+ *
+ * Setup the tooltip to item. The item can have only one tooltip,
+ * so any previous tooltip data is removed. @p func(with @p data) will
+ * be called every time that need show the tooltip and it should
+ * return a valid Evas_Object. This object is then managed fully by
+ * tooltip system and is deleted when the tooltip is gone.
+ *
+ * @param item the diskselector item being attached a tooltip.
+ * @param func the function used to create the tooltip contents.
+ * @param data what to provide to @a func as callback data/context.
+ * @param del_cb called when data is not needed anymore, either when
+ * another callback replaces @p func, the tooltip is unset with
+ * elm_diskselector_item_tooltip_unset() or the owner @a item
+ * dies. This callback receives as the first parameter the
+ * given @a data, and @c event_info is the item.
+ *
+ * @see elm_object_tooltip_content_cb_set() for more details.
+ *
+ * @ingroup Diskselector
+ */
EAPI void elm_diskselector_item_tooltip_content_cb_set(Elm_Diskselector_Item *item, Elm_Tooltip_Item_Content_Cb func, const void *data, Evas_Smart_Cb del_cb) EINA_ARG_NONNULL(1);
+
+ /**
+ * Unset tooltip from item.
+ *
+ * @param item diskselector item to remove previously set tooltip.
+ *
+ * Remove tooltip from item. The callback provided as del_cb to
+ * elm_diskselector_item_tooltip_content_cb_set() will be called to notify
+ * it is not used anymore.
+ *
+ * @see elm_object_tooltip_unset() for more details.
+ * @see elm_diskselector_item_tooltip_content_cb_set()
+ *
+ * @ingroup Diskselector
+ */
EAPI void elm_diskselector_item_tooltip_unset(Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
+
+
+ /**
+ * Sets a different style for this item tooltip.
+ *
+ * @note before you set a style you should define a tooltip with
+ * elm_diskselector_item_tooltip_content_cb_set() or
+ * elm_diskselector_item_tooltip_text_set()
+ *
+ * @param item diskselector item with tooltip already set.
+ * @param style the theme style to use (default, transparent, ...)
+ *
+ * @see elm_object_tooltip_style_set() for more details.
+ *
+ * @ingroup Diskselector
+ */
EAPI void elm_diskselector_item_tooltip_style_set(Elm_Diskselector_Item *item, const char *style) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the style for this item tooltip.
+ *
+ * @param item diskselector item with tooltip already set.
+ * @return style the theme style in use, defaults to "default". If the
+ * object does not have a tooltip set, then NULL is returned.
+ *
+ * @see elm_object_tooltip_style_get() for more details.
+ * @see elm_diskselector_item_tooltip_style_set()
+ *
+ * @ingroup Diskselector
+ */
EAPI const char *elm_diskselector_item_tooltip_style_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set the cursor to be shown when mouse is over the diskselector item
+ *
+ * @param item Target item
+ * @param cursor the cursor name to be used.
+ *
+ * @see elm_object_cursor_set() for more details.
+ *
+ * @ingroup Diskselector
+ */
EAPI void elm_diskselector_item_cursor_set(Elm_Diskselector_Item *item, const char *cursor) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the cursor to be shown when mouse is over the diskselector item
+ *
+ * @param item diskselector item with cursor already set.
+ * @return the cursor name.
+ *
+ * @see elm_object_cursor_get() for more details.
+ * @see elm_diskselector_cursor_set()
+ *
+ * @ingroup Diskselector
+ */
EAPI const char *elm_diskselector_item_cursor_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
+
+
+ /**
+ * Unset the cursor to be shown when mouse is over the diskselector item
+ *
+ * @param item Target item
+ *
+ * @see elm_object_cursor_unset() for more details.
+ * @see elm_diskselector_cursor_set()
+ *
+ * @ingroup Diskselector
+ */
EAPI void elm_diskselector_item_cursor_unset(Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
+
+ /**
+ * Sets a different style for this item cursor.
+ *
+ * @note before you set a style you should define a cursor with
+ * elm_diskselector_item_cursor_set()
+ *
+ * @param item diskselector item with cursor already set.
+ * @param style the theme style to use (default, transparent, ...)
+ *
+ * @see elm_object_cursor_style_set() for more details.
+ *
+ * @ingroup Diskselector
+ */
EAPI void elm_diskselector_item_cursor_style_set(Elm_Diskselector_Item *item, const char *style) EINA_ARG_NONNULL(1);
+
+
+ /**
+ * Get the style for this item cursor.
+ *
+ * @param item diskselector item with cursor already set.
+ * @return style the theme style in use, defaults to "default". If the
+ * object does not have a cursor set, then @c NULL is returned.
+ *
+ * @see elm_object_cursor_style_get() for more details.
+ * @see elm_diskselector_item_cursor_style_set()
+ *
+ * @ingroup Diskselector
+ */
EAPI const char *elm_diskselector_item_cursor_style_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
+
+
+ /**
+ * Set if the cursor set should be searched on the theme or should use
+ * the provided by the engine, only.
+ *
+ * @note before you set if should look on theme you should define a cursor
+ * with elm_diskselector_item_cursor_set().
+ * By default it will only look for cursors provided by the engine.
+ *
+ * @param item widget item with cursor already set.
+ * @param engine_only boolean to define if cursors set with
+ * elm_diskselector_item_cursor_set() should be searched only
+ * between cursors provided by the engine or searched on widget's
+ * theme as well.
+ *
+ * @see elm_object_cursor_engine_only_set() for more details.
+ *
+ * @ingroup Diskselector
+ */
EAPI void elm_diskselector_item_cursor_engine_only_set(Elm_Diskselector_Item *item, Eina_Bool engine_only) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the cursor engine only usage for this item cursor.
+ *
+ * @param item widget item with cursor already set.
+ * @return engine_only boolean to define it cursors should be looked only
+ * between the provided by the engine or searched on widget's theme as well.
+ * If the item does not have a cursor set, then @c EINA_FALSE is returned.
+ *
+ * @see elm_object_cursor_engine_only_get() for more details.
+ * @see elm_diskselector_item_cursor_engine_only_set()
+ *
+ * @ingroup Diskselector
+ */
EAPI Eina_Bool elm_diskselector_item_cursor_engine_only_get(const Elm_Diskselector_Item *item) EINA_ARG_NONNULL(1);
- EAPI void elm_diskselector_display_item_num_set(Evas_Object *obj, int num) EINA_ARG_NONNULL(1);
- /* smart callbacks called:
- * "selected" - when item is selected (scroller stops)
+
+ /**
+ * @}
+ */
+
+ /**
+ * @defgroup Colorselector Colorselector
+ *
+ * @{
+ *
+ * @image html img/widget/colorselector/preview-00.png
+ * @image latex img/widget/colorselector/preview-00.eps
+ *
+ * @brief Widget for user to select a color.
+ *
+ * Signals that you can add callbacks for are:
+ * "changed" - When the color value changes(event_info is NULL).
+ *
+ * See @ref tutorial_colorselector.
+ */
+ /**
+ * @brief Add a new colorselector to the parent
+ *
+ * @param parent The parent object
+ * @return The new object or NULL if it cannot be created
+ *
+ * @ingroup Colorselector
+ */
+ EAPI Evas_Object *elm_colorselector_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+ /**
+ * Set a color for the colorselector
+ *
+ * @param obj Colorselector object
+ * @param r r-value of color
+ * @param g g-value of color
+ * @param b b-value of color
+ * @param a a-value of color
+ *
+ * @ingroup Colorselector
+ */
+ EAPI void elm_colorselector_color_set(Evas_Object *obj, int r, int g , int b, int a) EINA_ARG_NONNULL(1);
+ /**
+ * Get a color from the colorselector
+ *
+ * @param obj Colorselector object
+ * @param r integer pointer for r-value of color
+ * @param g integer pointer for g-value of color
+ * @param b integer pointer for b-value of color
+ * @param a integer pointer for a-value of color
+ *
+ * @ingroup Colorselector
+ */
+ EAPI void elm_colorselector_color_get(const Evas_Object *obj, int *r, int *g , int *b, int *a) EINA_ARG_NONNULL(1);
+ /**
+ * @}
+ */
+
+ /**
+ * @defgroup Ctxpopup Ctxpopup
+ *
+ * @image html img/widget/ctxpopup/preview-00.png
+ * @image latex img/widget/ctxpopup/preview-00.eps
+ *
+ * @brief Context popup widet.
+ *
+ * A ctxpopup is a widget that, when shown, pops up a list of items.
+ * It automatically chooses an area inside its parent object's view
+ * (set via elm_ctxpopup_add() and elm_ctxpopup_hover_parent_set()) to
+ * optimally fit into it. In the default theme, it will also point an
+ * arrow to it's top left position at the time one shows it. Ctxpopup
+ * items have a label and/or an icon. It is intended for a small
+ * number of items (hence the use of list, not genlist).
+ *
+ * @note Ctxpopup is a especialization of @ref Hover.
+ *
+ * Signals that you can add callbacks for are:
+ * "dismissed" - the ctxpopup was dismissed
+ *
+ * Default contents parts of the ctxpopup widget that you can use for are:
+ * @li "default" - A content of the ctxpopup
+ *
+ * @ref tutorial_ctxpopup shows the usage of a good deal of the API.
+ * @{
+ */
+ typedef enum _Elm_Ctxpopup_Direction
+ {
+ ELM_CTXPOPUP_DIRECTION_DOWN, /**< ctxpopup show appear below clicked
+ area */
+ ELM_CTXPOPUP_DIRECTION_RIGHT, /**< ctxpopup show appear to the right of
+ the clicked area */
+ ELM_CTXPOPUP_DIRECTION_LEFT, /**< ctxpopup show appear to the left of
+ the clicked area */
+ ELM_CTXPOPUP_DIRECTION_UP, /**< ctxpopup show appear above the clicked
+ area */
+ ELM_CTXPOPUP_DIRECTION_UNKNOWN, /**< ctxpopup does not determine it's direction yet*/
+ } Elm_Ctxpopup_Direction;
+#define Elm_Ctxpopup_Item Elm_Object_Item
+
+ /**
+ * @brief Add a new Ctxpopup object to the parent.
+ *
+ * @param parent Parent object
+ * @return New object or @c NULL, if it cannot be created
+ */
+ EAPI Evas_Object *elm_ctxpopup_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Set the Ctxpopup's parent
+ *
+ * @param obj The ctxpopup object
+ * @param area The parent to use
+ *
+ * Set the parent object.
+ *
+ * @note elm_ctxpopup_add() will automatically call this function
+ * with its @c parent argument.
+ *
+ * @see elm_ctxpopup_add()
+ * @see elm_hover_parent_set()
+ */
+ EAPI void elm_ctxpopup_hover_parent_set(Evas_Object *obj, Evas_Object *parent) EINA_ARG_NONNULL(1, 2);
+ /**
+ * @brief Get the Ctxpopup's parent
+ *
+ * @param obj The ctxpopup object
+ *
+ * @see elm_ctxpopup_hover_parent_set() for more information
+ */
+ EAPI Evas_Object *elm_ctxpopup_hover_parent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Clear all items in the given ctxpopup object.
+ *
+ * @param obj Ctxpopup object
+ */
+ EAPI void elm_ctxpopup_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Change the ctxpopup's orientation to horizontal or vertical.
+ *
+ * @param obj Ctxpopup object
+ * @param horizontal @c EINA_TRUE for horizontal mode, @c EINA_FALSE for vertical
+ */
+ EAPI void elm_ctxpopup_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Get the value of current ctxpopup object's orientation.
+ *
+ * @param obj Ctxpopup object
+ * @return @c EINA_TRUE for horizontal mode, @c EINA_FALSE for vertical mode (or errors)
+ *
+ * @see elm_ctxpopup_horizontal_set()
+ */
+ EAPI Eina_Bool elm_ctxpopup_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Add a new item to a ctxpopup object.
+ *
+ * @param obj Ctxpopup object
+ * @param icon Icon to be set on new item
+ * @param label The Label of the new item
+ * @param func Convenience function called when item selected
+ * @param data Data passed to @p func
+ * @return A handle to the item added or @c NULL, on errors
+ *
+ * @warning Ctxpopup can't hold both an item list and a content at the same
+ * time. When an item is added, any previous content will be removed.
+ *
+ * @see elm_ctxpopup_content_set()
+ */
+ Elm_Object_Item *elm_ctxpopup_item_append(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Delete the given item in a ctxpopup object.
+ *
+ * @param it Ctxpopup item to be deleted
+ *
+ * @see elm_ctxpopup_item_append()
+ */
+ EAPI void elm_ctxpopup_item_del(Elm_Object_Item *it) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Set the ctxpopup item's state as disabled or enabled.
+ *
+ * @param it Ctxpopup item to be enabled/disabled
+ * @param disabled @c EINA_TRUE to disable it, @c EINA_FALSE to enable it
+ *
+ * When disabled the item is greyed out to indicate it's state.
*/
-
+ EAPI void elm_ctxpopup_item_disabled_set(Elm_Object_Item *it, Eina_Bool disabled) EINA_ARG_NONNULL(1);
/**
- * @page tutorial_colorselector Color selector example
- * @dontinclude colorselector_example_01.c
+ * @brief Get the ctxpopup item's disabled/enabled state.
*
- * This example shows how to change the color of a rectangle using a color
- * selector. We aren't going to explain a lot of the code since it's the
- * usual setup code:
- * @until show(rect)
+ * @param it Ctxpopup item to be enabled/disabled
+ * @return disabled @c EINA_TRUE, if disabled, @c EINA_FALSE otherwise
*
- * Now that we have a window with background and a rectangle we can create
- * our color_selector and set it's initial color to fully opaque blue:
- * @until show
+ * @see elm_ctxpopup_item_disabled_set()
+ * @deprecated use elm_object_item_disabled_get() instead
+ */
+ EAPI Eina_Bool elm_ctxpopup_item_disabled_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Get the icon object for the given ctxpopup item.
*
- * Next we tell ask to be notified whenever the color changes:
- * @until changed
+ * @param it Ctxpopup item
+ * @return icon object or @c NULL, if the item does not have icon or an error
+ * occurred
*
- * We follow that we some more run of the mill setup code:
- * @until ELM_MAIN()
+ * @see elm_ctxpopup_item_append()
+ * @see elm_ctxpopup_item_icon_set()
+ */
+ EAPI Evas_Object *elm_ctxpopup_item_icon_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Sets the side icon associated with the ctxpopup item
*
- * And now get to the callback that sets the color of the rectangle:
- * @until }
+ * @param it Ctxpopup item
+ * @param icon Icon object to be set
*
- * This example will look like this:
- * @image html screenshots/colorselector_example_01.png
- * @image latex screenshots/colorselector_example_01.eps
+ * Once the icon object is set, a previously set one will be deleted.
+ * @warning Setting the same icon for two items will cause the icon to
+ * dissapear from the first item.
*
- * @example colorselector_example_01.c
+ * @see elm_ctxpopup_item_append()
*/
+ EAPI void elm_ctxpopup_item_icon_set(Elm_Object_Item *it, Evas_Object *icon) EINA_ARG_NONNULL(1);
/**
- * @defgroup Colorselector Colorselector
- *
- * @{
+ * @brief Get the label for the given ctxpopup item.
*
- * @brief Widget for user to select a color.
+ * @param it Ctxpopup item
+ * @return label string or @c NULL, if the item does not have label or an
+ * error occured
*
- * Signals that you can add callbacks for are:
- * "changed" - When the color value changes(event_info is NULL).
+ * @see elm_ctxpopup_item_append()
+ * @see elm_ctxpopup_item_label_set()
+ */
+ EAPI const char *elm_ctxpopup_item_label_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
+ /**
+ * @brief (Re)set the label on the given ctxpopup item.
*
- * See @ref tutorial_colorselector.
+ * @param it Ctxpopup item
+ * @param label String to set as label
*/
+ EAPI void elm_ctxpopup_item_label_set(Elm_Object_Item *it, const char *label) EINA_ARG_NONNULL(1);
/**
- * @brief Add a new colorselector to the parent
+ * @brief Set an elm widget as the content of the ctxpopup.
*
- * @param parent The parent object
- * @return The new object or NULL if it cannot be created
+ * @param obj Ctxpopup object
+ * @param content Content to be swallowed
*
- * @ingroup Colorselector
+ * If the content object is already set, a previous one will bedeleted. If
+ * you want to keep that old content object, use the
+ * elm_ctxpopup_content_unset() function.
+ *
+ * @deprecated use elm_object_content_set()
+ *
+ * @warning Ctxpopup can't hold both a item list and a content at the same
+ * time. When a content is set, any previous items will be removed.
*/
- EAPI Evas_Object *elm_colorselector_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+ EAPI void elm_ctxpopup_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1, 2);
/**
- * Set a color for the colorselector
+ * @brief Unset the ctxpopup content
*
- * @param obj Colorselector object
- * @param r r-value of color
- * @param g g-value of color
- * @param b b-value of color
- * @param a a-value of color
+ * @param obj Ctxpopup object
+ * @return The content that was being used
*
- * @ingroup Colorselector
+ * Unparent and return the content object which was set for this widget.
+ *
+ * @deprecated use elm_object_content_unset()
+ *
+ * @see elm_ctxpopup_content_set()
*/
- EAPI void elm_colorselector_color_set(Evas_Object *obj, int r, int g , int b, int a) EINA_ARG_NONNULL(1);
+ EAPI Evas_Object *elm_ctxpopup_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
- * Get a color from the colorselector
+ * @brief Set the direction priority of a ctxpopup.
*
- * @param obj Colorselector object
- * @param r integer pointer for r-value of color
- * @param g integer pointer for g-value of color
- * @param b integer pointer for b-value of color
- * @param a integer pointer for a-value of color
+ * @param obj Ctxpopup object
+ * @param first 1st priority of direction
+ * @param second 2nd priority of direction
+ * @param third 3th priority of direction
+ * @param fourth 4th priority of direction
*
- * @ingroup Colorselector
+ * This functions gives a chance to user to set the priority of ctxpopup
+ * showing direction. This doesn't guarantee the ctxpopup will appear in the
+ * requested direction.
+ *
+ * @see Elm_Ctxpopup_Direction
*/
- EAPI void elm_colorselector_color_get(const Evas_Object *obj, int *r, int *g , int *b, int *a) EINA_ARG_NONNULL(1);
+ EAPI void elm_ctxpopup_direction_priority_set(Evas_Object *obj, Elm_Ctxpopup_Direction first, Elm_Ctxpopup_Direction second, Elm_Ctxpopup_Direction third, Elm_Ctxpopup_Direction fourth) EINA_ARG_NONNULL(1);
/**
- * @}
+ * @brief Get the direction priority of a ctxpopup.
+ *
+ * @param obj Ctxpopup object
+ * @param first 1st priority of direction to be returned
+ * @param second 2nd priority of direction to be returned
+ * @param third 3th priority of direction to be returned
+ * @param fourth 4th priority of direction to be returned
+ *
+ * @see elm_ctxpopup_direction_priority_set() for more information.
*/
-
- /* Contextual Popup */
- typedef struct _Elm_Ctxpopup_Item Elm_Ctxpopup_Item;
-
- typedef enum _Elm_Ctxpopup_Direction
- {
- ELM_CTXPOPUP_DIRECTION_DOWN,
- ELM_CTXPOPUP_DIRECTION_RIGHT,
- ELM_CTXPOPUP_DIRECTION_LEFT,
- ELM_CTXPOPUP_DIRECTION_UP,
- ELM_CTXPOPUP_DIRECTION_UNKNOWN, /**< ctxpopup does not determine it's direction yet*/
- } Elm_Ctxpopup_Direction;
-
- EAPI Evas_Object *elm_ctxpopup_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
- EAPI Evas_Object *elm_ctxpopup_item_icon_get(const Elm_Ctxpopup_Item *item) EINA_ARG_NONNULL(1);
- EAPI void elm_ctxpopup_item_icon_set(Elm_Ctxpopup_Item *item, Evas_Object *icon) EINA_ARG_NONNULL(1);
- EAPI const char *elm_ctxpopup_item_label_get(const Elm_Ctxpopup_Item *item) EINA_ARG_NONNULL(1);
- EAPI void elm_ctxpopup_item_label_set(Elm_Ctxpopup_Item *item, const char *label) EINA_ARG_NONNULL(1);
- EAPI void elm_ctxpopup_hover_parent_set(Evas_Object *obj, Evas_Object *parent) EINA_ARG_NONNULL(1, 2);
- EAPI Evas_Object *elm_ctxpopup_hover_parent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
- EAPI void elm_ctxpopup_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
- EAPI void elm_ctxpopup_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) EINA_ARG_NONNULL(1);
- EAPI Eina_Bool elm_ctxpopup_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
- Elm_Ctxpopup_Item *elm_ctxpopup_item_append(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
- EAPI void elm_ctxpopup_item_del(Elm_Ctxpopup_Item *item) EINA_ARG_NONNULL(1);
- EAPI void elm_ctxpopup_item_disabled_set(Elm_Ctxpopup_Item *item, Eina_Bool disabled) EINA_ARG_NONNULL(1);
- EAPI Eina_Bool elm_ctxpopup_item_disabled_get(const Elm_Ctxpopup_Item *item) EINA_ARG_NONNULL(1);
- EAPI void elm_ctxpopup_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1, 2);
- EAPI Evas_Object *elm_ctxpopup_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
- EAPI void elm_ctxpopup_direction_priority_set(Evas_Object *obj, Elm_Ctxpopup_Direction first, Elm_Ctxpopup_Direction second, Elm_Ctxpopup_Direction third, Elm_Ctxpopup_Direction fourth) EINA_ARG_NONNULL(1);
EAPI void elm_ctxpopup_direction_priority_get(Evas_Object *obj, Elm_Ctxpopup_Direction *first, Elm_Ctxpopup_Direction *second, Elm_Ctxpopup_Direction *third, Elm_Ctxpopup_Direction *fourth) EINA_ARG_NONNULL(1);
+
+ /**
+ * @brief Get the current direction of a ctxpopup.
+ *
+ * @param obj Ctxpopup object
+ * @return current direction of a ctxpopup
+ *
+ * @warning Once the ctxpopup showed up, the direction would be determined
+ */
EAPI Elm_Ctxpopup_Direction elm_ctxpopup_direction_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
- /* smart callbacks called:
- * "dismissed" - the ctxpopup was dismissed
+
+ /**
+ * @}
*/
/* transit */
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_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 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);
- /* SegmentControl */
- typedef struct _Elm_Segment_Item Elm_Segment_Item;
+ /**
+ * @defgroup SegmentControl SegmentControl
+ * @ingroup Elementary
+ *
+ * @image html img/widget/segment_control/preview-00.png
+ * @image latex img/widget/segment_control/preview-00.eps width=\textwidth
+ *
+ * @image html img/segment_control.png
+ * @image latex img/segment_control.eps width=\textwidth
+ *
+ * Segment control widget is a horizontal control made of multiple segment
+ * items, each segment item functioning similar to discrete two state button.
+ * A segment control groups the items together and provides compact
+ * single button with multiple equal size segments.
+ *
+ * Segment item size is determined by base widget
+ * size and the number of items added.
+ * Only one segment item can be at selected state. A segment item can display
+ * combination of Text and any Evas_Object like Images or other widget.
+ *
+ * Smart callbacks one can listen to:
+ * - "changed" - When the user clicks on a segment item which is not
+ * previously selected and get selected. The event_info parameter is the
+ * segment item pointer.
+ *
+ * Available styles for it:
+ * - @c "default"
+ *
+ * Here is an example on its usage:
+ * @li @ref segment_control_example
+ */
+
+ /**
+ * @addtogroup SegmentControl
+ * @{
+ */
+
+ typedef struct _Elm_Segment_Item Elm_Segment_Item; /**< Item handle for a segment control widget. */
+
+ /**
+ * Add a new segment control widget to the given parent Elementary
+ * (container) object.
+ *
+ * @param parent The parent object.
+ * @return a new segment control widget handle or @c NULL, on errors.
+ *
+ * This function inserts a new segment control widget on the canvas.
+ *
+ * @ingroup SegmentControl
+ */
EAPI Evas_Object *elm_segment_control_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+
+ /**
+ * Append a new item to the segment control object.
+ *
+ * @param obj The segment control object.
+ * @param icon The icon object to use for the left side of the item. An
+ * icon can be any Evas object, but usually it is an icon created
+ * with elm_icon_add().
+ * @param label The label of the item.
+ * Note that, NULL is different from empty string "".
+ * @return The created item or @c NULL upon failure.
+ *
+ * A new item will be created and appended to the segment control, i.e., will
+ * be set as @b last item.
+ *
+ * If it should be inserted at another position,
+ * elm_segment_control_item_insert_at() should be used instead.
+ *
+ * Items created with this function can be deleted with function
+ * elm_segment_control_item_del() or elm_segment_control_item_del_at().
+ *
+ * @note @p label set to @c NULL is different from empty string "".
+ * If an item
+ * only has icon, it will be displayed bigger and centered. If it has
+ * icon and label, even that an empty string, icon will be smaller and
+ * positioned at left.
+ *
+ * Simple example:
+ * @code
+ * sc = elm_segment_control_add(win);
+ * ic = elm_icon_add(win);
+ * elm_icon_file_set(ic, "path/to/image", NULL);
+ * elm_icon_scale_set(ic, EINA_TRUE, EINA_TRUE);
+ * elm_segment_control_item_add(sc, ic, "label");
+ * evas_object_show(sc);
+ * @endcode
+ *
+ * @see elm_segment_control_item_insert_at()
+ * @see elm_segment_control_item_del()
+ *
+ * @ingroup SegmentControl
+ */
EAPI Elm_Segment_Item *elm_segment_control_item_add(Evas_Object *obj, Evas_Object *icon, const char *label) EINA_ARG_NONNULL(1);
+
+ /**
+ * Insert a new item to the segment control object at specified position.
+ *
+ * @param obj The segment control object.
+ * @param icon The icon object to use for the left side of the item. An
+ * icon can be any Evas object, but usually it is an icon created
+ * with elm_icon_add().
+ * @param label The label of the item.
+ * @param index Item position. Value should be between 0 and items count.
+ * @return The created item or @c NULL upon failure.
+
+ * Index values must be between @c 0, when item will be prepended to
+ * segment control, and items count, that can be get with
+ * elm_segment_control_item_count_get(), case when item will be appended
+ * to segment control, just like elm_segment_control_item_add().
+ *
+ * Items created with this function can be deleted with function
+ * elm_segment_control_item_del() or elm_segment_control_item_del_at().
+ *
+ * @note @p label set to @c NULL is different from empty string "".
+ * If an item
+ * only has icon, it will be displayed bigger and centered. If it has
+ * icon and label, even that an empty string, icon will be smaller and
+ * positioned at left.
+ *
+ * @see elm_segment_control_item_add()
+ * @see elm_segment_control_item_count_get()
+ * @see elm_segment_control_item_del()
+ *
+ * @ingroup SegmentControl
+ */
EAPI Elm_Segment_Item *elm_segment_control_item_insert_at(Evas_Object *obj, Evas_Object *icon, const char *label, int index) EINA_ARG_NONNULL(1);
+
+ /**
+ * Remove a segment control item from its parent, deleting it.
+ *
+ * @param it The item to be removed.
+ *
+ * Items can be added with elm_segment_control_item_add() or
+ * elm_segment_control_item_insert_at().
+ *
+ * @ingroup SegmentControl
+ */
EAPI void elm_segment_control_item_del(Elm_Segment_Item *it) EINA_ARG_NONNULL(1);
+
+ /**
+ * Remove a segment control item at given index from its parent,
+ * deleting it.
+ *
+ * @param obj The segment control object.
+ * @param index The position of the segment control item to be deleted.
+ *
+ * Items can be added with elm_segment_control_item_add() or
+ * elm_segment_control_item_insert_at().
+ *
+ * @ingroup SegmentControl
+ */
EAPI void elm_segment_control_item_del_at(Evas_Object *obj, int index) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the Segment items count from segment control.
+ *
+ * @param obj The segment control object.
+ * @return Segment items count.
+ *
+ * It will just return the number of items added to segment control @p obj.
+ *
+ * @ingroup SegmentControl
+ */
EAPI int elm_segment_control_item_count_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the item placed at specified index.
+ *
+ * @param obj The segment control object.
+ * @param index The index of the segment item.
+ * @return The segment control item or @c NULL on failure.
+ *
+ * Index is the position of an item in segment control widget. Its
+ * range is from @c 0 to <tt> count - 1 </tt>.
+ * Count is the number of items, that can be get with
+ * elm_segment_control_item_count_get().
+ *
+ * @ingroup SegmentControl
+ */
EAPI Elm_Segment_Item *elm_segment_control_item_get(const Evas_Object *obj, int index) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the label of item.
+ *
+ * @param obj The segment control object.
+ * @param index The index of the segment item.
+ * @return The label of the item at @p index.
+ *
+ * The return value is a pointer to the label associated to the item when
+ * it was created, with function elm_segment_control_item_add(), or later
+ * with function elm_segment_control_item_label_set. If no label
+ * was passed as argument, it will return @c NULL.
+ *
+ * @see elm_segment_control_item_label_set() for more details.
+ * @see elm_segment_control_item_add()
+ *
+ * @ingroup SegmentControl
+ */
EAPI const char *elm_segment_control_item_label_get(const Evas_Object *obj, int index) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set the label of item.
+ *
+ * @param it The item of segment control.
+ * @param text The label of item.
+ *
+ * The label to be displayed by the item.
+ * Label will be at right of the icon (if set).
+ *
+ * If a label was passed as argument on item creation, with function
+ * elm_control_segment_item_add(), it will be already
+ * displayed by the item.
+ *
+ * @see elm_segment_control_item_label_get()
+ * @see elm_segment_control_item_add()
+ *
+ * @ingroup SegmentControl
+ */
EAPI void elm_segment_control_item_label_set(Elm_Segment_Item* it, const char* label) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the icon associated to the item.
+ *
+ * @param obj The segment control object.
+ * @param index The index of the segment item.
+ * @return The left side icon associated to the item at @p index.
+ *
+ * The return value is a pointer to the icon associated to the item when
+ * it was created, with function elm_segment_control_item_add(), or later
+ * with function elm_segment_control_item_icon_set(). If no icon
+ * was passed as argument, it will return @c NULL.
+ *
+ * @see elm_segment_control_item_add()
+ * @see elm_segment_control_item_icon_set()
+ *
+ * @ingroup SegmentControl
+ */
EAPI Evas_Object *elm_segment_control_item_icon_get(const Evas_Object *obj, int index) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set the icon associated to the item.
+ *
+ * @param it The segment control item.
+ * @param icon The icon object to associate with @p it.
+ *
+ * The icon object to use at left side of the item. An
+ * icon can be any Evas object, but usually it is an icon created
+ * with elm_icon_add().
+ *
+ * Once the icon object is set, a previously set one will be deleted.
+ * @warning Setting the same icon for two items will cause the icon to
+ * dissapear from the first item.
+ *
+ * If an icon was passed as argument on item creation, with function
+ * elm_segment_control_item_add(), it will be already
+ * associated to the item.
+ *
+ * @see elm_segment_control_item_add()
+ * @see elm_segment_control_item_icon_get()
+ *
+ * @ingroup SegmentControl
+ */
EAPI void elm_segment_control_item_icon_set(Elm_Segment_Item *it, Evas_Object *icon) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the index of an item.
+ *
+ * @param it The segment control item.
+ * @return The position of item in segment control widget.
+ *
+ * Index is the position of an item in segment control widget. Its
+ * range is from @c 0 to <tt> count - 1 </tt>.
+ * Count is the number of items, that can be get with
+ * elm_segment_control_item_count_get().
+ *
+ * @ingroup SegmentControl
+ */
EAPI int elm_segment_control_item_index_get(const Elm_Segment_Item *it) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the base object of the item.
+ *
+ * @param it The segment control item.
+ * @return The base object associated with @p it.
+ *
+ * Base object is the @c Evas_Object that represents that item.
+ *
+ * @ingroup SegmentControl
+ */
EAPI Evas_Object *elm_segment_control_item_object_get(const Elm_Segment_Item *it) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the selected item.
+ *
+ * @param obj The segment control object.
+ * @return The selected item or @c NULL if none of segment items is
+ * selected.
+ *
+ * The selected item can be unselected with function
+ * elm_segment_control_item_selected_set().
+ *
+ * The selected item always will be highlighted on segment control.
+ *
+ * @ingroup SegmentControl
+ */
EAPI Elm_Segment_Item *elm_segment_control_item_selected_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set the selected state of an item.
+ *
+ * @param it The segment control item
+ * @param select The selected state
+ *
+ * This sets the selected state of the given item @p it.
+ * @c EINA_TRUE for selected, @c EINA_FALSE for not selected.
+ *
+ * If a new item is selected the previosly selected will be unselected.
+ * Previoulsy selected item can be get with function
+ * elm_segment_control_item_selected_get().
+ *
+ * The selected item always will be highlighted on segment control.
+ *
+ * @see elm_segment_control_item_selected_get()
+ *
+ * @ingroup SegmentControl
+ */
EAPI void elm_segment_control_item_selected_set(Elm_Segment_Item *it, Eina_Bool select) EINA_ARG_NONNULL(1);
- /* smart callbacks called:
- * "changed" -when the user clicks on a segment item which is not previously
- * selected and get selected. The event_info parameter is the
- * segment item index.
+
+ /**
+ * @}
+ */
+
+ /**
+ * @defgroup Grid Grid
+ *
+ * The grid is a grid layout widget that lays out a series of children as a
+ * fixed "grid" of widgets using a given percentage of the grid width and
+ * height each using the child object.
+ *
+ * The Grid uses a "Virtual resolution" that is stretched to fill the grid
+ * widgets size itself. The default is 100 x 100, so that means the
+ * position and sizes of children will effectively be percentages (0 to 100)
+ * of the width or height of the grid widget
+ *
+ * @{
*/
+ /**
+ * Add a new grid to the parent
+ *
+ * @param parent The parent object
+ * @return The new object or NULL if it cannot be created
+ *
+ * @ingroup Grid
+ */
EAPI Evas_Object *elm_grid_add(Evas_Object *parent);
+
+ /**
+ * Set the virtual size of the grid
+ *
+ * @param obj The grid object
+ * @param w The virtual width of the grid
+ * @param h The virtual height of the grid
+ *
+ * @ingroup Grid
+ */
EAPI void elm_grid_size_set(Evas_Object *obj, int w, int h);
+
+ /**
+ * Get the virtual size of the grid
+ *
+ * @param obj The grid object
+ * @param w Pointer to integer to store the virtual width of the grid
+ * @param h Pointer to integer to store the virtual height of the grid
+ *
+ * @ingroup Grid
+ */
EAPI void elm_grid_size_get(Evas_Object *obj, int *w, int *h);
+
+ /**
+ * Pack child at given position and size
+ *
+ * @param obj The grid object
+ * @param subobj The child to pack
+ * @param x The virtual x coord at which to pack it
+ * @param y The virtual y coord at which to pack it
+ * @param w The virtual width at which to pack it
+ * @param h The virtual height at which to pack it
+ *
+ * @ingroup Grid
+ */
EAPI void elm_grid_pack(Evas_Object *obj, Evas_Object *subobj, int x, int y, int w, int h);
+
+ /**
+ * Unpack a child from a grid object
+ *
+ * @param obj The grid object
+ * @param subobj The child to unpack
+ *
+ * @ingroup Grid
+ */
EAPI void elm_grid_unpack(Evas_Object *obj, Evas_Object *subobj);
+
+ /**
+ * Faster way to remove all child objects from a grid object.
+ *
+ * @param obj The grid object
+ * @param clear If true, it will delete just removed children
+ *
+ * @ingroup Grid
+ */
EAPI void elm_grid_clear(Evas_Object *obj, Eina_Bool clear);
+
+ /**
+ * Set packing of an existing child at to position and size
+ *
+ * @param subobj The child to set packing of
+ * @param x The virtual x coord at which to pack it
+ * @param y The virtual y coord at which to pack it
+ * @param w The virtual width at which to pack it
+ * @param h The virtual height at which to pack it
+ *
+ * @ingroup Grid
+ */
EAPI void elm_grid_pack_set(Evas_Object *subobj, int x, int y, int w, int h);
+
+ /**
+ * get packing of a child
+ *
+ * @param subobj The child to query
+ * @param x Pointer to integer to store the virtual x coord
+ * @param y Pointer to integer to store the virtual y coord
+ * @param w Pointer to integer to store the virtual width
+ * @param h Pointer to integer to store the virtual height
+ *
+ * @ingroup Grid
+ */
EAPI void elm_grid_pack_get(Evas_Object *subobj, int *x, int *y, int *w, int *h);
- EAPI Evas_Object *elm_genscroller_add(Evas_Object *parent);
- EAPI void elm_genscroller_world_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h);
+ /**
+ * @}
+ */
+
+ EAPI Evas_Object *elm_factory_add(Evas_Object *parent);
+ EINA_DEPRECATED EAPI void elm_factory_content_set(Evas_Object *obj, Evas_Object *content);
+ EINA_DEPRECATED EAPI Evas_Object *elm_factory_content_get(const Evas_Object *obj);
+ EAPI void elm_factory_maxmin_mode_set(Evas_Object *obj, Eina_Bool enabled);
+ EAPI Eina_Bool elm_factory_maxmin_mode_get(const Evas_Object *obj);
+ EAPI void elm_factory_maxmin_reset_set(Evas_Object *obj);
+
+ /**
+ * @defgroup Video Video
+ *
+ * @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 :
+ *
+ * "forward,clicked" - the user clicked the forward button.
+ * "info,clicked" - the user clicked the info button.
+ * "next,clicked" - the user clicked the next button.
+ * "pause,clicked" - the user clicked the pause button.
+ * "play,clicked" - the user clicked the play button.
+ * "prev,clicked" - the user clicked the prev button.
+ * "rewind,clicked" - the user clicked the rewind button.
+ * "stop,clicked" - the user clicked the stop button.
+ *
+ * Default contents parts of the player widget that you can use for are:
+ * @li "video" - A video of the player
+ *
+ */
+
+ /**
+ * @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_object_part_content_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()
+ * @deprecated use elm_object_part_content_set() instead
+ *
+ * @ingroup Video
+ */
+ EINA_DEPRECATED 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);
- EAPI Evas_Object *elm_video_emotion_get(Evas_Object *video);
+
+ /**
+ * @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(const 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);
- EAPI Eina_Bool elm_video_is_playing(Evas_Object *video);
- EAPI Eina_Bool elm_video_is_seekable(Evas_Object *video);
- EAPI Eina_Bool elm_video_audio_mute_get(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(const 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(const 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(const 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);
- EAPI double elm_video_audio_level_get(Evas_Object *video);
+
+ /**
+ * @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(const 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 double elm_video_play_position_get(const 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 double elm_video_play_length_get(const 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);
+ EAPI Eina_Bool elm_video_remember_position_get(const Evas_Object *video);
+ EAPI const char *elm_video_title_get(const Evas_Object *video);
+ /**
+ * @}
+ */
// FIXME: incomplete - carousel. don't use this until this comment is removed
typedef struct _Elm_Carousel_Item Elm_Carousel_Item;
ELM_NAVIGATIONBAR_BACK_BUTTON
} Elm_Navi_Button_Type;
- EAPI Evas_Object *elm_navigationbar_add(Evas_Object *parent);
- EAPI void elm_navigationbar_push(Evas_Object *obj, const char *title, Evas_Object *fn_btn1, Evas_Object *fn_btn2, Evas_Object *fn_btn3, Evas_Object *content);
- EAPI void elm_navigationbar_pop(Evas_Object *obj);
- EAPI void elm_navigationbar_to_content_pop(Evas_Object *obj, Evas_Object *content);
- EAPI void elm_navigationbar_title_label_set(Evas_Object *obj, Evas_Object *content, const char *title);
- EAPI const char *elm_navigationbar_title_label_get(Evas_Object *obj, Evas_Object *content);
- EAPI void elm_navigationbar_title_object_add(Evas_Object *obj, Evas_Object *content, Evas_Object *title_obj);
- EAPI Evas_Object *elm_navigationbar_title_object_get(Evas_Object *obj, Evas_Object *content);
- EAPI Eina_List *elm_navigationbar_title_object_list_get(Evas_Object *obj, Evas_Object *content);
- EAPI Evas_Object *elm_navigationbar_content_top_get(Evas_Object *obj);
- EAPI Evas_Object *elm_navigationbar_content_bottom_get(Evas_Object *obj);
- EAPI void elm_navigationbar_hidden_set(Evas_Object *obj, Eina_Bool hidden);
- EAPI void elm_navigationbar_title_button_set(Evas_Object *obj, Evas_Object *content, Evas_Object *button, Elm_Navi_Button_Type button_type);
- EAPI Evas_Object *elm_navigationbar_title_button_get(Evas_Object *obj, Evas_Object *content, Elm_Navi_Button_Type button_type);
- EAPI const char *elm_navigationbar_subtitle_label_get(Evas_Object *obj, Evas_Object *content);
- EAPI void elm_navigationbar_subtitle_label_set(Evas_Object *obj, Evas_Object *content, const char *subtitle);
- EAPI void elm_navigationbar_title_object_list_unset(Evas_Object *obj, Evas_Object *content, Eina_List **list);
- EAPI void elm_navigationbar_animation_disabled_set(Evas_Object *obj, Eina_Bool disable);
- EAPI void elm_navigationbar_title_object_visible_set(Evas_Object *obj, Evas_Object *content, Eina_Bool visible);
- Eina_Bool elm_navigationbar_title_object_visible_get(Evas_Object *obj, Evas_Object *content);
- EAPI void elm_navigationbar_title_icon_set(Evas_Object *obj, Evas_Object *content, Evas_Object *icon);
- EAPI Evas_Object *elm_navigationbar_title_icon_get(Evas_Object *obj, Evas_Object *content);
+ EINA_DEPRECATED EAPI Evas_Object *elm_navigationbar_add(Evas_Object *parent);
+ EINA_DEPRECATED EAPI void elm_navigationbar_push(Evas_Object *obj, const char *title, Evas_Object *fn_btn1, Evas_Object *fn_btn2, Evas_Object *fn_btn3, Evas_Object *content);
+ EINA_DEPRECATED EAPI void elm_navigationbar_pop(Evas_Object *obj);
+ EINA_DEPRECATED EAPI void elm_navigationbar_to_content_pop(Evas_Object *obj, Evas_Object *content);
+ EINA_DEPRECATED EAPI void elm_navigationbar_title_label_set(Evas_Object *obj, Evas_Object *content, const char *title);
+ EINA_DEPRECATED EAPI const char *elm_navigationbar_title_label_get(Evas_Object *obj, Evas_Object *content);
+ EINA_DEPRECATED EAPI void elm_navigationbar_title_object_add(Evas_Object *obj, Evas_Object *content, Evas_Object *title_obj);
+ EINA_DEPRECATED EAPI Evas_Object *elm_navigationbar_title_object_get(Evas_Object *obj, Evas_Object *content);
+ EINA_DEPRECATED EAPI Eina_List *elm_navigationbar_title_object_list_get(Evas_Object *obj, Evas_Object *content);
+ EINA_DEPRECATED EAPI Evas_Object *elm_navigationbar_content_top_get(Evas_Object *obj);
+ EINA_DEPRECATED EAPI Evas_Object *elm_navigationbar_content_bottom_get(Evas_Object *obj);
+ EINA_DEPRECATED EAPI void elm_navigationbar_hidden_set(Evas_Object *obj, Eina_Bool hidden);
+ EINA_DEPRECATED EAPI void elm_navigationbar_title_button_set(Evas_Object *obj, Evas_Object *content, Evas_Object *button, Elm_Navi_Button_Type button_type);
+ EINA_DEPRECATED EAPI Evas_Object *elm_navigationbar_title_button_get(Evas_Object *obj, Evas_Object *content, Elm_Navi_Button_Type button_type);
+ EINA_DEPRECATED EAPI const char *elm_navigationbar_subtitle_label_get(Evas_Object *obj, Evas_Object *content);
+ EINA_DEPRECATED EAPI void elm_navigationbar_subtitle_label_set(Evas_Object *obj, Evas_Object *content, const char *subtitle);
+ EINA_DEPRECATED EAPI void elm_navigationbar_title_object_list_unset(Evas_Object *obj, Evas_Object *content, Eina_List **list);
+ EINA_DEPRECATED EAPI void elm_navigationbar_animation_disabled_set(Evas_Object *obj, Eina_Bool disable);
+ EINA_DEPRECATED EAPI void elm_navigationbar_title_object_visible_set(Evas_Object *obj, Evas_Object *content, Eina_Bool visible);
+ EINA_DEPRECATED Eina_Bool elm_navigationbar_title_object_visible_get(Evas_Object *obj, Evas_Object *content);
+ EINA_DEPRECATED EAPI void elm_navigationbar_title_icon_set(Evas_Object *obj, Evas_Object *content, Evas_Object *icon);
+ EINA_DEPRECATED EAPI Evas_Object *elm_navigationbar_title_icon_get(Evas_Object *obj, Evas_Object *content);
/* NavigationBar */
#define NAVIBAR_EX_TITLEOBJ_INSTANT_HIDE "elm,state,hide,noanimate,title", "elm"
} Elm_Navi_ex_Button_Type;
typedef struct _Elm_Navigationbar_ex_Item Elm_Navigationbar_ex_Item;
- EAPI Evas_Object *elm_navigationbar_ex_add(Evas_Object *parent);
- EAPI Elm_Navigationbar_ex_Item *elm_navigationbar_ex_item_push(Evas_Object *obj, Evas_Object *content, const char *item_style);
- EAPI void elm_navigationbar_ex_item_pop(Evas_Object *obj);
- EAPI void elm_navigationbar_ex_item_promote(Elm_Navigationbar_ex_Item* item);
- EAPI void elm_navigationbar_ex_to_item_pop(Elm_Navigationbar_ex_Item* item);
- EAPI void elm_navigationbar_ex_item_title_label_set(Elm_Navigationbar_ex_Item *item, const char *title);
- EAPI const char *elm_navigationbar_ex_item_title_label_get(Elm_Navigationbar_ex_Item* item);
- EAPI Elm_Navigationbar_ex_Item *elm_navigationbar_ex_item_top_get(const Evas_Object *obj);
- EAPI Elm_Navigationbar_ex_Item *elm_navigationbar_ex_item_bottom_get(const Evas_Object *obj);
- EAPI void elm_navigationbar_ex_item_title_button_set(Elm_Navigationbar_ex_Item* item, char *btn_label, Evas_Object *icon, int button_type, Evas_Smart_Cb func, const void *data);
- EAPI Evas_Object *elm_navigationbar_ex_item_title_button_get(Elm_Navigationbar_ex_Item* item, int button_type);
- EAPI void elm_navigationbar_ex_item_title_object_set(Elm_Navigationbar_ex_Item* item, Evas_Object *title_obj);
- EAPI Evas_Object *elm_navigationbar_ex_item_title_object_unset(Elm_Navigationbar_ex_Item* item);
- EAPI void elm_navigationbar_ex_item_title_hidden_set(Elm_Navigationbar_ex_Item* item, Eina_Bool hidden);
- EAPI Evas_Object *elm_navigationbar_ex_item_title_object_get(Elm_Navigationbar_ex_Item* item);
- EAPI const char *elm_navigationbar_ex_item_subtitle_label_get(Elm_Navigationbar_ex_Item* item);
- EAPI void elm_navigationbar_ex_item_subtitle_label_set( Elm_Navigationbar_ex_Item* item, const char *subtitle);
- EAPI void elm_navigationbar_ex_item_style_set(Elm_Navigationbar_ex_Item* item, const char* item_style);
- EAPI const char *elm_navigationbar_ex_item_style_get(Elm_Navigationbar_ex_Item* item);
- EAPI Evas_Object *elm_navigationbar_ex_item_content_unset(Elm_Navigationbar_ex_Item* item);
- EAPI Evas_Object *elm_navigationbar_ex_item_content_get(Elm_Navigationbar_ex_Item* item);
- EAPI void elm_navigationbar_ex_delete_on_pop_set(Evas_Object *obj, Eina_Bool del_on_pop);
- EAPI Evas_Object *elm_navigationbar_ex_item_icon_get(Elm_Navigationbar_ex_Item* item);
- EAPI void elm_navigationbar_ex_item_icon_set(Elm_Navigationbar_ex_Item* item, Evas_Object *icon);
- EAPI Evas_Object *elm_navigationbar_ex_item_title_button_unset(Elm_Navigationbar_ex_Item* item, int button_type);
- EAPI void elm_navigationbar_ex_animation_disable_set(Evas_Object *obj, Eina_Bool disable);
- EAPI void elm_navigationbar_ex_title_object_visible_set(Elm_Navigationbar_ex_Item* item, Eina_Bool visible);
- Eina_Bool elm_navigationbar_ex_title_object_visible_get(Elm_Navigationbar_ex_Item* item);
-
- /* naviframe */
- #define ELM_NAVIFRAME_ITEM_CONTENT "elm.swallow.content"
- #define ELM_NAVIFRAME_ITEM_ICON "elm.swallow.icon"
- #define ELM_NAVIFRAME_ITEM_OPTIONHEADER "elm.swallow.optionheader"
- #define ELM_NAVIFRAME_ITEM_OPTIONHEADER2 "elm.swallow.optionheader2"
- #define ELM_NAVIFRAME_ITEM_TITLE_LABEL "elm.text.title"
- #define ELM_NAVIFRAME_ITEM_PREV_BTN "elm.swallow.prev_btn"
- #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_CLOSE "elm,state,optionheader,close", ""
- #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_OPEN "elm,state,optionheader,open", ""
- #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_INSTANT_CLOSE "elm,state,optionheader,instant_close", ""
- #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_INSTANT_OPEN "elm,state,optionheader,instant_open", ""
+ EINA_DEPRECATED EAPI Evas_Object *elm_navigationbar_ex_add(Evas_Object *parent);
+ EINA_DEPRECATED EAPI Elm_Navigationbar_ex_Item *elm_navigationbar_ex_item_push(Evas_Object *obj, Evas_Object *content, const char *item_style);
+ EINA_DEPRECATED EAPI void elm_navigationbar_ex_item_pop(Evas_Object *obj);
+ EINA_DEPRECATED EAPI void elm_navigationbar_ex_item_promote(Elm_Navigationbar_ex_Item* item);
+ EINA_DEPRECATED EAPI void elm_navigationbar_ex_to_item_pop(Elm_Navigationbar_ex_Item* item);
+ EINA_DEPRECATED EAPI void elm_navigationbar_ex_item_title_label_set(Elm_Navigationbar_ex_Item *item, const char *title);
+ EINA_DEPRECATED EAPI const char *elm_navigationbar_ex_item_title_label_get(Elm_Navigationbar_ex_Item* item);
+ EINA_DEPRECATED EAPI Elm_Navigationbar_ex_Item *elm_navigationbar_ex_item_top_get(const Evas_Object *obj);
+ EINA_DEPRECATED EAPI Elm_Navigationbar_ex_Item *elm_navigationbar_ex_item_bottom_get(const Evas_Object *obj);
+ EINA_DEPRECATED EAPI void elm_navigationbar_ex_item_title_button_set(Elm_Navigationbar_ex_Item* item, char *btn_label, Evas_Object *icon, int button_type, Evas_Smart_Cb func, const void *data);
+ EINA_DEPRECATED EAPI Evas_Object *elm_navigationbar_ex_item_title_button_get(Elm_Navigationbar_ex_Item* item, int button_type);
+ EINA_DEPRECATED EAPI void elm_navigationbar_ex_item_title_object_set(Elm_Navigationbar_ex_Item* item, Evas_Object *title_obj);
+ EINA_DEPRECATED EAPI Evas_Object *elm_navigationbar_ex_item_title_object_unset(Elm_Navigationbar_ex_Item* item);
+ EINA_DEPRECATED EAPI void elm_navigationbar_ex_item_title_hidden_set(Elm_Navigationbar_ex_Item* item, Eina_Bool hidden);
+ EINA_DEPRECATED EAPI Evas_Object *elm_navigationbar_ex_item_title_object_get(Elm_Navigationbar_ex_Item* item);
+ EINA_DEPRECATED EAPI const char *elm_navigationbar_ex_item_subtitle_label_get(Elm_Navigationbar_ex_Item* item);
+ EINA_DEPRECATED EAPI void elm_navigationbar_ex_item_subtitle_label_set( Elm_Navigationbar_ex_Item* item, const char *subtitle);
+ EINA_DEPRECATED EAPI void elm_navigationbar_ex_item_style_set(Elm_Navigationbar_ex_Item* item, const char* item_style);
+ EINA_DEPRECATED EAPI const char *elm_navigationbar_ex_item_style_get(Elm_Navigationbar_ex_Item* item);
+ EINA_DEPRECATED EAPI Evas_Object *elm_navigationbar_ex_item_content_unset(Elm_Navigationbar_ex_Item* item);
+ EINA_DEPRECATED EAPI Evas_Object *elm_navigationbar_ex_item_content_get(Elm_Navigationbar_ex_Item* item);
+ EINA_DEPRECATED EAPI void elm_navigationbar_ex_delete_on_pop_set(Evas_Object *obj, Eina_Bool del_on_pop);
+ EINA_DEPRECATED EAPI Evas_Object *elm_navigationbar_ex_item_icon_get(Elm_Navigationbar_ex_Item* item);
+ EINA_DEPRECATED EAPI void elm_navigationbar_ex_item_icon_set(Elm_Navigationbar_ex_Item* item, Evas_Object *icon);
+ EINA_DEPRECATED EAPI Evas_Object *elm_navigationbar_ex_item_title_button_unset(Elm_Navigationbar_ex_Item* item, int button_type);
+ EINA_DEPRECATED EAPI void elm_navigationbar_ex_animation_disable_set(Evas_Object *obj, Eina_Bool disable);
+ EINA_DEPRECATED EAPI void elm_navigationbar_ex_title_object_visible_set(Elm_Navigationbar_ex_Item* item, Eina_Bool visible);
+ EINA_DEPRECATED Eina_Bool elm_navigationbar_ex_title_object_visible_get(Elm_Navigationbar_ex_Item* item);
- /**
+ /**
* @defgroup Naviframe Naviframe
+ * @ingroup Elementary
*
* @brief Naviframe is a kind of view manager for the applications.
*
* application.
*
* Signals that you can add callback for are:
- *
* @li "transition,finished" - When the transition is finished in changing
* the item
* @li "title,clicked" - User clicked title area
*
- * Default contents parts for the naviframe items that you can use for are:
+ * Default contents parts of the naviframe items that you can use for are:
+ * @li "default" - A main content of the page
+ * @li "icon" - A icon in the title area
+ * @li "prev_btn" - A button to go to the previous page
+ * @li "next_btn" - A button to go to the next page
*
- * @li "elm.swallow.content" - The main content of the page
- * @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 of naviframe items that you can be used are:
- *
- * @li "elm.text.title" - The title label in the title area
+ * Default text parts of the naviframe items that you can use for are:
+ * @li "default" - Title label in the title area
+ * @li "subtitle" - Sub-title label in the title area
*
* @ref tutorial_naviframe gives a good overview of the usage of the API.
+ */
+
+ //Available commonly
+ #define ELM_NAVIFRAME_ITEM_CONTENT "elm.swallow.content"
+ #define ELM_NAVIFRAME_ITEM_ICON "elm.swallow.icon"
+ #define ELM_NAVIFRAME_ITEM_OPTIONHEADER "elm.swallow.optionheader"
+ #define ELM_NAVIFRAME_ITEM_TITLE_LABEL "elm.text.title"
+ #define ELM_NAVIFRAME_ITEM_PREV_BTN "elm.swallow.prev_btn"
+ #define ELM_NAVIFRAME_ITEM_TITLE_LEFT_BTN "elm.swallow.left_btn"
+ #define ELM_NAVIFRAME_ITEM_TITLE_RIGHT_BTN "elm.swallow.right_btn"
+ #define ELM_NAVIFRAME_ITEM_TITLE_MORE_BTN "elm.swallow.more_btn"
+ #define ELM_NAVIFRAME_ITEM_CONTROLBAR "elm.swallow.controlbar"
+ #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_CLOSE "elm,state,optionheader,close", ""
+ #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_OPEN "elm,state,optionheader,open", ""
+ #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_INSTANT_CLOSE "elm,state,optionheader,instant_close", ""
+ #define ELM_NAVIFRAME_ITEM_SIGNAL_OPTIONHEADER_INSTANT_OPEN "elm,state,optionheader,instant_open", ""
+ #define ELM_NAVIFRAME_ITEM_SIGNAL_CONTROLBAR_CLOSE "elm,state,controlbar,close", ""
+ #define ELM_NAVIFRAME_ITEM_SIGNAL_CONTROLBAR_OPEN "elm,state,controlbar,open", ""
+ #define ELM_NAVIFRAME_ITEM_SIGNAL_CONTROLBAR_INSTANT_CLOSE "elm,state,controlbar,instant_close", ""
+ #define ELM_NAVIFRAME_ITEM_SIGNAL_CONTROLBAR_INSTANT_OPEN "elm,state,controlbar,instant_open", ""
+
+ //Available only in a style - "2line"
+ #define ELM_NAVIFRAME_ITEM_OPTIONHEADER2 "elm.swallow.optionheader2"
+
+ //Available only in a style - "segment"
+ #define ELM_NAVIFRAME_ITEM_SEGMENT2 "elm.swallow.segment2"
+ #define ELM_NAVIFRAME_ITEM_SEGMENT3 "elm.swallow.segment3"
+
+ /**
+ * @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);
/**
* deleted when it is popped.
*
* @see also elm_naviframe_item_style_set()
+ * @see also elm_naviframe_item_insert_before()
+ * @see also elm_naviframe_item_insert_after()
*
* 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);
+ /**
+ * @brief Insert a new item into the naviframe before item @p before.
+ *
+ * @param before The naviframe item to insert before.
+ * @param title_label The label in the title area. The name of the title
+ * label part is "elm.text.title"
+ * @param prev_btn The button to go to the previous item. If it is NULL,
+ * then naviframe will create a back button automatically. The name of
+ * the prev_btn part is "elm.swallow.prev_btn"
+ * @param next_btn The button to go to the next item. Or It could be just an
+ * extra function button. The name of the next_btn part is
+ * "elm.swallow.next_btn"
+ * @param content The main content object. The name of content part is
+ * "elm.swallow.content"
+ * @param item_style The current item style name. @c NULL would be default.
+ * @return The created item or @c NULL upon failure.
+ *
+ * The item is inserted into the naviframe straight away without any
+ * transition operations. This item will be deleted when it is popped.
+ *
+ * @see also elm_naviframe_item_style_set()
+ * @see also elm_naviframe_item_push()
+ * @see also elm_naviframe_item_insert_after()
+ *
+ * The following styles are available for this item:
+ * @li @c "default"
+ *
+ * @ingroup Naviframe
+ */
+ EAPI Elm_Object_Item *elm_naviframe_item_insert_before(Elm_Object_Item *before, const char *title_label, Evas_Object *prev_btn, Evas_Object *next_btn, Evas_Object *content, const char *item_style) EINA_ARG_NONNULL(1, 5);
+ /**
+ * @brief Insert a new item into the naviframe after item @p after.
+ *
+ * @param after The naviframe item to insert after.
+ * @param title_label The label in the title area. The name of the title
+ * label part is "elm.text.title"
+ * @param prev_btn The button to go to the previous item. If it is NULL,
+ * then naviframe will create a back button automatically. The name of
+ * the prev_btn part is "elm.swallow.prev_btn"
+ * @param next_btn The button to go to the next item. Or It could be just an
+ * extra function button. The name of the next_btn part is
+ * "elm.swallow.next_btn"
+ * @param content The main content object. The name of content part is
+ * "elm.swallow.content"
+ * @param item_style The current item style name. @c NULL would be default.
+ * @return The created item or @c NULL upon failure.
+ *
+ * The item is inserted into the naviframe straight away without any
+ * transition operations. This item will be deleted when it is popped.
+ *
+ * @see also elm_naviframe_item_style_set()
+ * @see also elm_naviframe_item_push()
+ * @see also elm_naviframe_item_insert_before()
+ *
+ * The following styles are available for this item:
+ * @li @c "default"
+ *
+ * @ingroup Naviframe
+ */
+ EAPI Elm_Object_Item *elm_naviframe_item_insert_after(Elm_Object_Item *after, const char *title_label, Evas_Object *prev_btn, Evas_Object *next_btn, Evas_Object *content, const char *item_style) EINA_ARG_NONNULL(1, 5);
/**
* @brief Pop an item that is on top of the stack
*
* @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);
+ EAPI Eina_Bool elm_naviframe_prev_btn_auto_pushed_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Get a list of all the naviframe items.
+ *
+ * @param obj The naviframe object
+ * @return An Eina_Inlist* of naviframe items, #Elm_Object_Item,
+ * or @c NULL on failure.
+ */
+ EAPI Eina_Inlist *elm_naviframe_items_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * @}
+ */
/* Control Bar */
#define CONTROLBAR_SYSTEM_ICON_ALBUMS "controlbar_albums"
*
* @li NULL/"default" - Operates on tickernoti content-text
*
- * Parts which can be used with elm_object_content_part_set() and
- * elm_object_content_part_get():
+ * Parts which can be used with elm_object_content_part_set(),
+ * elm_object_content_part_get() and elm_object_content_part_unset():
*
* @li "icon" - Operates on tickernoti's icon
* @li "button" - Operates on tickernoti's button
typedef struct _Multibuttonentry_Item Elm_Multibuttonentry_Item;
typedef Eina_Bool (*Elm_Multibuttonentry_Item_Verify_Callback) (Evas_Object *obj, const char *item_label, void *item_data, void *data);
EAPI Evas_Object *elm_multibuttonentry_add(Evas_Object *parent);
- EAPI const char *elm_multibuttonentry_label_get(Evas_Object *obj);
+ EAPI const char *elm_multibuttonentry_label_get(const Evas_Object *obj);
EAPI void elm_multibuttonentry_label_set(Evas_Object *obj, const char *label);
- EAPI Evas_Object *elm_multibuttonentry_entry_get(Evas_Object *obj);
- EAPI const char * elm_multibuttonentry_guide_text_get(Evas_Object *obj);
+ EAPI Evas_Object *elm_multibuttonentry_entry_get(const Evas_Object *obj);
+ EAPI const char * elm_multibuttonentry_guide_text_get(const Evas_Object *obj);
EAPI void elm_multibuttonentry_guide_text_set(Evas_Object *obj, const char *guidetext);
- EAPI int elm_multibuttonentry_contracted_state_get(Evas_Object *obj);
+ EAPI int elm_multibuttonentry_contracted_state_get(const Evas_Object *obj);
EAPI void elm_multibuttonentry_contracted_state_set(Evas_Object *obj, int contracted);
EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_add_start(Evas_Object *obj, const char *label, void *data);
EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_add_end(Evas_Object *obj, const char *label, void *data);
EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_add_before(Evas_Object *obj, const char *label, Elm_Multibuttonentry_Item *before, void *data);
EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_add_after(Evas_Object *obj, const char *label, Elm_Multibuttonentry_Item *after, void *data);
- EAPI const Eina_List *elm_multibuttonentry_items_get(Evas_Object *obj);
- EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_first_get(Evas_Object *obj);
- EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_last_get(Evas_Object *obj);
- EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_selected_get(Evas_Object *obj);
+ EAPI const Eina_List *elm_multibuttonentry_items_get(const Evas_Object *obj);
+ EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_first_get(const Evas_Object *obj);
+ EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_last_get(const Evas_Object *obj);
+ EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_selected_get(const Evas_Object *obj);
EAPI void elm_multibuttonentry_item_selected_set(Elm_Multibuttonentry_Item *item);
EAPI void elm_multibuttonentry_item_unselect_all(Evas_Object *obj);
EAPI void elm_multibuttonentry_item_del(Elm_Multibuttonentry_Item *item);
EAPI void elm_multibuttonentry_items_del(Evas_Object *obj);
- EAPI const char *elm_multibuttonentry_item_label_get(Elm_Multibuttonentry_Item *item);
+ EAPI const char *elm_multibuttonentry_item_label_get(const Elm_Multibuttonentry_Item *item);
EAPI void elm_multibuttonentry_item_label_set(Elm_Multibuttonentry_Item *item, const char *str);
EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_prev(Elm_Multibuttonentry_Item *item);
EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_next(Elm_Multibuttonentry_Item *item);
- EAPI void *elm_multibuttonentry_item_data_get(Elm_Multibuttonentry_Item *item);
+ EAPI void *elm_multibuttonentry_item_data_get(const Elm_Multibuttonentry_Item *item);
EAPI void elm_multibuttonentry_item_data_set(Elm_Multibuttonentry_Item *item, void *data);
EAPI void elm_multibuttonentry_item_verify_callback_set(Evas_Object *obj, Elm_Multibuttonentry_Item_Verify_Callback func, void *data);
/* smart callback called: