~~Title: Efl.Canvas.Scene~~
====== Efl.Canvas.Scene (interface) ======
===== Description =====
%%Interface containing basic canvas-related methods and events.%%
//Since 1.22//
{{page>:develop:api-include:efl:canvas:scene:description&nouser&nolink&nodate}}
===== Members =====
**[[:develop:api:efl:canvas:scene:property:device|device]]** //**(get)**//\\
> %%Get a device by name.%%
Efl_Input_Device *efl_canvas_scene_device_get(const Eo *obj, const char *name);
\\
**[[:develop:api:efl:canvas:scene:method:group_objects_calculate|group_objects_calculate]]**\\
> %%Call user-provided %%''calculate''%% group functions and unset the flag signalling that the object needs to get recalculated to all group objects in the canvas.%%
void efl_canvas_scene_group_objects_calculate(Eo *obj);
\\
**[[:develop:api:efl:canvas:scene:property:group_objects_calculating|group_objects_calculating]]** //**(get)**//\\
>
Eina_Bool efl_canvas_scene_group_objects_calculating_get(const Eo *obj);
\\
**[[:develop:api:efl:canvas:scene:property:image_max_size|image_max_size]]** //**(get)**//\\
>
Eina_Bool efl_canvas_scene_image_max_size_get(const Eo *obj, Eina_Size2D *max);
\\
**[[:develop:api:efl:canvas:scene:method:object_top_at_xy_get|object_top_at_xy_get]]**\\
> %%Retrieve the object stacked at the top of a given position in a canvas.%%
Efl_Gfx_Entity *efl_canvas_scene_object_top_at_xy_get(const Eo *obj, Eina_Position2D pos, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects);
\\
**[[:develop:api:efl:canvas:scene:method:object_top_in_rectangle_get|object_top_in_rectangle_get]]**\\
> %%Retrieve the canvas object stacked at the top of a given rectangular region in a canvas%%
Efl_Gfx_Entity *efl_canvas_scene_object_top_in_rectangle_get(const Eo *obj, Eina_Rect rect, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects);
\\
**[[:develop:api:efl:canvas:scene:method:objects_at_xy_get|objects_at_xy_get]]**\\
> %%Retrieve a list of objects at a given position in a canvas.%%
Eina_Iterator *efl_canvas_scene_objects_at_xy_get(Eo *obj, Eina_Position2D pos, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects);
\\
**[[:develop:api:efl:canvas:scene:method:objects_in_rectangle_get|objects_in_rectangle_get]]**\\
> %%Retrieve a list of objects overlapping a given rectangular region in a canvas.%%
Eina_Iterator *efl_canvas_scene_objects_in_rectangle_get(Eo *obj, Eina_Rect rect, Eina_Bool include_pass_events_objects, Eina_Bool include_hidden_objects);
\\
**[[:develop:api:efl:canvas:scene:property:pointer_position|pointer_position]]** //**(get)**//\\
>
Eina_Bool efl_canvas_scene_pointer_position_get(const Eo *obj, Efl_Input_Device *seat, Eina_Position2D *pos);
\\
**[[:develop:api:efl:canvas:scene:property:seat|seat]]** //**(get)**//\\
> %%Get a seat by id.%%
Efl_Input_Device *efl_canvas_scene_seat_get(const Eo *obj, int id);
\\
**[[:develop:api:efl:canvas:scene:property:seat_default|seat_default]]** //**(get)**//\\
> %%Get the default seat.%%
Efl_Input_Device *efl_canvas_scene_seat_default_get(const Eo *obj);
\\
**[[:develop:api:efl:canvas:scene:method:seats|seats]]**\\
> %%Iterate over the available input device seats for the canvas.%%
Eina_Iterator *efl_canvas_scene_seats(Eo *obj);
\\
===== Events =====
**[[:develop:api:efl:canvas:scene:event:device_added|device,added]]**\\
> %%Called when input device was added%%
EFL_CANVAS_SCENE_EVENT_DEVICE_ADDED(Efl_Input_Device *, @beta)
\\ **[[:develop:api:efl:canvas:scene:event:device_changed|device,changed]]**\\
> %%Called when input device changed%%
EFL_CANVAS_SCENE_EVENT_DEVICE_CHANGED(Efl_Input_Device *, @beta)
\\ **[[:develop:api:efl:canvas:scene:event:device_removed|device,removed]]**\\
> %%Called when input device was removed%%
EFL_CANVAS_SCENE_EVENT_DEVICE_REMOVED(Efl_Input_Device *, @beta)
\\ **[[:develop:api:efl:canvas:scene:event:object_focus_in|object,focus,in]]**\\
> %%Called when object got focus%%
EFL_CANVAS_SCENE_EVENT_OBJECT_FOCUS_IN(Efl_Input_Focus *)
\\ **[[:develop:api:efl:canvas:scene:event:object_focus_out|object,focus,out]]**\\
> %%Called when object lost focus%%
EFL_CANVAS_SCENE_EVENT_OBJECT_FOCUS_OUT(Efl_Input_Focus *)
\\ **[[:develop:api:efl:canvas:scene:event:render_post|render,post]]**\\
> %%Called when post render happens%%
EFL_CANVAS_SCENE_EVENT_RENDER_POST(Efl_Gfx_Event_Render_Post, @beta)
\\ **[[:develop:api:efl:canvas:scene:event:render_pre|render,pre]]**\\
> %%Called when pre render happens%%
EFL_CANVAS_SCENE_EVENT_RENDER_PRE(void)
\\ **[[:develop:api:efl:canvas:scene:event:scene_focus_in|scene,focus,in]]**\\
> %%Called when scene got focus%%
EFL_CANVAS_SCENE_EVENT_SCENE_FOCUS_IN(void)
\\ **[[:develop:api:efl:canvas:scene:event:scene_focus_out|scene,focus,out]]**\\
> %%Called when scene lost focus%%
EFL_CANVAS_SCENE_EVENT_SCENE_FOCUS_OUT(void)
\\