summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYossi Kantor <yossi.kantor@samsung.com>2014-03-18 16:00:14 +0200
committerDaniel Zaoui <daniel.zaoui@samsung.com>2014-03-24 08:14:30 +0200
commit2be615916a019b82f772203ffd35aed4ff21732e (patch)
tree8de342f68e1e415716eff856184528d4eed030e0 /src
parenta9d38e6df72176ef497682d6265ddeb99372cfd1 (diff)
Eolian: Integration of Edje and Edje Edit
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am4
-rw-r--r--src/Makefile_Edje.am19
-rw-r--r--src/lib/edje/Edje_Eo.h11
-rw-r--r--src/lib/edje/Edje_Legacy.h2
-rw-r--r--src/lib/edje/edje.eo2507
-rw-r--r--src/lib/edje/edje_calc.c8
-rw-r--r--src/lib/edje/edje_callbacks.c16
-rw-r--r--src/lib/edje/edje_edit.c60
-rw-r--r--src/lib/edje/edje_edit.eo10
-rw-r--r--src/lib/edje/edje_embryo.c22
-rw-r--r--src/lib/edje/edje_external.c149
-rw-r--r--src/lib/edje/edje_load.c65
-rw-r--r--src/lib/edje/edje_lua2.c22
-rw-r--r--src/lib/edje/edje_message_queue.c46
-rw-r--r--src/lib/edje/edje_private.h12
-rw-r--r--src/lib/edje/edje_program.c166
-rw-r--r--src/lib/edje/edje_smart.c409
-rw-r--r--src/lib/edje/edje_util.c2662
-rw-r--r--src/lib/edje/edje_var.c4
19 files changed, 3351 insertions, 2843 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 30245e67dc..e277678667 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -6,7 +6,9 @@ BUILT_SOURCES =
6 6
7EOLIAN_FLAGS = \ 7EOLIAN_FLAGS = \
8 -I$(srcdir)/lib/eo \ 8 -I$(srcdir)/lib/eo \
9 -I$(srcdir)/lib/evas/canvas 9 -I$(srcdir)/lib/evas/canvas \
10 -I$(srcdir)/lib/edje
11
10 12
11DIST_SUBDIRS = 13DIST_SUBDIRS =
12SUBDIRS = 14SUBDIRS =
diff --git a/src/Makefile_Edje.am b/src/Makefile_Edje.am
index 2ecd3d449b..c0e261e91e 100644
--- a/src/Makefile_Edje.am
+++ b/src/Makefile_Edje.am
@@ -1,6 +1,21 @@
1 1
2### Library 2### Library
3 3
4BUILT_SOURCES += \
5 lib/edje/edje.eo.c \
6 lib/edje/edje.eo.h \
7 lib/edje/edje_edit.eo.c \
8 lib/edje/edje_edit.eo.h
9
10
11edjeeolianfilesdir = $(datadir)/eolian/include/edje-@VMAJ@
12edjeeolianfiles_DATA = \
13 lib/edje/edje.eo \
14 lib/edje/edje_edit.eo
15
16EXTRA_DIST += \
17 ${edjeeolianfiles_DATA}
18
4lib_LTLIBRARIES += lib/edje/libedje.la 19lib_LTLIBRARIES += lib/edje/libedje.la
5 20
6EDJE_COMMON_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ 21EDJE_COMMON_CPPFLAGS = -I$(top_builddir)/src/lib/efl \
@@ -22,6 +37,10 @@ lib/edje/Edje_Eo.h \
22lib/edje/Edje_Legacy.h \ 37lib/edje/Edje_Legacy.h \
23lib/edje/Edje_Edit.h 38lib/edje/Edje_Edit.h
24 39
40nodist_installed_edjemainheaders_DATA = \
41 lib/edje/edje.eo.h \
42 lib/edje/edje_edit.eo.h
43
25lib_edje_libedje_la_SOURCES = \ 44lib_edje_libedje_la_SOURCES = \
26lib/edje/edje_private.h \ 45lib/edje/edje_private.h \
27lib/edje/edje_container.h \ 46lib/edje/edje_container.h \
diff --git a/src/lib/edje/Edje_Eo.h b/src/lib/edje/Edje_Eo.h
index a63c966646..a780fa7c25 100644
--- a/src/lib/edje/Edje_Eo.h
+++ b/src/lib/edje/Edje_Eo.h
@@ -1,3 +1,5 @@
1#include "edje.eo.h"
2#if 0
1#define EDJE_OBJ_CLASS edje_object_class_get() 3#define EDJE_OBJ_CLASS edje_object_class_get()
2 4
3const Eo_Class *edje_object_class_get(void) EINA_CONST; 5const Eo_Class *edje_object_class_get(void) EINA_CONST;
@@ -297,7 +299,7 @@ enum
297 * 299 *
298 * @see edje_object_part_text_input_panel_variation_get 300 * @see edje_object_part_text_input_panel_variation_get
299 */ 301 */
300#define edje_obj_part_text_input_panel_variation_get(part, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_VARIATION_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(int *, ret) 302#define edje_obj_part_text_input_panel_layout_variation_get(part, ret) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_VARIATION_GET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(int *, ret)
301 303
302/** 304/**
303 * @def edje_obj_part_text_input_panel_variation_set 305 * @def edje_obj_part_text_input_panel_variation_set
@@ -310,7 +312,7 @@ enum
310 * 312 *
311 * @see edje_object_part_text_input_panel_variation_get 313 * @see edje_object_part_text_input_panel_variation_get
312 */ 314 */
313#define edje_obj_part_text_input_panel_variation_set(part, variation) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_VARIATION_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(int, variation) 315#define edje_obj_part_text_input_panel_layout_variation_set(part, variation) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_PART_TEXT_INPUT_PANEL_LAYOUT_VARIATION_SET), EO_TYPECHECK(const char *, part), EO_TYPECHECK(int, variation)
314 316
315/** 317/**
316 * @def edje_obj_part_text_autocapital_type_set 318 * @def edje_obj_part_text_autocapital_type_set
@@ -2278,10 +2280,15 @@ enum
2278 */ 2280 */
2279#define edje_obj_signal_emit(emission, source) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIGNAL_EMIT), EO_TYPECHECK(const char *, emission), EO_TYPECHECK(const char *, source) 2281#define edje_obj_signal_emit(emission, source) EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_SIGNAL_EMIT), EO_TYPECHECK(const char *, emission), EO_TYPECHECK(const char *, source)
2280 2282
2283#endif
2281/** 2284/**
2282 * @} 2285 * @}
2283 */ 2286 */
2287#include "edje_edit.eo.h"
2288#if 0
2284 2289
2285#define EDJE_EDIT_CLASS edje_edit_class_get() 2290#define EDJE_EDIT_CLASS edje_edit_class_get()
2286 2291
2287const Eo_Class *edje_edit_class_get(void) EINA_CONST; 2292const Eo_Class *edje_edit_class_get(void) EINA_CONST;
2293
2294#endif \ No newline at end of file
diff --git a/src/lib/edje/Edje_Legacy.h b/src/lib/edje/Edje_Legacy.h
index 34bcd83649..818a69052b 100644
--- a/src/lib/edje/Edje_Legacy.h
+++ b/src/lib/edje/Edje_Legacy.h
@@ -188,7 +188,7 @@ EAPI void edje_object_update_hints_set(Evas_Object *obj, Eina_Bool update);
188 * @param obj A handle to an Edje object. 188 * @param obj A handle to an Edje object.
189 * @return @c true if does, @c false if it doesn't. 189 * @return @c true if does, @c false if it doesn't.
190 */ 190 */
191EAPI Eina_Bool edje_object_update_hints_get(Evas_Object *obj); 191EAPI Eina_Bool edje_object_update_hints_get(const Evas_Object *obj);
192 192
193/** 193/**
194 * @brief Get the maximum size specified -- as an EDC property -- for a 194 * @brief Get the maximum size specified -- as an EDC property -- for a
diff --git a/src/lib/edje/edje.eo b/src/lib/edje/edje.eo
new file mode 100644
index 0000000000..1ec31476a7
--- /dev/null
+++ b/src/lib/edje/edje.eo
@@ -0,0 +1,2507 @@
1class Edje (Evas_Smart_Clipped)
2{
3 legacy_prefix: edje_object;
4 eo_prefix: edje_obj;
5 data: Edje;
6 properties {
7 update_hints {
8 set {
9 /*@
10 @brief Edje will automatically update the size hints on itself.
11
12 By default edje doesn't set size hints on itself. With this function
13 call, it will do so if update is true. Be carefully, it cost a lot to
14 trigger this feature as it will recalc the object every time it make
15 sense to be sure that's its minimal size hint is always accurate. */
16 }
17 get {
18 /*@
19 @brief Wether or not Edje will update size hints on itself.
20
21 @return @c true if does, @c false if it doesn't. */
22 }
23 values {
24 Eina_Bool update; /*@ Wether or not update the size hints. */
25 }
26 }
27 mirrored {
28 set {
29 /*@
30 @brief Set the RTL orientation for this object.
31
32 @since 1.1.0 */
33 }
34 get {
35 /*@
36 @brief Get the RTL orientation for this object.
37
38 You can RTL orientation explicitly with edje_object_mirrored_set.
39
40 @return @c EINA_TRUE if the flag is set or @c EINA_FALSE if not.
41 @since 1.1.0 */
42 }
43 values {
44 Eina_Bool rtl; /*@ new value of flag EINA_TRUE/EINA_FALSE */
45 }
46 }
47 animation {
48 set {
49 /*@
50 @brief Set the object's animation state.
51
52 This function starts or stops an Edje object's animation. The
53 information if it's stopped can be retrieved by
54 edje_object_animation_get().
55
56 @see edje_object_animation_get() */
57 }
58 get {
59 /*@
60 @brief Get the Edje object's animation state.
61
62 @return @c EINA_FALSE on error or if object is not animated;
63 @c EINA_TRUE if animated.
64
65 This function returns if the animation is stopped or not. The
66 animation state is set by edje_object_animation_set().
67
68 @see edje_object_animation_set(). */
69 }
70 values {
71 Eina_Bool on; /*@ The animation state. @c EINA_TRUE to starts or
72 @c EINA_FALSE to stops. */
73 }
74 }
75 play {
76 set {
77 /*@
78 @brief Set the Edje object to playing or paused states.
79
80 This function sets the Edje object @a obj to playing or paused
81 states, depending on the parameter @a play. This has no effect if
82 the object was already at that state.
83
84 @see edje_object_play_get(). */
85 }
86 get {
87 /*@
88 @brief Get the Edje object's state.
89
90 @return @c EINA_FALSE if the object is not connected, its @c delete_me flag
91 is set, or it is at paused state; @c EINA_TRUE if the object is at playing
92 state.
93
94 This function tells if an Edje object is playing or not. This state
95 is set by edje_object_play_set().
96
97 @see edje_object_play_set(). */
98 }
99 values {
100 Eina_Bool play; /*@ Object state (@c EINA_TRUE to playing,
101 @c EINA_FALSE to paused). */
102 }
103 }
104 perspective {
105 set {
106 /*@
107 Set the given perspective object on this Edje object.
108
109 Make the given perspective object be the default perspective for this Edje
110 object.
111
112 There can be only one perspective object per Edje object, and if a
113 previous one was set, it will be removed and the new perspective object
114 will be used.
115
116 An Edje perspective will only affect a part if it doesn't point to another
117 part to be used as perspective.
118
119 @see edje_object_perspective_new()
120 @see edje_object_perspective_get()
121 @see edje_perspective_set() */
122 }
123 get {
124 /*@
125 Get the current perspective used on this Edje object.
126
127 @return The perspective object being used on this Edje object. Or @c NULL
128 if there was none, and on errors.
129
130 @see edje_object_perspective_set() */
131 ps: const;
132 }
133 values {
134 Edje_Perspective *ps; /*@ The perspective object that will be used. */
135 }
136 }
137 file {
138 set {
139 /*@
140 @brief Sets the @b EDJ file (and group within it) to load an Edje
141 object's contents from
142
143 @return @c EINA_TRUE, on success or @c EINA_FALSE, on errors (check
144 edje_object_load_error_get() after this call to get errors causes)
145
146 Edje expects EDJ files, which are theming objects' descriptions and
147 resources packed together in an EET file, to read Edje object
148 definitions from. They usually are created with the @c .edj
149 extension. EDJ files, in turn, are assembled from @b textual object
150 description files, where one describes Edje objects declaratively
151 -- the EDC files (see @ref edcref "the syntax" for those files).
152
153 Those description files were designed so that many Edje object
154 definitions -- also called @b groups (or collections) -- could be
155 packed together <b>in the same EDJ file</b>, so that a whole
156 application's theme could be packed in one file only. This is the
157 reason for the @p group argument.
158
159 Use this function after you instantiate a new Edje object, so that
160 you can "give him life", telling where to get its contents from.
161
162 @see edje_object_add()
163 @see edje_object_file_get()
164 @see edje_object_mmap_set() */
165 return Eina_Bool;
166 }
167 get {
168 /*@
169 @brief Get the file and group name that a given Edje object is bound to
170
171 This gets the EDJ file's path, with the respective group set for
172 the given Edje object. If @a obj is either not an Edje file, or has
173 not had its file/group set previously, by edje_object_file_set(),
174 then both @p file and @p group will be set to @c NULL, indicating
175 an error.
176
177 @see edje_object_file_set()
178
179 @note Use @c NULL pointers on the file/group components you're not
180 interested in: they'll be ignored by the function. */
181 }
182 values {
183 const char *file; /*@ The path to the EDJ file to load @p from */
184 const char *group; /*@ The name of the group, in @p file, which implements an
185 Edje object */
186 }
187 }
188 scale {
189 set {
190 /*@
191 @brief Set the scaling factor for a given Edje object.
192
193 This function sets an @b individual scaling factor on the @a obj
194 Edje object. This property (or Edje's global scaling factor, when
195 applicable), will affect this object's part sizes. If @p scale is
196 not zero, than the individual scaling will @b override any global
197 scaling set, for the object @p obj's parts. Put it back to zero to
198 get the effects of the global scaling again.
199
200 @warning Only parts which, at EDC level, had the @c "scale"
201 property set to @c 1, will be affected by this function. Check the
202 complete @ref edcref "syntax reference" for EDC files.
203
204 @see edje_object_scale_get()
205 @see edje_scale_get() for more details */
206 return Eina_Bool;
207 }
208 get {
209 /*@
210 @brief Get a given Edje object's scaling factor.
211
212 This function returns the @c individual scaling factor set on the
213 @a obj Edje object.
214
215 @see edje_object_scale_set() for more details */
216 }
217 values {
218 double scale; /*@ The scaling factor (the default value is @c 0.0,
219 meaning individual scaling @b not set) */
220 }
221 }
222 mmap {
223 set {
224 /*@
225 @brief Sets the @b EDJ file (and group within it) to load an Edje
226 object's contents from
227
228 @return @c EINA_TRUE, on success or @c EINA_FALSE, on errors (check
229 edje_object_load_error_get() after this call to get errors causes)
230
231 Edje expects EDJ files, which are theming objects' descriptions and
232 resources packed together in an EET file, to read Edje object
233 definitions from. They usually are created with the @c .edj
234 extension. EDJ files, in turn, are assembled from @b textual object
235 description files, where one describes Edje objects declaratively
236 -- the EDC files (see @ref edcref "the syntax" for those files).
237
238 Those description files were designed so that many Edje object
239 definitions -- also called @b groups (or collections) -- could be
240 packed together <b>in the same EDJ file</b>, so that a whole
241 application's theme could be packed in one file only. This is the
242 reason for the @p group argument.
243
244 Use this function after you instantiate a new Edje object, so that
245 you can "give him life", telling where to get its contents from.
246
247 @see edje_object_add()
248 @see edje_object_file_get()
249 @see edje_object_mmap_set()
250 @since 1.8 */
251 return Eina_Bool;
252 }
253 values {
254 const Eina_File *file; /*@ The Eina_File pointing to the EDJ file to load @p from */
255 const char *group; /*@ The name of the group, in @p file, which implements an
256 Edje object */
257 }
258 }
259 text_change_cb {
260 set {
261 /*@
262 @brief Set the object text callback.
263
264 This function sets the callback to be called when the text changes. */
265 }
266 values {
267 Edje_Text_Change_Cb func; /*@ The callback function to handle the text change */
268 void *data; /*@ The data associated to the callback function. */
269 }
270 }
271 part_text_cursor_begin {
272 set {
273 /*@
274 @brief Moves the cursor to the beginning of the text part
275 @see evas_textblock_cursor_paragraph_first */
276 }
277 values {
278 const char *part; /*@ The part name */
279 Edje_Cursor cur; /*@ the edje cursor to work on */
280 }
281 }
282 part_text_cursor_line_end {
283 set {
284 /*@
285 @brief Move the cursor to the end of the line.
286 @see evas_textblock_cursor_line_char_last */
287 }
288 values {
289 const char *part; /*@ The part name */
290 Edje_Cursor cur; /*@ the edje cursor to work on */
291 }
292 }
293 text_class {
294 set {
295 /*@
296 @brief Sets Edje text class.
297
298 @return @c EINA_TRUE, on success or @c EINA_FALSE, on error
299
300 This function sets the text class for the Edje. */
301 return Eina_Bool;
302 }
303 values {
304 const char *text_class; /*@ The text class name */
305 const char *font; /*@ Font name */
306 Evas_Font_Size size; /*@ Font Size */
307 }
308 }
309 part_text_cursor_coord {
310 set {
311 /*@
312 Position the given cursor to a X,Y position.
313
314 This is frequently used with the user cursor.
315
316 @return True on success, false on error. */
317 return Eina_Bool;
318 }
319 values {
320 const char *part; /*@ The part containing the object. */
321 Edje_Cursor cur; /*@ The cursor to adjust. */
322 Evas_Coord x; /*@ X Coordinate. */
323 Evas_Coord y; /*@ Y Coordinate. */
324 }
325 }
326 part_text_cursor_end {
327 set {
328 /*@
329 @brief Moves the cursor to the end of the text part.
330 @see evas_textblock_cursor_paragraph_last */
331 }
332 values {
333 const char *part; /*@ The part name */
334 Edje_Cursor cur; /*@ the edje cursor to work on */
335 }
336 }
337 part_text_escaped {
338 set {
339 /*@
340 @brief Sets the text for an object part, but converts HTML escapes to UTF8
341
342 This converts the given string @p text to UTF8 assuming it contains HTML
343 style escapes like "&amp;" and "&copy;" etc. IF the part is of type TEXT,
344 as opposed to TEXTBLOCK.
345
346 @return @c EINA_TRUE on success, @c EINA_FALSE otherwise
347
348 @since 1.2 */
349 return Eina_Bool;
350 }
351 values {
352 const char *part; /*@ The part name */
353 const char *text; /*@ The text string */
354 }
355 }
356 item_provider {
357 set {
358 /*@
359 @brief Set the function that provides item objects for named items in an edje entry text
360
361 Item objects may be deleted any time by Edje, and will be deleted when the
362 Edje object is deleted (or file is set to a new file). */
363 }
364 values {
365 Edje_Item_Provider_Cb func; /*@ The function to call (or NULL to disable) to get item objects */
366 void *data; /*@ The data pointer to pass to the @p func callback */
367 }
368 }
369 part_text_cursor_line_begin {
370 set {
371 /*@
372 @brief Move the cursor to the beginning of the line.
373 @see evas_textblock_cursor_line_char_first */
374 }
375 values {
376 const char *part; /*@ The part name */
377 Edje_Cursor cur; /*@ the edje cursor to work on */
378 }
379 }
380 message_handler {
381 set {
382 /*@
383 @brief Set an Edje message handler function for a given Edje object.
384
385 For scriptable programs on an Edje object's defining EDC file which
386 send messages with the @c send_message() primitive, one can attach
387 <b>handler functions</b>, to be called in the code which creates
388 that object (see @ref edcref "the syntax" for EDC files).
389
390 This function associates a message handler function and the
391 attached data pointer to the object @p obj.
392
393 @see edje_object_message_send() */
394 }
395 values {
396 Edje_Message_Handler_Cb func; /*@ The function to handle messages @b coming from @p obj */
397 void *data; /*@ Auxiliary data to be passed to @p func */
398 }
399 }
400 size_min {
401 get {
402 /*@
403 @brief Get the minimum size specified -- as an EDC property -- for a
404 given Edje object
405
406 This function retrieves the @p obj object's minimum size values,
407 <b>as declared in its EDC group definition</b>. Minimum size of
408 groups have the following syntax
409 @code
410 collections {
411 group {
412 name: "a_group";
413 min: 100 100;
414 }
415 }
416 @endcode
417
418 where one declares a minimum size of 100 pixels both for width and
419 height. Those are (hint) values which should be respected when the
420 given object/group is to be controlled by a given container object
421 (e.g. an Edje object being "swallowed" into a given @c SWALLOW
422 typed part, as in edje_object_part_swallow()). Check the complete
423 @ref edcref "syntax reference" for EDC files.
424
425 @note If the @c min EDC property was not declared for @p obj, this
426 call will return the value 0, for each axis.
427
428 @note On failure, this function will make all non-@c NULL size
429 pointers' pointed variables be set to zero.
430
431 @see edje_object_size_max_get() */
432 }
433 values {
434 Evas_Coord minw; /*@ Pointer to a variable where to store the minimum width */
435 Evas_Coord minh; /*@ Pointer to a variable where to store the minimum height */
436 }
437 }
438 access_part_list {
439 get {
440 /*@
441 @brief Retrieve a list all accessibility part names
442
443 @return A list all accessibility part names on @p obj
444 @since 1.7.0 */
445 return Eina_List *;
446 }
447 }
448 load_error {
449 get {
450 /*@
451 @brief Gets the (last) file loading error for a given Edje object
452
453 @return The Edje loading error, one of:
454 - #EDJE_LOAD_ERROR_NONE
455 - #EDJE_LOAD_ERROR_GENERIC
456 - #EDJE_LOAD_ERROR_DOES_NOT_EXIST
457 - #EDJE_LOAD_ERROR_PERMISSION_DENIED
458 - #EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED
459 - #EDJE_LOAD_ERROR_CORRUPT_FILE
460 - #EDJE_LOAD_ERROR_UNKNOWN_FORMAT
461 - #EDJE_LOAD_ERROR_INCOMPATIBLE_FILE
462 - #EDJE_LOAD_ERROR_UNKNOWN_COLLECTION
463 - #EDJE_LOAD_ERROR_RECURSIVE_REFERENCE
464
465 This function is meant to be used after an Edje EDJ <b>file
466 loading</b>, what takes place with the edje_object_file_set()
467 function. If that function does not return @c EINA_TRUE, one should
468 check for the reason of failure with this one.
469
470 @see edje_load_error_str() */
471 return Edje_Load_Error;
472 }
473 }
474 size_max {
475 get {
476 /*@
477 @brief Get the maximum size specified -- as an EDC property -- for a
478 given Edje object
479
480 This function retrieves the @p obj object's maximum size values,
481 <b>as declared in its EDC group definition</b>. Maximum size of
482 groups have the following syntax
483 @code
484 collections {
485 group {
486 name: "a_group";
487 max: 100 100;
488 }
489 }
490 @endcode
491
492 where one declares a maximum size of 100 pixels both for width and
493 height. Those are (hint) values which should be respected when the
494 given object/group is to be controlled by a given container object
495 (e.g. an Edje object being "swallowed" into a given @c SWALLOW
496 typed part, as in edje_object_part_swallow()). Check the complete
497 @ref edcref "syntax reference" for EDC files.
498
499 @note If the @c max EDC property was not declared for @p obj, this
500 call will return the maximum size a given Edje object may have, for
501 each axis.
502
503 @note On failure, this function will make all non-@c NULL size
504 pointers' pointed variables be set to zero.
505
506 @see edje_object_size_min_get() */
507 }
508 values {
509 Evas_Coord maxw; /*@ Pointer to a variable where to store the maximum width */
510 Evas_Coord maxh; /*@ Pointer to a variable where to store the maximum height */
511 }
512 }
513 }
514 methods {
515 part_table_clear {
516 /*@
517 @brief Removes all object from the table.
518
519 @return @c EINA_TRUE clear the table, @c EINA_FALSE on failure
520
521 Removes all object from the table indicated by part, except the
522 internal ones set from the theme. */
523
524 return Eina_Bool;
525 params {
526 @in const char *part; /*@ The part name */
527 @in Eina_Bool clear; /*@ If set, will delete subobjs on remove */
528 }
529 }
530 part_external_param_type_get {
531 /*@
532 Facility to query the type of the given parameter of the given part.
533
534 @return @c EDJE_EXTERNAL_PARAM_TYPE_MAX on errors, or another value
535 from #Edje_External_Param_Type on success. */
536
537 const;
538 return Edje_External_Param_Type;
539 params {
540 @in const char *part; /*@ The part name */
541 @out const char param; /*@ the parameter name to use. */
542 }
543 }
544 part_text_select_allow_set {
545 /*@
546 @brief Enables selection if the entry is an EXPLICIT selection mode
547 type.
548
549 The default is to @b not allow selection. This function only affects user
550 selection, functions such as edje_object_part_text_select_all() and
551 edje_object_part_text_select_none() are not affected. */
552
553 const;
554 params {
555 @in const char *part; /*@ The part name */
556 @in Eina_Bool allow; /*@ EINA_TRUE to enable, EINA_FALSE otherwise */
557 }
558 }
559 part_state_get {
560 /*@
561 @brief Returns the state of the Edje part.
562
563 @return The part state:\n
564 "default" for the default state\n
565 "" for other states */
566
567 const;
568 return const char *;
569 params {
570 @in const char *part; /*@ The part name */
571 @out double val_ret;
572 }
573 }
574 text_markup_filter_callback_del_full {
575 /*@
576 Delete a function and matching user data from the markup filter list.
577
578 Delete the given @p func filter and @p data user data from the list
579 in @p part.
580 Returns the user data pointer given when added.
581
582 @see edje_object_text_markup_filter_callback_add
583 @see edje_object_text_markup_filter_callback_del
584
585 @return The same data pointer if successful, or NULL otherwise
586 @since 1.2.0 */
587
588 return void *;
589 params {
590 @in const char *part; /*@ The part name */
591 @in Edje_Markup_Filter_Cb func; /*@ The function callback to remove */
592 @in void *data; /*@ The data passed to the callback function */
593 }
594 }
595 part_drag_step_set {
596 /*@
597 @brief Sets the drag step increment.
598
599 Sets the x,y step increments for a dragable object.
600
601 Values for @p dx and @p dy are real numbers that range from 0 to 1,
602 representing the relative size of the dragable area on that axis by which the
603 part will be moved.
604
605 @see edje_object_part_drag_step_get() */
606
607 return Eina_Bool;
608 params {
609 @in const char *part; /*@ The part name */
610 @in double dx; /*@ The x step amount */
611 @in double dy; /*@ The y step amount */
612 }
613 }
614 part_drag_step_get {
615 /*@
616 @brief Gets the drag step increment values.
617
618 Gets the x and y step increments for the dragable object.
619
620
621 @see edje_object_part_drag_step_set() */
622
623 const;
624 return Eina_Bool;
625 params {
626 @in const char *part; /*@ The part */
627 @out double dx; /*@ The x step increment pointer */
628 @out double dy; /*@ The y step increment pointer */
629 }
630 }
631 part_text_imf_context_get {
632 /*@
633 @brief Get the input method context in entry.
634
635 If ecore_imf was not available when edje was compiled, this function returns NULL
636 otherwise, the returned pointer is an Ecore_IMF
637
638 @return The input method context (Ecore_IMF_Context *) in entry
639 @since 1.2.0 */
640
641 const;
642 return void *;
643 params {
644 @in const char *part; /*@ The part name */
645 }
646 }
647 part_text_select_begin {
648 /*@
649 @brief Starts selecting at current cursor position */
650
651 const;
652 params {
653 @in const char *part; /*@ The part name */
654 }
655 }
656 part_text_style_user_peek {
657 /*@
658 @brief Return the text of the object part.
659
660 @return The text string
661
662 This function returns the style associated with the textblock part.
663
664 @since 1.2.0 */
665
666 const;
667 return const char *;
668 params {
669 @in const char *part; /*@ The part name */
670 }
671 }
672 signal_callback_del {
673 /*@
674 @brief Remove a signal-triggered callback from an object.
675
676 @return The data pointer
677
678 This function removes a callback, previously attached to the
679 emittion of a signal, from the object @a obj. The parameters @a
680 emission, @a source and @a func must match exactly those passed to
681 a previous call to edje_object_signal_callback_add(). The data
682 pointer that was passed to this call will be returned.
683
684 @see edje_object_signal_callback_add().
685 @see edje_object_signal_callback_del_full(). */
686
687 legacy null;
688 return void *;
689 params {
690 @in const char *emission; /*@ The emission string. */
691 @in const char *source; /*@ The source string. */
692 @in Edje_Signal_Cb func; /*@ The callback function. */
693 @in void *data; /*@ The callback function. */
694 }
695 }
696 part_text_cursor_next {
697 /*@
698 @brief Advances the cursor to the next cursor position.
699 @see evas_textblock_cursor_char_next */
700
701 return Eina_Bool;
702 params {
703 @in const char *part; /*@ The part name */
704 @in Edje_Cursor cur; /*@ The edje cursor to advance */
705 }
706 }
707 part_text_style_user_push {
708 /*@
709 @brief Set the style of the
710
711 This function sets the style associated with the textblock part.
712
713 @since 1.2.0 */
714
715 params {
716 @in const char *part; /*@ The part name */
717 @in const char *style; /*@ The style to set (textblock conventions). */
718 }
719 }
720 part_text_append {
721 /*@
722 @brief Insert text for an object part.
723
724 This function inserts the text for an object part at the end; It does not
725 move the cursor.
726
727 @since 1.1 */
728
729 params {
730 @in const char *part; /*@ The part name */
731 @in const char *text; /*@ The text string */
732 }
733 }
734 part_geometry_get {
735 /*@
736 @brief Retrieve the geometry of a given Edje part, in a given Edje
737 object's group definition, <b>relative to the object's area</b>
738
739 This function gets the geometry of an Edje part within its
740 group. The @p x and @p y coordinates are relative to the top left
741 corner of the whole @p obj object's area.
742
743 @note Use @c NULL pointers on the geometry components you're not
744 interested in: they'll be ignored by the function.
745
746 @note On failure, this function will make all non-@c NULL geometry
747 pointers' pointed variables be set to zero. */
748
749 const;
750 return Eina_Bool;
751 params {
752 @in const char *part; /*@ The Edje part's name */
753 @out Evas_Coord x; /*@ A pointer to a variable where to store the part's x
754 coordinate */
755 @out Evas_Coord y; /*@ A pointer to a variable where to store the part's y
756 coordinate */
757 @out Evas_Coord w; /*@ A pointer to a variable where to store the part's width */
758 @out Evas_Coord h; /*@ A pointer to a variable where to store the part's height */
759 }
760 }
761 part_text_input_panel_hide {
762 /*@
763 @brief Hide the input panel (virtual keyboard).
764 @see edje_object_part_text_input_panel_show
765
766 Note that input panel is shown or hidden automatically according to the focus state.
767 This API can be used in the case of manually controlling by using edje_object_part_text_input_panel_enabled_set.
768
769 @since 1.2.0 */
770
771 const;
772 params {
773 @in const char *part; /*@ The part name */
774 }
775 }
776 part_text_item_geometry_get {
777 /*@
778 @brief Return item geometry.
779
780 @return 1 if item exists, 0 if not
781
782 This function return a list of Evas_Textblock_Rectangle item
783 rectangles. */
784
785 const;
786 return Eina_Bool;
787 params {
788 @in const char *part; /*@ The part name */
789 @in const char *item; /*@ The item name */
790 @out Evas_Coord cx; /*@ Item x return (relative to entry part) */
791 @out Evas_Coord cy; /*@ Item y return (relative to entry part) */
792 @out Evas_Coord cw; /*@ Item width return */
793 @out Evas_Coord ch; /*@ Item height return */
794 }
795 }
796 part_table_unpack {
797 /*@
798 @brief Removes an object from the table.
799
800 @return @c EINA_TRUE object removed, @c EINA_FALSE on failure
801
802 Removes an object from the table indicated by part. */
803
804 return Eina_Bool;
805 params {
806 @in const char *part; /*@ The part name */
807 @in Evas_Object *child_obj; /*@ The object to pack in */
808 }
809 }
810 part_text_select_abort {
811 /*@
812 @brief Aborts any selection action on a part. */
813
814 const;
815 params {
816 @in const char *part; /*@ The part name */
817 }
818 }
819 text_insert_filter_callback_del_full {
820 /*@
821 Delete a function and matching user data from the filter list.
822
823 Delete the given @p func filter and @p data user data from the list
824 in @p part.
825 Returns the user data pointer given when added.
826
827 @see edje_object_text_insert_filter_callback_add
828 @see edje_object_text_insert_filter_callback_del
829
830 @return The same data pointer if successful, or NULL otherwise */
831
832 return void *;
833 params {
834 @in const char *part; /*@ The part name */
835 @in Edje_Text_Filter_Cb func; /*@ The function callback to remove */
836 @in void *data; /*@ The data passed to the callback function */
837 }
838 }
839 part_text_style_user_pop {
840 /*@
841 @brief Delete the top style form the user style stack.
842
843 @since 1.2.0 */
844
845 params {
846 @in const char *part; /*@ The part name */
847 }
848 }
849 part_text_input_panel_imdata_set {
850 /*@
851 Set the input panel-specific data to deliver to the input panel.
852
853 This API is used by applications to deliver specific data to the input panel.
854 The data format MUST be negotiated by both application and the input panel.
855 The size and format of data are defined by the input panel.
856
857 @since 1.2.0 */
858
859 params {
860 @in const char *part; /*@ The part name */
861 @in const void *data; /*@ The specific data to be set to the input panel. */
862 @in int len; /*@ the length of data, in bytes, to send to the input panel */
863 }
864 }
865 part_text_input_panel_imdata_get {
866 /*@
867 Get the specific data of the current active input panel.
868
869 @since 1.2.0 */
870
871 const;
872 params {
873 @in const char *part; /*@ The part name */
874 @in void *data; /*@ The specific data to be got from the input panel */
875 @in int *len; /*@ The length of data */
876 }
877 }
878 part_text_insert {
879 /*@
880 @brief Insert text for an object part.
881
882 This function inserts the text for an object part just before the
883 cursor position. */
884
885 params {
886 @in const char *part; /*@ The part name */
887 @in const char *text; /*@ The text string */
888 }
889 }
890 part_box_remove_at {
891 /*@
892 @brief Removes an object from the box.
893
894 @return Pointer to the object removed, or @c NULL.
895
896 Removes from the box indicated by part, the object in the position
897 pos.
898
899 @see edje_object_part_box_remove()
900 @see edje_object_part_box_remove_all() */
901
902 return Evas_Object *;
903 params {
904 @in const char *part; /*@ The part name */
905 @in unsigned int pos; /*@ The position index of the object (starts counting from 0) */
906 }
907 }
908 part_text_cursor_copy {
909 /*@
910 @brief Copy the cursor to another cursor. */
911
912 params {
913 @in const char *part; /*@ The part name */
914 @in Edje_Cursor src; /*@ the cursor to copy from */
915 @in Edje_Cursor dst; /*@ the cursor to copy to */
916 }
917 }
918 parts_extends_calc {
919 /*@
920 Calculate the geometry of the region, relative to a given Edje
921 object's area, <b>occupied by all parts in the object</b>
922
923 This function gets the geometry of the rectangle equal to the area
924 required to group all parts in @p obj's group/collection. The @p x
925 and @p y coordinates are relative to the top left corner of the
926 whole @p obj object's area. Parts placed out of the group's
927 boundaries will also be taken in account, so that @p x and @p y
928 <b>may be negative</b>.
929
930 @note Use @c NULL pointers on the geometry components you're not
931 interested in: they'll be ignored by the function.
932
933 @note On failure, this function will make all non-@c NULL geometry
934 pointers' pointed variables be set to zero. */
935
936 return Eina_Bool;
937 params {
938 @out Evas_Coord x; /*@ A pointer to a variable where to store the parts region's
939 x coordinate */
940 @out Evas_Coord y; /*@ A pointer to a variable where to store the parts region's
941 y coordinate */
942 @out Evas_Coord w; /*@ A pointer to a variable where to store the parts region's
943 width */
944 @out Evas_Coord h; /*@ A pointer to a variable where to store the parts region's
945 height */
946 }
947 }
948 part_drag_value_set {
949 /*@
950 @brief Set the dragable object location.
951
952 Places the dragable object at the given location.
953
954 Values for @p dx and @p dy are real numbers that range from 0 to 1,
955 representing the relative position to the dragable area on that axis.
956
957 This value means, for the vertical axis, that 0.0 will be at the top if the
958 first parameter of @c y in the dragable part theme is 1, and at bottom if it
959 is -1.
960
961 For the horizontal axis, 0.0 means left if the first parameter of @c x in the
962 dragable part theme is 1, and right if it is -1.
963
964 @see edje_object_part_drag_value_get() */
965
966 return Eina_Bool;
967 params {
968 @in const char *part; /*@ The part name */
969 @in double dx; /*@ The x value */
970 @in double dy; /*@ The y value */
971 }
972 }
973 part_drag_value_get {
974 /*@
975 @brief Get the dragable object location.
976
977 Values for @p dx and @p dy are real numbers that range from 0 to 1,
978 representing the relative position to the dragable area on that axis.
979
980 @see edje_object_part_drag_value_set()
981
982 Gets the drag location values. */
983
984 const;
985 return Eina_Bool;
986 params {
987 @in const char *part; /*@ The part name */
988 @out double dx; /*@ The X value pointer */
989 @out double dy; /*@ The Y value pointer */
990 }
991 }
992 calc_force {
993 /*@
994 @brief Force a Size/Geometry calculation.
995
996 Forces the object @p obj to recalculation layout regardless of
997 freeze/thaw. */
998
999 }
1000 part_text_cursor_pos_set {
1001 /*@
1002 @brief Sets the cursor position to the given value
1003
1004 @since 1.1.0 */
1005
1006 params {
1007 @in const char *part; /*@ The part name */
1008 @in Edje_Cursor cur; /*@ The cursor to move */
1009 @in int pos; /*@ the position of the cursor */
1010 }
1011 }
1012 part_text_cursor_pos_get {
1013 /*@
1014 @brief Retrieves the current position of the cursor
1015
1016 @return The cursor position
1017 @since 1.1.0 */
1018
1019 const;
1020 return int;
1021 params {
1022 @in const char *part; /*@ The part name */
1023 @in Edje_Cursor cur; /*@ The cursor to get the position */
1024 }
1025 }
1026 freeze {
1027 /*@
1028 @brief Freezes the Edje object.
1029
1030 @return The frozen state or 0 on Error
1031
1032 This function puts all changes on hold. Successive freezes will
1033 nest, requiring an equal number of thaws.
1034
1035 @see edje_object_thaw() */
1036
1037 return int;
1038 }
1039 part_text_cursor_content_get {
1040 /*@
1041 @brief Returns the content (char) at the cursor position.
1042 @see evas_textblock_cursor_content_get
1043
1044 You must free the return (if not NULL) after you are done with it.
1045
1046 @return The character string pointed to (may be a multi-byte utf8 sequence) terminated by a nul byte. */
1047
1048 const;
1049 return char *;
1050 params {
1051 @in const char *part; /*@ The part name */
1052 @in Edje_Cursor cur; /*@ The cursor to use */
1053 }
1054 }
1055 part_text_input_panel_layout_set {
1056 /*@
1057 @brief Set the layout of the input panel.
1058
1059 The layout of the input panel or virtual keyboard can make it easier or
1060 harder to enter content. This allows you to hint what kind of input you
1061 are expecting to enter and thus have the input panel automatically
1062 come up with the right mode.
1063
1064 @since 1.1 */
1065
1066 params {
1067 @in const char *part; /*@ The part name */
1068 @in Edje_Input_Panel_Layout layout; /*@ layout type */
1069 }
1070 }
1071 part_text_input_panel_layout_get {
1072 /*@
1073 @brief Get the layout of the input panel.
1074
1075 @return Layout type of the input panel
1076
1077 @see edje_object_part_text_input_panel_layout_set
1078 @since 1.1 */
1079
1080 const;
1081 return Edje_Input_Panel_Layout;
1082 params {
1083 @in const char *part; /*@ The part name */
1084 }
1085 }
1086 part_table_pack {
1087 /*@
1088 @brief Packs an object into the table.
1089
1090 @return @c EINA_TRUE object was added, @c EINA_FALSE on failure
1091
1092 Packs an object into the table indicated by part. */
1093
1094 return Eina_Bool;
1095 params {
1096 @in const char *part; /*@ The part name */
1097 @in Evas_Object *child_obj; /*@ The object to pack in */
1098 @in unsigned short col; /*@ The column to place it in */
1099 @in unsigned short row; /*@ The row to place it in */
1100 @in unsigned short colspan; /*@ Columns the child will take */
1101 @in unsigned short rowspan; /*@ Rows the child will take */
1102 }
1103 }
1104 part_text_input_panel_language_set {
1105 /*@
1106 Set the language mode of the input panel.
1107
1108 This API can be used if you want to show the Alphabet keyboard.
1109
1110 @since 1.2.0 */
1111
1112 params {
1113 @in const char *part; /*@ The part name */
1114 @in Edje_Input_Panel_Lang lang; /*@ the language to be set to the input panel. */
1115 }
1116 }
1117 part_text_input_panel_language_get {
1118 /*@
1119 Get the language mode of the input panel.
1120
1121 See @ref edje_object_part_text_input_panel_language_set for more details.
1122
1123 @return input panel language type
1124 @since 1.2.0 */
1125
1126 const;
1127 return Edje_Input_Panel_Lang;
1128 params {
1129 @in const char *part; /*@ The part name */
1130 }
1131 }
1132 part_table_col_row_size_get {
1133 /*@
1134 @brief Gets the number of columns and rows the table has.
1135
1136 @return @c EINA_TRUE get some data, @c EINA_FALSE on failure
1137
1138 Retrieves the size of the table in number of columns and rows. */
1139
1140 const;
1141 return Eina_Bool;
1142 params {
1143 @in const char *part; /*@ The part name */
1144 @out int cols; /*@ Pointer where to store number of columns (can be NULL) */
1145 @out int rows; /*@ Pointer where to store number of rows (can be NULL) */
1146 }
1147 }
1148 part_external_object_get {
1149 /*@
1150 @brief Get the object created by this external part.
1151
1152 Parts of type external creates the part object using information
1153 provided by external plugins. It's somehow like "swallow"
1154 (edje_object_part_swallow()), but it's all set automatically.
1155
1156 This function returns the part created by such external plugins and
1157 being currently managed by this Edje.
1158
1159 @note Almost all swallow rules apply: you should not move, resize,
1160 hide, show, set the color or clipper of such part. It's a bit
1161 more restrictive as one must @b never delete this object!
1162
1163 @return The externally created object, or NULL if there is none or
1164 part is not an external. */
1165
1166 const;
1167 return Evas_Object *;
1168 params {
1169 @in const char *part; /*@ The part name */
1170 }
1171 }
1172 part_external_content_get {
1173 /*@
1174 @brief Get an object contained in an part of type EXTERNAL
1175
1176 The @p content string must not be NULL. Its actual value depends on the
1177 code providing the EXTERNAL. */
1178
1179 const;
1180 return Evas_Object *;
1181 params {
1182 @in const char *part; /*@ The name of the part holding the EXTERNAL */
1183 @out const char content; /*@ A string identifying which content from the EXTERNAL to get */
1184 }
1185 }
1186 preload {
1187 /*@
1188 @brief Preload the images on the Edje Object in the background.
1189
1190 @return @c EINA_FASLE if obj was not a valid Edje object
1191 otherwise @c EINA_TRUE
1192
1193 This function requests the preload of all data images (on the given
1194 object) in the background. The work is queued before being processed
1195 (because there might be other pending requests of this type).
1196 It emits a signal "preload,done" when finished.
1197
1198 @note Use @c EINA_TRUE on scenarios where you don't need
1199 the image data preloaded anymore. */
1200
1201 return Eina_Bool;
1202 params {
1203 @in Eina_Bool cancel; /*@ @c EINA_FALSE will add it the preloading work queue,
1204 @c EINA_TRUE will remove it (if it was issued before). */
1205 }
1206 }
1207 part_text_input_panel_enabled_set {
1208 /*@
1209 @brief Sets the attribute to show the input panel automatically.
1210
1211 @since 1.1.0 */
1212
1213 params {
1214 @in const char *part; /*@ The part name */
1215 @in Eina_Bool enabled; /*@ If true, the input panel is appeared when entry is clicked or has a focus */
1216 }
1217 }
1218 part_text_input_panel_enabled_get {
1219 /*@
1220 @brief Retrieve the attribute to show the input panel automatically.
1221 @see edje_object_part_text_input_panel_enabled_set
1222
1223 @return EINA_TRUE if it supports or EINA_FALSE otherwise
1224 @since 1.1.0 */
1225
1226 const;
1227 return Eina_Bool;
1228 params {
1229 @in const char *part; /*@ The part name */
1230 }
1231 }
1232 part_text_select_extend {
1233 /*@
1234 @brief Extends the current selection to the current cursor position */
1235
1236 const;
1237 params {
1238 @in const char *part; /*@ The part name */
1239 }
1240 }
1241 part_box_insert_at {
1242 /*@
1243 @brief Inserts an object to the box.
1244
1245 @return @c EINA_TRUE: Successfully added.\n
1246 @c EINA_FALSE: An error occurred.
1247
1248 Adds child to the box indicated by part, in the position given by
1249 pos.
1250
1251 @see edje_object_part_box_append()
1252 @see edje_object_part_box_prepend()
1253 @see edje_object_part_box_insert_before() */
1254
1255 return Eina_Bool;
1256 params {
1257 @in const char *part; /*@ The part name */
1258 @in Evas_Object *child; /*@ The object to insert */
1259 @in unsigned int pos; /*@ The position where to insert child */
1260 }
1261 }
1262 part_text_anchor_geometry_get {
1263 /*@
1264 @brief Return a list of Evas_Textblock_Rectangle anchor rectangles.
1265
1266 @return The list of anchor rects (const Evas_Textblock_Rectangle
1267 *), do not modify! Geometry is relative to entry part.
1268
1269 This function return a list of Evas_Textblock_Rectangle anchor
1270 rectangles. */
1271
1272 const;
1273 return const Eina_List *;
1274 params {
1275 @in const char *part; /*@ The part name */
1276 @in const char *anchor; /*@ The anchor name */
1277 }
1278 }
1279 part_text_cursor_down {
1280 /*@
1281 @brief Moves the cursor to the char below the current cursor position. */
1282
1283 return Eina_Bool;
1284 params {
1285 @in const char *part; /*@ The part name */
1286 @in Edje_Cursor cur; /*@ the edje cursor to work on */
1287 }
1288 }
1289 part_drag_page_set {
1290 /*@
1291 @brief Sets the page step increments.
1292
1293 Sets the x,y page step increment values.
1294
1295 Values for @p dx and @p dy are real numbers that range from 0 to 1,
1296 representing the relative size of the dragable area on that axis by which the
1297 part will be moved.
1298
1299 @see edje_object_part_drag_page_get() */
1300
1301 return Eina_Bool;
1302 params {
1303 @in const char *part; /*@ The part name */
1304 @in double dx; /*@ The x page step increment */
1305 @in double dy; /*@ The y page step increment */
1306 }
1307 }
1308 part_drag_page_get {
1309 /*@
1310 @brief Gets the page step increments.
1311
1312 Gets the x,y page step increments for the dragable object.
1313
1314 @see edje_object_part_drag_page_set() */
1315
1316 const;
1317 return Eina_Bool;
1318 params {
1319 @in const char *part; /*@ The part name */
1320 @out double dx; /*@ The dx page increment pointer */
1321 @out double dy; /*@ The dy page increment pointer */
1322 }
1323 }
1324 part_box_prepend {
1325 /*@
1326 @brief Prepends an object to the box.
1327
1328 @return @c EINA_TRUE: Successfully added.\n
1329 @c EINA_FALSE: An error occurred.
1330
1331 Prepends child to the box indicated by part.
1332
1333 @see edje_object_part_box_append()
1334 @see edje_object_part_box_insert_before()
1335 @see edje_object_part_box_insert_at() */
1336
1337 return Eina_Bool;
1338 params {
1339 @in const char *part; /*@ The part name */
1340 @in Evas_Object *child; /*@ The object to prepend */
1341 }
1342 }
1343 signal_emit {
1344 /*@
1345 @brief Send/emit an Edje signal to a given Edje object
1346
1347 This function sends a signal to the object @a obj. An Edje program,
1348 at @p obj's EDC specification level, can respond to a signal by
1349 having declared matching @c 'signal' and @c 'source' fields on its
1350 block (see @ref edcref "the syntax" for EDC files).
1351
1352 As an example,
1353 @code
1354 edje_object_signal_emit(obj, "a_signal", "");
1355 @endcode
1356 would trigger a program which had an EDC declaration block like
1357 @code
1358 program {
1359 name: "a_program";
1360 signal: "a_signal";
1361 source: "";
1362 action: ...
1363 }
1364 @endcode
1365
1366 @see edje_object_signal_callback_add() for more on Edje signals. */
1367
1368 params {
1369 @in const char *emission; /*@ The signal's "emission" string */
1370 @in const char *source; /*@ The signal's "source" string */
1371 }
1372 }
1373 part_text_input_panel_layout_variation_set {
1374 /*@
1375 @brief Set the layout variation of the input panel.
1376
1377 The layout variation of the input panel or virtual keyboard can make it easier or
1378 harder to enter content. This allows you to hint what kind of input you
1379 are expecting to enter and thus have the input panel automatically
1380 come up with the right mode.
1381
1382 @since 1.8 */
1383
1384 params {
1385 @in const char *part; /*@ The part name */
1386 @in int variation; /*@ layout variation type */
1387 }
1388 }
1389 part_text_input_panel_layout_variation_get {
1390 /*@
1391 @brief Get the layout variation of the input panel.
1392
1393 @return Layout variation type of the input panel
1394
1395 @see edje_object_part_text_input_panel_layout_variation_set
1396 @since 1.8 */
1397
1398 const;
1399 return int;
1400 params {
1401 @in const char *part; /*@ The part name */
1402 }
1403 }
1404 message_send {
1405 /*@
1406 @brief Send an (Edje) message to a given Edje object
1407
1408 This function sends an Edje message to @p obj and to all of its
1409 child objects, if it has any (swallowed objects are one kind of
1410 child object). @p type and @p msg @b must be matched accordingly,
1411 as documented in #Edje_Message_Type.
1412
1413 The @p id argument as a form of code and theme defining a common
1414 interface on message communication. One should define the same IDs
1415 on both code and EDC declaration (see @ref edcref "the syntax" for
1416 EDC files), to individualize messages (binding them to a given
1417 context).
1418
1419 The function to handle messages arriving @b from @b obj is set with
1420 edje_object_message_handler_set(). */
1421
1422 params {
1423 @in Edje_Message_Type type; /*@ The type of message to send to @p obj */
1424 @in int id; /*@ A identification number for the message to be sent */
1425 @in void *msg; /*@ The message's body, a struct depending on @p type */
1426 }
1427 }
1428 part_text_select_none {
1429 /*@
1430 @brief Set the selection to be none.
1431
1432 This function sets the selection text to be none. */
1433
1434 const;
1435 params {
1436 @in const char *part; /*@ The part name */
1437 }
1438 }
1439 part_object_get {
1440 /*@
1441 @brief Get a handle to the Evas object implementing a given Edje
1442 part, in an Edje object.
1443
1444 @return A pointer to the Evas object implementing the given part,
1445 or @c NULL on failure (e.g. the given part doesn't exist)
1446
1447 This function gets a pointer of the Evas object corresponding to a
1448 given part in the @p obj object's group.
1449
1450 You should @b never modify the state of the returned object (with
1451 @c evas_object_move() or @c evas_object_hide() for example),
1452 because it's meant to be managed by Edje, solely. You are safe to
1453 query information about its current state (with @c
1454 evas_object_visible_get() or @c evas_object_color_get() for
1455 example), though. */
1456
1457 const;
1458 return const Evas_Object *;
1459 params {
1460 @in const char *part; /*@ The Edje part's name */
1461 }
1462 }
1463 part_drag_size_set {
1464 /*@
1465 @brief Set the dragable object size.
1466
1467 Values for @p dw and @p dh are real numbers that range from 0 to 1,
1468 representing the relative size of the dragable area on that axis.
1469
1470 Sets the size of the dragable object.
1471
1472 @see edje_object_part_drag_size_get() */
1473
1474 return Eina_Bool;
1475 params {
1476 @in const char *part; /*@ The part name */
1477 @in double dw; /*@ The drag width */
1478 @in double dh; /*@ The drag height */
1479 }
1480 }
1481 part_drag_size_get {
1482 /*@
1483 @brief Get the dragable object size.
1484
1485 Gets the dragable object size.
1486
1487 @see edje_object_part_drag_size_set() */
1488
1489 const;
1490 return Eina_Bool;
1491 params {
1492 @in const char *part; /*@ The part name */
1493 @out double dw; /*@ The drag width pointer */
1494 @out double dh; /*@ The drag height pointer */
1495 }
1496 }
1497 text_insert_filter_callback_del {
1498 /*@
1499 Delete a function from the filter list.
1500
1501 Delete the given @p func filter from the list in @p part. Returns
1502 the user data pointer given when added.
1503
1504 @see edje_object_text_insert_filter_callback_add
1505 @see edje_object_text_insert_filter_callback_del_full
1506
1507 @return The user data pointer if successful, or NULL otherwise */
1508
1509 return void *;
1510 params {
1511 @in const char *part; /*@ The part name */
1512 @in Edje_Text_Filter_Cb func; /*@ The function callback to remove */
1513 }
1514 }
1515 part_drag_dir_get {
1516 /*@
1517 @brief Determine dragable directions.
1518
1519 The dragable directions are defined in the EDC file, inside the @c dragable
1520 section, by the attributes @c x and @c y. See the @ref edcref for more
1521 information.
1522
1523 @return #EDJE_DRAG_DIR_NONE: Not dragable\n
1524 #EDJE_DRAG_DIR_X: Dragable in X direction\n
1525 #EDJE_DRAG_DIR_Y: Dragable in Y direction\n
1526 #EDJE_DRAG_DIR_XY: Dragable in X & Y directions */
1527
1528 const;
1529 return Edje_Drag_Dir;
1530 params {
1531 @in const char *part; /*@ The part name */
1532 }
1533 }
1534 part_text_unescaped_set {
1535 /*@
1536 @brief Sets the raw (non escaped) text for an object part.
1537
1538 This funciton will not do escape for you if it is a TEXTBLOCK part, that is,
1539 if text contain tags, these tags will not be interpreted/parsed by TEXTBLOCK.
1540
1541 @see edje_object_part_text_unescaped_get(). */
1542
1543 return Eina_Bool;
1544 params {
1545 @in const char *part; /*@ The part name */
1546 @in const char *text_to_escape; /*@ The text string */
1547 }
1548 }
1549 part_text_unescaped_get {
1550 /*@
1551 @brief Returns the text of the object part, without escaping.
1552
1553 @return The @b allocated text string without escaping, or NULL on
1554 problems.
1555
1556 This function is the counterpart of
1557 edje_object_part_text_unescaped_set(). Please notice that the
1558 result is newly allocated memory and should be released with free()
1559 when done.
1560
1561 @see edje_object_part_text_unescaped_set(). */
1562
1563 const;
1564 return char *;
1565 params {
1566 @in const char *part; /*@ The part name */
1567 }
1568 }
1569 signal_callback_add {
1570 /*@
1571 @brief Add a callback for an arriving Edje signal, emitted by
1572 a given Edje object.
1573
1574 Edje signals are one of the communication interfaces between
1575 @b code and a given Edje object's @b theme. With signals, one can
1576 communicate two string values at a time, which are:
1577 - "emission" value: the name of the signal, in general
1578 - "source" value: a name for the signal's context, in general
1579
1580 Though there are those common uses for the two strings, one is free
1581 to use them however they like.
1582
1583 This function adds a callback function to a signal emitted by @a obj, to
1584 be issued every time an EDC program like the following
1585 @code
1586 program {
1587 name: "emit_example";
1588 action: SIGNAL_EMIT "a_signal" "a_source";
1589 }
1590 @endcode
1591 is run, if @p emission and @p source are given those same values,
1592 here.
1593
1594 Signal callback registration is powerful, in the way that @b blobs
1595 may be used to match <b>multiple signals at once</b>. All the @c
1596 "*?[\" set of @c fnmatch() operators can be used, both for @p
1597 emission and @p source.
1598
1599 Edje has @b internal signals it will emit, automatically, on
1600 various actions taking place on group parts. For example, the mouse
1601 cursor being moved, pressed, released, etc., over a given part's
1602 area, all generate individual signals.
1603
1604 By using something like
1605 @code
1606 edje_object_signal_callback_add(obj, "mouse,down,*", "button.*",
1607 signal_cb, NULL);
1608 @endcode
1609 being @c "button.*" the pattern for the names of parts implementing
1610 buttons on an interface, you'd be registering for notifications on
1611 events of mouse buttons being pressed down on either of those parts
1612 (those events all have the @c "mouse,down," common prefix on their
1613 names, with a suffix giving the button number). The actual emission
1614 and source strings of an event will be passed in as the @a emission
1615 and @a source parameters of the callback function (e.g. @c
1616 "mouse,down,2" and @c "button.close"), for each of those events.
1617
1618 @note See @ref edcref "the syntax" for EDC files
1619 @see edje_object_signal_emit() on how to emits Edje signals from
1620 code to a an object
1621 @see edje_object_signal_callback_del_full() */
1622
1623 params {
1624 @in const char *emission; /*@ The signal's "emission" string */
1625 @in const char *source; /*@ The signal's "source" string */
1626 @in Edje_Signal_Cb func; /*@ The callback function to be executed when the signal is
1627 emitted. */
1628 @in void *data; /*@ A pointer to data to pass in to @p func. */
1629 }
1630 }
1631 part_text_select_all {
1632 /*@
1633 @brief Set the selection to be everything.
1634
1635 This function selects all text of the object of the part. */
1636
1637 const;
1638 params {
1639 @in const char *part; /*@ The part name */
1640 }
1641 }
1642 part_text_input_panel_return_key_disabled_set {
1643 /*@
1644 Set the return key on the input panel to be disabled.
1645
1646 @since 1.2.0 */
1647
1648 params {
1649 @in const char *part; /*@ The part name */
1650 @in Eina_Bool disabled; /*@ The state */
1651 }
1652 }
1653 part_text_input_panel_return_key_disabled_get {
1654 /*@
1655 Get whether the return key on the input panel should be disabled or not.
1656
1657 @return EINA_TRUE if it should be disabled
1658 @since 1.2.0 */
1659
1660 const;
1661 return Eina_Bool;
1662 params {
1663 @in const char *part; /*@ The part name */
1664 }
1665 }
1666 part_text_autocapital_type_set {
1667 /*@
1668 @brief Set the autocapitalization type on the immodule.
1669
1670 @since 1.1.0 */
1671
1672 params {
1673 @in const char *part; /*@ The part name */
1674 @in Edje_Text_Autocapital_Type autocapital_type; /*@ The type of autocapitalization */
1675 }
1676 }
1677 part_text_autocapital_type_get {
1678 /*@
1679 @brief Retrieves the autocapitalization type
1680
1681 @return The autocapitalization type
1682 @since 1.1.0 */
1683
1684 const;
1685 return Edje_Text_Autocapital_Type;
1686 params {
1687 @in const char *part; /*@ The part name */
1688 }
1689 }
1690 part_unswallow {
1691 /*@
1692 @brief Unswallow an object.
1693
1694 Causes the edje to regurgitate a previously swallowed object. :)
1695
1696 @note @p obj_swallow will @b not be deleted or hidden.
1697 @note @p obj_swallow may appear shown on the evas depending on its state when
1698 it got unswallowed. Make sure you delete it or hide it if you do not want it to. */
1699
1700 params {
1701 @in Evas_Object *obj_swallow; /*@ The swallowed object */
1702 }
1703 }
1704 part_text_prediction_allow_set {
1705 /*@
1706 @brief Set whether the prediction is allowed or not.
1707
1708 @since 1.2.0 */
1709
1710 params {
1711 @in const char *part; /*@ The part name */
1712 @in Eina_Bool prediction; /*@ If true, the prediction feature is allowed. */
1713 }
1714 }
1715 part_text_prediction_allow_get {
1716 /*@
1717 @brief Get whether the prediction is allowed or not.
1718
1719 @return EINA_TRUE if prediction feature is allowed.
1720 @since 1.2.0 */
1721
1722 const;
1723 return Eina_Bool;
1724 params {
1725 @in const char *part; /*@ The part name */
1726 }
1727 }
1728 data_get {
1729 /*@
1730 @brief Retrive an <b>EDC data field's value</b> from a given Edje
1731 object's group.
1732
1733 @return The data's value string. Must not be freed.
1734
1735 This function fetches an EDC data field's value, which is declared
1736 on the objects building EDC file, <b>under its group</b>. EDC data
1737 blocks are most commonly used to pass arbitrary parameters from an
1738 application's theme to its code.
1739
1740 They look like the following:
1741
1742 @code
1743 collections {
1744 group {
1745 name: "a_group";
1746 data {
1747 item: "key1" "value1";
1748 item: "key2" "value2";
1749 }
1750 }
1751 }
1752 @endcode
1753
1754 EDC data fields always hold @b strings as values, hence the return
1755 type of this function. Check the complete @ref edcref "syntax reference"
1756 for EDC files.
1757
1758 @warning Do not confuse this call with edje_file_data_get(), which
1759 queries for a @b global EDC data field on an EDC declaration file.
1760
1761 @see edje_object_file_set() */
1762
1763 const;
1764 return const char *;
1765 params {
1766 @in const char *key; /*@ The data field's key string */
1767 }
1768 }
1769 text_markup_filter_callback_add {
1770 /*@
1771 Add a markup filter function for newly inserted text.
1772
1773 Whenever text is inserted (not the same as set) into the given @p part,
1774 the list of markup filter functions will be called to decide if and how
1775 the new text will be accepted.
1776 The text parameter in the @p func filter is always markup. It can be
1777 modified by the user and it's up to him to free the one passed if he's to
1778 change the pointer. If doing so, the newly set text should be malloc'ed,
1779 as once all the filters are called Edje will free it.
1780 If the text is to be rejected, freeing it and setting the pointer to NULL
1781 will make Edje break out of the filter cycle and reject the inserted
1782 text.
1783 This function is different from edje_object_text_insert_filter_callback_add()
1784 in that the text parameter in the @p fucn filter is always markup.
1785
1786 @warning If you use this function with
1787 edje_object_text_insert_filter_callback_add() togehter, all
1788 Edje_Text_Filter_Cb functions and Edje_Markup_Filter_Cb functions
1789 will be executed, and then filtered text will be inserted.
1790
1791 @see edje_object_text_markup_filter_callback_del
1792 @see edje_object_text_markup_filter_callback_del_full
1793 @see edje_object_text_insert_filter_callback_add
1794
1795 @since 1.2.0 */
1796
1797 params {
1798 @in const char *part; /*@ The part name */
1799 @in Edje_Markup_Filter_Cb func; /*@ The callback function that will act as markup filter */
1800 @in void *data; /*@ User provided data to pass to the filter function */
1801 }
1802 }
1803 message_signal_process {
1804 /*@
1805 @brief Process an object's message queue.
1806
1807 This function goes through the object message queue processing the
1808 pending messages for @b this specific Edje object. Normally they'd
1809 be processed only at idle time. */
1810
1811 }
1812 part_box_remove {
1813 /*@
1814 @brief Removes an object from the box.
1815
1816 @return Pointer to the object removed, or @c NULL.
1817
1818 Removes child from the box indicated by part.
1819
1820 @see edje_object_part_box_remove_at()
1821 @see edje_object_part_box_remove_all() */
1822
1823 return Evas_Object *;
1824 params {
1825 @in const char *part; /*@ The part name */
1826 @in Evas_Object *child; /*@ The object to remove */
1827 }
1828 }
1829 thaw {
1830 /*@
1831 @brief Thaws the Edje object.
1832
1833 @return The frozen state or 0 if the object is not frozen or on error.
1834
1835 This function thaws the given Edje object.
1836
1837 @note: If sucessives freezes were done, an equal number of
1838 thaws will be required.
1839
1840 @see edje_object_freeze() */
1841
1842 return int;
1843 }
1844 part_swallow_get {
1845 /*@
1846 @brief Get the object currently swallowed by a part.
1847
1848 @return The swallowed object, or NULL if there is none. */
1849
1850 const;
1851 return Evas_Object *;
1852 params {
1853 @in const char *part; /*@ The part name */
1854 }
1855 }
1856 part_text_imf_context_reset {
1857 /*@
1858 @brief Reset the input method context if needed.
1859
1860 This can be necessary in the case where modifying the buffer would confuse on-going input method behavior
1861
1862 @since 1.2.0 */
1863
1864 const;
1865 params {
1866 @in const char *part; /*@ The part name */
1867 }
1868 }
1869 part_text_input_panel_return_key_type_set {
1870 /*@
1871 Set the "return" key type. This type is used to set string or icon on the "return" key of the input panel.
1872
1873 An input panel displays the string or icon associated with this type
1874
1875 @since 1.2.0 */
1876
1877 params {
1878 @in const char *part; /*@ The part name */
1879 @in Edje_Input_Panel_Return_Key_Type return_key_type; /*@ The type of "return" key on the input panel */
1880 }
1881 }
1882 part_text_input_panel_return_key_type_get {
1883 /*@
1884 Get the "return" key type.
1885
1886 @see edje_object_part_text_input_panel_return_key_type_set() for more details
1887
1888 @return The type of "return" key on the input panel
1889 @since 1.2.0 */
1890
1891 const;
1892 return Edje_Input_Panel_Return_Key_Type;
1893 params {
1894 @in const char *part; /*@ The part name */
1895 }
1896 }
1897 part_table_child_get {
1898 /*@
1899 @brief Retrieve a child from a table
1900
1901 @return The child Evas_Object */
1902
1903 const;
1904 return Evas_Object *;
1905 params {
1906 @in const char *part; /*@ The part name */
1907 @in unsigned int col; /*@ The column of the child to get */
1908 @in unsigned int row; /*@ The row of the child to get */
1909 }
1910 }
1911 part_box_insert_before {
1912 /*@
1913 @brief Adds an object to the box.
1914
1915 @return @c EINA_TRUE: Successfully added.\n
1916 @c EINA_FALSE: An error occurred.
1917
1918 Inserts child in the box given by part, in the position marked by
1919 reference.
1920
1921 @see edje_object_part_box_append()
1922 @see edje_object_part_box_prepend()
1923 @see edje_object_part_box_insert_at() */
1924
1925 return Eina_Bool;
1926 params {
1927 @in const char *part; /*@ The part name */
1928 @in Evas_Object *child; /*@ The object to insert */
1929 @in const Evas_Object *reference; /*@ The object to be used as reference */
1930 }
1931 }
1932 part_external_param_set {
1933 /*@
1934 @brief Set the parameter for the external part.
1935
1936 Parts of type external may carry extra properties that have
1937 meanings defined by the external plugin. For instance, it may be a
1938 string that defines a button label and setting this property will
1939 change that label on the fly.
1940
1941 @note external parts have parameters set when they change
1942 states. Those parameters will never be changed by this
1943 function. The interpretation of how state_set parameters and
1944 param_set will interact is up to the external plugin.
1945
1946 @note this function will not check if parameter value is valid
1947 using #Edje_External_Param_Info minimum, maximum, valid
1948 choices and others. However these should be checked by the
1949 underlying implementation provided by the external
1950 plugin. This is done for performance reasons.
1951
1952 @return @c EINA_TRUE if everything went fine, @c EINA_FALSE on errors. */
1953
1954 return Eina_Bool;
1955 params {
1956 @in const char *part; /*@ The part name */
1957 @in const Edje_External_Param *param; /*@ the parameter details, including its name, type and
1958 actual value. This pointer should be valid, and the
1959 parameter must exist in
1960 #Edje_External_Type::parameters_info, with the exact type,
1961 otherwise the operation will fail and @c EINA_FALSE will be
1962 returned. */
1963 }
1964 }
1965 part_external_param_get {
1966 /*@
1967 @brief Get the parameter for the external part.
1968
1969 Parts of type external may carry extra properties that have
1970 meanings defined by the external plugin. For instance, it may be a
1971 string that defines a button label. This property can be modified by
1972 state parameters, by explicit calls to
1973 edje_object_part_external_param_set() or getting the actual object
1974 with edje_object_part_external_object_get() and calling native
1975 functions.
1976
1977 This function asks the external plugin what is the current value,
1978 independent on how it was set.
1979
1980 @return @c EINA_TRUE if everything went fine and @p param members
1981 are filled with information, @c EINA_FALSE on errors and @p
1982 param member values are not set or valid. */
1983
1984 const;
1985 return Eina_Bool;
1986 params {
1987 @in const char *part; /*@ The part name */
1988 @out Edje_External_Param param; /*@ the parameter details. It is used as both input and
1989 output variable. This pointer should be valid, and the
1990 parameter must exist in
1991 #Edje_External_Type::parameters_info, with the exact type,
1992 otherwise the operation will fail and @c EINA_FALSE will be
1993 returned. */
1994 }
1995 }
1996 size_min_calc {
1997 /*@
1998 @brief Calculate the minimum required size for a given Edje object.
1999
2000 This call works exactly as edje_object_size_min_restricted_calc(),
2001 with the last two arguments set to 0. Please refer to its
2002 documentation, then. */
2003
2004 params {
2005 @out Evas_Coord minw; /*@ Pointer to a variable where to store the minimum
2006 required width */
2007 @out Evas_Coord minh; /*@ Pointer to a variable where to store the minimum
2008 required height */
2009 }
2010 }
2011 part_box_append {
2012 /*@
2013 @brief Appends an object to the box.
2014
2015 @return @c EINA_TRUE: Successfully added.\n
2016 @c EINA_FALSE: An error occurred.
2017
2018 Appends child to the box indicated by part.
2019
2020 @see edje_object_part_box_prepend()
2021 @see edje_object_part_box_insert_before()
2022 @see edje_object_part_box_insert_at() */
2023
2024 return Eina_Bool;
2025 params {
2026 @in const char *part; /*@ The part name */
2027 @in Evas_Object *child; /*@ The object to append */
2028 }
2029 }
2030 size_min_restricted_calc {
2031 /*@
2032 @brief Calculate the minimum required size for a given Edje object.
2033
2034 This call will trigger an internal recalculation of all parts of
2035 the @p obj object, in order to return its minimum required
2036 dimensions for width and height. The user might choose to @b impose
2037 those minimum sizes, making the resulting calculation to get to values
2038 equal or bigger than @p restrictedw and @p restrictedh, for width and
2039 height, respectively.
2040
2041 @note At the end of this call, @p obj @b won't be automatically
2042 resized to new dimensions, but just return the calculated
2043 sizes. The caller is the one up to change its geometry or not.
2044
2045 @warning Be advised that invisible parts in @p obj @b will be taken
2046 into account in this calculation. */
2047
2048 params {
2049 @out Evas_Coord minw; /*@ Pointer to a variable where to store the minimum
2050 required width */
2051 @out Evas_Coord minh; /*@ Pointer to a variable where to store the minimum
2052 required height */
2053 @in Evas_Coord restrictedw; /*@ Do not allow object's calculated (minimum) width
2054 to be less than this value */
2055 @in Evas_Coord restrictedh; /*@ Do not allow object's calculated (minimum)
2056 height to be less than this value */
2057 }
2058 }
2059 part_box_remove_all {
2060 /*@
2061 @brief Removes all elements from the box.
2062
2063 @return 1: Successfully cleared.\n
2064 0: An error occurred.
2065
2066 Removes all the external objects from the box indicated by part.
2067 Elements created from the theme will not be removed.
2068
2069 @see edje_object_part_box_remove()
2070 @see edje_object_part_box_remove_at() */
2071
2072 return Eina_Bool;
2073 params {
2074 @in const char *part; /*@ The part name */
2075 @in Eina_Bool clear; /*@ Delete objects on removal */
2076 }
2077 }
2078 part_drag_page {
2079 /*@
2080 @brief Pages x,y steps.
2081
2082 Pages x,y where the increment is defined by
2083 edje_object_part_drag_page_set.
2084
2085 Values for @p dx and @p dy are real numbers that range from 0 to 1.
2086
2087 @warning Paging is bugged!
2088
2089 @see edje_object_part_drag_step() */
2090
2091 return Eina_Bool;
2092 params {
2093 @in const char *part; /*@ The part name */
2094 @in double dx; /*@ The x step */
2095 @in double dy; /*@ The y step */
2096 }
2097 }
2098 part_text_set {
2099 /*@
2100 @brief Sets the text for an object part
2101
2102 @return @c EINA_TRUE on success, @c EINA_FALSE otherwise */
2103
2104 return Eina_Bool;
2105 params {
2106 @in const char *part; /*@ The part name */
2107 @in const char *text; /*@ The text string */
2108 }
2109 }
2110 part_text_get {
2111 /*@
2112 @brief Return the text of the object part.
2113
2114 @return The text string
2115
2116 This function returns the text associated to the object part.
2117
2118 @see edje_object_part_text_set(). */
2119
2120 const;
2121 return const char *;
2122 params {
2123 @in const char *part; /*@ The part name */
2124 }
2125 }
2126 part_text_input_panel_show_on_demand_set {
2127 /*@
2128 Set the attribute to show the input panel in case of only an user's explicit Mouse Up event.
2129 It doesn't request to show the input panel even though it has focus.
2130
2131 @since 1.9.0 */
2132
2133 params {
2134 @in const char *part; /*@ The part name */
2135 @in Eina_Bool ondemand; /*@ If true, the input panel will be shown in case of only Mouse up event. (Focus event will be ignored.) */
2136 }
2137 }
2138 part_text_input_panel_show_on_demand_get {
2139 /*@
2140 Get the attribute to show the input panel in case of only an user's explicit Mouse Up event.
2141
2142 @return @c EINA_TRUE if the input panel will be shown in case of only Mouse up event.
2143 @since 1.9.0 */
2144
2145 const;
2146 return Eina_Bool;
2147 params {
2148 @in const char *part; /*@ The part name */
2149 }
2150 }
2151 part_text_selection_get {
2152 /*@
2153 @brief Return the selection text of the object part.
2154
2155 @return The text string
2156
2157 This function returns selection text of the object part.
2158
2159 @see edje_object_part_text_select_all()
2160 @see edje_object_part_text_select_none() */
2161
2162 const;
2163 return const char *;
2164 params {
2165 @in const char *part; /*@ The part name */
2166 }
2167 }
2168 part_text_cursor_is_format_get {
2169 /*@
2170 @brief Returns whether the cursor points to a format.
2171 @see evas_textblock_cursor_is_format
2172
2173 @return EINA_TRUE if it's true, EINA_FALSE otherwise. */
2174
2175 const;
2176 return Eina_Bool;
2177 params {
2178 @in const char *part; /*@ The part name */
2179 @in Edje_Cursor cur; /*@ The cursor to adjust. */
2180 }
2181 }
2182 color_class_set {
2183 /*@
2184 @brief Sets the object color class.
2185
2186 This function sets the color values for an object level color
2187 class. This will cause all edje parts in the specified object that
2188 have the specified color class to have their colors multiplied by
2189 these values.
2190
2191 The first color is the object, the second is the text outline, and
2192 the third is the text shadow. (Note that the second two only apply
2193 to text parts).
2194
2195 Setting color emits a signal "color_class,set" with source being
2196 the given color.
2197
2198 @note unlike Evas, Edje colors are @b not pre-multiplied. That is,
2199 half-transparent white is 255 255 255 128. */
2200
2201 return Eina_Bool;
2202 params {
2203 @in const char *color_class;
2204 @in int r; /*@ Object Red value */
2205 @in int g; /*@ Object Green value */
2206 @in int b; /*@ Object Blue value */
2207 @in int a; /*@ Object Alpha value */
2208 @in int r2; /*@ Outline Red value */
2209 @in int g2; /*@ Outline Green value */
2210 @in int b2; /*@ Outline Blue value */
2211 @in int a2; /*@ Outline Alpha value */
2212 @in int r3; /*@ Shadow Red value */
2213 @in int g3; /*@ Shadow Green value */
2214 @in int b3; /*@ Shadow Blue value */
2215 @in int a3; /*@ Shadow Alpha value */
2216 }
2217 }
2218 color_class_get {
2219 /*@
2220 @brief Gets the object color class.
2221
2222 @return EINA_TRUE if found or EINA_FALSE if not found and all
2223 values are zeroed.
2224
2225 This function gets the color values for an object level color
2226 class. If no explicit object color is set, then global values will
2227 be used.
2228
2229 The first color is the object, the second is the text outline, and
2230 the third is the text shadow. (Note that the second two only apply
2231 to text parts).
2232
2233 @note unlike Evas, Edje colors are @b not pre-multiplied. That is,
2234 half-transparent white is 255 255 255 128. */
2235
2236 const;
2237 return Eina_Bool;
2238 params {
2239 @in const char *color_class;
2240 @out int r; /*@ Object Red value */
2241 @out int g; /*@ Object Green value */
2242 @out int b; /*@ Object Blue value */
2243 @out int a; /*@ Object Alpha value */
2244 @out int r2; /*@ Outline Red value */
2245 @out int g2; /*@ Outline Green value */
2246 @out int b2; /*@ Outline Blue value */
2247 @out int a2; /*@ Outline Alpha value */
2248 @out int r3; /*@ Shadow Red value */
2249 @out int g3; /*@ Shadow Green value */
2250 @out int b3; /*@ Shadow Blue value */
2251 @out int a3; /*@ Shadow Alpha value */
2252 }
2253 }
2254 part_drag_step {
2255 /*@
2256 @brief Steps the dragable x,y steps.
2257
2258 Steps x,y where the step increment is the amount set by
2259 edje_object_part_drag_step_set.
2260
2261 Values for @p dx and @p dy are real numbers that range from 0 to 1.
2262
2263 @see edje_object_part_drag_page() */
2264
2265 return Eina_Bool;
2266 params {
2267 @in const char *part; /*@ The part name */
2268 @in double dx; /*@ The x step */
2269 @in double dy; /*@ The y step */
2270 }
2271 }
2272 part_text_cursor_up {
2273 /*@
2274 @brief Move the cursor to the char above the current cursor position. */
2275
2276 return Eina_Bool;
2277 params {
2278 @in const char *part; /*@ The part name */
2279 @in Edje_Cursor cur; /*@ the edje cursor to work on */
2280 }
2281 }
2282 part_text_cursor_geometry_get {
2283 /*@
2284 @brief Returns the cursor geometry of the part relative to the edje
2285 object. */
2286
2287 const;
2288 params {
2289 @in const char *part; /*@ The part name */
2290 @out Evas_Coord x; /*@ Cursor X position */
2291 @out Evas_Coord y; /*@ Cursor Y position */
2292 @out Evas_Coord w; /*@ Cursor width */
2293 @out Evas_Coord h; /*@ Cursor height */
2294 }
2295 }
2296 part_text_anchor_list_get {
2297 /*@
2298 @brief Return a list of char anchor names.
2299
2300 @return The list of anchors (const char *), do not modify!
2301
2302 This function returns a list of char anchor names. */
2303
2304 const;
2305 return const Eina_List *;
2306 params {
2307 @in const char *part; /*@ The part name */
2308 }
2309 }
2310 text_insert_filter_callback_add {
2311 /*@
2312 Add a filter function for newly inserted text.
2313
2314 Whenever text is inserted (not the same as set) into the given @p part,
2315 the list of filter functions will be called to decide if and how the new
2316 text will be accepted.
2317 There are three types of filters, EDJE_TEXT_FILTER_TEXT,
2318 EDJE_TEXT_FILTER_FORMAT and EDJE_TEXT_FILTER_MARKUP.
2319 The text parameter in the @p func filter can be modified by the user and
2320 it's up to him to free the one passed if he's to change the pointer. If
2321 doing so, the newly set text should be malloc'ed, as once all the filters
2322 are called Edje will free it.
2323 If the text is to be rejected, freeing it and setting the pointer to NULL
2324 will make Edje break out of the filter cycle and reject the inserted
2325 text.
2326
2327 @warning This function will be deprecated because of difficulty in use.
2328 The type(format, text, or markup) of text should be always
2329 checked in the filter function for correct filtering.
2330 Please use edje_object_text_markup_filter_callback_add() instead. There
2331 is no need to check the type of text in the filter function
2332 because the text is always markup.
2333 @warning If you use this function with
2334 edje_object_text_markup_filter_callback_add() together, all
2335 Edje_Text_Filter_Cb functions and Edje_Markup_Filter_Cb functions
2336 will be executed, and then filtered text will be inserted.
2337
2338 @see edje_object_text_insert_filter_callback_del
2339 @see edje_object_text_insert_filter_callback_del_full
2340 @see edje_object_text_markup_filter_callback_add */
2341
2342 params {
2343 @in const char *part; /*@ The part name */
2344 @in Edje_Text_Filter_Cb func; /*@ The callback function that will act as filter */
2345 @in void *data; /*@ User provided data to pass to the filter function */
2346 }
2347 }
2348 part_text_input_panel_show {
2349 /*@
2350 @brief Show the input panel (virtual keyboard) based on the input panel property such as layout, autocapital types, and so on.
2351
2352 Note that input panel is shown or hidden automatically according to the focus state.
2353 This API can be used in the case of manually controlling by using edje_object_part_text_input_panel_enabled_set.
2354
2355 @since 1.2.0 */
2356
2357 const;
2358 params {
2359 @in const char *part; /*@ The part name */
2360 }
2361 }
2362 part_exists {
2363 /*@
2364 @brief Check if an Edje part exists in a given Edje object's group
2365 definition.
2366
2367 @return @c EINA_TRUE, if the Edje part exists in @p obj's group or
2368 @c EINA_FALSE, otherwise (and on errors)
2369
2370 This function returns if a given part exists in the Edje group
2371 bound to object @p obj (with edje_object_file_set()).
2372
2373 This call is useful, for example, when one could expect or not a
2374 given GUI element, depending on the @b theme applied to @p obj. */
2375
2376 const;
2377 return Eina_Bool;
2378 params {
2379 @in const char *part; /*@ The part's name to check for existence in @p obj's
2380 group */
2381 }
2382 }
2383 text_markup_filter_callback_del {
2384 /*@
2385 Delete a function from the markup filter list.
2386
2387 Delete the given @p func filter from the list in @p part. Returns
2388 the user data pointer given when added.
2389
2390 @see edje_object_text_markup_filter_callback_add
2391 @see edje_object_text_markup_filter_callback_del_full
2392
2393 @return The user data pointer if successful, or NULL otherwise
2394 @since 1.2.0 */
2395
2396 return void *;
2397 params {
2398 @in const char *part; /*@ The part name */
2399 @in Edje_Markup_Filter_Cb func; /*@ The function callback to remove */
2400 }
2401 }
2402 part_text_cursor_is_visible_format_get {
2403 /*@
2404 @brief Return true if the cursor points to a visible format
2405 For example \\t, \\n, item and etc.
2406 @see evas_textblock_cursor_format_is_visible_get */
2407
2408 const;
2409 return Eina_Bool;
2410 params {
2411 @in const char *part; /*@ The part name */
2412 @in Edje_Cursor cur; /*@ The cursor to adjust. */
2413 }
2414 }
2415 part_text_user_insert {
2416 /*@
2417 @brief This function inserts text as if the user has inserted it.
2418
2419 This means it actually registers as a change and emits signals, triggers
2420 callbacks as appropriate.
2421
2422 @since 1.2.0 */
2423
2424 const;
2425 params {
2426 @in const char *part; /*@ The part name */
2427 @in const char *text; /*@ The text string */
2428 }
2429 }
2430 part_text_cursor_prev {
2431 /*@
2432 @brief Moves the cursor to the previous char
2433 @see evas_textblock_cursor_char_prev */
2434
2435 return Eina_Bool;
2436 params {
2437 @in const char *part; /*@ The part name */
2438 @in Edje_Cursor cur; /*@ the edje cursor to work on */
2439 }
2440 }
2441 part_text_item_list_get {
2442 /*@
2443 @brief Return a list of char item names.
2444
2445 @return The list of items (const char *), do not modify!
2446
2447 This function returns a list of char item names. */
2448
2449 const;
2450 return const Eina_List *;
2451 params {
2452 @in const char *part; /*@ The part name */
2453 }
2454 }
2455 part_swallow {
2456 /*@
2457 @brief "Swallows" an object into one of the Edje object @c SWALLOW
2458 parts.
2459
2460 Swallowing an object into an Edje object is, for a given part of
2461 type @c SWALLOW in the EDC group which gave life to @a obj, to set
2462 an external object to be controlled by @a obj, being displayed
2463 exactly over that part's region inside the whole Edje object's
2464 viewport.
2465
2466 From this point on, @a obj will have total control over @a
2467 obj_swallow's geometry and visibility. For instance, if @a obj is
2468 visible, as in @c evas_object_show(), the swallowed object will be
2469 visible too -- if the given @c SWALLOW part it's in is also
2470 visible. Other actions on @a obj will also reflect on the swallowed
2471 object as well (e.g. resizing, moving, raising/lowering, etc.).
2472
2473 Finally, all internal changes to @a part, specifically, will
2474 reflect on the displaying of @a obj_swallow, for example state
2475 changes leading to different visibility states, geometries,
2476 positions, etc.
2477
2478 If an object has already been swallowed into this part, then it
2479 will first be unswallowed (as in edje_object_part_unswallow())
2480 before the new object is swallowed.
2481
2482 @note @a obj @b won't delete the swallowed object once it is
2483 deleted -- @a obj_swallow will get to an unparented state again.
2484
2485 For more details on EDC @c SWALLOW parts, see @ref edcref "syntax
2486 reference". */
2487
2488 return Eina_Bool;
2489 params {
2490 @in const char *part; /*@ The swallow part's name */
2491 @in Evas_Object *obj_swallow; /*@ The object to occupy that part */
2492 }
2493 }
2494 }
2495 implements {
2496 Eo_Base::constructor;
2497 Eo_Base::destructor;
2498 Eo_Base::dbg_info_get;
2499 Evas_Smart::hide;
2500 Evas_Smart::calculate;
2501 Evas_Smart::show;
2502 Evas_Smart::move;
2503 Evas_Smart::add;
2504 Evas_Smart::del;
2505 Evas_Smart::resize;
2506 }
2507}
diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c
index 00c25db3ce..073827c69c 100644
--- a/src/lib/edje/edje_calc.c
+++ b/src/lib/edje/edje_calc.c
@@ -635,17 +635,17 @@ _edje_part_description_apply(Edje *ed, Edje_Real_Part *ep, const char *d1, doubl
635void 635void
636_edje_recalc(Edje *ed) 636_edje_recalc(Edje *ed)
637{ 637{
638 if ((ed->freeze > 0) || (_edje_freeze_val > 0)) 638 if ((ed->freeze > 0) || (_edje_util_freeze_val > 0))
639 { 639 {
640 ed->recalc = EINA_TRUE; 640 ed->recalc = EINA_TRUE;
641 if (!ed->calc_only) 641 if (!ed->calc_only)
642 { 642 {
643 if (_edje_freeze_val > 0) 643 if (_edje_util_freeze_val > 0)
644 { 644 {
645 if (!ed->freeze_calc) 645 if (!ed->freeze_calc)
646 { 646 {
647 _edje_freeze_calc_count++; 647 _edje_util_freeze_calc_count++;
648 _edje_freeze_calc_list = eina_list_append(_edje_freeze_calc_list, ed); 648 _edje_util_freeze_calc_list = eina_list_append(_edje_util_freeze_calc_list, ed);
649 ed->freeze_calc = EINA_TRUE; 649 ed->freeze_calc = EINA_TRUE;
650 } 650 }
651 } 651 }
diff --git a/src/lib/edje/edje_callbacks.c b/src/lib/edje/edje_callbacks.c
index 5ea7efbd05..a30ff7738a 100644
--- a/src/lib/edje/edje_callbacks.c
+++ b/src/lib/edje/edje_callbacks.c
@@ -108,7 +108,7 @@ _edje_mouse_down_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc
108 ignored = rp->part->ignore_flags & ev->event_flags; 108 ignored = rp->part->ignore_flags & ev->event_flags;
109 109
110 _edje_ref(ed); 110 _edje_ref(ed);
111 _edje_freeze(ed); 111 _edje_util_freeze(ed);
112 112
113 if ((!ev->event_flags) || (!ignored)) 113 if ((!ev->event_flags) || (!ignored))
114 { 114 {
@@ -154,7 +154,7 @@ _edje_mouse_down_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc
154 rp->still_in = EINA_TRUE; 154 rp->still_in = EINA_TRUE;
155 } 155 }
156// _edje_recalc_do(ed); 156// _edje_recalc_do(ed);
157 _edje_thaw(ed); 157 _edje_util_thaw(ed);
158 _edje_unref(ed); 158 _edje_unref(ed);
159 159
160 return EO_CALLBACK_CONTINUE; 160 return EO_CALLBACK_CONTINUE;
@@ -178,7 +178,7 @@ _edje_mouse_up_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc E
178 ignored = rp->part->ignore_flags & ev->event_flags; 178 ignored = rp->part->ignore_flags & ev->event_flags;
179 179
180 _edje_ref(ed); 180 _edje_ref(ed);
181 _edje_freeze(ed); 181 _edje_util_freeze(ed);
182 182
183 if ((!ev->event_flags) || (!ignored)) 183 if ((!ev->event_flags) || (!ignored))
184 { 184 {
@@ -228,7 +228,7 @@ _edje_mouse_up_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc E
228 rp->still_in = EINA_FALSE; 228 rp->still_in = EINA_FALSE;
229 229
230// _edje_recalc_do(ed); 230// _edje_recalc_do(ed);
231 _edje_thaw(ed); 231 _edje_util_thaw(ed);
232 _edje_unref(ed); 232 _edje_unref(ed);
233 233
234 return EO_CALLBACK_CONTINUE; 234 return EO_CALLBACK_CONTINUE;
@@ -285,7 +285,7 @@ _edje_mouse_move_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc
285 rp->still_in = EINA_TRUE; 285 rp->still_in = EINA_TRUE;
286 } 286 }
287 } 287 }
288 _edje_freeze(ed); 288 _edje_util_freeze(ed);
289 if (rp->drag) 289 if (rp->drag)
290 { 290 {
291 if (rp->drag->down.count > 0) 291 if (rp->drag->down.count > 0)
@@ -328,7 +328,7 @@ _edje_mouse_move_signal_cb(void *data, Eo *obj, const Eo_Event_Description *desc
328 } 328 }
329 } 329 }
330 _edje_unref(ed); 330 _edje_unref(ed);
331 _edje_thaw(ed); 331 _edje_util_thaw(ed);
332 332
333 return EO_CALLBACK_CONTINUE; 333 return EO_CALLBACK_CONTINUE;
334} 334}
@@ -376,7 +376,7 @@ _edje_timer_cb(void *data EINA_UNUSED)
376 376
377 ed = eina_list_data_get(animl); 377 ed = eina_list_data_get(animl);
378 _edje_block(ed); 378 _edje_block(ed);
379 _edje_freeze(ed); 379 _edje_util_freeze(ed);
380 animl = eina_list_remove(animl, eina_list_data_get(animl)); 380 animl = eina_list_remove(animl, eina_list_data_get(animl));
381 if ((!ed->paused) && (!ed->delete_me)) 381 if ((!ed->paused) && (!ed->delete_me))
382 { 382 {
@@ -423,7 +423,7 @@ _edje_timer_cb(void *data EINA_UNUSED)
423 } 423 }
424 break_prog: 424 break_prog:
425 _edje_unblock(ed); 425 _edje_unblock(ed);
426 _edje_thaw(ed); 426 _edje_util_thaw(ed);
427 _edje_unref(ed); 427 _edje_unref(ed);
428 } 428 }
429 if (_edje_anim_count > 0) return ECORE_CALLBACK_RENEW; 429 if (_edje_anim_count > 0) return ECORE_CALLBACK_RENEW;
diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c
index 7f3d9dafed..834391928b 100644
--- a/src/lib/edje/edje_edit.c
+++ b/src/lib/edje/edje_edit.c
@@ -150,10 +150,9 @@ _edje_edit_data_clean(Edje_Edit *eed)
150 eed->script_need_recompile = EINA_FALSE; 150 eed->script_need_recompile = EINA_FALSE;
151} 151}
152 152
153static void 153EOLIAN static void
154_edje_edit_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED) 154_edje_edit_evas_smart_del(Eo *obj, Edje_Edit *eed)
155{ 155{
156 Edje_Edit *eed = _pd;
157 _edje_edit_data_clean(eed); 156 _edje_edit_data_clean(eed);
158 157
159 eo_do_super(obj, MY_CLASS, evas_obj_smart_del()); 158 eo_do_super(obj, MY_CLASS, evas_obj_smart_del());
@@ -167,19 +166,16 @@ _edje_edit_program_script_free(Program_Script *ps)
167 free(ps); 166 free(ps);
168} 167}
169 168
170static void 169EOLIAN static Eina_Bool
171_edje_edit_smart_file_set(Eo *obj, void *_pd, va_list *list) 170_edje_edit_edje_file_set(Eo *obj, Edje_Edit *eed, const char *file, const char *group)
172{ 171{
173 const char *file = va_arg(*list, const char *); 172 Eina_Bool ret;
174 const char *group= va_arg(*list, const char *);
175 Eina_Bool *ret = va_arg(*list, Eina_Bool *);
176 Edje_Edit *eed = _pd;
177 Eet_File *ef; 173 Eet_File *ef;
178 char **keys, buf[64]; 174 char **keys, buf[64];
179 int count, i; 175 int count, i;
180 int len = strlen("edje/scripts/embryo/source/"); 176 int len = strlen("edje/scripts/embryo/source/");
181 177
182 if (ret) *ret = EINA_FALSE; 178 ret = EINA_FALSE;
183 179
184 _edje_edit_data_clean(eed); 180 _edje_edit_data_clean(eed);
185 181
@@ -199,7 +195,7 @@ _edje_edit_smart_file_set(Eo *obj, void *_pd, va_list *list)
199 Eina_Bool int_ret = EINA_FALSE; 195 Eina_Bool int_ret = EINA_FALSE;
200 eo_do_super(obj, MY_CLASS, edje_obj_file_set(file, group, &int_ret)); 196 eo_do_super(obj, MY_CLASS, edje_obj_file_set(file, group, &int_ret));
201 if (!int_ret) 197 if (!int_ret)
202 return; 198 return ret;
203 199
204 eed->program_scripts = eina_hash_int32_new((Eina_Free_Cb)_edje_edit_program_script_free); 200 eed->program_scripts = eina_hash_int32_new((Eina_Free_Cb)_edje_edit_program_script_free);
205 201
@@ -226,7 +222,9 @@ _edje_edit_smart_file_set(Eo *obj, void *_pd, va_list *list)
226 if (keys) free(keys); 222 if (keys) free(keys);
227 eet_close(ef); 223 eet_close(ef);
228 224
229 if (ret) *ret = EINA_TRUE; 225 ret = EINA_TRUE;
226
227 return ret;
230} 228}
231 229
232EAPI Evas_Object * 230EAPI Evas_Object *
@@ -238,21 +236,21 @@ edje_edit_object_add(Evas *evas)
238 return e; 236 return e;
239} 237}
240 238
241static void 239EOLIAN static void
242_edje_edit_constructor(Eo *obj, void *class_data, va_list *list EINA_UNUSED) 240_edje_edit_eo_base_constructor(Eo *obj, Edje_Edit *eed)
243{ 241{
244 Edje_Edit *eed = class_data;
245 eed->base = eo_data_ref(obj, EDJE_OBJ_CLASS); 242 eed->base = eo_data_ref(obj, EDJE_OBJ_CLASS);
246 243
247 eo_do_super(obj, MY_CLASS, eo_constructor()); 244 eo_do_super(obj, MY_CLASS, eo_constructor());
248} 245}
249 246
250static void 247EOLIAN static void
251_edje_edit_destructor(Eo *obj, void *class_data, va_list *list EINA_UNUSED) 248_edje_edit_eo_base_destructor(Eo *obj, Edje_Edit *class_data EINA_UNUSED)
252{ 249{
253 eo_do_super(obj, MY_CLASS, eo_destructor()); 250 eo_do_super(obj, MY_CLASS, eo_destructor());
254 eo_data_unref(obj, class_data); 251 eo_data_unref(obj, class_data);
255} 252}
253
256/* End of Edje_Edit smart stuff */ 254/* End of Edje_Edit smart stuff */
257 255
258static Edje_Part_Description_Common * 256static Edje_Part_Description_Common *
@@ -8347,30 +8345,4 @@ edje_edit_print_internal_status(Evas_Object *obj)
8347 */ 8345 */
8348} 8346}
8349 8347
8350static void 8348#include "edje_edit.eo.c" \ No newline at end of file
8351_edje_edit_class_constructor(Eo_Class *klass)
8352{
8353 const Eo_Op_Func_Description func_desc[] = {
8354 EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), _edje_edit_constructor),
8355 EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_DESTRUCTOR), _edje_edit_destructor),
8356 EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), _edje_edit_smart_del),
8357 EO_OP_FUNC(EDJE_OBJ_ID(EDJE_OBJ_SUB_ID_FILE_SET), _edje_edit_smart_file_set),
8358 EO_OP_FUNC_SENTINEL
8359 };
8360
8361 eo_class_funcs_set(klass, func_desc);
8362}
8363
8364static const Eo_Class_Description edje_edit_class_desc = {
8365 EO_VERSION,
8366 "Edje_Edit",
8367 EO_CLASS_TYPE_REGULAR,
8368 EO_CLASS_DESCRIPTION_OPS(NULL, NULL, 0),
8369 NULL,
8370 sizeof(Edje_Edit),
8371 _edje_edit_class_constructor,
8372 NULL
8373};
8374
8375EO_DEFINE_CLASS(edje_edit_class_get, &edje_edit_class_desc, EDJE_OBJ_CLASS, NULL);
8376
diff --git a/src/lib/edje/edje_edit.eo b/src/lib/edje/edje_edit.eo
new file mode 100644
index 0000000000..7dece71cec
--- /dev/null
+++ b/src/lib/edje/edje_edit.eo
@@ -0,0 +1,10 @@
1class Edje_Edit (Edje)
2{
3 data: Edje_Edit;
4 implements {
5 Eo_Base::constructor;
6 Eo_Base::destructor;
7 Evas_Smart::del;
8 Edje::file::set;
9 }
10} \ No newline at end of file
diff --git a/src/lib/edje/edje_embryo.c b/src/lib/edje/edje_embryo.c
index cc5eedacdd..15e9710994 100644
--- a/src/lib/edje/edje_embryo.c
+++ b/src/lib/edje/edje_embryo.c
@@ -1493,7 +1493,7 @@ _edje_embryo_fn_send_message(Embryo_Program *ep, Embryo_Cell *params)
1493 switch (type) 1493 switch (type)
1494 { 1494 {
1495 case EDJE_MESSAGE_NONE: 1495 case EDJE_MESSAGE_NONE:
1496 _edje_message_send(ed, EDJE_QUEUE_APP, type, id, NULL); 1496 _edje_util_message_send(ed, EDJE_QUEUE_APP, type, id, NULL);
1497 break; 1497 break;
1498 case EDJE_MESSAGE_SIGNAL: 1498 case EDJE_MESSAGE_SIGNAL:
1499 break; 1499 break;
@@ -1514,7 +1514,7 @@ _edje_embryo_fn_send_message(Embryo_Program *ep, Embryo_Cell *params)
1514 embryo_data_string_get(ep, cptr, s); 1514 embryo_data_string_get(ep, cptr, s);
1515 emsg = alloca(sizeof(Edje_Message_String)); 1515 emsg = alloca(sizeof(Edje_Message_String));
1516 emsg->str = s; 1516 emsg->str = s;
1517 _edje_message_send(ed, EDJE_QUEUE_APP, type, id, emsg); 1517 _edje_util_message_send(ed, EDJE_QUEUE_APP, type, id, emsg);
1518 } 1518 }
1519 } 1519 }
1520 break; 1520 break;
@@ -1526,7 +1526,7 @@ _edje_embryo_fn_send_message(Embryo_Program *ep, Embryo_Cell *params)
1526 ptr = embryo_data_address_get(ep, params[3]); 1526 ptr = embryo_data_address_get(ep, params[3]);
1527 if (ptr) emsg->val = (int)*ptr; 1527 if (ptr) emsg->val = (int)*ptr;
1528 else emsg->val = 0; 1528 else emsg->val = 0;
1529 _edje_message_send(ed, EDJE_QUEUE_APP, type, id, emsg); 1529 _edje_util_message_send(ed, EDJE_QUEUE_APP, type, id, emsg);
1530 } 1530 }
1531 break; 1531 break;
1532 case EDJE_MESSAGE_FLOAT: 1532 case EDJE_MESSAGE_FLOAT:
@@ -1543,7 +1543,7 @@ _edje_embryo_fn_send_message(Embryo_Program *ep, Embryo_Cell *params)
1543 } 1543 }
1544 else 1544 else
1545 emsg->val = 0.0; 1545 emsg->val = 0.0;
1546 _edje_message_send(ed, EDJE_QUEUE_APP, type, id, emsg); 1546 _edje_util_message_send(ed, EDJE_QUEUE_APP, type, id, emsg);
1547 } 1547 }
1548 break; 1548 break;
1549 case EDJE_MESSAGE_STRING_SET: 1549 case EDJE_MESSAGE_STRING_SET:
@@ -1570,7 +1570,7 @@ _edje_embryo_fn_send_message(Embryo_Program *ep, Embryo_Cell *params)
1570 emsg->str[i - 3] = s; 1570 emsg->str[i - 3] = s;
1571 } 1571 }
1572 } 1572 }
1573 _edje_message_send(ed, EDJE_QUEUE_APP, type, id, emsg); 1573 _edje_util_message_send(ed, EDJE_QUEUE_APP, type, id, emsg);
1574 } 1574 }
1575 break; 1575 break;
1576 case EDJE_MESSAGE_INT_SET: 1576 case EDJE_MESSAGE_INT_SET:
@@ -1586,7 +1586,7 @@ _edje_embryo_fn_send_message(Embryo_Program *ep, Embryo_Cell *params)
1586 if (ptr) emsg->val[i - 3] = (int)*ptr; 1586 if (ptr) emsg->val[i - 3] = (int)*ptr;
1587 else emsg->val[i - 3] = 0; 1587 else emsg->val[i - 3] = 0;
1588 } 1588 }
1589 _edje_message_send(ed, EDJE_QUEUE_APP, type, id, emsg); 1589 _edje_util_message_send(ed, EDJE_QUEUE_APP, type, id, emsg);
1590 } 1590 }
1591 break; 1591 break;
1592 case EDJE_MESSAGE_FLOAT_SET: 1592 case EDJE_MESSAGE_FLOAT_SET:
@@ -1609,7 +1609,7 @@ _edje_embryo_fn_send_message(Embryo_Program *ep, Embryo_Cell *params)
1609 else 1609 else
1610 emsg->val[i - 3] = 0.0; 1610 emsg->val[i - 3] = 0.0;
1611 } 1611 }
1612 _edje_message_send(ed, EDJE_QUEUE_APP, type, id, emsg); 1612 _edje_util_message_send(ed, EDJE_QUEUE_APP, type, id, emsg);
1613 } 1613 }
1614 break; 1614 break;
1615 case EDJE_MESSAGE_STRING_INT: 1615 case EDJE_MESSAGE_STRING_INT:
@@ -1632,7 +1632,7 @@ _edje_embryo_fn_send_message(Embryo_Program *ep, Embryo_Cell *params)
1632 ptr = embryo_data_address_get(ep, params[4]); 1632 ptr = embryo_data_address_get(ep, params[4]);
1633 if (ptr) emsg->val = (int)*ptr; 1633 if (ptr) emsg->val = (int)*ptr;
1634 else emsg->val = 0; 1634 else emsg->val = 0;
1635 _edje_message_send(ed, EDJE_QUEUE_APP, type, id, emsg); 1635 _edje_util_message_send(ed, EDJE_QUEUE_APP, type, id, emsg);
1636 } 1636 }
1637 } 1637 }
1638 break; 1638 break;
@@ -1662,7 +1662,7 @@ _edje_embryo_fn_send_message(Embryo_Program *ep, Embryo_Cell *params)
1662 } 1662 }
1663 else 1663 else
1664 emsg->val = 0.0; 1664 emsg->val = 0.0;
1665 _edje_message_send(ed, EDJE_QUEUE_APP, type, id, emsg); 1665 _edje_util_message_send(ed, EDJE_QUEUE_APP, type, id, emsg);
1666 } 1666 }
1667 } 1667 }
1668 break; 1668 break;
@@ -1691,7 +1691,7 @@ _edje_embryo_fn_send_message(Embryo_Program *ep, Embryo_Cell *params)
1691 if (ptr) emsg->val[i - 4] = (int)*ptr; 1691 if (ptr) emsg->val[i - 4] = (int)*ptr;
1692 else emsg->val[i - 4] = 0; 1692 else emsg->val[i - 4] = 0;
1693 } 1693 }
1694 _edje_message_send(ed, EDJE_QUEUE_APP, type, id, emsg); 1694 _edje_util_message_send(ed, EDJE_QUEUE_APP, type, id, emsg);
1695 } 1695 }
1696 } 1696 }
1697 break; 1697 break;
@@ -1727,7 +1727,7 @@ _edje_embryo_fn_send_message(Embryo_Program *ep, Embryo_Cell *params)
1727 else 1727 else
1728 emsg->val[i - 4] = 0.0; 1728 emsg->val[i - 4] = 0.0;
1729 } 1729 }
1730 _edje_message_send(ed, EDJE_QUEUE_APP, type, id, emsg); 1730 _edje_util_message_send(ed, EDJE_QUEUE_APP, type, id, emsg);
1731 } 1731 }
1732 } 1732 }
1733 break; 1733 break;
diff --git a/src/lib/edje/edje_external.c b/src/lib/edje/edje_external.c
index 28c0cabb06..94a6bb086e 100644
--- a/src/lib/edje/edje_external.c
+++ b/src/lib/edje/edje_external.c
@@ -23,25 +23,12 @@ edje_external_param_type_str(Edje_External_Param_Type type)
23 } 23 }
24} 24}
25 25
26EAPI Evas_Object * 26EOLIAN Evas_Object*
27edje_object_part_external_object_get(const Evas_Object *obj, const char *part) 27_edje_part_external_object_get(Eo *obj EINA_UNUSED, Edje *ed, const char *part)
28{ 28{
29 if (!obj) return NULL;
30 Evas_Object *ret = NULL;
31 eo_do((Eo *)obj, edje_obj_part_external_object_get(part, &ret));
32 return ret;
33}
34
35void
36_part_external_object_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
37{
38 const char *part = va_arg(*list, const char *);
39 Evas_Object **ret = va_arg(*list, Evas_Object **);
40 Edje *ed = (Edje *)_pd;
41 Edje_Real_Part *rp; 29 Edje_Real_Part *rp;
42 *ret = NULL;
43 30
44 if ((!ed) || (!part)) return; 31 if ((!ed) || (!part)) return NULL;
45 32
46 /* Need to recalc before providing the object. */ 33 /* Need to recalc before providing the object. */
47 _edje_recalc_do(ed); 34 _edje_recalc_do(ed);
@@ -50,179 +37,117 @@ _part_external_object_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
50 if (!rp) 37 if (!rp)
51 { 38 {
52 ERR("no part '%s'", part); 39 ERR("no part '%s'", part);
53 return; 40 return NULL;
54 } 41 }
55 if (rp->part->type != EDJE_PART_TYPE_EXTERNAL) 42 if (rp->part->type != EDJE_PART_TYPE_EXTERNAL)
56 { 43 {
57 ERR("cannot get external object of a part '%s' that is not EXTERNAL", 44 ERR("cannot get external object of a part '%s' that is not EXTERNAL",
58 rp->part->name); 45 rp->part->name);
59 return; 46 return NULL;
60 } 47 }
61 if ((rp->type != EDJE_RP_TYPE_SWALLOW) || 48 if ((rp->type != EDJE_RP_TYPE_SWALLOW) ||
62 (!rp->typedata.swallow)) return; 49 (!rp->typedata.swallow)) return NULL;
63 *ret = rp->typedata.swallow->swallowed_object;
64}
65 50
66EAPI Eina_Bool 51 return rp->typedata.swallow->swallowed_object;
67edje_object_part_external_param_set(Evas_Object *obj, const char *part, const Edje_External_Param *param)
68{
69 if (!obj) return EINA_FALSE;
70 Eina_Bool ret = EINA_FALSE;
71 eo_do(obj, edje_obj_part_external_param_set(part, param, &ret));
72 return ret;
73} 52}
74 53
75void 54EOLIAN Eina_Bool
76_part_external_param_set(Eo *obj, void *_pd, va_list *list) 55_edje_part_external_param_set(Eo *obj, Edje *ed, const char *part, const Edje_External_Param *param)
77{ 56{
78 const char *part = va_arg(*list, const char *);
79 const Edje_External_Param *param = va_arg(*list, const Edje_External_Param *);
80 Eina_Bool *ret = va_arg(*list, Eina_Bool *);
81 if (ret) *ret = EINA_FALSE;
82
83 Edje *ed = _pd;
84 Edje_Real_Part *rp; 57 Edje_Real_Part *rp;
85 58
86 if ((!param) || (!param->name)) return; 59 if ((!param) || (!param->name)) return EINA_FALSE;
87 60
88 if ((!ed) || (!part)) return; 61 if ((!ed) || (!part)) return EINA_FALSE;
89 62
90 rp = _edje_real_part_recursive_get(&ed, (char *)part); 63 rp = _edje_real_part_recursive_get(&ed, (char *)part);
91 if (!rp) 64 if (!rp)
92 { 65 {
93 ERR("no part '%s'", part); 66 ERR("no part '%s'", part);
94 return; 67 return EINA_FALSE;
95 } 68 }
96 69
97 if (_edje_external_param_set(obj, rp, param)) 70 if (_edje_external_param_set(obj, rp, param))
98 if (ret) *ret = EINA_TRUE; 71 return EINA_TRUE;
99} 72 return EINA_FALSE;
100
101EAPI Eina_Bool
102edje_object_part_external_param_get(const Evas_Object *obj, const char *part, Edje_External_Param *param)
103{
104 if (!obj) return EINA_FALSE;
105 Eina_Bool ret = EINA_FALSE;
106 eo_do((Eo *)obj, edje_obj_part_external_param_get(part, param, &ret));
107 return ret;
108} 73}
109 74
110void 75EOLIAN Eina_Bool
111_part_external_param_get(Eo *obj, void *_pd, va_list *list) 76_edje_part_external_param_get(Eo *obj, Edje *ed, const char *part, Edje_External_Param *param)
112{ 77{
113 const char *part = va_arg(*list, const char *);
114 Edje_External_Param *param = va_arg(*list, Edje_External_Param *);
115 Eina_Bool *ret = va_arg(*list, Eina_Bool *);
116 *ret = EINA_FALSE;
117
118 Edje *ed = _pd;
119 Edje_Real_Part *rp; 78 Edje_Real_Part *rp;
120 79
121 if ((!param) || (!param->name)) return; 80 if ((!param) || (!param->name)) return EINA_FALSE;
122 81
123 if ((!ed) || (!part)) return; 82 if ((!ed) || (!part)) return EINA_FALSE;
124 83
125 rp = _edje_real_part_recursive_get(&ed, (char *)part); 84 rp = _edje_real_part_recursive_get(&ed, (char *)part);
126 if (!rp) 85 if (!rp)
127 { 86 {
128 ERR("no part '%s'", part); 87 ERR("no part '%s'", part);
129 return; 88 return EINA_FALSE;
130 } 89 }
131 90
132 *ret = _edje_external_param_get(obj, rp, param); 91 return _edje_external_param_get(obj, rp, param);
133} 92}
134 93
135 94EOLIAN Evas_Object*
136 95_edje_part_external_content_get(Eo *obj EINA_UNUSED, Edje *ed, const char *part, const char *content)
137EAPI Evas_Object *
138edje_object_part_external_content_get(const Evas_Object *obj, const char *part, const char *content)
139{ 96{
140 if (!obj) return NULL;
141 Evas_Object *ret = NULL;
142 eo_do((Eo *)obj, edje_obj_part_external_content_get(part, content, &ret));
143 return ret;
144}
145
146void
147_part_external_content_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
148{
149 const char *part = va_arg(*list, const char *);
150 const char *content = va_arg(*list, const char *);
151 Evas_Object **ret = va_arg(*list, Evas_Object **);
152 *ret = NULL;
153
154 Edje *ed = _pd;
155 Edje_Real_Part *rp; 97 Edje_Real_Part *rp;
156 98
157 if (!content) return; 99 if (!content) return NULL;
158 100
159 if ((!ed) || (!part)) return; 101 if ((!ed) || (!part)) return NULL;
160 102
161 rp = _edje_real_part_recursive_get(&ed, (char *)part); 103 rp = _edje_real_part_recursive_get(&ed, (char *)part);
162 if (!rp) 104 if (!rp)
163 { 105 {
164 ERR("no part '%s'", part); 106 ERR("no part '%s'", part);
165 return; 107 return NULL;
166 } 108 }
167 if ((rp->type != EDJE_RP_TYPE_SWALLOW) || 109 if ((rp->type != EDJE_RP_TYPE_SWALLOW) ||
168 (!rp->typedata.swallow)) return; 110 (!rp->typedata.swallow)) return NULL;
169 *ret = _edje_external_content_get(rp->typedata.swallow->swallowed_object, content);
170}
171 111
172EAPI Edje_External_Param_Type 112 return _edje_external_content_get(rp->typedata.swallow->swallowed_object, content);
173edje_object_part_external_param_type_get(const Evas_Object *obj, const char *part, const char *param)
174{
175 if (!obj) return EDJE_EXTERNAL_PARAM_TYPE_MAX;
176 Edje_External_Param_Type ret = EDJE_EXTERNAL_PARAM_TYPE_MAX;
177 eo_do((Eo *)obj, edje_obj_part_external_param_type_get(part, param, &ret));
178 return ret;
179} 113}
180 114
181void 115EOLIAN Edje_External_Param_Type
182_part_external_param_type_get(Eo *obj, void *_pd, va_list *list) 116_edje_part_external_param_type_get(Eo *obj, Edje *ed, const char *part, const char *param)
183{ 117{
184 const char *part = va_arg(*list, const char *);
185 const char *param = va_arg(*list, const char *);
186 Edje_External_Param_Type *ret = va_arg(*list, Edje_External_Param_Type *);
187 *ret = EDJE_EXTERNAL_PARAM_TYPE_MAX;
188
189 Edje *ed = _pd;
190 Edje_Real_Part *rp; 118 Edje_Real_Part *rp;
191 Edje_External_Type *type; 119 Edje_External_Type *type;
192 Edje_External_Param_Info *info; 120 Edje_External_Param_Info *info;
193 121
194 if ((!ed) || (!part)) return; 122 if ((!ed) || (!part)) return EDJE_EXTERNAL_PARAM_TYPE_MAX;
195 123
196 rp = _edje_real_part_recursive_get(&ed, (char *)part); 124 rp = _edje_real_part_recursive_get(&ed, (char *)part);
197 if (!rp) 125 if (!rp)
198 { 126 {
199 ERR("no part '%s'", part); 127 ERR("no part '%s'", part);
200 return; 128 return EDJE_EXTERNAL_PARAM_TYPE_MAX;
201 } 129 }
202 if ((rp->type != EDJE_RP_TYPE_SWALLOW) || 130 if ((rp->type != EDJE_RP_TYPE_SWALLOW) ||
203 (!rp->typedata.swallow)) return; 131 (!rp->typedata.swallow)) return EDJE_EXTERNAL_PARAM_TYPE_MAX;
204 type = evas_object_data_get(rp->typedata.swallow->swallowed_object, "Edje_External_Type"); 132 type = evas_object_data_get(rp->typedata.swallow->swallowed_object, "Edje_External_Type");
205 if (!type) 133 if (!type)
206 { 134 {
207 ERR("no external type for object %p", obj); 135 ERR("no external type for object %p", obj);
208 return; 136 return EDJE_EXTERNAL_PARAM_TYPE_MAX;
209 } 137 }
210 if (!type->parameters_info) 138 if (!type->parameters_info)
211 { 139 {
212 ERR("no parameters information for external type '%s'", 140 ERR("no parameters information for external type '%s'",
213 type->module_name); 141 type->module_name);
214 return; 142 return EDJE_EXTERNAL_PARAM_TYPE_MAX;
215 } 143 }
216 for (info = type->parameters_info; info->name; info++) 144 for (info = type->parameters_info; info->name; info++)
217 if (strcmp(info->name, param) == 0) 145 if (strcmp(info->name, param) == 0) return info->type;;
218 {
219 *ret = info->type;
220 return;
221 }
222 146
223 ERR("no parameter '%s' external type '%s'", param, type->module_name); 147 ERR("no parameter '%s' external type '%s'", param, type->module_name);
224}
225 148
149 return EDJE_EXTERNAL_PARAM_TYPE_MAX;
150}
226 151
227EAPI Eina_Bool 152EAPI Eina_Bool
228edje_external_type_register(const char *type_name, const Edje_External_Type *type_info) 153edje_external_type_register(const char *type_name, const Edje_External_Type *type_info)
diff --git a/src/lib/edje/edje_load.c b/src/lib/edje/edje_load.c
index 9dbeec3cc2..51a21a9b68 100644
--- a/src/lib/edje/edje_load.c
+++ b/src/lib/edje/edje_load.c
@@ -72,58 +72,17 @@ static int _sort_defined_boxes(const void *a, const void *b);
72 72
73/************************** API Routines **************************/ 73/************************** API Routines **************************/
74 74
75EAPI Eina_Bool 75EOLIAN void
76edje_object_file_set(Evas_Object *obj, const char *file, const char *group) 76_edje_file_get(Eo *obj EINA_UNUSED, Edje *ed, const char **file, const char **group)
77{
78 if (!obj) return EINA_FALSE;
79 Eina_Bool ret = EINA_FALSE;
80
81 eo_do(obj, edje_obj_file_set(file, group, &ret));
82 return ret;
83}
84
85EAPI Eina_Bool
86edje_object_mmap_set(Evas_Object *obj, const Eina_File *file, const char *group)
87{
88 if (!obj) return EINA_FALSE;
89 Eina_Bool ret = EINA_FALSE;
90
91 eo_do(obj, edje_obj_mmap_set(file, group, &ret));
92 return ret;
93}
94
95EAPI void
96edje_object_file_get(const Evas_Object *obj, const char **file, const char **group)
97{
98 if (!obj) return;
99 eo_do((Eo *)obj, edje_obj_file_get(file, group));
100}
101
102void
103_file_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
104{ 77{
105 const char **file = va_arg(*list, const char **);
106 const char **group = va_arg(*list, const char **);
107 const Edje *ed = _pd;
108 if (file) *file = ed->path; 78 if (file) *file = ed->path;
109 if (group) *group = ed->group; 79 if (group) *group = ed->group;
110} 80}
111 81
112EAPI Edje_Load_Error 82EOLIAN Edje_Load_Error
113edje_object_load_error_get(const Evas_Object *obj) 83_edje_load_error_get(Eo *obj EINA_UNUSED, Edje *ed)
114{ 84{
115 if (!obj) return EDJE_LOAD_ERROR_NONE; 85 return ed->load_error;
116 Edje_Load_Error ret = EDJE_LOAD_ERROR_NONE;
117 eo_do((Eo *)obj, edje_obj_load_error_get(&ret));
118 return ret;
119}
120
121void
122_load_error_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
123{
124 Edje_Load_Error *ret = va_arg(*list, Edje_Load_Error *);
125 const Edje *ed = _pd;
126 *ret = ed->load_error;
127} 86}
128 87
129EAPI const char * 88EAPI const char *
@@ -798,7 +757,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const Eina_File *file, const ch
798 757
799 _edje_ref(ed); 758 _edje_ref(ed);
800 _edje_block(ed); 759 _edje_block(ed);
801 _edje_freeze(ed); 760 _edje_util_freeze(ed);
802 // if (ed->collection->script) _edje_embryo_script_init(ed); 761 // if (ed->collection->script) _edje_embryo_script_init(ed);
803 _edje_var_init(ed); 762 _edje_var_init(ed);
804 for (i = 0; i < ed->table_parts_size; i++) 763 for (i = 0; i < ed->table_parts_size; i++)
@@ -1097,7 +1056,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const Eina_File *file, const ch
1097 edje_object_signal_emit(obj, "edje,state,ltr", "edje"); 1056 edje_object_signal_emit(obj, "edje,state,ltr", "edje");
1098 1057
1099 _edje_recalc(ed); 1058 _edje_recalc(ed);
1100 _edje_thaw(ed); 1059 _edje_util_thaw(ed);
1101 _edje_unblock(ed); 1060 _edje_unblock(ed);
1102 _edje_unref(ed); 1061 _edje_unref(ed);
1103 ed->load_error = EDJE_LOAD_ERROR_NONE; 1062 ed->load_error = EDJE_LOAD_ERROR_NONE;
@@ -1153,7 +1112,7 @@ on_error:
1153 eina_list_free(externals); 1112 eina_list_free(externals);
1154 eina_list_free(sources); 1113 eina_list_free(sources);
1155 eina_array_flush(&parts); 1114 eina_array_flush(&parts);
1156 _edje_thaw(ed); 1115 _edje_util_thaw(ed);
1157 _edje_unblock(ed); 1116 _edje_unblock(ed);
1158 _edje_unref(ed); 1117 _edje_unref(ed);
1159 _edje_file_del(ed); 1118 _edje_file_del(ed);
@@ -1291,9 +1250,9 @@ _edje_file_del(Edje *ed)
1291 if (tev) evas_event_freeze(tev); 1250 if (tev) evas_event_freeze(tev);
1292 if (ed->freeze_calc) 1251 if (ed->freeze_calc)
1293 { 1252 {
1294 _edje_freeze_calc_list = eina_list_remove(_edje_freeze_calc_list, ed); 1253 _edje_util_freeze_calc_list = eina_list_remove(_edje_util_freeze_calc_list, ed);
1295 ed->freeze_calc = EINA_FALSE; 1254 ed->freeze_calc = EINA_FALSE;
1296 _edje_freeze_calc_count--; 1255 _edje_util_freeze_calc_count--;
1297 } 1256 }
1298 _edje_entry_shutdown(ed); 1257 _edje_entry_shutdown(ed);
1299 _edje_message_del(ed); 1258 _edje_message_del(ed);
@@ -2004,6 +1963,6 @@ _cb_signal_repeat(void *data, Evas_Object *obj, const char *sig, const char *sou
2004 emsg.src = alias ? alias : new_src; 1963 emsg.src = alias ? alias : new_src;
2005 emsg.data = NULL; 1964 emsg.data = NULL;
2006 if (ed_parent) 1965 if (ed_parent)
2007 _edje_message_send(ed_parent, EDJE_QUEUE_SCRIPT, 1966 _edje_util_message_send(ed_parent, EDJE_QUEUE_SCRIPT,
2008 EDJE_MESSAGE_SIGNAL, 0, &emsg); 1967 EDJE_MESSAGE_SIGNAL, 0, &emsg);
2009} 1968} \ No newline at end of file
diff --git a/src/lib/edje/edje_lua2.c b/src/lib/edje/edje_lua2.c
index 1418bba40f..0cc7f0483a 100644
--- a/src/lib/edje/edje_lua2.c
+++ b/src/lib/edje/edje_lua2.c
@@ -976,7 +976,7 @@ _elua_messagesend(lua_State *L) // Stack usage [-2, +2, ev] plus [-2, +2] for e
976 if (!type) return 0; 976 if (!type) return 0;
977 if (!strcmp(type, "none")) 977 if (!strcmp(type, "none"))
978 { 978 {
979 _edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_NONE, id, NULL); 979 _edje_util_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_NONE, id, NULL);
980 } 980 }
981 else if (!strcmp(type, "sig")) 981 else if (!strcmp(type, "sig"))
982 { 982 {
@@ -990,7 +990,7 @@ _elua_messagesend(lua_State *L) // Stack usage [-2, +2, ev] plus [-2, +2] for e
990 const char *str = luaL_checkstring(L, 3); // Stack usage [-0, +0, v] 990 const char *str = luaL_checkstring(L, 3); // Stack usage [-0, +0, v]
991 emsg = alloca(sizeof(Edje_Message_String)); 991 emsg = alloca(sizeof(Edje_Message_String));
992 emsg->str = (char *)str; 992 emsg->str = (char *)str;
993 _edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING, id, emsg); 993 _edje_util_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING, id, emsg);
994 } 994 }
995 else if (!strcmp(type, "int")) 995 else if (!strcmp(type, "int"))
996 { 996 {
@@ -998,7 +998,7 @@ _elua_messagesend(lua_State *L) // Stack usage [-2, +2, ev] plus [-2, +2] for e
998 int val = luaL_checkinteger(L, 3); // Stack usage [-0, +0, v] 998 int val = luaL_checkinteger(L, 3); // Stack usage [-0, +0, v]
999 emsg = alloca(sizeof(Edje_Message_Int)); 999 emsg = alloca(sizeof(Edje_Message_Int));
1000 emsg->val = val; 1000 emsg->val = val;
1001 _edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_INT, id, emsg); 1001 _edje_util_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_INT, id, emsg);
1002 } 1002 }
1003 else if (!strcmp(type, "float")) 1003 else if (!strcmp(type, "float"))
1004 { 1004 {
@@ -1006,7 +1006,7 @@ _elua_messagesend(lua_State *L) // Stack usage [-2, +2, ev] plus [-2, +2] for e
1006 float val = luaL_checknumber(L, 3); // Stack usage [-0, +0, v] 1006 float val = luaL_checknumber(L, 3); // Stack usage [-0, +0, v]
1007 emsg = alloca(sizeof(Edje_Message_Float)); 1007 emsg = alloca(sizeof(Edje_Message_Float));
1008 emsg->val = val; 1008 emsg->val = val;
1009 _edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_FLOAT, id, emsg); 1009 _edje_util_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_FLOAT, id, emsg);
1010 } 1010 }
1011 else if (!strcmp(type, "strset")) 1011 else if (!strcmp(type, "strset"))
1012 { 1012 {
@@ -1029,7 +1029,7 @@ _elua_messagesend(lua_State *L) // Stack usage [-2, +2, ev] plus [-2, +2] for e
1029 lua_pop(L, 1); // Stack usage [-n, +0, -] 1029 lua_pop(L, 1); // Stack usage [-n, +0, -]
1030 emsg->str[i - 1] = (char *)str; 1030 emsg->str[i - 1] = (char *)str;
1031 } 1031 }
1032 _edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING_SET, id, emsg); 1032 _edje_util_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING_SET, id, emsg);
1033 } 1033 }
1034 else if (!strcmp(type, "intset")) 1034 else if (!strcmp(type, "intset"))
1035 { 1035 {
@@ -1050,7 +1050,7 @@ _elua_messagesend(lua_State *L) // Stack usage [-2, +2, ev] plus [-2, +2] for e
1050 emsg->val[i - 1] = lua_tointeger(L, -1); // Stack usage [-0, +0, -] 1050 emsg->val[i - 1] = lua_tointeger(L, -1); // Stack usage [-0, +0, -]
1051 lua_pop(L, 1); // Stack usage [-n, +0, -] 1051 lua_pop(L, 1); // Stack usage [-n, +0, -]
1052 } 1052 }
1053 _edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_INT_SET, id, emsg); 1053 _edje_util_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_INT_SET, id, emsg);
1054 } 1054 }
1055 else if (!strcmp(type, "floatset")) 1055 else if (!strcmp(type, "floatset"))
1056 { 1056 {
@@ -1071,7 +1071,7 @@ _elua_messagesend(lua_State *L) // Stack usage [-2, +2, ev] plus [-2, +2] for e
1071 emsg->val[i - 1] = lua_tonumber(L, -1); // Stack usage [-0, +0, -] 1071 emsg->val[i - 1] = lua_tonumber(L, -1); // Stack usage [-0, +0, -]
1072 lua_pop(L, 1); // Stack usage [-n, +0, -] 1072 lua_pop(L, 1); // Stack usage [-n, +0, -]
1073 } 1073 }
1074 _edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_FLOAT_SET, id, emsg); 1074 _edje_util_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_FLOAT_SET, id, emsg);
1075 } 1075 }
1076 else if (!strcmp(type, "strint")) 1076 else if (!strcmp(type, "strint"))
1077 { 1077 {
@@ -1080,7 +1080,7 @@ _elua_messagesend(lua_State *L) // Stack usage [-2, +2, ev] plus [-2, +2] for e
1080 emsg = alloca(sizeof(Edje_Message_String_Int)); 1080 emsg = alloca(sizeof(Edje_Message_String_Int));
1081 emsg->str = (char *)str; 1081 emsg->str = (char *)str;
1082 emsg->val = luaL_checkinteger(L, 4); // Stack usage [-0, +0, v] 1082 emsg->val = luaL_checkinteger(L, 4); // Stack usage [-0, +0, v]
1083 _edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING_INT, id, emsg); 1083 _edje_util_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING_INT, id, emsg);
1084 } 1084 }
1085 else if (!strcmp(type, "strfloat")) 1085 else if (!strcmp(type, "strfloat"))
1086 { 1086 {
@@ -1089,7 +1089,7 @@ _elua_messagesend(lua_State *L) // Stack usage [-2, +2, ev] plus [-2, +2] for e
1089 emsg = alloca(sizeof(Edje_Message_String_Float)); 1089 emsg = alloca(sizeof(Edje_Message_String_Float));
1090 emsg->str = (char *)str; 1090 emsg->str = (char *)str;
1091 emsg->val = luaL_checknumber(L, 4); // Stack usage [-0, +0, v] 1091 emsg->val = luaL_checknumber(L, 4); // Stack usage [-0, +0, v]
1092 _edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING_FLOAT, id, emsg); 1092 _edje_util_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING_FLOAT, id, emsg);
1093 } 1093 }
1094 else if (!strcmp(type, "strintset")) 1094 else if (!strcmp(type, "strintset"))
1095 { 1095 {
@@ -1113,7 +1113,7 @@ _elua_messagesend(lua_State *L) // Stack usage [-2, +2, ev] plus [-2, +2] for e
1113 emsg->val[i - 1] = lua_tointeger(L, -1); // Stack usage [-0, +0, -] 1113 emsg->val[i - 1] = lua_tointeger(L, -1); // Stack usage [-0, +0, -]
1114 lua_pop(L, 1); // Stack usage [-n, +0, -] 1114 lua_pop(L, 1); // Stack usage [-n, +0, -]
1115 } 1115 }
1116 _edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING_INT_SET, id, emsg); 1116 _edje_util_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING_INT_SET, id, emsg);
1117 } 1117 }
1118 else if (!strcmp(type, "strfloatset")) 1118 else if (!strcmp(type, "strfloatset"))
1119 { 1119 {
@@ -1137,7 +1137,7 @@ _elua_messagesend(lua_State *L) // Stack usage [-2, +2, ev] plus [-2, +2] for e
1137 emsg->val[i - 1] = lua_tonumber(L, -1); // Stack usage [-0, +0, -] 1137 emsg->val[i - 1] = lua_tonumber(L, -1); // Stack usage [-0, +0, -]
1138 lua_pop(L, 1); // Stack usage [-n, +0, -] 1138 lua_pop(L, 1); // Stack usage [-n, +0, -]
1139 } 1139 }
1140 _edje_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING_FLOAT_SET, id, emsg); 1140 _edje_util_message_send(ed, EDJE_QUEUE_APP, EDJE_MESSAGE_STRING_FLOAT_SET, id, emsg);
1141 } 1141 }
1142 return 0; 1142 return 0;
1143} 1143}
diff --git a/src/lib/edje/edje_message_queue.c b/src/lib/edje/edje_message_queue.c
index ce10d24e1b..b90f12df73 100644
--- a/src/lib/edje/edje_message_queue.c
+++ b/src/lib/edje/edje_message_queue.c
@@ -31,58 +31,28 @@ _edje_object_message_popornot_send(Evas_Object *obj, Edje_Message_Type type, int
31 } 31 }
32} 32}
33 33
34EAPI void 34EOLIAN void
35edje_object_message_send(Evas_Object *obj, Edje_Message_Type type, int id, void *msg) 35_edje_message_send(Eo *obj, Edje *_pd EINA_UNUSED, Edje_Message_Type type, int id, void *msg)
36{
37 if (!obj) return;
38 eo_do(obj, edje_obj_message_send(type, id, msg));
39}
40
41void
42_message_send(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
43{ 36{
44 Edje_Message_Type type = va_arg(*list, Edje_Message_Type);
45 int id = va_arg(*list, int);
46 void *msg = va_arg(*list, void *);
47 _edje_object_message_popornot_send(obj, type, id, msg, EINA_FALSE); 37 _edje_object_message_popornot_send(obj, type, id, msg, EINA_FALSE);
48} 38}
49 39
50 40EOLIAN void
51EAPI void 41_edje_message_handler_set(Eo *obj EINA_UNUSED, Edje *ed, Edje_Message_Handler_Cb func, void *data)
52edje_object_message_handler_set(Evas_Object *obj, Edje_Message_Handler_Cb func, void *data)
53{
54 if (!obj) return;
55 eo_do(obj, edje_obj_message_handler_set(func, data));
56}
57
58void
59_message_handler_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
60{ 42{
61 Edje_Message_Handler_Cb func = va_arg(*list, Edje_Message_Handler_Cb);
62 void *data = va_arg(*list, void *);
63 Edje *ed = _pd;
64 _edje_message_cb_set(ed, func, data); 43 _edje_message_cb_set(ed, func, data);
65} 44}
66 45
67EAPI void 46EOLIAN void
68edje_object_message_signal_process(Evas_Object *obj) 47_edje_message_signal_process(Eo *obj EINA_UNUSED, Edje *ed)
69{
70 if (!obj) return;
71 eo_do(obj, edje_obj_message_signal_process());
72}
73
74void
75_message_signal_process(Eo *obj EINA_UNUSED, void *_pd, va_list *list EINA_UNUSED)
76{ 48{
77 Eina_List *l, *ln, *tmpq = NULL; 49 Eina_List *l, *ln, *tmpq = NULL;
78 Edje *ed;
79 Edje *lookup_ed; 50 Edje *lookup_ed;
80 Eina_List *lg; 51 Eina_List *lg;
81 Edje_Message *em; 52 Edje_Message *em;
82 Eina_List *groups = NULL; 53 Eina_List *groups = NULL;
83 int gotos = 0; 54 int gotos = 0;
84 55
85 ed = _pd;
86 if (!ed) return; 56 if (!ed) return;
87 57
88 groups = ed->groups; 58 groups = ed->groups;
@@ -548,7 +518,7 @@ _edje_message_propornot_send(Edje *ed, Edje_Queue queue, Edje_Message_Type type,
548} 518}
549 519
550void 520void
551_edje_message_send(Edje *ed, Edje_Queue queue, Edje_Message_Type type, int id, void *emsg) 521_edje_util_message_send(Edje *ed, Edje_Queue queue, Edje_Message_Type type, int id, void *emsg)
552{ 522{
553 _edje_message_propornot_send(ed, queue, type, id, emsg, EINA_FALSE); 523 _edje_message_propornot_send(ed, queue, type, id, emsg, EINA_FALSE);
554} 524}
@@ -887,4 +857,4 @@ _edje_message_del(Edje *ed)
887 } 857 }
888 if (ed->message.num <= 0) return; 858 if (ed->message.num <= 0) return;
889 } 859 }
890} 860} \ No newline at end of file
diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h
index c5b0ef22e7..4dc03af6e7 100644
--- a/src/lib/edje/edje_private.h
+++ b/src/lib/edje/edje_private.h
@@ -1941,9 +1941,9 @@ extern Eina_List *_edje_edjes;
1941 1941
1942extern char *_edje_fontset_append; 1942extern char *_edje_fontset_append;
1943extern FLOAT_T _edje_scale; 1943extern FLOAT_T _edje_scale;
1944extern int _edje_freeze_val; 1944extern int _edje_util_freeze_val;
1945extern int _edje_freeze_calc_count; 1945extern int _edje_util_freeze_calc_count;
1946extern Eina_List *_edje_freeze_calc_list; 1946extern Eina_List *_edje_util_freeze_calc_list;
1947 1947
1948extern Eina_Bool _edje_password_show_last; 1948extern Eina_Bool _edje_password_show_last;
1949extern FLOAT_T _edje_password_show_last_timeout; 1949extern FLOAT_T _edje_password_show_last_timeout;
@@ -2078,8 +2078,8 @@ void _edje_text_class_members_free(void);
2078void _edje_text_class_hash_free(void); 2078void _edje_text_class_hash_free(void);
2079 2079
2080Edje *_edje_fetch(const Evas_Object *obj) EINA_PURE; 2080Edje *_edje_fetch(const Evas_Object *obj) EINA_PURE;
2081int _edje_freeze(Edje *ed); 2081int _edje_util_freeze(Edje *ed);
2082int _edje_thaw(Edje *ed); 2082int _edje_util_thaw(Edje *ed);
2083int _edje_block(Edje *ed); 2083int _edje_block(Edje *ed);
2084int _edje_unblock(Edje *ed); 2084int _edje_unblock(Edje *ed);
2085int _edje_block_break(Edje *ed); 2085int _edje_block_break(Edje *ed);
@@ -2175,7 +2175,7 @@ void _edje_message_cb_set (Edje *ed, void (*func) (void *data,
2175Edje_Message *_edje_message_new (Edje *ed, Edje_Queue queue, Edje_Message_Type type, int id); 2175Edje_Message *_edje_message_new (Edje *ed, Edje_Queue queue, Edje_Message_Type type, int id);
2176void _edje_message_free (Edje_Message *em); 2176void _edje_message_free (Edje_Message *em);
2177void _edje_message_propornot_send (Edje *ed, Edje_Queue queue, Edje_Message_Type type, int id, void *emsg, Eina_Bool prop); 2177void _edje_message_propornot_send (Edje *ed, Edje_Queue queue, Edje_Message_Type type, int id, void *emsg, Eina_Bool prop);
2178void _edje_message_send (Edje *ed, Edje_Queue queue, Edje_Message_Type type, int id, void *emsg); 2178void _edje_util_message_send (Edje *ed, Edje_Queue queue, Edje_Message_Type type, int id, void *emsg);
2179void _edje_message_parameters_push (Edje_Message *em); 2179void _edje_message_parameters_push (Edje_Message *em);
2180void _edje_message_process (Edje_Message *em); 2180void _edje_message_process (Edje_Message *em);
2181void _edje_message_queue_process (void); 2181void _edje_message_queue_process (void);
diff --git a/src/lib/edje/edje_program.c b/src/lib/edje/edje_program.c
index d2fab353cf..1a2126c5ad 100644
--- a/src/lib/edje/edje_program.c
+++ b/src/lib/edje/edje_program.c
@@ -51,25 +51,11 @@ edje_object_propagate_callback_add(Evas_Object *obj, void (*func) (void *data, E
51 eina_stringshare_del(src); 51 eina_stringshare_del(src);
52} 52}
53 53
54EAPI void 54EOLIAN void
55edje_object_signal_callback_add(Evas_Object *obj, const char *emission, const char *source, void (*func) (void *data, Evas_Object *o, const char *emission, const char *source), void *data) 55_edje_signal_callback_add(Eo *obj EINA_UNUSED, Edje *ed, const char *emission, const char *source, Edje_Signal_Cb func, void *data)
56{ 56{
57 if (!obj) return;
58 eo_do(obj, edje_obj_signal_callback_add(emission, source, (Edje_Signal_Cb)func, data));
59}
60
61void
62_signal_callback_add(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
63{
64 const char *emission = va_arg(*list, const char *);
65 const char *source = va_arg(*list, const char *);
66 Edje_Signal_Cb func = va_arg(*list, Edje_Signal_Cb);
67 void *data = va_arg(*list, void *);
68
69 Edje *ed = _pd;
70
71 if ((!emission) || (!source) || (!func)) return; 57 if ((!emission) || (!source) || (!func)) return;
72 ed = _pd; 58
73 if (!ed) return; 59 if (!ed) return;
74 if (ed->delete_me) return; 60 if (ed->delete_me) return;
75 61
@@ -96,21 +82,12 @@ edje_object_signal_callback_del(Evas_Object *obj, const char *emission, const ch
96 return ret; 82 return ret;
97} 83}
98 84
99void 85EOLIAN void*
100_signal_callback_del(Eo *obj EINA_UNUSED, void *_pd, va_list *list) 86_edje_signal_callback_del(Eo *obj EINA_UNUSED, Edje *ed, const char *emission, const char *source, Edje_Signal_Cb func, void *data)
101{ 87{
102 const char *emission = va_arg(*list, const char *); 88 if ((!emission) || (!source) || (!func)) return NULL;
103 const char *source = va_arg(*list, const char *); 89 if (!ed) return NULL;
104 Edje_Signal_Cb func = va_arg(*list, Edje_Signal_Cb); 90 if (ed->delete_me) return NULL;
105 void *data = va_arg(*list, void *);
106 void **ret = va_arg(*list, void **);
107 Edje *ed = _pd;
108
109 if (ret) *ret = NULL;
110
111 if ((!emission) || (!source) || (!func)) return;
112 if (!ed) return;
113 if (ed->delete_me) return;
114 91
115 emission = eina_stringshare_add(emission); 92 emission = eina_stringshare_add(emission);
116 source = eina_stringshare_add(source); 93 source = eina_stringshare_add(source);
@@ -121,6 +98,8 @@ _signal_callback_del(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
121 98
122 eina_stringshare_del(emission); 99 eina_stringshare_del(emission);
123 eina_stringshare_del(source); 100 eina_stringshare_del(source);
101
102 return NULL;
124} 103}
125 104
126EAPI void * 105EAPI void *
@@ -132,42 +111,19 @@ edje_object_signal_callback_del_full(Evas_Object *obj, const char *emission, con
132 return ret; 111 return ret;
133} 112}
134 113
135EAPI void 114EOLIAN void
136edje_object_signal_emit(Evas_Object *obj, const char *emission, const char *source) 115_edje_signal_emit(Eo *obj EINA_UNUSED, Edje *ed, const char *emission, const char *source)
137{
138 if (!obj) return;
139 if (!eo_isa(obj, EDJE_OBJ_CLASS)) return;
140 eo_do(obj, edje_obj_signal_emit(emission, source));
141}
142
143void
144_signal_emit(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
145{ 116{
146 const char *emission = va_arg(*list, const char *);
147 const char *source = va_arg(*list, const char *);
148 Edje *ed;
149
150 if ((!emission) || (!source)) return; 117 if ((!emission) || (!source)) return;
151 ed = _pd;
152 if (!ed) return; 118 if (!ed) return;
153 if (ed->delete_me) return; 119 if (ed->delete_me) return;
154 _edje_emit(ed, (char *)emission, (char *)source); 120 _edje_emit(ed, (char *)emission, (char *)source);
155} 121}
156 122
157/* FIXDOC: Verify/Expand */ 123/* FIXDOC: Verify/Expand */
158EAPI void 124EOLIAN void
159edje_object_play_set(Evas_Object *obj, Eina_Bool play) 125_edje_play_set(Eo *obj EINA_UNUSED, Edje *ed, Eina_Bool play)
160{ 126{
161 if (!obj) return;
162 eo_do(obj, edje_obj_play_set(play));
163}
164
165void
166_play_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
167{
168 Eina_Bool play = va_arg(*list, int);
169
170 Edje *ed = _pd;
171 double t; 127 double t;
172 Eina_List *l; 128 Eina_List *l;
173 Edje_Running_Program *runp; 129 Edje_Running_Program *runp;
@@ -202,41 +158,20 @@ _play_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
202 } 158 }
203} 159}
204 160
205EAPI Eina_Bool 161EOLIAN Eina_Bool
206edje_object_play_get(const Evas_Object *obj) 162_edje_play_get(Eo *obj EINA_UNUSED, Edje *ed)
207{
208 if (!obj) return EINA_FALSE;
209 Eina_Bool ret = EINA_FALSE;
210 eo_do((Eo *)obj, edje_obj_play_get(&ret));
211 return ret;
212}
213
214void
215_play_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
216{ 163{
217