summaryrefslogtreecommitdiff
path: root/src/lib/evas/canvas/efl_canvas_scene.eo
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/evas/canvas/efl_canvas_scene.eo')
-rw-r--r--src/lib/evas/canvas/efl_canvas_scene.eo244
1 files changed, 244 insertions, 0 deletions
diff --git a/src/lib/evas/canvas/efl_canvas_scene.eo b/src/lib/evas/canvas/efl_canvas_scene.eo
new file mode 100644
index 0000000..b31f0ba
--- /dev/null
+++ b/src/lib/evas/canvas/efl_canvas_scene.eo
@@ -0,0 +1,244 @@
1import efl_input_device;
2import efl_gfx_types;
3
4interface Efl.Canvas.Scene
5{
6 [[Interface containing basic canvas-related methods and events.
7
8 @since 1.22
9 ]]
10 methods {
11 @property image_max_size {
12 [[The maximum image size the canvas can possibly handle.
13
14 This function returns the largest image or surface size that
15 the canvas can handle in pixels, and if there is one, returns $true.
16 It returns $false if no extra constraint on maximum image
17 size exists.
18
19 The default limit is 65535x65535.
20
21 ]]
22 get {
23 return: bool; [[$true on success, $false otherwise]]
24 }
25 values {
26 max: Eina.Size2D; [[The maximum image size (in pixels).]]
27 }
28 }
29 group_objects_calculate {
30 [[Call user-provided $calculate group functions and unset the
31 flag signalling that the object needs to get recalculated to
32 all group objects in the canvas.
33 ]]
34 }
35 @property group_objects_calculating {
36 [[Get if the canvas is currently calculating group objects.]]
37 get {
38 }
39 values {
40 calculating: bool; [[$true if currently calculating group objects.]]
41 }
42 }
43 objects_at_xy_get {
44 [[Retrieve a list of objects at a given position in a canvas.
45
46 This function will traverse all the layers of the given canvas,
47 from top to bottom, querying for objects with areas covering the
48 given position. The user can exclude from the query objects which are
49 hidden and/or which are set to pass events.
50
51 Warning: This function will only evaluate top-level objects; child
52 or "sub" objects will be skipped.
53 ]]
54 return: iterator<Efl.Gfx.Entity> @move @no_unused; [[
55 The list of objects that are over the given position in $e.
56 ]]
57 params {
58 @in pos: Eina.Position2D; [[The pixel position.]]
59 @in include_pass_events_objects: bool; [[
60 Boolean flag to include or not objects which pass events
61 in this calculation.
62 ]]
63 @in include_hidden_objects: bool; [[
64 Boolean flag to include or not hidden objects in this
65 calculation.
66 ]]
67 }
68 }
69 object_top_at_xy_get @const {
70 [[Retrieve the object stacked at the top of a given position
71 in a canvas.
72
73 This function will traverse all the layers of the given canvas,
74 from top to bottom, querying for objects with areas covering the
75 given position. The user can exclude from the query objects which are
76 hidden and/or which are set to pass events.
77
78 Warning: This function will only evaluate top-level objects; child
79 or "sub" objects will be skipped.
80 ]]
81 return: Efl.Gfx.Entity @no_unused; [[The canvas object that is over all other objects at the given position.]]
82 params {
83 @in pos: Eina.Position2D; [[The pixel position.]]
84 @in include_pass_events_objects: bool; [[
85 Boolean flag to include or not objects which pass events
86 in this calculation.
87 ]]
88 @in include_hidden_objects: bool; [[
89 Boolean flag to include or not hidden objects in this
90 calculation.
91 ]]
92 }
93 }
94 objects_in_rectangle_get {
95 [[Retrieve a list of objects overlapping a given rectangular region in a canvas.
96
97 This function will traverse all the layers of the given canvas,
98 from top to bottom, querying for objects with areas overlapping
99 with the given rectangular region. The user can exclude
100 from the query objects which are hidden and/or which are set to
101 pass events.
102
103 Warning: This function will only evaluate top-level objects; child
104 or "sub" objects will be skipped.
105 ]]
106 return: iterator<Efl.Gfx.Entity> @move @no_unused; [[Iterator to objects]]
107 params {
108 @in rect: Eina.Rect; [[The rectangular region.]]
109 @in include_pass_events_objects: bool; [[
110 Boolean flag to include or not objects which pass events
111 in this calculation.
112 ]]
113 @in include_hidden_objects: bool; [[
114 Boolean flag to include or not hidden objects in this
115 calculation.
116 ]]
117 }
118 }
119 object_top_in_rectangle_get @const {
120 [[Retrieve the canvas object stacked at the top of a given
121 rectangular region in a canvas
122
123 This function will traverse all the layers of the given canvas,
124 from top to bottom, querying for objects with areas overlapping
125 with the given rectangular region. The user can exclude
126 from the query objects which are hidden and/or which are set to
127 pass events.
128
129 Warning: This function will only evaluate top-level objects; child
130 or "sub" objects will be skipped.
131 ]]
132 return: Efl.Gfx.Entity @no_unused; [[
133 The object that is over all other objects at the given
134 rectangular region.
135 ]]
136 params {
137 @in rect: Eina.Rect; [[The rectangular region.]]
138 @in include_pass_events_objects: bool; [[
139 Boolean flag to include or not objects which pass events
140 in this calculation.
141 ]]
142 @in include_hidden_objects: bool; [[
143 Boolean flag to include or not hidden objects in this
144 calculation.
145 ]]
146 }
147 }
148 /* FIXME Efl.Input.Device is not stable yet*/
149 seats @beta {
150 [[Iterate over the available input device seats for the canvas.
151
152 A "seat" is the term used for a group of input devices, typically including
153 a pointer and a keyboard. A seat object is the parent of the individual input
154 devices.
155 ]]
156 return: iterator<Efl.Input.Device> @move;
157 [[An iterator over the attached seats.]]
158 }
159 /* FIXME Efl.Input.Device is not stable yet*/
160 @property device @beta{
161 [[An input device attached to this canvas, found by name.
162
163 Note: This function is meant to find seats and not individual
164 input devices.
165
166 See also @.seat to find a seat by id instead of by name.
167 ]]
168 get {
169 [[Get a device by name.]]
170 }
171 keys {
172 name: string; [[The name of the seat to find.]]
173 }
174 values {
175 seat: Efl.Input.Device; [[The device or seat, $null if not found.]]
176 }
177 }
178 /* FIXME Efl.Input.Device is not stable yet*/
179 @property seat @beta {
180 [[Get a seat attached to this canvas using the seat's id property.
181
182 Seats are associated with an arbitrary integer id. The id is not a
183 persistent value and should never be hardcoded, as it may change between
184 runs of an application depending on the environment.
185
186 See also @.device to find a seat by name instead of by id.
187 ]]
188 get {
189 [[Get a seat by id.]]
190 }
191 keys {
192 id: int; [[The id of the seat to find.]]
193 }
194 values {
195 seat: Efl.Input.Device; [[The seat or $null if not found.]]
196 }
197 }
198 /* FIXME Efl.Input.Device is not stable yet*/
199 @property seat_default @beta {
200 [[Get the default seat attached to this canvas.
201
202 A canvas may have exactly one default seat.
203
204 See also @.device to find a seat by name.
205 See also @.seat to find a seat by id.
206 ]]
207 get {
208 [[Get the default seat.]]
209 }
210 values {
211 seat: Efl.Input.Device; [[The default seat or $null if one does not exist.]]
212 }
213 }
214 /* FIXME Efl.Input.Device is not stable yet*/
215 @property pointer_position @beta {
216 [[The current known pointer coordinates.
217
218 This function returns the current position of the main input
219 pointer (mouse, pen, etc...).
220 ]]
221 get {
222 return: bool; [[$true if a pointer exists for the given seat, otherwise $false.]]
223 }
224 keys {
225 seat: Efl.Input.Device; [[The seat, or $null to use the default.]]
226 }
227 values {
228 pos: Eina.Position2D; [[The pointer position in pixels.]]
229 }
230 }
231 }
232 events {
233 scene,focus,in: void; [[Called when scene got focus]]
234 scene,focus,out: void; [[Called when scene lost focus]]
235 object,focus,in: Efl.Input.Focus; [[Called when object got focus]]
236 object,focus,out: Efl.Input.Focus; [[Called when object lost focus]]
237 render,pre: void; [[Called when pre render happens]]
238 /* tag nullable once supported by eolian */
239 render,post @beta: Efl.Gfx.Event.Render_Post; [[Called when post render happens]]
240 device,changed @beta : Efl.Input.Device; [[Called when input device changed]]
241 device,added @beta: Efl.Input.Device; [[Called when input device was added]]
242 device,removed @beta : Efl.Input.Device; [[Called when input device was removed]]
243 }
244}