*/
/**
-@file elementary.dox
+@file Elementary.h.in
@brief Elementary Widget Library
*/
EAPI int elm_policy_get(unsigned int policy);
/**
+ * Set a label of an object
+ *
+ * @param obj The Elementary object
+ * @param item The label id 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 *item, const char *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 item The label id 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)
+ *
+ * @ingroup General
+ */
+ EAPI const char *elm_object_text_part_get(const Evas_Object *obj, const char *item);
+
+#define elm_object_text_get(obj) elm_object_text_part_get((obj), NULL)
+
+ /**
* @}
*/
EAPI int elm_win_quickpanel_priority_minor_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_win_quickpanel_zone_set(Evas_Object *obj, int zone) EINA_ARG_NONNULL(1);
EAPI int elm_win_quickpanel_zone_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
- EAPI void elm_win_prop_focus_skip_set(Evas_Object *obj, Eina_Bool skip); EINA_ARG_NONNULL(1);
- EAPI void elm_win_illume_command_send(Evas_Object *obj, Elm_Illume_Command command, void *params); EINA_ARG_NONNULL(1);
+ EAPI void elm_win_prop_focus_skip_set(Evas_Object *obj, Eina_Bool skip) EINA_ARG_NONNULL(1);
+ EAPI void elm_win_illume_command_send(Evas_Object *obj, Elm_Illume_Command command, void *params) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_win_inlined_image_object_get(Evas_Object *obj);
EAPI void elm_win_focus_highlight_enabled_set(Evas_Object *obj, Eina_Bool enabled) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_win_focus_highlight_enabled_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_image_editable_set(Evas_Object *obj, Eina_Bool set) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_image_editable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_image_object_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EAPI void elm_image_aspect_ratio_retained_set(Evas_Object *obj, Eina_Bool retained) EINA_ARG_NONNULL(1);
+ EAPI Eina_Bool elm_image_aspect_ratio_retained_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
/* smart callbacks called:
* "clicked" - the user clicked the image
*/
EAPI void elm_glview_changed_set(Evas_Object *obj) EINA_ARG_NONNULL(1);
/* box */
+ /**
+ * @defgroup Box Box
+ *
+ * A box arranges objects in a linear fashion, governed by a layout function
+ * that defines the details of this arrangement.
+ *
+ * By default, the box will use an internal function to set the layout to
+ * a single row, either vertical or horizontal. This layout is affected
+ * by a number of parameters, such as the homogeneous flag set by
+ * elm_box_homogeneous_set(), the values given by elm_box_padding_set() and
+ * elm_box_align_set() and the hints set to each object in the box.
+ *
+ * For this default layout, it's possible to change the orientation with
+ * elm_box_horizontal_set(). The box will start in the vertical orientation,
+ * placing its elements ordered from top to bottom. When horizontal is set,
+ * the order will go from left to right. If the box is set to be
+ * homogeneous, every object in it will be assigned the same space, that
+ * of the largest object. Padding can be used to set some spacing between
+ * the cell given to each object. The alignment of the box, set with
+ * elm_box_align_set(), determines how the bounding box of all the elements
+ * will be placed within the space given to the box widget itself.
+ *
+ * The size hints of each object also affect how they are placed and sized
+ * within the box. evas_object_size_hint_min_set() will give the minimum
+ * size the object can have, and the box will use it as the basis for all
+ * latter calculations. Elementary widgets set their own minimum size as
+ * needed, so there's rarely any need to use it manually.
+ *
+ * evas_object_size_hint_weight_set(), when not in homogeneous mode, is
+ * used to tell whether the object will be allocated the minimum size it
+ * needs or if the space given to it should be expanded. It's important
+ * to realize that expanding the size given to the object is not the same
+ * thing as resizing the object. It could very well end being a small
+ * widget floating in a much larger empty space. If not set, the weight
+ * for objects will normally be 0.0 for both axis, meaning the widget will
+ * not be expanded. To take as much space possible, set the weight to
+ * EVAS_HINT_EXPAND (defined to 1.0) for the desired axis to expand.
+ *
+ * Besides how much space each object is allocated, it's possible to control
+ * how the widget will be placed within that space using
+ * evas_object_size_hint_align_set(). By default, this value will be 0.5
+ * for both axis, meaning the object will be centered, but any value from
+ * 0.0 (left or top, for the @c x and @c y axis, respectively) to 1.0
+ * (right or bottom) can be used. The special value EVAS_HINT_FILL, which
+ * is -1.0, means the object will be resized to fill the entire space it
+ * was allocated.
+ *
+ * In addition, customized functions to define the layout can be set, which
+ * allow the application developer to organize the objects within the box
+ * in any number of ways.
+ *
+ * The special elm_box_layout_transition() function can be used
+ * to switch from one layout to another, animating the motion of the
+ * children of the box.
+ *
+ * @note Objects should not be added to box objects using _add() calls.
+ *
+ * Some examples on how to use boxes follow:
+ * @li @ref box_example_01
+ * @li @ref box_example_02
+ *
+ * @{
+ */
+ /**
+ * @typedef Elm_Box_Transition
+ *
+ * Opaque handler containing the parameters to perform an animated
+ * transition of the layout the box uses.
+ *
+ * @see elm_box_transition_new()
+ * @see elm_box_layout_set()
+ * @see elm_box_layout_transition()
+ */
typedef struct _Elm_Box_Transition Elm_Box_Transition;
+ /**
+ * Add a new box to the parent
+ *
+ * By default, the box will be in vertical mode and non-homogeneous.
+ *
+ * @param parent The parent object
+ * @return The new object or NULL if it cannot be created
+ */
EAPI Evas_Object *elm_box_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+ /**
+ * Set the horizontal orientation
+ *
+ * By default, box object arranges their contents vertically from top to
+ * bottom.
+ * By calling this function with @p horizontal as EINA_TRUE, the box will
+ * become horizontal, arranging contents from left to right.
+ *
+ * @note This flag is ignored if a custom layout function is set.
+ *
+ * @param obj The box object
+ * @param horizontal The horizontal flag (EINA_TRUE = horizontal,
+ * EINA_FALSE = vertical)
+ */
EAPI void elm_box_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) EINA_ARG_NONNULL(1);
+ /**
+ * Get the horizontal orientation
+ *
+ * @param obj The box object
+ * @return EINA_TRUE if the box is set to horizintal mode, EINA_FALSE otherwise
+ */
EAPI Eina_Bool elm_box_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * Set the box to arrange its children homogeneously
+ *
+ * If enabled, homogeneous layout makes all items the same size, according
+ * to the size of the largest of its children.
+ *
+ * @note This flag is ignored if a custom layout function is set.
+ *
+ * @param obj The box object
+ * @param homogeneous The homogeneous flag
+ */
EAPI void elm_box_homogeneous_set(Evas_Object *obj, Eina_Bool homogeneous) EINA_ARG_NONNULL(1);
+ /**
+ * Get whether the box is using homogeneous mode or not
+ *
+ * @param obj The box object
+ * @return EINA_TRUE if it's homogeneous, EINA_FALSE otherwise
+ */
EAPI Eina_Bool elm_box_homogeneous_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI void elm_box_homogenous_set(Evas_Object *obj, Eina_Bool homogenous) EINA_ARG_NONNULL(1);
EINA_DEPRECATED EAPI Eina_Bool elm_box_homogenous_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * Add an object to the beginning of the pack list
+ *
+ * Pack @p subobj into the box @p obj, placing it first in the list of
+ * children objects. The actual position the object will get on screen
+ * depends on the layout used. If no custom layout is set, it will be at
+ * the top or left, depending if the box is vertical or horizontal,
+ * respectively.
+ *
+ * @param obj The box object
+ * @param subobj The object to add to the box
+ *
+ * @see elm_box_pack_end()
+ * @see elm_box_pack_before()
+ * @see elm_box_pack_after()
+ * @see elm_box_unpack()
+ * @see elm_box_unpack_all()
+ * @see elm_box_clear()
+ */
EAPI void elm_box_pack_start(Evas_Object *obj, Evas_Object *subobj) EINA_ARG_NONNULL(1);
+ /**
+ * Add an object at the end of the pack list
+ *
+ * Pack @p subobj into the box @p obj, placing it last in the list of
+ * children objects. The actual position the object will get on screen
+ * depends on the layout used. If no custom layout is set, it will be at
+ * the bottom or right, depending if the box is vertical or horizontal,
+ * respectively.
+ *
+ * @param obj The box object
+ * @param subobj The object to add to the box
+ *
+ * @see elm_box_pack_start()
+ * @see elm_box_pack_before()
+ * @see elm_box_pack_after()
+ * @see elm_box_unpack()
+ * @see elm_box_unpack_all()
+ * @see elm_box_clear()
+ */
EAPI void elm_box_pack_end(Evas_Object *obj, Evas_Object *subobj) EINA_ARG_NONNULL(1);
+ /**
+ * Adds an object to the box before the indicated object
+ *
+ * This will add the @p subobj to the box indicated before the object
+ * indicated with @p before. If @p before is not already in the box, results
+ * are undefined. Before means either to the left of the indicated object or
+ * above it depending on orientation.
+ *
+ * @param obj The box object
+ * @param subobj The object to add to the box
+ * @param before The object before which to add it
+ *
+ * @see elm_box_pack_start()
+ * @see elm_box_pack_end()
+ * @see elm_box_pack_after()
+ * @see elm_box_unpack()
+ * @see elm_box_unpack_all()
+ * @see elm_box_clear()
+ */
EAPI void elm_box_pack_before(Evas_Object *obj, Evas_Object *subobj, Evas_Object *before) EINA_ARG_NONNULL(1);
+ /**
+ * Adds an object to the box after the indicated object
+ *
+ * This will add the @p subobj to the box indicated after the object
+ * indicated with @p after. If @p after is not already in the box, results
+ * are undefined. After means either to the right of the indicated object or
+ * below it depending on orientation.
+ *
+ * @param obj The box object
+ * @param subobj The object to add to the box
+ * @param after The object after which to add it
+ *
+ * @see elm_box_pack_start()
+ * @see elm_box_pack_end()
+ * @see elm_box_pack_before()
+ * @see elm_box_unpack()
+ * @see elm_box_unpack_all()
+ * @see elm_box_clear()
+ */
EAPI void elm_box_pack_after(Evas_Object *obj, Evas_Object *subobj, Evas_Object *after) EINA_ARG_NONNULL(1);
+ /**
+ * Clear the box of all children
+ *
+ * Remove all the elements contained by the box, deleting the respective
+ * objects.
+ *
+ * @param obj The box object
+ *
+ * @see elm_box_unpack()
+ * @see elm_box_unpack_all()
+ */
EAPI void elm_box_clear(Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * Unpack a box item
+ *
+ * Remove the object given by @p subobj from the box @p obj without
+ * deleting it.
+ *
+ * @param obj The box object
+ *
+ * @see elm_box_unpack_all()
+ * @see elm_box_clear()
+ */
EAPI void elm_box_unpack(Evas_Object *obj, Evas_Object *subobj) EINA_ARG_NONNULL(1);
+ /**
+ * Remove all items from the box, without deleting them
+ *
+ * Clear the box from all children, but don't delete the respective objects.
+ * If no other references of the box children exist, the objects will never
+ * be deleted, and thus the application will leak the memory. Make sure
+ * when using this function that you hold a reference to all the objects
+ * in the box @p obj.
+ *
+ * @param obj The box object
+ *
+ * @see elm_box_clear()
+ * @see elm_box_unpack()
+ */
EAPI void elm_box_unpack_all(Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * Retrieve a list of the objects packed into the box
+ *
+ * Returns a new @c Eina_List with a pointer to @c Evas_Object in its nodes.
+ * The order of the list corresponds to the packing order the box uses.
+ *
+ * You must free this list with eina_list_free() once you are done with it.
+ *
+ * @param obj The box object
+ */
EAPI const Eina_List *elm_box_children_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * Set the space (padding) between the box's elements.
+ *
+ * Extra space in pixels that will be added between a box child and its
+ * neighbors after its containing cell has been calculated. This padding
+ * is set for all elements in the box, besides any possible padding that
+ * individual elements may have through their size hints.
+ *
+ * @param obj The box object
+ * @param horizontal The horizontal space between elements
+ * @param vertical The vertical space between elements
+ */
EAPI void elm_box_padding_set(Evas_Object *obj, Evas_Coord horizontal, Evas_Coord vertical) EINA_ARG_NONNULL(1);
+ /**
+ * Get the space (padding) between the box's elements.
+ *
+ * @param obj The box object
+ * @param horizontal The horizontal space between elements
+ * @param vertical The vertical space between elements
+ *
+ * @see elm_box_padding_set()
+ */
EAPI void elm_box_padding_get(const Evas_Object *obj, Evas_Coord *horizontal, Evas_Coord *vertical) EINA_ARG_NONNULL(1);
+ /**
+ * Set the alignment of the whole bouding box of contents.
+ *
+ * Sets how the bounding box containing all the elements of the box, after
+ * their sizes and position has been calculated, will be aligned within
+ * the space given for the whole box widget.
+ *
+ * @param obj The box object
+ * @param horizontal The horizontal alignment of elements
+ * @param vertical The vertical alignment of elements
+ */
EAPI void elm_box_align_set(Evas_Object *obj, double horizontal, double vertical) EINA_ARG_NONNULL(1);
+ /**
+ * Get the alignment of the whole bouding box of contents.
+ *
+ * @param obj The box object
+ * @param horizontal The horizontal alignment of elements
+ * @param vertical The vertical alignment of elements
+ *
+ * @see elm_box_align_set()
+ */
EAPI void elm_box_align_get(const Evas_Object *obj, double *horizontal, double *vertical) EINA_ARG_NONNULL(1);
+ /**
+ * Set the layout defining function to be used by the box
+ *
+ * Whenever anything changes that requires the box in @p obj to recalculate
+ * the size and position of its elements, the function @p cb will be called
+ * to determine what the layout of the children will be.
+ *
+ * Once a custom function is set, everything about the children layout
+ * is defined by it. The flags set by elm_box_horizontal_set() and
+ * elm_box_homogeneous_set() no longer have any meaning, and the values
+ * given by elm_box_padding_set() and elm_box_align_set() are up to this
+ * layout function to decide if they are used and how. These last two
+ * will be found in the @c priv parameter, of type @c Evas_Object_Box_Data,
+ * passed to @p cb. The @c Evas_Object the function receives is not the
+ * Elementary widget, but the internal Evas Box it uses, so none of the
+ * functions described here can be used on it.
+ *
+ * Any of the layout functions in @c Evas can be used here, as well as the
+ * special elm_box_layout_transition().
+ *
+ * The final @p data argument received by @p cb is the same @p data passed
+ * here, and the @p free_data function will be called to free it
+ * whenever the box is destroyed or another layout function is set.
+ *
+ * Setting @p cb to NULL will revert back to the default layout function.
+ *
+ * @param obj The box object
+ * @param cb The callback function used for layout
+ * @param data Data that will be passed to layout function
+ * @param free_data Function called to free @p data
+ *
+ * @see elm_box_layout_transition()
+ */
EAPI void elm_box_layout_set(Evas_Object *obj, Evas_Object_Box_Layout cb, const void *data, void (*free_data)(void *data)) EINA_ARG_NONNULL(1);
+ /**
+ * Special layout function that animates the transition from one layout to another
+ *
+ * Normally, when switching the layout function for a box, this will be
+ * reflected immediately on screen on the next render, but it's also
+ * possible to do this through an animated transition.
+ *
+ * This is done by creating an ::Elm_Box_Transition and setting the box
+ * layout to this function.
+ *
+ * For example:
+ * @code
+ * Elm_Box_Transition *t = elm_box_transition_new(1.0,
+ * evas_object_box_layout_vertical, // start
+ * NULL, // data for initial layout
+ * NULL, // free function for initial data
+ * evas_object_box_layout_horizontal, // end
+ * NULL, // data for final layout
+ * NULL, // free function for final data
+ * anim_end, // will be called when animation ends
+ * NULL); // data for anim_end function\
+ * elm_box_layout_set(box, elm_box_layout_transition, t,
+ * elm_box_transition_free);
+ * @endcode
+ *
+ * @note This function can only be used with elm_box_layout_set(). Calling
+ * it directly will not have the expected results.
+ *
+ * @see elm_box_transition_new
+ * @see elm_box_transition_free
+ * @see elm_box_layout_set
+ */
EAPI void elm_box_layout_transition(Evas_Object *obj, Evas_Object_Box_Data *priv, void *data);
+ /**
+ * Create a new ::Elm_Box_Transition to animate the switch of layouts
+ *
+ * If you want to animate the change from one layout to another, you need
+ * to set the layout function of the box to elm_box_layout_transition(),
+ * passing as user data to it an instance of ::Elm_Box_Transition with the
+ * necessary information to perform this animation. The free function to
+ * set for the layout is elm_box_transition_free().
+ *
+ * The parameters to create an ::Elm_Box_Transition sum up to how long
+ * will it be, in seconds, a layout function to describe the initial point,
+ * another for the final position of the children and one function to be
+ * called when the whole animation ends. This last function is useful to
+ * set the definitive layout for the box, usually the same as the end
+ * layout for the animation, but could be used to start another transition.
+ *
+ * @param start_layout The layout function that will be used to start the animation
+ * @param start_layout_data The data to be passed the @p start_layout function
+ * @param start_layout_free_data Function to free @p start_layout_data
+ * @param end_layout The layout function that will be used to end the animation
+ * @param end_layout_free_data The data to be passed the @p end_layout function
+ * @param end_layout_free_data Function to free @p end_layout_data
+ * @param transition_end_cb Callback function called when animation ends
+ * @param transition_end_data Data to be passed to @p transition_end_cb
+ * @return An instance of ::Elm_Box_Transition
+ *
+ * @see elm_box_transition_new
+ * @see elm_box_layout_transition
+ */
EAPI Elm_Box_Transition *elm_box_transition_new(const double duration, Evas_Object_Box_Layout start_layout, void *start_layout_data, void(*start_layout_free_data)(void *data), Evas_Object_Box_Layout end_layout, void *end_layout_data, void(*end_layout_free_data)(void *data), void(*transition_end_cb)(void *data), void *transition_end_data) EINA_ARG_NONNULL(2, 5);
+ /**
+ * Free a Elm_Box_Transition instance created with elm_box_transition_new().
+ *
+ * This function is mostly useful as the @c free_data parameter in
+ * elm_box_layout_set() when elm_box_layout_transition().
+ *
+ * @param data The Elm_Box_Transition instance to be freed.
+ *
+ * @see elm_box_transition_new
+ * @see elm_box_layout_transition
+ */
EAPI void elm_box_transition_free(void *data);
- /* smart callbacks called:
+ /**
+ * @}
*/
/* button */
/**
* @defgroup Button Button
*
+ * @image html widget/button/preview-00.png
+ * @image html widget/button/preview-01.png
+ * @image html widget/button/preview-02.png
+ *
* 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.
*
* This widgets emits the following signals:
* @li "clicked": the user clicked the button (press/release).
* @li "repeated": the user pressed the button without releasing it.
+ * @li "pressed": button was pressed.
* @li "unpressed": button was released after being pressed.
* In all three cases, the @c event parameter of the callback will be
* @c NULL.
* @li hoversel_vertical: Internally used by @ref Hoversel to give a
* continuous look across its options.
* @li hoversel_vertical_entry: Another internal for @ref Hoversel.
+ *
+ * Follow through a complete example @ref button_example_01 "here".
+ * @{
+ */
+ /**
+ * Add a new button to the parent's canvas
+ *
+ * @param parent The parent object
+ * @return The new object or NULL if it cannot be created
*/
EAPI Evas_Object *elm_button_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
- EAPI void elm_button_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
- EAPI const char *elm_button_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * Set the label used in the button
+ *
+ * The passed @p label can be NULL to clean any existing text in it and
+ * leave the button as an icon only object.
+ *
+ * @param obj The button object
+ * @param label The text will be written on the button
+ * @deprecated use elm_object_text_set() instead.
+ */
+ EINA_DEPRECATED EAPI void elm_button_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
+ /**
+ * Get the label set for the button
+ *
+ * The string returned is an internal pointer and should not be freed or
+ * altered. It will also become invalid when the button is destroyed.
+ * The string returned, if not NULL, is a stringshare, so if you need to
+ * keep it around even after the button is destroyed, you can use
+ * eina_stringshare_ref().
+ *
+ * @param obj The button object
+ * @return The text set to the label, or NULL if nothing is set
+ * @deprecated use elm_object_text_set() instead.
+ */
+ EINA_DEPRECATED EAPI const char *elm_button_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * Set the icon used for the button
+ *
+ * Setting a new icon will delete any other that was previously set, making
+ * any reference to them invalid. If you need to maintain the previous
+ * object alive, unset it first with elm_button_icon_unset().
+ *
+ * @param obj The button object
+ * @param icon The icon object for the button
+ */
EAPI void elm_button_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+ /**
+ * Get the icon used for the button
+ *
+ * Return the icon object which is set for this widget. If the button is
+ * destroyed or another icon is set, the returned object will be deleted
+ * and any reference to it will be invalid.
+ *
+ * @param obj The button object
+ * @return The icon object that is being used
+ *
+ * @see elm_button_icon_unset()
+ */
EAPI Evas_Object *elm_button_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * Remove the icon set without deleting it and return the object
+ *
+ * This function drops the reference the button holds of the icon object
+ * and returns this last object. It is used in case you want to remove any
+ * icon, or set another one, without deleting the actual object. The button
+ * will be left without an icon set.
+ *
+ * @param obj The button object
+ * @return The icon object that was being used
+ */
EAPI Evas_Object *elm_button_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * Turn on/off the autorepeat event generated when the button is kept pressed
+ *
+ * When off, no autorepeat is performed and buttons emit a normal @c clicked
+ * signal when they are clicked.
+ *
+ * When on, keeping a button pressed will continuously emit a @c repeated
+ * signal until the button is released. The time it takes until it starts
+ * emitting the signal is given by
+ * elm_button_autorepeat_initial_timeout_set(), and the time between each
+ * new emission by elm_button_autorepeat_gap_timeout_set().
+ *
+ * @param obj The button object
+ * @param on A bool to turn on/off the event
+ */
EAPI void elm_button_autorepeat_set(Evas_Object *obj, Eina_Bool on) EINA_ARG_NONNULL(1);
+ /**
+ * Get whether the autorepeat feature is enabled
+ *
+ * @param obj The button object
+ * @return EINA_TRUE if autorepeat is on, EINA_FALSE otherwise
+ *
+ * @see elm_button_autorepeat_set()
+ */
EAPI Eina_Bool elm_button_autorepeat_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * Set the initial timeout before the autorepeat event is generated
+ *
+ * Sets the timeout, in seconds, since the button is pressed until the
+ * first @c repeated signal is emitted. If @p t is 0.0 or less, there
+ * won't be any delay and the even will be fired the moment the button is
+ * pressed.
+ *
+ * @param obj The button object
+ * @param t Timeout in seconds
+ *
+ * @see elm_button_autorepeat_set()
+ * @see elm_button_autorepeat_gap_timeout_set()
+ */
EAPI void elm_button_autorepeat_initial_timeout_set(Evas_Object *obj, double t) EINA_ARG_NONNULL(1);
+ /**
+ * Get the initial timeout before the autorepeat event is generated
+ *
+ * @param obj The button object
+ * @return Timeout in seconds
+ *
+ * @see elm_button_autorepeat_initial_timeout_set()
+ */
EAPI double elm_button_autorepeat_initial_timeout_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * Set the interval between each generated autorepeat event
+ *
+ * After the first @c repeated event is fired, all subsequent ones will
+ * follow after a delay of @p t seconds for each.
+ *
+ * @param obj The button object
+ * @param t Interval in seconds
+ *
+ * @see elm_button_autorepeat_initial_timeout_set()
+ */
EAPI void elm_button_autorepeat_gap_timeout_set(Evas_Object *obj, double t) EINA_ARG_NONNULL(1);
+ /**
+ * Get the interval between each generated autorepeat event
+ *
+ * @param obj The button object
+ * @return Interval in seconds
+ */
EAPI double elm_button_autorepeat_gap_timeout_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * @}
+ */
/* fileselector */
EAPI Evas_Object *elm_fileselector_button_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
- EAPI void elm_fileselector_button_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
- EAPI const char *elm_fileselector_button_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI void elm_fileselector_button_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI const char *elm_fileselector_button_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_fileselector_button_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_fileselector_button_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_fileselector_button_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
*/
EAPI Evas_Object *elm_fileselector_entry_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
- EAPI void elm_fileselector_entry_button_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
- EAPI const char *elm_fileselector_entry_button_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI void elm_fileselector_entry_button_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI const char *elm_fileselector_entry_button_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_fileselector_entry_button_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_fileselector_entry_button_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_fileselector_entry_button_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
/* label */
EAPI Evas_Object *elm_label_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
- EAPI void elm_label_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
- EAPI const char *elm_label_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI void elm_label_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1); /* deprecated, use elm_object_text_set instead */
+ EINA_DEPRECATED EAPI const char *elm_label_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); /* deprecated, use elm_object_text_get instead */
EAPI void elm_label_line_wrap_set(Evas_Object *obj, Elm_Wrap_Type wrap) EINA_ARG_NONNULL(1);
EAPI Elm_Wrap_Type elm_label_line_wrap_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_label_wrap_width_set(Evas_Object *obj, Evas_Coord w) EINA_ARG_NONNULL(1);
/* toggle */
EAPI Evas_Object *elm_toggle_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
- EAPI void elm_toggle_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
- EAPI const char *elm_toggle_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI void elm_toggle_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI const char *elm_toggle_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_toggle_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_toggle_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_toggle_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
* by the cursor in the first place).
*/
- /* frame */
+ /**
+ * @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
+ *
+ * @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
+ * styles:
+ * @li default
+ * @li pad_small
+ * @li pad_medium
+ * @li pad_large
+ * @li pad_huge
+ * @li outdent_top
+ * @li outdent_bottom
+ *
+ * Of all this styles only default shows the title. Frame emits no signals.
+ *
+ * For a detailed example see the @ref tutorial_frame.
+ *
+ * @{
+ */
+ /**
+ * @brief Add a new frame to the parent
+ *
+ * @param parent The parent object
+ * @return The new object or NULL if it cannot be created
+ */
EAPI Evas_Object *elm_frame_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
- EAPI void elm_frame_label_set(Evas_Object *obj, const char *label); EINA_ARG_NONNULL(1)
- EAPI const char *elm_frame_label_get(const Evas_Object *obj); EINA_ARG_NONNULL(1)
- EAPI void elm_frame_content_set(Evas_Object *obj, Evas_Object *content); EINA_ARG_NONNULL(1)
- EAPI Evas_Object *elm_frame_content_get(const Evas_Object *obj); EINA_ARG_NONNULL(1)
- EAPI Evas_Object *elm_frame_content_unset(Evas_Object *obj); EINA_ARG_NONNULL(1)
- /* available styles:
- * default
- * pad_small
- * pad_medium
- * pad_large
- * pad_huge
- * outdent_top
- * outdent_bottom
+ /**
+ * @brief Set the frame label
+ *
+ * @param obj The frame object
+ * @param label The label of this frame object
+ *
+ * @deprecated use elm_object_text_set() instead.
*/
- /* smart callbacks called:
+ EINA_DEPRECATED EAPI void elm_frame_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Get the frame label
+ *
+ * @param obj The frame object
+ *
+ * @return The label of this frame objet or NULL if unable to get frame
+ *
+ * @deprecated use elm_object_text_get() instead.
+ */
+ EINA_DEPRECATED EAPI const char *elm_frame_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Set the content of the frame widget
+ *
+ * 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_frame_content_unset() function.
+ *
+ * @param obj The frame object
+ * @param content The content will be filled in this frame object
+ */
+ EAPI void elm_frame_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Get the content of the frame widget
+ *
+ * Return the content object which is set for this widget
+ *
+ * @param obj The frame object
+ * @return The content that is being used
+ */
+ EAPI Evas_Object *elm_frame_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * @brief Unset the content of the frame widget
+ *
+ * Unparent and return the content object which was set for this widget
+ *
+ * @param obj The frame object
+ * @return The content that was being used
+ */
+ EAPI Evas_Object *elm_frame_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * @}
*/
/* table */
EAPI void elm_table_clear(Evas_Object *obj, Eina_Bool clear) EINA_ARG_NONNULL(1);
EAPI void elm_table_pack_set(Evas_Object *subobj, int x, int y, int w, int h) EINA_ARG_NONNULL(1);
EAPI void elm_table_pack_get(Evas_Object *subobj, int *x, int *y, int *w, int *h) EINA_ARG_NONNULL(1);
-
+
/* gengrid */
typedef struct _Elm_Gengrid_Item_Class Elm_Gengrid_Item_Class;
typedef struct _Elm_Gengrid_Item_Class_Func Elm_Gengrid_Item_Class_Func;
* "drag,stop" - Gengrid is not being dragged.
*/
- /* clock */
+ /**
+ * @defgroup Clock Clock
+ *
+ * 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.
+ *
+ * A newly created clock will fetch system's time (already
+ * considering local time adjustments) to start with, and will tick
+ * accondingly. It may or may not show seconds.
+ *
+ * Clocks have an @b edition mode. When in it, the sheets will
+ * display extra arrow indications on the top and bottom and the
+ * user may click on them to raise or lower the time values. After
+ * it's told to exit edition mode, it will keep ticking with that
+ * new time set (it keeps the difference from local time).
+ *
+ * Also, when under edition mode, user clicks on the cited arrows
+ * which are @b held for some time will make the clock to flip the
+ * sheet, thus editing the time, continuosly and automatically for
+ * the user. The interval between sheet flips will keep growing in
+ * time, so that it helps the user to reach a time which is distant
+ * from the one set.
+ *
+ * The time display is, by default, in military mode (24h), but an
+ * am/pm indicator may be optionally shown, too, when it will
+ * switch to 12h.
+ *
+ * Smart callbacks one can register to:
+ * - "changed" - the clock's user changed the time
+ *
+ * Here is an example on its usage:
+ * @li @ref clock_example
+ */
+
+ /**
+ * @addtogroup Clock
+ * @{
+ */
+
+ /**
+ * Identifiers for which clock digits should be editable, when a
+ * clock widget is in edition mode. Values may be ORed together to
+ * make a mask, naturally.
+ *
+ * @see elm_clock_edit_set()
+ * @see elm_clock_digit_edit_set()
+ */
typedef enum _Elm_Clock_Digedit
{
- ELM_CLOCK_NONE = 0,
- ELM_CLOCK_HOUR_DECIMAL = 1 << 0,
- ELM_CLOCK_HOUR_UNIT = 1 << 1,
- ELM_CLOCK_MIN_DECIMAL = 1 << 2,
- ELM_CLOCK_MIN_UNIT = 1 << 3,
- ELM_CLOCK_SEC_DECIMAL = 1 << 4,
- ELM_CLOCK_SEC_UNIT = 1 << 5,
- ELM_CLOCK_ALL = (1 << 6) - 1
+ ELM_CLOCK_NONE = 0, /**< Default value. Means that all digits are editable, when in edition mode. */
+ ELM_CLOCK_HOUR_DECIMAL = 1 << 0, /**< Decimal algarism of hours value should be editable */
+ ELM_CLOCK_HOUR_UNIT = 1 << 1, /**< Unit algarism of hours value should be editable */
+ ELM_CLOCK_MIN_DECIMAL = 1 << 2, /**< Decimal algarism of minutes value should be editable */
+ ELM_CLOCK_MIN_UNIT = 1 << 3, /**< Unit algarism of minutes value should be editable */
+ ELM_CLOCK_SEC_DECIMAL = 1 << 4, /**< Decimal algarism of seconds value should be editable */
+ ELM_CLOCK_SEC_UNIT = 1 << 5, /**< Unit algarism of seconds value should be editable */
+ ELM_CLOCK_ALL = (1 << 6) - 1 /**< All digits should be editable */
} Elm_Clock_Digedit;
+ /**
+ * Add a new clock widget to the given parent Elementary
+ * (container) object
+ *
+ * @param parent The parent object
+ * @return a new clock widget handle or @c NULL, on errors
+ *
+ * This function inserts a new clock widget on the canvas.
+ *
+ * @ingroup Clock
+ */
EAPI Evas_Object *elm_clock_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set a clock widget's time, programmatically
+ *
+ * @param obj The clock widget object
+ * @param hrs The hours to set
+ * @param min The minutes to set
+ * @param sec The secondes to set
+ *
+ * This function updates the time that is showed by the clock
+ * widget.
+ *
+ * Values @b must be set within the following ranges:
+ * - 0 - 23, for hours
+ * - 0 - 59, for minutes
+ * - 0 - 59, for seconds,
+ *
+ * even if the clock is not in "military" mode.
+ *
+ * @warning The behavior for values set out of those ranges is @b
+ * indefined.
+ *
+ * @ingroup Clock
+ */
EAPI void elm_clock_time_set(Evas_Object *obj, int hrs, int min, int sec) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get a clock widget's time values
+ *
+ * @param obj The clock object
+ * @param[out] hrs Pointer to the variable to get the hours value
+ * @param[out] min Pointer to the variable to get the minutes value
+ * @param[out] sec Pointer to the variable to get the seconds value
+ *
+ * This function gets the time set for @p obj, returning
+ * it on the variables passed as the arguments to function
+ *
+ * @note Use @c NULL pointers on the time values you're not
+ * interested in: they'll be ignored by the function.
+ *
+ * @ingroup Clock
+ */
EAPI void elm_clock_time_get(const Evas_Object *obj, int *hrs, int *min, int *sec) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set whether a given clock widget is under <b>edition mode</b> or
+ * under (default) displaying-only mode.
+ *
+ * @param obj The clock object
+ * @param edit @c EINA_TRUE to put it in edition, @c EINA_FALSE to
+ * put it back to "displaying only" mode
+ *
+ * This function makes a clock's time to be editable or not <b>by
+ * user interaction</b>. When in edition mode, clocks @b stop
+ * ticking, until one brings them back to canonical mode. The
+ * elm_clock_digit_edit_set() function will influence which digits
+ * of the clock will be editable. By default, all of them will be
+ * (#ELM_CLOCK_NONE).
+ *
+ * @note am/pm sheets, if being shown, will @b always be editable
+ * under edition mode.
+ *
+ * @see elm_clock_edit_get()
+ *
+ * @ingroup Clock
+ */
EAPI void elm_clock_edit_set(Evas_Object *obj, Eina_Bool edit) EINA_ARG_NONNULL(1);
+
+ /**
+ * Retrieve whether a given clock widget is under <b>edition
+ * mode</b> or under (default) displaying-only mode.
+ *
+ * @param obj The clock object
+ * @param edit @c EINA_TRUE, if it's in edition mode, @c EINA_FALSE
+ * otherwise
+ *
+ * This function retrieves whether the clock's time can be edited
+ * or not by user interaction.
+ *
+ * @see elm_clock_edit_set() for more details
+ *
+ * @ingroup Clock
+ */
EAPI Eina_Bool elm_clock_edit_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set what digits of the given clock widget should be editable
+ * when in edition mode.
+ *
+ * @param obj The clock object
+ * @param digedit Bit mask indicating the digits to be editable
+ * (values in #Elm_Clock_Digedit).
+ *
+ * If the @p digedit param is #ELM_CLOCK_NONE, editing will be
+ * disabled on @p obj (same effect as elm_clock_edit_set(), with @c
+ * EINA_FALSE).
+ *
+ * @see elm_clock_digit_edit_get()
+ *
+ * @ingroup Clock
+ */
EAPI void elm_clock_digit_edit_set(Evas_Object *obj, Elm_Clock_Digedit digedit) EINA_ARG_NONNULL(1);
+
+ /**
+ * Retrieve what digits of the given clock widget should be
+ * editable when in edition mode.
+ *
+ * @param obj The clock object
+ * @return Bit mask indicating the digits to be editable
+ * (values in #Elm_Clock_Digedit).
+ *
+ * @see elm_clock_digit_edit_set() for more details
+ *
+ * @ingroup Clock
+ */
EAPI Elm_Clock_Digedit elm_clock_digit_edit_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set if the given clock widget must show hours in military or
+ * am/pm mode
+ *
+ * @param obj The clock object
+ * @param am_pm @c EINA_TRUE to put it in am/pm mode, @c EINA_FALSE
+ * to military mode
+ *
+ * This function sets if the clock must show hours in military or
+ * am/pm mode. In some countries like Brazil the military mode
+ * (00-24h-format) is used, in opposition to the USA, where the
+ * am/pm mode is more commonly used.
+ *
+ * @see elm_clock_show_am_pm_get()
+ *
+ * @ingroup Clock
+ */
EAPI void elm_clock_show_am_pm_set(Evas_Object *obj, Eina_Bool am_pm) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get if the given clock widget shows hours in military or am/pm
+ * mode
+ *
+ * @param obj The clock object
+ * @return @c EINA_TRUE, if in am/pm mode, @c EINA_FALSE if in
+ * military
+ *
+ * This function gets if the clock shows hours in military or am/pm
+ * mode.
+ *
+ * @see elm_clock_show_am_pm_set() for more details
+ *
+ * @ingroup Clock
+ */
EAPI Eina_Bool elm_clock_show_am_pm_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set if the given clock widget must show time with seconds or not
+ *
+ * @param obj The clock object
+ * @param seconds @c EINA_TRUE to show seconds, @c EINA_FALSE otherwise
+ *
+ * This function sets if the given clock must show or not elapsed
+ * seconds. By default, they are @b not shown.
+ *
+ * @see elm_clock_show_seconds_get()
+ *
+ * @ingroup Clock
+ */
EAPI void elm_clock_show_seconds_set(Evas_Object *obj, Eina_Bool seconds) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get whether the given clock widget is showing time with seconds
+ * or not
+ *
+ * @param obj The clock object
+ * @return @c EINA_TRUE if it's showing seconds, @c EINA_FALSE otherwise
+ *
+ * This function gets whether @p obj is showing or not the elapsed
+ * seconds.
+ *
+ * @see elm_clock_show_seconds_set()
+ *
+ * @ingroup Clock
+ */
EAPI Eina_Bool elm_clock_show_seconds_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * Set the interval on time updates for an user mouse button hold
+ * on clock widgets' time edition.
+ *
+ * @param obj The clock object
+ * @param interval The (first) interval value in seconds
+ *
+ * This interval value is @b decreased while the user holds the
+ * mouse pointer either incrementing or decrementing a given the
+ * clock digit's value.
+ *
+ * This helps the user to get to a given time distant from the
+ * current one easier/faster, as it will start to flip quicker and
+ * quicker on mouse button holds.
+ *
+ * The calculation for the next flip 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 flips is
+ * @b 0.85 seconds.
+ *
+ * @see elm_clock_interval_get()
+ *
+ * @ingroup Clock
+ */
EAPI void elm_clock_interval_set(Evas_Object *obj, double interval) EINA_ARG_NONNULL(1);
+
+ /**
+ * Get the interval on time updates for an user mouse button hold
+ * on clock widgets' time edition.
+ *
+ * @param obj The clock object
+ * @return The (first) interval value, in seconds, set on it
+ *
+ * @see elm_clock_interval_set() for more details
+ *
+ * @ingroup Clock
+ */
EAPI double elm_clock_interval_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
- /* smart callbacks called:
- * "changed" - the user changed the time
+
+ /**
+ * @}
*/
/* layout */
EAPI void elm_layout_content_set(Evas_Object *obj, const char *swallow, Evas_Object *content) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_layout_content_get(const Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_layout_content_unset(Evas_Object *obj, const char *swallow) EINA_ARG_NONNULL(1);
- EAPI void elm_layout_text_set(Evas_Object *obj, const char *part, const char *text) EINA_ARG_NONNULL(1);
- EAPI const char *elm_layout_text_get(const Evas_Object *obj, const char *part) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI void elm_layout_text_set(Evas_Object *obj, const char *part, const char *text) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI const char *elm_layout_text_get(const Evas_Object *obj, const char *part) EINA_ARG_NONNULL(1);
EAPI void elm_layout_box_append(Evas_Object *obj, const char *part, Evas_Object *child) EINA_ARG_NONNULL(1);
EAPI void elm_layout_box_prepend(Evas_Object *obj, const char *part, Evas_Object *child) EINA_ARG_NONNULL(1);
EAPI void elm_layout_box_insert_before(Evas_Object *obj, const char *part, Evas_Object *child, const Evas_Object *reference) EINA_ARG_NONNULL(1);
* Elementary naming convention for its parts.
*
* @ingroup Layout
+ * @deprecate use elm_object_text_* instead.
*/
#define elm_layout_label_set(_ly, _txt) \
elm_layout_text_set((_ly), "elm.text", (_txt))
* Elementary naming convention for its parts.
*
* @ingroup Layout
+ * @deprecate use elm_object_text_* instead.
*/
#define elm_layout_label_get(_ly) \
elm_layout_text_get((_ly), "elm.text")
EAPI const char *elm_entry_selection_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_entry_entry_insert(Evas_Object *obj, const char *entry) EINA_ARG_NONNULL(1);
EAPI void elm_entry_line_wrap_set(Evas_Object *obj, Elm_Wrap_Type wrap) EINA_ARG_NONNULL(1);
+ EAPI Elm_Wrap_Type elm_entry_line_wrap_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_entry_editable_set(Evas_Object *obj, Eina_Bool editable) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_entry_editable_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_entry_select_none(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_entry_scrollbar_policy_set(Evas_Object *obj, Elm_Scroller_Policy h, Elm_Scroller_Policy v);
EAPI void elm_entry_bounce_set(Evas_Object *obj, Eina_Bool h_bounce, Eina_Bool v_bounce);
EAPI void elm_entry_bounce_get(const Evas_Object *obj, Eina_Bool *h_bounce, Eina_Bool *v_bounce);
-
+
/* pre-made filters for entries */
typedef struct _Elm_Entry_Filter_Limit_Size Elm_Entry_Filter_Limit_Size;
struct _Elm_Entry_Filter_Limit_Size
*
* Other markup can be used to style the text in different ways, but it's
* up to the style defined in the theme which tags do what.
+ * @deprecated use elm_object_text_set() instead.
*/
- EAPI void elm_anchorview_text_set(Evas_Object *obj, const char *text) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI void elm_anchorview_text_set(Evas_Object *obj, const char *text) EINA_ARG_NONNULL(1);
/**
* Get the markup text set for the anchorview
*
* @param obj The anchorview object
* @return The markup text set or @c NULL if nothing was set or an error
* occurred
+ * @deprecated use elm_object_text_set() instead.
*/
- EAPI const char *elm_anchorview_text_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI const char *elm_anchorview_text_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Set the parent of the hover popup
*
* @see Hover
*
* Since examples are usually better than plain words, we might as well
- * try one. This exampel will show both Anchorblock and @ref Anchorview,
+ * try @ref tutorial_anchorblock_example "one".
+ */
+ /**
+ * @page tutorial_anchorblock_example Anchorblock/Anchorview example
+ * This exampel will show both Anchorblock and @ref Anchorview,
* since both are very similar and it's easier to show them once and side
* by side, so the difference is more clear.
*
* @until evas_object_del(box)
* @until }
* @until }
- */
- /**
+ *
+ * The example will look like this:
+ * @image html screenshots/anchorblock_01.png
+ * @image latex screenshots/anchorblock_01.eps
+ *
* @example anchorblock_example_01.c
*/
/**
*
* Other markup can be used to style the text in different ways, but it's
* up to the style defined in the theme which tags do what.
+ * @deprecated use elm_object_text_set() instead.
*/
- EAPI void elm_anchorblock_text_set(Evas_Object *obj, const char *text) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI void elm_anchorblock_text_set(Evas_Object *obj, const char *text) EINA_ARG_NONNULL(1);
/**
* Get the markup text set for the anchorblock
*
* @param obj The anchorblock object
* @return The markup text set or @c NULL if nothing was set or an error
* occurred
+ * @deprecated use elm_object_text_set() instead.
*/
- EAPI const char *elm_anchorblock_text_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI const char *elm_anchorblock_text_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* Set the parent of the hover popup
*
* @}
*/
- /* bubble */
+ /**
+ * @defgroup Bubble Bubble
+ *
+ * @brief The Bubble is a widget to show text similarly to how speech is
+ * represented in comics.
+ *
+ * The bubble widget contains 5 important visual elements:
+ * @li The frame is a rectangle with rounded rectangles and an "arrow".
+ * @li The @p icon is an image to which the frame's arrow points to.
+ * @li The @p label is a text which appears to the right of the icon if the
+ * corner is "top_left" or "bottom_left" and is right aligned to the frame
+ * otherwise.
+ * @li The @p info is a text which appears to the right of the label. Info's
+ * font is of a ligther color than label.
+ * @li The @p content is an evas object that is shown inside the frame.
+ *
+ * The position of the arrow, icon, label and info depends on which corner is
+ * selected. The four available corners are:
+ * @li "top_left" - Default
+ * @li "top_right"
+ * @li "bottom_left"
+ * @li "bottom_right"
+ *
+ * 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".
+ *
+ * @{
+ */
+ /**
+ * Add a new bubble to the parent
+ *
+ * @param parent The parent object
+ * @return The new object or NULL if it cannot be created
+ *
+ * This function adds a text bubble to the given parent evas object.
+ */
EAPI Evas_Object *elm_bubble_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
- EAPI void elm_bubble_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
- EAPI const char *elm_bubble_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
- EAPI void elm_bubble_info_set(Evas_Object *obj, const char *info) EINA_ARG_NONNULL(1);
- EAPI const char *elm_bubble_info_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
-
+ /**
+ * Set the label of the bubble
+ *
+ * @param obj The bubble object
+ * @param label The string to set in the label
+ *
+ * This function sets the title of the bubble. Where this appears depends on
+ * the selected corner.
+ * @deprecated use elm_object_text_set() instead.
+ */
+ EINA_DEPRECATED EAPI void elm_bubble_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
+ /**
+ * Get the label of the bubble
+ *
+ * @param obj The bubble object
+ * @return The string of set in the label
+ *
+ * This function gets the title of the bubble.
+ * @deprecated use elm_object_text_set() instead.
+ */
+ EINA_DEPRECATED EAPI const char *elm_bubble_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * Set the info of the bubble
+ *
+ * @param obj The bubble object
+ * @param info The given info about the bubble
+ *
+ * This function sets the info of the bubble. Where this appears depends on
+ * the selected corner.
+ * @deprecated use elm_object_text_set() instead.
+ */
+ EINA_DEPRECATED EAPI void elm_bubble_info_set(Evas_Object *obj, const char *info) EINA_ARG_NONNULL(1);
+ /**
+ * Get the info of the bubble
+ *
+ * @param obj The bubble object
+ *
+ * @return The "info" string of the bubble
+ *
+ * This function gets the info text.
+ * @deprecated use elm_object_text_set() instead.
+ */
+ EINA_DEPRECATED EAPI const char *elm_bubble_info_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * Set the content to be shown in the bubble
+ *
+ * Once the content object is set, a previously set one will be deleted.
+ * If you want to keep the old content object, use the
+ * elm_bubble_content_unset() function.
+ *
+ * @param obj The bubble object
+ * @param content The given content of the bubble
+ *
+ * This function sets the content shown on the middle of the bubble.
+ */
EAPI void elm_bubble_content_set(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1);
+ /**
+ * Get the content shown in the bubble
+ *
+ * Return the content object which is set for this widget.
+ *
+ * @param obj The bubble object
+ * @return The content that is being used
+ */
EAPI Evas_Object *elm_bubble_content_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * Unset the content shown in the bubble
+ *
+ * Unparent and return the content object which was set for this widget.
+ *
+ * @param obj The bubble object
+ * @return The content that was being used
+ */
EAPI Evas_Object *elm_bubble_content_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * Set the icon of the bubble
+ *
+ * Once the icon object is set, a previously set one will be deleted.
+ * If you want to keep the old content object, use the
+ * elm_icon_content_unset() function.
+ *
+ * @param obj The bubble object
+ * @param icon The given icon for the bubble
+ */
EAPI void elm_bubble_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+ /**
+ * Get the icon of the bubble
+ *
+ * @param obj The bubble object
+ * @return The icon for the bubble
+ *
+ * This function gets the icon shown on the top left of bubble.
+ */
EAPI Evas_Object *elm_bubble_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * Unset the icon of the bubble
+ *
+ * Unparent and return the icon object which was set for this widget.
+ *
+ * @param obj The bubble object
+ * @return The icon that was being used
+ */
EAPI Evas_Object *elm_bubble_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+ /**
+ * Set the corner of the bubble
+ *
+ * @param obj The bubble object.
+ * @param corner The given corner for the bubble.
+ *
+ * This function sets the corner of the bubble. The corner will be used to
+ * determine where the arrow in the frame points to and where label, icon and
+ * info arre shown.
+ *
+ * Possible values for corner are:
+ * @li "top_left" - Default
+ * @li "top_right"
+ * @li "bottom_left"
+ * @li "bottom_right"
+ */
EAPI void elm_bubble_corner_set(Evas_Object *obj, const char *corner) EINA_ARG_NONNULL(1, 2);
+ /**
+ * Get the corner of the bubble
+ *
+ * @param obj The bubble object.
+ * @return The given corner for the bubble.
+ *
+ * This function gets the selected corner of the bubble.
+ */
EAPI const char *elm_bubble_corner_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
- /* smart callbacks called:
- * "clicked" - the user clicked the bubble
+ /**
+ * @}
*/
/* photo */
* "drag,end" - Dragged item was dropped (somewhere)
*/
+ /* gesture layer */
+ /** @defgroup Elm_Gesture_Layer Gesture Layer */
+ /**
+ * @enum _Elm_Gesture_Types
+ * Emum of supported gesture types.
+ * @ingroup Elm_Gesture_Layer
+ */
+ enum _Elm_Gesture_Types
+ {
+ ELM_GESTURE_FIRST = 0,
+
+ ELM_GESTURE_N_TAPS, /**< N fingers single taps */
+ ELM_GESTURE_N_DOUBLE_TAPS, /**< N fingers double-single taps */
+ ELM_GESTURE_N_TRIPLE_TAPS, /**< N fingers triple-single taps */
+
+ ELM_GESTURE_MOMENTUM, /**< Reports momentum in the dircetion of move */
+
+ ELM_GESTURE_N_LINES, /**< N fingers line gesture */
+ ELM_GESTURE_N_FLICKS, /**< N fingers flick gesture */
+
+ ELM_GESTURE_ZOOM, /**< Zoom */
+ ELM_GESTURE_ROTATE, /**< Rotate */
+
+ ELM_GESTURE_LAST
+ };
+
+ /**
+ * @typedef Elm_Gesture_Types
+ * Type for Emum of supported gesture types.
+ * @ingroup Elm_Gesture_Layer
+ */
+ typedef enum _Elm_Gesture_Types Elm_Gesture_Types;
+
+ /**
+ * @enum _Elm_Gesture_State
+ * Emum of gesture states.
+ * @ingroup Elm_Gesture_Layer
+ */
+ enum _Elm_Gesture_State
+ {
+ ELM_GESTURE_STATE_UNDEFINED = -1, /**< Gesture not STARTed */
+ ELM_GESTURE_STATE_START, /**< Gesture STARTed */
+ ELM_GESTURE_STATE_MOVE, /**< Gesture is ongoing */
+ ELM_GESTURE_STATE_END, /**< Gesture completed */
+ ELM_GESTURE_STATE_ABORT /**< Onging gesture was ABORTed */
+ };
+ /**
+ * @typedef Elm_Gesture_State
+ * gesture states.
+ * @ingroup Elm_Gesture_Layer
+ */
+ typedef enum _Elm_Gesture_State Elm_Gesture_State;
+
+ /**
+ * @struct _Elm_Gesture_Taps_Info
+ * Struct holds taps info for user
+ * @ingroup Elm_Gesture_Layer
+ */
+ struct _Elm_Gesture_Taps_Info
+ {
+ Evas_Coord x, y; /**< Holds center point between fingers */
+ unsigned int n; /**< Number of fingers tapped */
+ unsigned int timestamp; /**< event timestamp */
+ };
+
+ /**
+ * @typedef Elm_Gesture_Taps_Info
+ * holds taps info for user
+ * @ingroup Elm_Gesture_Layer
+ */
+ typedef struct _Elm_Gesture_Taps_Info Elm_Gesture_Taps_Info;
+
+ /**
+ * @struct _Elm_Gesture_Momentum_Info
+ * Struct holds momentum info for user
+ * x1 and y1 are not necessarily in sync
+ * x1 holds x value of x direction starting point
+ * and same holds for y1.
+ * This is noticeable when doing V-shape movement
+ * @ingroup Elm_Gesture_Layer
+ */
+ struct _Elm_Gesture_Momentum_Info
+ { /* Report line ends, timestamps, and momentum computed */
+ Evas_Coord x1; /**< Final-swipe direction starting point on X */
+ Evas_Coord y1; /**< Final-swipe direction starting point on Y */
+ Evas_Coord x2; /**< Final-swipe direction ending point on X */
+ Evas_Coord y2; /**< Final-swipe direction ending point on Y */
+
+ unsigned int tx; /**< Timestamp of start of final x-swipe */
+ unsigned int ty; /**< Timestamp of start of final y-swipe */
+
+ Evas_Coord mx; /**< Momentum on X */
+ Evas_Coord my; /**< Momentum on Y */
+ };
+
+ /**
+ * @typedef Elm_Gesture_Momentum_Info
+ * holds momentum info for user
+ * @ingroup Elm_Gesture_Layer
+ */
+ typedef struct _Elm_Gesture_Momentum_Info Elm_Gesture_Momentum_Info;
+
+ /**
+ * @struct _Elm_Gesture_Line_Info
+ * Struct holds line info for user
+ * @ingroup Elm_Gesture_Layer
+ */
+ struct _Elm_Gesture_Line_Info
+ { /* Report line ends, timestamps, and momentum computed */
+ Elm_Gesture_Momentum_Info momentum; /**< Line momentum info */
+ unsigned int n; /**< Number of fingers (lines) */
+ /* FIXME should be radians, bot degrees */
+ double angle; /**< Angle (direction) of lines */
+ };
+
+ /**
+ * @typedef _Elm_Gesture_Line_Info
+ * Holds line info for user
+ * @ingroup Elm_Gesture_Layer
+ */
+ typedef struct _Elm_Gesture_Line_Info Elm_Gesture_Line_Info;
+
+ /**
+ * @struct _Elm_Gesture_Zoom_Info
+ * Struct holds zoom info for user
+ * @ingroup Elm_Gesture_Layer
+ */
+ struct _Elm_Gesture_Zoom_Info
+ {
+ Evas_Coord x, y; /**< Holds zoom center point reported to user */
+ Evas_Coord radius; /**< Holds radius between fingers reported to user */
+ float zoom; /**< Zoom value: 1.0 means no zoom */
+ float momentum; /**< Zoom momentum: zoom growth per second (NOT YET SUPPORTED) */
+ };
+
+ /**
+ * @typedef Elm_Gesture_Zoom_Info
+ * Holds zoom info for user
+ * @ingroup Elm_Gesture_Layer
+ */
+ typedef struct _Elm_Gesture_Zoom_Info Elm_Gesture_Zoom_Info;
+
+ /**
+ * @struct _Elm_Gesture_Rotate_Info
+ * Struct holds rotation info for user
+ * @ingroup Elm_Gesture_Layer
+ */
+ struct _Elm_Gesture_Rotate_Info
+ {
+ Evas_Coord x, y; /**< Holds zoom center point reported to user */
+ Evas_Coord radius; /**< Holds radius between fingers reported to user */
+ double base_angle; /**< Holds start-angle */
+ double angle; /**< Rotation value: 0.0 means no rotation */
+ double momentum; /**< Rotation momentum: rotation done per second (NOT YET SUPPORTED) */
+ };
+
+ /**
+ * @typedef Elm_Gesture_Rotate_Info
+ * Holds rotation info for user
+ * @ingroup Elm_Gesture_Layer
+ */
+ typedef struct _Elm_Gesture_Rotate_Info Elm_Gesture_Rotate_Info;
+
+ /**
+ * @typedef Elm_Gesture_Event_Cb
+ * User callback used to stream gesture info from gesture layer
+ * @param data user data
+ * @param event_info gesture report info
+ * Returns a flag field to be applied on the causing event.
+ * You should probably return EVAS_EVENT_FLAG_ON_HOLD if your widget acted
+ * upon the event, in an irreversible way.
+ *
+ * @ingroup Elm_Gesture_Layer
+ */
+ typedef Evas_Event_Flags (*Elm_Gesture_Event_Cb) (void *data, void *event_info);
+
+ /**
+ * Use function to set callbacks to be notified about
+ * change of state of gesture.
+ * When a user registers a callback with this function
+ * this means this gesture has to be tested.
+ *
+ * When ALL callbacks for a gesture are set to NULL
+ * it means user isn't interested in gesture-state
+ * and it will not be tested.
+ *
+ * @param obj Pointer to gesture-layer.
+ * @param idx The gesture you would like to track its state.
+ * @param cb callback function pointer.
+ * @param cb_type what event this callback tracks: START, MOVE, END, ABORT.
+ * @param data user info to be sent to callback (usually, Smart Data)
+ *
+ * @ingroup Elm_Gesture_Layer
+ */
+ EAPI void elm_gesture_layer_cb_set(Evas_Object *obj, Elm_Gesture_Types idx, Elm_Gesture_State cb_type, Elm_Gesture_Event_Cb cb, void *data) EINA_ARG_NONNULL(1);
+
+ /**
+ * Call this function to get repeat-events settings.
+ *
+ * @param obj Pointer to gesture-layer.
+ *
+ * @return repeat events settings.
+ * @see elm_gesture_layer_hold_events_set()
+ * @ingroup Elm_Gesture_Layer
+ */
+ EAPI Eina_Bool elm_gesture_layer_hold_events_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
+
+ /**
+ * This function called in order to make gesture-layer repeat events.
+ * Set this of you like to get the raw events only if gestures were not detected.
+ * Clear this if you like gesture layer to fwd events as testing gestures.
+ *
+ * @param obj Pointer to gesture-layer.
+ * @param r Repeat: TRUE/FALSE
+ *
+ * @ingroup Elm_Gesture_Layer
+ */
+ EAPI void elm_gesture_layer_hold_events_set(Evas_Object *obj, Eina_Bool r) EINA_ARG_NONNULL(1);
+
+ /**
+ * This function sets step-value for zoom action.
+ * Set step to any positive value.
+ * Cancel step setting by setting to 0.0
+ *
+ * @param obj Pointer to gesture-layer.
+ * @param s new zoom step value.
+ *
+ * @ingroup Elm_Gesture_Layer
+ */
+ EAPI void elm_gesture_layer_zoom_step_set(Evas_Object *obj, double s) EINA_ARG_NONNULL(1);
+
+ /**
+ * This function sets step-value for rotate action.
+ * Set step to any positive value.
+ * Cancel step setting by setting to 0.0
+ *
+ * @param obj Pointer to gesture-layer.
+ * @param s new roatate step value.
+ *
+ * @ingroup Elm_Gesture_Layer
+ */
+ EAPI void elm_gesture_layer_rotate_step_set(Evas_Object *obj, double s) EINA_ARG_NONNULL(1);
+
+ /**
+ * This function called to attach gesture-layer to an Evas_Object.
+ * @param obj Pointer to gesture-layer.
+ * @param t Pointer to underlying object (AKA Target)
+ *
+ * @return TRUE, FALSE on success, failure.
+ *
+ * @ingroup Elm_Gesture_Layer
+ */
+ EAPI Eina_Bool elm_gesture_layer_attach(Evas_Object *obj, Evas_Object *t) EINA_ARG_NONNULL(1, 2);
+
+ /**
+ * Call this function to construct a new gesture-layer object.
+ * This does not activate the gesture layer. You have to
+ * call elm_gesture_layer_attach in order to 'activate' gesture-layer.
+ *
+ * @param parent the parent object.
+ *
+ * @return Pointer to new gesture-layer object.
+ *
+ * @ingroup Elm_Gesture_Layer
+ */
+ EAPI Evas_Object *elm_gesture_layer_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
+
/* thumb */
typedef enum _Elm_Thumb_Animation_Setting
{
EAPI Eina_Bool elm_hoversel_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_hoversel_hover_parent_set(Evas_Object *obj, Evas_Object *parent) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_hoversel_hover_parent_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
- EAPI void elm_hoversel_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
- EAPI const char *elm_hoversel_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI void elm_hoversel_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI const char *elm_hoversel_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_hoversel_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_hoversel_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_hoversel_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
/* slider */
EAPI Evas_Object *elm_slider_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
- EAPI void elm_slider_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
- EAPI const char *elm_slider_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI void elm_slider_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI const char *elm_slider_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_slider_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_slider_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_slider_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI const char *elm_slider_unit_format_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_slider_indicator_format_set(Evas_Object *obj, const char *indicator) EINA_ARG_NONNULL(1);
EAPI const char *elm_slider_indicator_format_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
- EAPI void elm_slider_indicator_format_function_set(Evas_Object *obj, const char *(*func)(double val)) EINA_ARG_NONNULL(1);
+ EAPI void elm_slider_indicator_format_function_set(Evas_Object *obj, const char *(*func)(double val), void (*free_func)(const char *str)) EINA_ARG_NONNULL(1);
+ EAPI void elm_slider_units_format_function_set(Evas_Object *obj, const char *(*func)(double val), void (*free_func)(const char *str)) EINA_ARG_NONNULL(1);
EAPI void elm_slider_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_slider_horizontal_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_slider_min_max_set(Evas_Object *obj, double min, double max) EINA_ARG_NONNULL(1);
* @param left_label The label to be set on the left.
* @param center_label The label to be set on the center.
* @param right_label The label to be set on the right.
+ * @deprecated use elm_object_text_set() instead.
*/
- EAPI void elm_actionslider_labels_set(Evas_Object *obj, const char *left_label, const char *center_label, const char *right_label) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI void elm_actionslider_labels_set(Evas_Object *obj, const char *left_label, const char *center_label, const char *right_label) EINA_ARG_NONNULL(1);
/**
* Get actionslider labels.
*
* @param left_label A char** to place the left_label of @p obj into.
* @param center_label A char** to place the center_label of @p obj into.
* @param right_label A char** to place the right_label of @p obj into.
+ * @deprecated use elm_object_text_set() instead.
*/
- EAPI void elm_actionslider_labels_get(const Evas_Object *obj, const char **left_label, const char **center_label, const char **right_label) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI void elm_actionslider_labels_get(const Evas_Object *obj, const char **left_label, const char **center_label, const char **right_label) EINA_ARG_NONNULL(1);
/**
* Get actionslider selected label.
*
*
* @param obj The actionslider object
* @param label The label to be set on the indicator.
+ * @deprecated use elm_object_text_set() instead.
*/
- EAPI void elm_actionslider_indicator_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI void elm_actionslider_indicator_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
/**
* Get the label used on the indicator object.
*
* @param obj The actionslider object
* @return The indicator label
+ * @deprecated use elm_object_text_set() instead.
*/
- EAPI const char *elm_actionslider_indicator_label_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI const char *elm_actionslider_indicator_label_get(Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* @}
*/
GenlistItemIconGetFunc icon_get;
GenlistItemStateGetFunc state_get;
GenlistItemDelFunc del;
- GenlistItemMovedFunc moved;
+ GenlistItemMovedFunc moved; // TODO: do not use this. change this to smart callback.
} func;
const char *mode_item_style;
};
/* check */
EAPI Evas_Object *elm_check_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
- EAPI void elm_check_label_set(Evas_Object *obj, const char *label); EINA_ARG_NONNULL(1)
- EAPI const char *elm_check_label_get(const Evas_Object *obj); EINA_ARG_NONNULL(1)
- EAPI void elm_check_icon_set(Evas_Object *obj, Evas_Object *icon); EINA_ARG_NONNULL(1)
- EAPI Evas_Object *elm_check_icon_get(const Evas_Object *obj); EINA_ARG_NONNULL(1)
- EAPI Evas_Object *elm_check_icon_unset(Evas_Object *obj); EINA_ARG_NONNULL(1)
- EAPI void elm_check_state_set(Evas_Object *obj, Eina_Bool state); EINA_ARG_NONNULL(1)
- EAPI Eina_Bool elm_check_state_get(const Evas_Object *obj); EINA_ARG_NONNULL(1)
- EAPI void elm_check_state_pointer_set(Evas_Object *obj, Eina_Bool *statep); EINA_ARG_NONNULL(1)
+ EINA_DEPRECATED EAPI void elm_check_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI const char *elm_check_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EAPI void elm_check_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
+ EAPI Evas_Object *elm_check_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EAPI Evas_Object *elm_check_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EAPI void elm_check_state_set(Evas_Object *obj, Eina_Bool state) EINA_ARG_NONNULL(1);
+ EAPI Eina_Bool elm_check_state_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EAPI void elm_check_state_pointer_set(Evas_Object *obj, Eina_Bool *statep) EINA_ARG_NONNULL(1);
/* smart callbacks called:
* "changed" - This is called whenever the user changes the state of one of the check object.
*/
/* radio */
EAPI Evas_Object *elm_radio_add(Evas_Object *parent) EINA_ARG_NONNULL(1);
- EAPI void elm_radio_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
- EAPI const char *elm_radio_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI void elm_radio_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI const char *elm_radio_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_radio_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_radio_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_radio_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_progressbar_pulse(Evas_Object *obj, Eina_Bool state) EINA_ARG_NONNULL(1);
EAPI void elm_progressbar_value_set(Evas_Object *obj, double val) EINA_ARG_NONNULL(1);
EAPI double elm_progressbar_value_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
- EAPI void elm_progressbar_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
- EAPI const char *elm_progressbar_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI void elm_progressbar_label_set(Evas_Object *obj, const char *label) EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI const char *elm_progressbar_label_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI void elm_progressbar_icon_set(Evas_Object *obj, Evas_Object *icon) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_progressbar_icon_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_progressbar_icon_unset(Evas_Object *obj) EINA_ARG_NONNULL(1);
/* Route */
EAPI Evas_Object *elm_route_add(Evas_Object *parent);
#ifdef ELM_EMAP
- EAPI Eina_Bool elm_route_emap_set(Evas_Object *obj, EMap_Route *emap);
+ EAPI void elm_route_emap_set(Evas_Object *obj, EMap_Route *emap);
#endif
EAPI double elm_route_lon_min_get(Evas_Object *obj);
EAPI double elm_route_lat_min_get(Evas_Object *obj);
* 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.
*/
EINA_DEPRECATED EAPI Elm_Animator* elm_animator_add(Evas_Object *parent);
/**
* automatically called when the parent is deleted.
*
* @param[in] animator Animator object
+ * @deprecated Use @ref Transit instead.
*/
EINA_DEPRECATED EAPI void elm_animator_del(Elm_Animator *animator) EINA_ARG_NONNULL(1);
/**
*
* @param[in] animator Animator object
* @param[in] duration Duration in second
+ * @deprecated Use @ref Transit instead.
*/
EINA_DEPRECATED EAPI void elm_animator_duration_set(Elm_Animator *animator, double duration) EINA_ARG_NONNULL(1);
/**
* 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.
*/
EINA_DEPRECATED EAPI void elm_animator_operation_callback_set(Elm_Animator *animator, Elm_Animator_Operation_Cb func, void *data) EINA_ARG_NONNULL(1);
/**
* @param[in] data Callback function user argument
*
* @warning @a func will not be executed if elm_animator_stop() is called.
+ * @deprecated Use @ref Transit instead.
*/
EINA_DEPRECATED EAPI void elm_animator_completion_callback_set(Elm_Animator *animator, Elm_Animator_Completion_Cb func, void *data) EINA_ARG_NONNULL(1);
/**
* 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.
*/
EINA_DEPRECATED EAPI void elm_animator_stop(Elm_Animator *animator) EINA_ARG_NONNULL(1);
/**
*
* @param[in] animator Animator object
* @param[in] repeat_cnt Repeat count
+ * @deprecated Use @ref Transit instead.
*/
EINA_DEPRECATED EAPI void elm_animator_repeat_set(Elm_Animator *animator, unsigned int repeat_cnt) EINA_ARG_NONNULL(1);
/**
* 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.
*/
EINA_DEPRECATED EAPI void elm_animator_animate(Elm_Animator *animator) EINA_ARG_NONNULL(1);
/**
*
* @param[in] animator Animator object
* @param[in] cs Curve style. Default is ELM_ANIMATOR_CURVE_LINEAR
+ * @deprecated Use @ref Transit instead.
*/
EINA_DEPRECATED EAPI void elm_animator_curve_style_set(Elm_Animator *animator, Elm_Animator_Curve_Style cs) EINA_ARG_NONNULL(1);
/**
*
* @param[in] animator Animator object
* @param[in] cs Curve style. Default is ELM_ANIMATOR_CURVE_LINEAR
+ * @deprecated Use @ref Transit instead.
*/
- EINA_DEPRECATED EAPI Elm_Animator_Curve_Style elm_animator_curve_style_get(const Elm_Animator *animator); EINA_ARG_NONNULL(1);
+ EINA_DEPRECATED EAPI Elm_Animator_Curve_Style elm_animator_curve_style_get(const Elm_Animator *animator) EINA_ARG_NONNULL(1);
/**
* @brief Sets wether the animation should be automatically reversed.
*
* 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.
*/
EINA_DEPRECATED EAPI void elm_animator_auto_reverse_set(Elm_Animator *animator, Eina_Bool reverse) EINA_ARG_NONNULL(1);
/**
* Gets wether the animation will automatically reversed
*
* @param[in] animator Animator object
+ * @deprecated Use @ref Transit instead.
*/
EINA_DEPRECATED EAPI Eina_Bool elm_animator_auto_reverse_get(const Elm_Animator *animator) EINA_ARG_NONNULL(1);
/**
* or through elm_animator_stop()).
*
* @param[in] animator Animator object
+ * @deprecated Use @ref Transit instead.
*/
EINA_DEPRECATED EAPI Eina_Bool elm_animator_operating_get(const Elm_Animator *animator) EINA_ARG_NONNULL(1);
/**
* Gets how many times the animation will be repeated
*
* @param[in] animator Animator object
+ * @deprecated Use @ref Transit instead.
*/
EINA_DEPRECATED EAPI unsigned int elm_animator_repeat_get(const Elm_Animator *animator) EINA_ARG_NONNULL(1);
/**
* 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.
*/
EINA_DEPRECATED EAPI void elm_animator_pause(Elm_Animator *animator) EINA_ARG_NONNULL(1);
/**
* 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.
*/
EINA_DEPRECATED EAPI void elm_animator_resume(Elm_Animator *animator) EINA_ARG_NONNULL(1);
/**
* "selected" - when item is selected (scroller stops)
*/
- /* colorselector */
+ /**
+ * @page tutorial_colorselector Color selector example
+ * @dontinclude colorselector_example_01.c
+ *
+ * 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)
+ *
+ * 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
+ *
+ * Next we tell ask to be notified whenever the color changes:
+ * @until changed
+ *
+ * We follow that we some more run of the mill setup code:
+ * @until ELM_MAIN()
+ *
+ * And now get to the callback that sets the color of the rectangle:
+ * @until }
+ *
+ * This example will look like this:
+ * @image html screenshots/colorselector_example_01.png
+ * @image latex screenshots/colorselector_example_01.eps
+ *
+ * @example colorselector_example_01.c
+ */
+ /**
+ * @defgroup Colorselector Colorselector
+ *
+ * @{
+ *
+ * @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);
- /* smart callbacks called:
- * "changed" - when the color value changes
+ /**
+ * @}
*/
/* Contextual Popup */
* It's also possible to make a transition chain with @ref
* elm_transit_chain_transit_add.
*
- * @warning We strongly recomend to use elm_transit just when edje can not do
+ * @warning We strongly recommend to use elm_transit just when edje can not do
* the trick. Edje has more advantage than Elm_Transit, it has more flexibility and
* animations can be manipulated inside the theme.
*
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_video_add(Evas_Object *parent);
+ EAPI void elm_video_file_set(Evas_Object *video, const char *filename);
+ EAPI void elm_video_uri_set(Evas_Object *video, const char *uri);
+ EAPI Evas_Object *elm_video_emotion_get(Evas_Object *video);
+ EAPI void elm_video_play(Evas_Object *video);
+ EAPI void elm_video_pause(Evas_Object *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);
+ EAPI void elm_video_audio_mute_set(Evas_Object *video, Eina_Bool mute);
+ EAPI double elm_video_audio_level_get(Evas_Object *video);
+ EAPI void elm_video_audio_level_set(Evas_Object *video, double volume);
+ EAPI double elm_video_play_position_get(Evas_Object *video);
+ EAPI void elm_video_play_position_set(Evas_Object *video, double position);
+ EAPI double elm_video_play_length_get(Evas_Object *video);
+ EAPI void elm_video_remember_position_set(Evas_Object *video, Eina_Bool remember);
+ EAPI Eina_Bool elm_video_remember_position_get(Evas_Object *video);
+ EAPI const char *elm_video_title_get(Evas_Object *video);
+
+ EAPI Evas_Object *elm_player_add(Evas_Object *parent);
+ EAPI void elm_player_video_set(Evas_Object *player, Evas_Object *video);
+
#ifdef __cplusplus
}
#endif