Pointer (Mouse) Functions
[Canvas Functions]

Functions that deal with the status of the pointer (mouse cursor). More...

Functions

EAPI void evas_pointer_output_xy_get (const Evas *e, int *x, int *y)
 This function returns the current known pointer co-ordinates.
EAPI void evas_pointer_canvas_xy_get (const Evas *e, Evas_Coord *x, Evas_Coord *y)
 This function returns the current known pointer co-ordinates.
EAPI int evas_pointer_button_down_mask_get (const Evas *e)
 Returns a bitmask with the mouse buttons currently pressed, set to 1.
EAPI Eina_Bool evas_pointer_inside_get (const Evas *e)
 Returns whether the mouse pointer is logically inside the canvas.

Detailed Description

Functions that deal with the status of the pointer (mouse cursor).


Function Documentation

EAPI int evas_pointer_button_down_mask_get ( const Evas e  ) 

Returns a bitmask with the mouse buttons currently pressed, set to 1.

Parameters:
e The pointer to the Evas Canvas
Returns:
A bitmask of the currently depressed buttons on the cavas

Calling this function will return a 32-bit integer with the appropriate bits set to 1 that correspond to a mouse button being depressed. This limits Evas to a mouse devices with a maximum of 32 buttons, but that is generally in excess of any host system's pointing device abilities.

A canvas by default begins with no mouse buttons being pressed and only calls to evas_event_feed_mouse_down(), evas_event_feed_mouse_down_data(), evas_event_feed_mouse_up() and evas_event_feed_mouse_up_data() will alter that.

The least significant bit corresponds to the first mouse button (button 1) and the most significant bit corresponds to the last mouse button (button 32).

If e is not a valid canvas, the return value is undefined.

Example:

 extern Evas *evas;
 int button_mask, i;

 button_mask = evas_pointer_button_down_mask_get(evas);
 printf("Buttons currently pressed:\n");
 for (i = 0; i < 32; i++)
   {
     if ((button_mask & (1 << i)) != 0) printf("Button %i\n", i + 1);
   }
EAPI void evas_pointer_canvas_xy_get ( const Evas e,
Evas_Coord *  x,
Evas_Coord *  y 
)

This function returns the current known pointer co-ordinates.

Parameters:
e The pointer to the Evas Canvas
x The pointer to a Evas_Coord to be filled in
y The pointer to a Evas_Coord to be filled in

This function returns the current known canvas unit co-ordinates of the mouse pointer and sets the contents of the Evas_Coords pointed to by x and y to contain these co-ordinates. If e is not a valid canvas the results of this function are undefined.

Example:

 extern Evas *evas;
 Evas_Coord mouse_x, mouse_y;

 evas_pointer_output_xy_get(evas, &mouse_x, &mouse_y);
 printf("Mouse is at canvas position %f, %f\n", mouse_x, mouse_y);
EAPI Eina_Bool evas_pointer_inside_get ( const Evas e  ) 

Returns whether the mouse pointer is logically inside the canvas.

Parameters:
e The pointer to the Evas Canvas
Returns:
An integer that is 1 if the mouse is inside the canvas, 0 otherwise

When this function is called it will return a value of either 0 or 1, depending on if evas_event_feed_mouse_in(), evas_event_feed_mouse_in_data(), or evas_event_feed_mouse_out(), evas_event_feed_mouse_out_data() have been called to feed in a mouse enter event into the canvas.

A return value of 1 indicates the mouse is logically inside the canvas, and 0 implies it is logically outside the canvas.

A canvas begins with the mouse being assumed outside (0).

If e is not a valid canvas, the return value is undefined.

Example:

 extern Evas *evas;

 if (evas_pointer_inside_get(evas)) printf("Mouse is in!\n");
 else printf("Mouse is out!\n");
EAPI void evas_pointer_output_xy_get ( const Evas e,
int *  x,
int *  y 
)

This function returns the current known pointer co-ordinates.

Parameters:
e The pointer to the Evas Canvas
x The pointer to an integer to be filled in
y The pointer to an integer to be filled in

This function returns the current known screen/output co-ordinates of the mouse pointer and sets the contents of the integers pointed to by x and y to contain these co-ordinates. If e is not a valid canvas the results of this function are undefined.

Example:

 extern Evas *evas;
 int mouse_x, mouse_y;

 evas_pointer_output_xy_get(evas, &mouse_x, &mouse_y);
 printf("Mouse is at screen position %i, %i\n", mouse_x, mouse_y);