106 lines
4.3 KiB
C
106 lines
4.3 KiB
C
/**
|
|
* @addtogroup Elm_Box
|
|
*
|
|
* @{
|
|
*/
|
|
|
|
/**
|
|
* @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;
|
|
|
|
/**
|
|
* Special layout function that animates the transition from one layout to another
|
|
*
|
|
* @param obj The object.
|
|
* @param priv The smart object instance data.
|
|
* @param data Data will be passed to function.
|
|
*
|
|
* 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 duration The duration of the transition in seconds
|
|
* @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_data Data param passed to @p end_layout
|
|
* @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, Ecore_Cb start_layout_free_data, Evas_Object_Box_Layout end_layout, void *end_layout_data, Ecore_Cb end_layout_free_data, Ecore_Cb transition_end_cb, void *transition_end_data);
|
|
|
|
/**
|
|
* 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);
|
|
|
|
/**
|
|
* @}
|
|
*/
|