This example will show a flip with two rectangles on it(one blue, one green). Our example will allow the user to choose the animation the flip uses and to interact with it. To allow the user to choose the interaction mode we use radio buttons, we will however not explain them, if you would like to know more about radio buttons see Radio.
We start our example with the usual setup and then create the 2 rectangles we will use in our flip:
#include <Elementary.h>
static void _change_interaction(
void *data,
Evas_Object *obj,
void *event_info);
EAPI_MAIN int
{
Evas_Object *win, *rect, *rect2, *flip, *radio, *radio2, *radio3;
The next thing to do is to create our flip and set it's front and back content:
The next thing we do is set the interaction mode(which the user can later change) to the page animation:
elm_flip_interaction_set(flip, ELM_FLIP_INTERACTION_PAGE);
Setting a interaction mode however is not sufficient, we also need to choose which directions we allow interaction from, for this example we will use all of them:
We are also going to set the hintsize to the entire flip(in all directions) to make our flip very easy to interact with:
After that we create our radio buttons and start the main loop:
elm_object_text_set(radio, "page");
elm_radio_state_value_set(radio, ELM_FLIP_INTERACTION_PAGE);
elm_object_text_set(radio2, "cube");
elm_radio_state_value_set(radio2, ELM_FLIP_INTERACTION_CUBE);
elm_radio_group_add(radio2, radio);
elm_object_text_set(radio3, "rotate");
elm_radio_state_value_set(radio3, ELM_FLIP_INTERACTION_ROTATE);
elm_radio_group_add(radio3, radio);
return 0;
}
When the user clicks a radio button a function that changes the interaction mode and animates the flip is called:
static void
{
elm_flip_interaction_set(data, elm_radio_state_value_get(obj));
}
- Note
- The elm_flip_go() call here serves no purpose other than to illustrate that it's possible to animate the flip programmatically.
Our example will look like this:
- Note
- Since this is an animated example the screenshot doesn't do it justice, it is a good idea to compile it and see the animations.
@ ELM_POLICY_QUIT_LAST_WINDOW_CLOSED
quit when the application's last window is closed
Definition: elm_general.h:248
EAPI Evas_Object * elm_radio_add(Evas_Object *parent)
Add a new radio to the parent.
Definition: efl_ui_radio.c:420
#define EINA_UNUSED
Definition: eina_types.h:339
void elm_flip_interaction_direction_hitsize_set(Elm_Flip *obj, Elm_Flip_Direction dir, double hitsize)
Set the amount of the flip that is sensitive to interactive flip.
EAPI void elm_radio_value_set(Evas_Object *obj, int value)
Set the value of the radio group.
Definition: efl_ui_radio.c:427
void evas_object_smart_callback_add(Evas_Object *eo_obj, const char *event, Evas_Smart_Cb func, const void *data)
Add (register) a callback function to the smart event specified by event on the smart object obj.
Definition: evas_object_smart.c:1040
Efl_Canvas_Object Evas_Object
Definition: Evas_Common.h:180
void evas_object_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
Changes the size of the given Evas object.
Definition: evas_object_main.c:1236
void elm_object_part_content_set(Evas_Object *obj, const char *part, Evas_Object *content)
Set the content on part of a given container widget.
Definition: elm_main.c:1567
void elm_run(void)
Run Elementary's main loop.
Definition: elm_main.c:1362
#define ELM_MAIN()
macro to be used after the elm_main() function
Definition: elm_general.h:528
Evas_Object * elm_win_util_standard_add(const char *name, const char *title)
Adds a window object with standard setup.
Definition: efl_ui_win.c:9576
void evas_object_show(Evas_Object *eo_obj)
Makes the given Evas object visible.
Definition: evas_object_main.c:1814
#define EINA_TRUE
Definition: eina_types.h:539
Eina_Bool elm_policy_set(unsigned int policy, int value)
Set a new policy's value (for a given policy group/identifier).
Definition: elm_main.c:1385
Evas_Object * evas_object_rectangle_add(Evas *e)
Adds a rectangle to the given evas.
Definition: evas_object_rectangle.c:78
void elm_flip_interaction_direction_enabled_set(Elm_Flip *obj, Elm_Flip_Direction dir, Eina_Bool enabled)
Set which directions of the flip respond to interactive flip.
void evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
Move the given Evas object to the given location inside its canvas' viewport.
Definition: evas_object_main.c:1171
@ ELM_FLIP_ROTATE_XZ_CENTER_AXIS
Rotate XZ center axis flip mode.
Definition: efl_ui_flip_legacy.h:12
void elm_win_autodel_set(Eo *obj, Eina_Bool autodel)
Set the window's autodel state.
Definition: efl_ui_win.c:6188
EAPI Evas_Object * elm_flip_add(Evas_Object *parent)
Add a new flip to the parent.
Definition: efl_ui_flip.c:2370
void evas_object_color_set(Evas_Object *obj, int r, int g, int b, int a)
Sets the general/main color of the given Evas object to the given one.
Definition: evas_object_main.c:2024
@ ELM_POLICY_QUIT
under which circumstances the application should quit automatically.
Definition: elm_general.h:227