This example creates an Ecore_Evas(a window) and associates a background and a custom cursor for it.
We'll start looking at the association, which is quite simple. We choose to associate using ECORE_EVAS_OBJECT_ASSOCIATE_BASE to have it be resized with the window, since for a background that is what's most useful:
- Note
- If we didn't associate the background we'd need to listen to resize of Ecore_Evas and manually resize the background or have artifacts on our window.
We then check that the association worked:
printf("Association worked!\n");
Next we are going to set a custom cursor, for our cursor we are going to use a small green rectangle. Our cursor is going to be on layer 0(any lower and it would be below the background and thus invisible) and clicks will be computed as happening on pixel 1, 1 of the image:
evas_object_resize(cursor, 5, 10);
We then check every one of those parameters:
if (obj == cursor && layer == 0 && x == 1 && y == 1)
printf("Set cursor worked!\n");
Here you have the full-source of the code:
#include <Ecore.h>
static void
{
if (!flag)
{
}
else
flag = !flag;
}
int
main(void)
{
Ecore_Evas *ee;
int layer, x, y;
evas_object_resize(bg, 200, 200);
printf("Association worked!\n");
evas_object_resize(cursor, 5, 10);
if (obj == cursor && layer == 0 && x == 1 && y == 1)
printf("Set cursor worked!\n");
return 0;
}
EAPI Eina_Bool ecore_evas_object_associate(Ecore_Evas *ee, Evas_Object *obj, Ecore_Evas_Object_Associate_Flags flags)
Associates the given object to this ecore evas.
Definition: ecore_evas_util.c:222
EAPI Ecore_Evas * ecore_evas_new(const char *engine_name, int x, int y, int w, int h, const char *extra_options)
Creates a new Ecore_Evas based on engine name and common parameters.
Definition: ecore_evas.c:1059
EAPI int ecore_evas_shutdown(void)
Shuts down the Ecore_Evas system.
Definition: ecore_evas.c:668
EAPI void ecore_evas_object_cursor_set(Ecore_Evas *ee, Evas_Object *obj, int layer, int hot_x, int hot_y)
Sets the cursor for the default pointer device.
Definition: ecore_evas.c:1851
#define EINA_UNUSED
Definition: eina_types.h:321
EAPI void ecore_evas_free(Ecore_Evas *ee)
Frees an Ecore_Evas.
Definition: ecore_evas.c:1103
EAPI void ecore_evas_title_set(Ecore_Evas *ee, const char *t)
Sets the title of an Ecore_Evas' window.
Definition: ecore_evas.c:1547
EAPI int ecore_evas_init(void)
Inits the Ecore_Evas system.
Definition: ecore_evas.c:604
#define EINA_FALSE
Definition: eina_types.h:502
static void _mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
For all mouse* / multi_* functions wethen send this event to _event_process function.
Definition: elm_gesture_layer.c:863
Efl_Canvas_Object Evas_Object
Definition: Evas_Common.h:180
EAPI Evas * ecore_evas_get(const Ecore_Evas *ee)
Gets an Ecore_Evas's Evas.
Definition: ecore_evas.c:1320
EAPI Evas_Object * ecore_evas_cursor_unset(Ecore_Evas *ee)
Unsets the cursor of the default pointer device.
Definition: ecore_evas.c:1948
void evas_object_event_callback_add(Evas_Object *eo_obj, Evas_Callback_Type type, Evas_Object_Event_Cb func, const void *data)
Add (register) a callback function to a given Evas object event.
Definition: evas_callbacks.c:482
void ecore_main_loop_begin(void)
Runs the application main loop.
Definition: ecore_main.c:1279
void evas_object_show(Evas_Object *eo_obj)
Makes the given Evas object visible.
Definition: evas_object_main.c:1853
Eo Evas
Definition: Evas_Common.h:158
Mouse Button Down Event.
Definition: Evas_Common.h:406
unsigned char Eina_Bool
Definition: eina_types.h:496
Evas_Object * evas_object_rectangle_add(Evas *e)
Adds a rectangle to the given evas.
Definition: evas_object_rectangle.c:78
EAPI void ecore_evas_cursor_get(const Ecore_Evas *ee, Evas_Object **obj, int *layer, int *hot_x, int *hot_y)
Gets information about an Ecore_Evas' default pointer device.
Definition: ecore_evas.c:1908
EAPI Evas_Object * ecore_evas_object_associate_get(const Ecore_Evas *ee)
Gets the object associated with ee.
Definition: ecore_evas_util.c:282
EAPI void ecore_evas_show(Ecore_Evas *ee)
Shows an Ecore_Evas' window.
Definition: ecore_evas.c:1500
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:2063