b58fececddf4636c7e641ba05139ef16de70c779
[framework/uifw/efl.git] / src / lib / evas / canvas / evas_image.eo
1 class Evas.Image (Evas.Object, Efl.File, Efl.Image)
2 {
3    legacy_prefix: evas_object_image;
4    eo_prefix: evas_obj_image;
5    properties {
6       load_dpi {
7          set {
8             /*@
9             @brief Set the DPI resolution of an image object's source image.
10
11             @if MOBILE @since_tizen 2.3
12             @elseif WEARABLE @since_tizen 2.3.1
13             @endif
14
15             @ingroup Evas_Object_Image
16
17             @remark This function sets the DPI resolution of a given loaded canvas
18             image. Most useful for the SVG image loader.
19
20             @see evas_object_image_load_dpi_get() */
21          }
22          get {
23             /*@
24             @brief Get the DPI resolution of a loaded image object in the canvas.
25
26             @if MOBILE @since_tizen 2.3
27             @elseif WEARABLE @since_tizen 2.3.1
28             @endif
29
30             @ingroup Evas_Object_Image
31
32             @return The DPI resolution of the given canvas image.
33
34             @remark This function returns the DPI resolution of the given canvas image.
35
36             @see evas_object_image_load_dpi_set() for more details */
37          }
38          values {
39             double dpi; /*@ The new DPI resolution. */
40          }
41       }
42
43       source_clip {
44          set {
45             /*@
46             @brief Clip the proxy object with the source object's clipper.
47
48             @if MOBILE @since_tizen 2.3
49             @elseif WEARABLE @since_tizen 2.3.1
50             @endif
51
52             @ingroup Evas_Object_Image
53
54             @see evas_object_clip_set()
55             @see evas_object_image_source_set()
56             @since 1.8 */
57          }
58          get {
59             /*@
60             @brief Determine whether an object is clipped by source object's clipper.
61
62             @if MOBILE @since_tizen 2.3
63             @elseif WEARABLE @since_tizen 2.3.1
64             @endif
65
66             @ingroup Evas_Object_Image
67
68             @return @c EINA_TRUE if source clip is enabled, @c EINA_FALSE otherwise.
69
70             @see evas_object_clip_set()
71             @see evas_object_image_source_set()
72             @see evas_object_image_source_clip_set()
73             @since 1.8 */
74          }
75          values {
76             bool source_clip; /*@ whether @p obj is clipped by the source clipper.
77             (@c EINA_TRUE) or not (@c EINA_FALSE) */
78          }
79       }
80       source {
81          set {
82             /*@
83             @brief Set the source object on an image object to used as a @b proxy.
84
85             @if MOBILE @since_tizen 2.3
86             @elseif WEARABLE @since_tizen 2.3.1
87             @endif
88
89             @ingroup Evas_Object_Image
90
91             @return @c EINA_TRUE on success, @c EINA_FALSE on error.
92
93             @remark If an image object is set to behave as a @b proxy, it will mirror
94             the rendering contents of a given @b source object in its drawing
95             region, without affecting that source in any way. The source must
96             be another valid Evas object. Other effects may be applied to the
97             proxy, such as a map (see evas_object_map_set()) to create a
98             reflection of the original object (for example).
99
100             @remark Any existing source object on @p obj will be removed after this
101             call. Setting @p src to @c NULL clears the proxy object (not in
102             "proxy state" anymore).
103
104             @warning You cannot set a proxy as another proxy's source.
105
106             @see evas_object_image_source_get()
107             @see evas_object_image_source_unset()
108             @see evas_object_image_source_visible_set() */
109             return: bool;
110          }
111          get {
112             /*@
113             @brief Get the current source object of an image object.
114
115             @if MOBILE @since_tizen 2.3
116             @elseif WEARABLE @since_tizen 2.3.1
117             @endif
118
119             @ingroup Evas_Object_Image
120
121             @return Source object (if any), or @c NULL, if not in "proxy mode"
122             (or on errors).
123
124             @see evas_object_image_source_set() for more details */
125          }
126          values {
127             Evas_Object *src; /*@ Source object to use for the proxy. */
128          }
129       }
130       filled {
131          set {
132             /*@
133             @brief Set whether the image object's fill property should track the
134             object's size.
135
136             @if MOBILE @since_tizen 2.3
137             @elseif WEARABLE @since_tizen 2.3.1
138             @endif
139
140             @ingroup Evas_Object_Image
141
142             @remark If @p setting is @c EINA_TRUE, then every evas_object_resize() will
143             @b automatically trigger a call to evas_object_image_fill_set()
144             with the that new size (and @c 0, @c 0 as source image's origin),
145             so the bound image will fill the whole object's area.
146
147             @see evas_object_image_filled_add()
148             @see evas_object_image_fill_get() */
149          }
150          get {
151             /*@
152             @brief Retrieve whether the image object's fill property should track the
153             object's size.
154
155             @if MOBILE @since_tizen 2.3
156             @elseif WEARABLE @since_tizen 2.3.1
157             @endif
158
159             @ingroup Evas_Object_Image
160
161             @return @c EINA_TRUE if it is tracking, @c EINA_FALSE, if not (and
162             evas_object_fill_set() must be called manually).
163
164             @see evas_object_image_filled_set() for more information */
165          }
166          values {
167             bool filled; /*@ @c EINA_TRUE, to make the fill property follow
168             object size or @c EINA_FALSE, otherwise. */
169          }
170       }
171       content_hint {
172          set {
173             /*@
174             @brief Set the content hint setting of a given image object of the canvas.
175
176             @if MOBILE @since_tizen 2.3
177             @elseif WEARABLE @since_tizen 2.3.1
178             @endif
179
180             @ingroup Evas_Object_Image
181
182             @remark This function sets the content hint value of the given image of the
183             canvas. For example, if you're on the GL engine and your driver
184             implementation supports it, setting this hint to
185             #EVAS_IMAGE_CONTENT_HINT_DYNAMIC will make it need @b zero copies
186             at texture upload time, which is an "expensive" operation.
187
188             @see evas_object_image_content_hint_get() */
189          }
190          get {
191             /*@
192             @brief Get the content hint setting of a given image object of the canvas.
193
194             @if MOBILE @since_tizen 2.3
195             @elseif WEARABLE @since_tizen 2.3.1
196             @endif
197
198             @ingroup Evas_Object_Image
199
200             @return hint The content hint value set on it, one of the
201             #Evas_Image_Content_Hint ones (#EVAS_IMAGE_CONTENT_HINT_NONE means
202             an error).
203
204             @remark This function returns the content hint value of the given image of
205             the canvas.
206
207             @see evas_object_image_content_hint_set() */
208          }
209          values {
210             Evas_Image_Content_Hint hint; /*@ The content hint value, one of the
211             #Evas_Image_Content_Hint ones. */
212          }
213       }
214       load_region {
215          set {
216             /*@
217             @brief Inform a given image object to load a selective region of its
218             source image.
219
220             @if MOBILE @since_tizen 2.3
221             @elseif WEARABLE @since_tizen 2.3.1
222             @endif
223
224             @ingroup Evas_Object_Image
225
226             @remark This function is useful when one is not showing all of an image's
227             area on its image object.
228
229             @remark The image loader for the image format in question has to
230             support selective region loading in order to this function to take
231             effect.
232
233             @see evas_object_image_load_region_get() */
234          }
235          get {
236             /*@
237             @brief Retrieve the coordinates of a given image object's selective
238             (source image) load region.
239
240             @if MOBILE @since_tizen 2.3
241             @elseif WEARABLE @since_tizen 2.3.1
242             @endif
243
244             @ingroup Evas_Object_Image
245
246             @remark Use @c NULL pointers on the coordinates you're not interested
247             in: they'll be ignored by the function.
248
249             @see evas_object_image_load_region_get() */
250          }
251          values {
252             int x; /*@ X-offset of the region to be loaded. */
253             int y; /*@ Y-offset of the region to be loaded. */
254             int w; /*@ Width of the region to be loaded. */
255             int h; /*@ Height of the region to be loaded. */
256          }
257       }
258       alpha {
259          set {
260             /*@
261             @brief Enable or disable alpha channel usage on the given image object.
262
263             @if MOBILE @since_tizen 2.3
264             @elseif WEARABLE @since_tizen 2.3.1
265             @endif
266
267             @ingroup Evas_Object_Image
268
269             @remark This function sets a flag on an image object indicating whether or
270             not to use alpha channel data. A value of @c EINA_TRUE makes it use
271             alpha channel data, and @c EINA_FALSE makes it ignore that
272             data. Note that this has nothing to do with an object's color as
273             manipulated by evas_object_color_set().
274
275             @see evas_object_image_alpha_get() */
276          }
277          get {
278             /*@
279             @brief Retrieve whether alpha channel data is being used on the given
280             image object.
281
282             @if MOBILE @since_tizen 2.3
283             @elseif WEARABLE @since_tizen 2.3.1
284             @endif
285
286             @ingroup Evas_Object_Image
287
288             @return Whether the alpha channel data is being used (@c EINA_TRUE)
289             or not (@c EINA_FALSE).
290
291             @remark This function returns @c EINA_TRUE if the image object's alpha
292             channel is being used, or @c EINA_FALSE otherwise.
293
294             See @ref evas_object_image_alpha_set() for more details. */
295          }
296          values {
297             bool alpha; /*@ Whether to use alpha channel (@c EINA_TRUE) data
298             or not (@c EINA_FALSE). */
299          }
300       }
301       border {
302          set {
303             /*@
304             @brief Set the dimensions for an image object's border, a region which
305             @b won't ever be scaled together with its center.
306
307             @if MOBILE @since_tizen 2.3
308             @elseif WEARABLE @since_tizen 2.3.1
309             @endif
310
311             @ingroup Evas_Object_Image
312
313             @remark When Evas is rendering, an image source may be scaled to fit the
314             size of its image object. This function sets an area from the
315             borders of the image inwards which is @b not to be scaled. This
316             function is useful for making frames and for widget theming, where,
317             for example, buttons may be of varying sizes, but their border size
318             must remain constant.
319
320             @remark The units used for @p l, @p r, @p t and @p b are canvas units.
321
322             @remark The border region itself @b may be scaled by the
323             evas_object_image_border_scale_set() function.
324
325             @remark By default, image objects have no borders set, i. e. @c l, @c
326             r, @c t and @c b start as @c 0.
327
328             @remark See the following figures for visual explanation:\n
329             @htmlonly
330             <img src="image-borders.png" style="max-width: 100%;" />
331             <a href="image-borders.png">Full-size</a>
332             @endhtmlonly
333             @image rtf image-borders.png
334             @image latex image-borders.eps width=\textwidth
335             @htmlonly
336             <img src="border-effect.png" style="max-width: 100%;" />
337             <a href="border-effect.png">Full-size</a>
338             @endhtmlonly
339             @image rtf border-effect.png
340             @image latex border-effect.eps width=\textwidth
341
342             @see evas_object_image_border_get()
343             @see evas_object_image_border_center_fill_set() */
344          }
345          get {
346             /*@
347             @brief Retrieve the dimensions for an image object's border, a region
348             which @b won't ever be scaled together with its center.
349
350             @if MOBILE @since_tizen 2.3
351             @elseif WEARABLE @since_tizen 2.3.1
352             @endif
353
354             @ingroup Evas_Object_Image
355
356             @remark Use @c NULL pointers on the border components you're not
357             interested in: they'll be ignored by the function.
358
359             See @ref evas_object_image_border_set() for more details. */
360          }
361          values {
362             int l; /*@ The border's left width. */
363             int r; /*@ The border's right width. */
364             int t; /*@ The border's top width. */
365             int b; /*@ The border's bottom width. */
366          }
367       }
368       border_scale {
369          set {
370             /*@
371             @brief Sets the scaling factor (multiplier) for the borders of an image
372             object.
373
374             @if MOBILE @since_tizen 2.3
375             @elseif WEARABLE @since_tizen 2.3.1
376             @endif
377
378             @ingroup Evas_Object_Image
379
380             @see evas_object_image_border_set()
381             @see evas_object_image_border_scale_get() */
382          }
383          get {
384             /*@
385             @brief Retrieves the scaling factor (multiplier) for the borders of an
386             image object.
387
388             @if MOBILE @since_tizen 2.3
389             @elseif WEARABLE @since_tizen 2.3.1
390             @endif
391
392             @ingroup Evas_Object_Image
393
394             @return The scale factor set for its borders
395
396             @see evas_object_image_border_set()
397             @see evas_object_image_border_scale_set() */
398          }
399          values {
400             double scale; /*@ The scale factor (default is @c 1.0 - i.e. no scaling) */
401          }
402       }
403       pixels_dirty {
404          set {
405             /*@
406             @brief Mark whether the given image object is dirty and needs to request its pixels.
407
408             @if MOBILE @since_tizen 2.3
409             @elseif WEARABLE @since_tizen 2.3.1
410             @endif
411
412             @ingroup Evas_Object_Image
413
414             @remark This function will only properly work if a pixels get callback has been set.
415
416             @warning use this function if you really know what you are doing.
417
418             @see evas_object_image_pixels_get_callback_set() */
419          }
420          get {
421             /*@
422             @brief Retrieves whether the given image object is dirty (needs to be redrawn).
423
424             @if MOBILE @since_tizen 2.3
425             @elseif WEARABLE @since_tizen 2.3.1
426             @endif
427
428             @ingroup Evas_Object_Image
429
430             @return Whether the image is dirty. */
431          }
432          values {
433             bool dirty; /*@ Whether the image is dirty. */
434          }
435       }
436       video_surface {
437          set {
438             /*@
439             @brief Set the video surface linked to a given image of the canvas
440
441             @if MOBILE @since_tizen 2.3
442             @elseif WEARABLE @since_tizen 2.3.1
443             @endif
444
445             @ingroup Evas_Object_Image
446
447             This function links a video surface to a given canvas image. */
448          }
449          get {
450             /*@
451             @brief Get the video surface linekd to a given image of the canvas
452
453             @if MOBILE @since_tizen 2.3
454             @elseif WEARABLE @since_tizen 2.3.1
455             @endif
456
457             @ingroup Evas_Object_Image
458
459             @return The video surface of the given canvas image.
460             @since 1.1
461
462             This function returns the video surface linked to a given canvas image. */
463          }
464          values {
465             Evas_Video_Surface *surf @const_get; /*@ The new video surface.
466             @since 1.1 */
467          }
468       }
469       video_surface_caps {
470          set {
471             /*@ Set the video surface capabilities to a given image of the canvas */
472          }
473          get {
474             /*@ Get the video surface capabilities to a given image of the canvas */
475          }
476          values {
477             uint caps; /*@ in */
478          }
479       }
480       load_orientation {
481          set {
482             /*@
483             @brief Define if the orientation information in the image file should be honored.
484
485             @if MOBILE @since_tizen 2.3
486             @elseif WEARABLE @since_tizen 2.3.1
487             @endif
488
489             @ingroup Evas_Object_Image
490
491             @since 1.1 */
492          }
493          get {
494             /*@
495             @brief Get if the orientation information in the image file should be honored.
496
497             @if MOBILE @since_tizen 2.3
498             @elseif WEARABLE @since_tizen 2.3.1
499             @endif
500
501             @ingroup Evas_Object_Image
502
503             @since 1.1 */
504          }
505          values {
506             bool enable; /*@ @c EINA_TRUE means that it should honor the orientation information */
507          }
508       }
509       fill_spread {
510          set {
511             /*@
512             @brief Sets the tiling mode for the given evas image object's fill.
513
514             @if MOBILE @since_tizen 2.3
515             @elseif WEARABLE @since_tizen 2.3.1
516             @endif
517
518             @ingroup Evas_Object_Image
519
520             EVAS_TEXTURE_RESTRICT, or EVAS_TEXTURE_PAD. */
521          }
522          get {
523             /*@
524             @brief Retrieves the spread (tiling mode) for the given image object's
525             fill.
526
527             @if MOBILE @since_tizen 2.3
528             @elseif WEARABLE @since_tizen 2.3.1
529             @endif
530
531             @ingroup Evas_Object_Image
532
533             @return  The current spread mode of the image object. */
534          }
535          values {
536             Evas_Fill_Spread spread; /*@ One of EVAS_TEXTURE_REFLECT, EVAS_TEXTURE_REPEAT, */
537          }
538       }
539       border_center_fill {
540          set {
541             /*@
542             @brief Sets @b how the center part of the given image object (not the
543             borders) should be drawn when Evas is rendering it.
544
545             @if MOBILE @since_tizen 2.3
546             @elseif WEARABLE @since_tizen 2.3.1
547             @endif
548
549             @ingroup Evas_Object_Image
550
551             @remark This function sets how the center part of the image object's source
552             image is to be drawn, which must be one of the values in
553             #Evas_Border_Fill_Mode. By center we mean the complementary part of
554             that defined by evas_object_image_border_set(). This one is very
555             useful for making frames and decorations. You would most probably
556             also be using a filled image (as in evas_object_image_filled_set())
557             to use as a frame.
558
559             @see evas_object_image_border_center_fill_get() */
560          }
561          get {
562             /*@
563             @brief Retrieves @b how the center part of the given image object (not the
564             borders) is to be drawn when Evas is rendering it.
565
566             @if MOBILE @since_tizen 2.3
567             @elseif WEARABLE @since_tizen 2.3.1
568             @endif
569
570             @ingroup Evas_Object_Image
571
572             @return fill Fill mode of the center region of @p obj (a value in
573             #Evas_Border_Fill_Mode).
574
575             See @ref evas_object_image_fill_set() for more details. */
576          }
577          values {
578             Evas_Border_Fill_Mode fill; /*@ Fill mode of the center region of @p obj (a value in
579             #Evas_Border_Fill_Mode). */
580          }
581       }
582       size {
583          set {
584             /*@
585             @brief Sets the size of the given image object.
586
587             @if MOBILE @since_tizen 2.3
588             @elseif WEARABLE @since_tizen 2.3.1
589             @endif
590
591             @ingroup Evas_Object_Image
592
593             @remark This function will scale down or crop the image so that it is
594             treated as if it were at the given size. If the size given is
595             smaller than the image, it will be cropped. If the size given is
596             larger, then the image will be treated as if it were in the upper
597             left hand corner of a larger image that is otherwise transparent. */
598          }
599          get {
600             /*@
601             @brief Retrieves the size of the given image object.
602
603             @if MOBILE @since_tizen 2.3
604             @elseif WEARABLE @since_tizen 2.3.1
605             @endif
606
607             @ingroup Evas_Object_Image
608
609             See @ref evas_object_image_size_set() for more details. */
610          }
611          values {
612             int w; /*@ The new width of the image. */
613             int h; /*@ The new height of the image. */
614          }
615       }
616       source_visible {
617          set {
618             /*@
619             @brief Set the source object to be visible or not.
620
621             @if MOBILE @since_tizen 2.3
622             @elseif WEARABLE @since_tizen 2.3.1
623             @endif
624
625             @ingroup Evas_Object_Image
626
627             @remark If the @p visible set to @c EINA_FALSE, the source object of the proxy(@p obj
628             ) will be invisible.
629
630             @remark This API works differently to evas_object_show() and evas_object_hide().
631             Once source object is hidden by evas_object_hide() then the proxy object will
632             be hidden as well. Actually in this case both objects are excluded from the
633             Evas internal update circle.
634
635             @remark By this API, instead, one can toggle the visibility of a proxy's source
636             object remaining the proxy visibility untouched.
637
638             @warning If the all of proxies are deleted, then the source visibility of the
639             source object will be cancelled.
640
641             @see evas_object_image_source_visible_get()
642             @see evas_object_image_source_set()
643             @see evas_object_show()
644             @see evas_object_hide()
645             @since 1.8 */
646          }
647          get {
648             /*@
649             @brief Get the state of the source object visibility.
650
651             @if MOBILE @since_tizen 2.3
652             @elseif WEARABLE @since_tizen 2.3.1
653             @endif
654
655             @ingroup Evas_Object_Image
656
657             @return @c EINA_TRUE if source object is visible, @c EINA_FALSE otherwise.
658
659             @see evas_object_image_source_visible_set()
660             @see evas_object_image_source_set()
661             @see evas_object_show()
662             @see evas_object_hide()
663             @since 1.8 */
664          }
665          values {
666             bool visible; /*@ @c EINA_TRUE is source object to be shown, @c EINA_FALSE
667             otherwise. */
668          }
669       }
670       fill {
671          set {
672             /*@
673             @brief Set how to fill an image object's drawing rectangle given the
674             (real) image bound to it.
675
676             @if MOBILE @since_tizen 2.3
677             @elseif WEARABLE @since_tizen 2.3.1
678             @endif
679
680             @ingroup Evas_Object_Image
681
682             @remark Note that if @p w or @p h are smaller than the dimensions of
683             @p obj, the displayed image will be @b tiled around the object's
684             area. To have only one copy of the bound image drawn, @p x and @p y
685             must be 0 and @p w and @p h need to be the exact width and height
686             of the image object itself, respectively.
687
688             @remark See the following image to better understand the effects of this
689             call. On this diagram, both image object and original image source
690             have @c a x @c a dimensions and the image itself is a circle, with
691             empty space around it:
692
693             @image html image-fill.png
694             @image rtf image-fill.png
695             @image latex image-fill.eps
696
697             @warning The default values for the fill parameters are @p x = 0,
698             @p y = 0, @p w = 0 and @p h = 0. Thus, if you're not using the
699             evas_object_image_filled_add() helper and want your image
700             displayed, you'll have to set valid values with this function on
701             your object.
702
703             @remark evas_object_image_filled_set() is a helper function which
704             will @b override the values set here automatically, for you, in a
705             given way. */
706          }
707          get {
708             /*@
709             @brief Retrieve how an image object is to fill its drawing rectangle,
710             given the (real) image bound to it.
711
712             @if MOBILE @since_tizen 2.3
713             @elseif WEARABLE @since_tizen 2.3.1
714             @endif
715
716             @ingroup Evas_Object_Image
717
718             @remark Use @c NULL pointers on the fill components you're not
719             interested in: they'll be ignored by the function.
720
721             See @ref evas_object_image_fill_set() for more details. */
722          }
723          values {
724             Evas_Coord x; /*@ The x coordinate (from the top left corner of the bound
725             image) to start drawing from. */
726             Evas_Coord y; /*@ The y coordinate (from the top left corner of the bound
727             image) to start drawing from. */
728             Evas_Coord w; /*@ The width the bound image will be displayed at. */
729             Evas_Coord h; /*@ The height the bound image will be displayed at. */
730          }
731       }
732       native_surface {
733          set {
734             /*@
735             @brief Set the native surface of a given image of the canvas
736
737             @if MOBILE @since_tizen 2.3
738             @elseif WEARABLE @since_tizen 2.3.1
739             @endif
740
741             @ingroup Evas_Object_Image
742
743             This function sets a native surface of a given canvas image. */
744
745             legacy: null;
746          }
747          get {
748             /*@
749             @brief Get the native surface of a given image of the canvas
750
751             @if MOBILE @since_tizen 2.3
752             @elseif WEARABLE @since_tizen 2.3.1
753             @endif
754
755             @ingroup Evas_Object_Image
756
757             @return The native surface of the given canvas image.
758
759             This function returns the native surface of a given canvas image. */
760          }
761          values {
762             Evas_Native_Surface *surf/* @const_get*/ @nonull; /*@ The new native surface. */
763          }
764       }
765       load_scale_down {
766          set {
767             /*@
768             @brief Set the scale down factor of a given image object's source image,
769             when loading it.
770
771             @if MOBILE @since_tizen 2.3
772             @elseif WEARABLE @since_tizen 2.3.1
773             @endif
774
775             @ingroup Evas_Object_Image
776
777             @remark This function sets the scale down factor of a given canvas
778             image. Most useful for the SVG image loader.
779
780             @see evas_object_image_load_scale_down_get() */
781          }
782          get {
783             /*@
784             @brief get the scale down factor of a given image object's source image,
785             when loading it.
786
787             @if MOBILE @since_tizen 2.3
788             @elseif WEARABLE @since_tizen 2.3.1
789             @endif
790
791             @ingroup Evas_Object_Image
792
793             @see evas_object_image_load_scale_down_set() for more details */
794          }
795          values {
796             int scale_down; /*@ The scale down factor. */
797          }
798       }
799       scale_hint {
800          set {
801             /*@
802             @brief Set the scale hint of a given image of the canvas.
803
804             @if MOBILE @since_tizen 2.3
805             @elseif WEARABLE @since_tizen 2.3.1
806             @endif
807
808             @ingroup Evas_Object_Image
809
810             @remark This function sets the scale hint value of the given image object
811             in the canvas, which will affect how Evas is to cache scaled
812             versions of its original source image.
813
814             @see evas_object_image_scale_hint_get() */
815          }
816          get {
817             /*@
818             @brief Get the scale hint of a given image of the canvas.
819
820             @if MOBILE @since_tizen 2.3
821             @elseif WEARABLE @since_tizen 2.3.1
822             @endif
823
824             @ingroup Evas_Object_Image
825
826             @return The scale hint value set on @p obj, a value in
827             #Evas_Image_Scale_Hint.
828
829             @remark This function returns the scale hint value of the given image
830             object of the canvas.
831
832             @see evas_object_image_scale_hint_set() for more details. */
833          }
834          values {
835             Evas_Image_Scale_Hint hint; /*@ The scale hint, a value in
836             #Evas_Image_Scale_Hint. */
837          }
838       }
839       source_events {
840          set {
841             /*@
842             Set whether an Evas object is to source events.
843
844             Set whether an Evas object is to repeat events to source.
845
846             If @p source is @c EINA_TRUE, it will make events on @p obj to also be
847             repeated for the source object (see evas_object_image_source_set()). Even the
848             @p obj and source geometries are different, the event position will be
849             transformed to the source object's space.
850
851             If @p source is @c EINA_FALSE, events occurring on @p obj will be
852             processed only on it.
853
854             @see evas_object_image_source_get()
855             @see evas_object_image_source_visible_set()
856             @see evas_object_image_source_events_get()
857             @since 1.8 */
858          }
859          get {
860             /*@
861             Determine whether an object is set to source events.
862
863             @return @c EINA_TRUE if source object has events, @c EINA_FALSE otherwise.
864
865             @see evas_object_image_source_set()
866             @see evas_object_image_source_visible_set()
867             @see evas_object_image_source_events_set()
868             @since 1.8 */
869          }
870          values {
871             bool source; /*@ whether @p obj is to pass events (@c EINA_TRUE) or not
872             (@c EINA_FALSE) */
873          }
874       }
875       colorspace {
876          set {
877             /*@
878             @brief Set the colorspace of a given image of the canvas.
879
880             @if MOBILE @since_tizen 2.3
881             @elseif WEARABLE @since_tizen 2.3.1
882             @endif
883
884             @ingroup Evas_Object_Image
885
886             This function sets the colorspace of given canvas image. */
887          }
888          get {
889             /*@
890             @brief Get the colorspace of a given image of the canvas.
891
892             @if MOBILE @since_tizen 2.3
893             @elseif WEARABLE @since_tizen 2.3.1
894             @endif
895
896             @ingroup Evas_Object_Image
897
898             @return The colorspace of the image.
899
900             This function returns the colorspace of given canvas image. */
901          }
902          values {
903             Evas_Colorspace cspace; /*@ The new color space. */
904          }
905       }
906       pixels_get_callback {
907          set {
908             /*@
909             @brief Set the callback function to get pixels from a canvas' image.
910
911             @if MOBILE @since_tizen 2.3
912             @elseif WEARABLE @since_tizen 2.3.1
913             @endif
914
915             @ingroup Evas_Object_Image
916
917             @remark This functions sets a function to be the callback function that get
918             pixels from a image of the canvas. */
919          }
920          values {
921             Evas_Object_Image_Pixels_Get_Cb func @nonull; /*@ The callback function. */
922             void *data; /*@ The data pointer to be passed to @a func. */
923          }
924       }
925       data_copy {
926          set {
927             /*@
928             @brief Replaces the raw image data of the given image object.
929
930             @if MOBILE @since_tizen 2.3
931             @elseif WEARABLE @since_tizen 2.3.1
932             @endif
933
934             @ingroup Evas_Object_Image
935
936             @remark This function lets the application replace an image object's
937             internal pixel buffer with an user-allocated one. For best results,
938             you should generally first call evas_object_image_size_set() with
939             the width and height for the new buffer.
940
941             @remark This call is best suited for when you will be using image data with
942             different dimensions than the existing image data, if any. If you
943             only need to modify the existing image in some fashion, then using
944             evas_object_image_data_get() is probably what you are after.
945
946             @remark Note that the caller is responsible for freeing the buffer when
947             finished with it, as user-set image data will not be automatically
948             freed when the image object is deleted.
949
950             See @ref evas_object_image_data_get() for more details. */
951          }
952          values {
953             void *data; /*@ The raw data to replace. */
954          }
955       }
956       animated_frame {
957          set {
958             /*@
959             @brief Set the frame to current frame of an image object
960
961             @if MOBILE @since_tizen 2.3
962             @elseif WEARABLE @since_tizen 2.3.1
963             @endif
964
965             @ingroup Evas_Object_Image
966
967             @remark This set image object's current frame to frame_num with 1 being the first
968             frame.
969
970             @see evas_object_image_animated_get()
971             @see evas_object_image_animated_frame_count_get()
972             @see evas_object_image_animated_loop_type_get()
973             @see evas_object_image_animated_loop_count_get()
974             @see evas_object_image_animated_frame_duration_get()
975             @see evas_object_image_animated_frame_set()
976             @since 1.1 */
977          }
978          values {
979             int frame_index; /*@ The index of current frame */
980          }
981       }
982       region_support {
983          get {
984             /*@
985             @brief Get the support state of a given image
986
987             @if MOBILE @since_tizen 2.3
988             @elseif WEARABLE @since_tizen 2.3.1
989             @endif
990
991             @ingroup Evas_Object_Image
992
993             @return The region support state
994             @since 1.2
995
996             This function returns the state of the region support of given image */
997             return: bool @warn_unused;
998          }
999       }
1000       load_error {
1001          get {
1002             /*@
1003             @brief Retrieves a number representing any error that occurred during the
1004             last loading of the given image object's source image.
1005
1006             @if MOBILE @since_tizen 2.3
1007             @elseif WEARABLE @since_tizen 2.3.1
1008             @endif
1009
1010             @ingroup Evas_Object_Image
1011
1012             @return A value giving the last error that occurred. It should be
1013             one of the #Evas_Load_Error values. #EVAS_LOAD_ERROR_NONE
1014             is returned if there was no error. */
1015             return: Evas_Load_Error @warn_unused;
1016          }
1017       }
1018       animated_frame_count {
1019          get {
1020             /*@
1021             @brief Get the total number of frames of the image object.
1022
1023             @if MOBILE @since_tizen 2.3
1024             @elseif WEARABLE @since_tizen 2.3.1
1025             @endif
1026
1027             @ingroup Evas_Object_Image
1028
1029             @return The number of frames
1030
1031             @remark This returns total number of frames the image object supports (if animated)
1032
1033             @see evas_object_image_animated_get()
1034             @see evas_object_image_animated_frame_count_get()
1035             @see evas_object_image_animated_loop_type_get()
1036             @see evas_object_image_animated_loop_count_get()
1037             @see evas_object_image_animated_frame_duration_get()
1038             @see evas_object_image_animated_frame_set()
1039             @since 1.1 */
1040             return: int;
1041          }
1042       }
1043       stride {
1044          get {
1045             /*@
1046             @brief Retrieves the row stride of the given image object.
1047
1048             @if MOBILE @since_tizen 2.3
1049             @elseif WEARABLE @since_tizen 2.3.1
1050             @endif
1051
1052             @ingroup Evas_Object_Image
1053
1054             @return The stride of the image (<b>in bytes</b>).
1055
1056             @remark The row stride is the number of bytes between the start of a row
1057             and the start of the next row for image data. */
1058             return: int @warn_unused;
1059          }
1060       }
1061       animated_loop_type {
1062          get {
1063             /*@
1064             @brief Get the kind of looping the image object does.
1065
1066             @if MOBILE @since_tizen 2.3
1067             @elseif WEARABLE @since_tizen 2.3.1
1068             @endif
1069
1070             @ingroup Evas_Object_Image
1071
1072             @return Loop type of the image object
1073
1074             @remark This returns the kind of looping the image object wants to do.
1075
1076             @remark If it returns EVAS_IMAGE_ANIMATED_HINT_LOOP, you should display frames in a sequence like:
1077             1->2->3->1->2->3->1...
1078             If it returns EVAS_IMAGE_ANIMATED_HINT_PINGPONG, it is better to
1079             display frames in a sequence like: 1->2->3->2->1->2->3->1...
1080
1081             @remark The default type is EVAS_IMAGE_ANIMATED_HINT_LOOP.
1082
1083             @see evas_object_image_animated_get()
1084             @see evas_object_image_animated_frame_count_get()
1085             @see evas_object_image_animated_loop_type_get()
1086             @see evas_object_image_animated_loop_count_get()
1087             @see evas_object_image_animated_frame_duration_get()
1088             @see evas_object_image_animated_frame_set()
1089             @since 1.1 */
1090             return: Evas_Image_Animated_Loop_Hint;
1091          }
1092       }
1093       animated_loop_count {
1094          get {
1095             /*@
1096             @brief Get the number times the animation of the object loops.
1097
1098             @if MOBILE @since_tizen 2.3
1099             @elseif WEARABLE @since_tizen 2.3.1
1100             @endif
1101
1102             @ingroup Evas_Object_Image
1103
1104             @return The number of loop of an animated image object
1105
1106             @remark This returns loop count of image. The loop count is the number of times
1107             the animation will play fully from first to last frame until the animation
1108             should stop (at the final frame).
1109
1110             @remark If 0 is returned, then looping should happen indefinitely (no limit to
1111             the number of times it loops).
1112
1113             @see evas_object_image_animated_get()
1114             @see evas_object_image_animated_frame_count_get()
1115             @see evas_object_image_animated_loop_type_get()
1116             @see evas_object_image_animated_loop_count_get()
1117             @see evas_object_image_animated_frame_duration_get()
1118             @see evas_object_image_animated_frame_set()
1119             @since 1.1 */
1120             return: int;
1121          }
1122       }
1123
1124       scene {
1125          set {
1126             /*@
1127             Set the 3D scene of a given image of the canvas.
1128
1129             This function sets a 3d scene of a given canvas image.
1130
1131             @see evas_object_image_scene_set
1132             @since 1.10 */
1133             legacy: null;
1134          }
1135          get {
1136             /*@
1137             Get the 3D scene of a given image of the canvas.
1138
1139             @return The 3d scene of the given canvas image.
1140
1141             This function returns the 3d scene of a given canvas image.
1142
1143             @see evas_object_image_scene_get
1144             @since 1.10 */
1145             legacy: null;
1146          }
1147          values {
1148             Evas_3D_Scene *scene; /*@ 3D scene on an image object. */
1149          }
1150       }
1151       filter_program {
1152          set {
1153             /*@ Set an Evas filter program on this Text Object.
1154
1155             If the program fails to compile (syntax error, invalid
1156             buffer name, etc...), the standard text effects will be
1157             applied instead (SHADOW, etc...). switch back to the
1158             standard text effects.
1159
1160             @since 1.9
1161             @note EXPERIMENTAL FEATURE. This is an unstable API,
1162             please use only for testing purposes.
1163             @see @ref evasfiltersref "Evas filters reference"
1164             */
1165             legacy: null;
1166          }
1167          values {
1168             const(char)* program; /*@ The program code, as defined
1169               by the @ref evasfiltersref "Evas filters script language".
1170               Pass NULL to remove the former program and switch back
1171               to the standard text effect
1172
1173               @since 1.9
1174               @note EXPERIMENTAL FEATURE. This is an unstable API,
1175               please use only for testing purposes.
1176               @see @ref evasfiltersref "Evas filters reference"
1177               */
1178          }
1179       }
1180       filter_source {
1181          set {
1182             /*@ Bind an object to use as a mask or texture with Evas Filters.
1183
1184             This will create automatically a new RGBA buffer containing
1185             the source object's pixels (as it is rendered). */
1186             legacy: null;
1187          }
1188          values {
1189             const(char)* name; /*@ Object name as used in the program code */
1190             Eo* eobj; /*@ Eo object to use through proxy rendering */
1191          }
1192       }
1193       filter_padding {
1194          get {
1195             /*@ Get the value of the extra padding set when a filter is used. */
1196             return: bool; /*@ Returns false if the filter is invalid and padding is 0 */
1197             legacy: null;
1198          }
1199          values {
1200             int l; /*@ Left padding in pixels */
1201             int r; /*@ Right padding in pixels */
1202             int t; /*@ Top padding in pixels */
1203             int b; /*@ Bottom padding in pixels */
1204          }
1205       }
1206    }
1207    methods {
1208       preload_begin {
1209          /*@ Begin preloading an image object's image data in the background */
1210          legacy: null;
1211       }
1212       data_update_add {
1213          /*@
1214          @brief Mark a sub-region of the given image object to be redrawn.
1215
1216          @if MOBILE @since_tizen 2.3
1217          @elseif WEARABLE @since_tizen 2.3.1
1218          @endif
1219
1220          @ingroup Evas_Object_Image
1221
1222          @remark This function schedules a particular rectangular region of an image
1223          object to be updated (redrawn) at the next rendering cycle. */
1224
1225          params {
1226             @in int x; /*@ X-offset of the region to be updated. */
1227             @in int y; /*@ Y-offset of the region to be updated. */
1228             @in int w; /*@ Width of the region to be updated. */
1229             @in int h; /*@ Height of the region to be updated. */
1230          }
1231       }
1232       animated_frame_duration_get @const {
1233          /*@
1234          @brief Get the duration of a sequence of frames.
1235
1236          @if MOBILE @since_tizen 2.3
1237          @elseif WEARABLE @since_tizen 2.3.1
1238          @endif
1239
1240          @ingroup Evas_Object_Image
1241
1242          @remark This returns total duration that the specified sequence of frames should
1243          take in seconds.
1244
1245          @remark If you set start_frame to 1 and frame_num 0, you get frame 1's duration
1246          If you set start_frame to 1 and frame_num 1, you get frame 1's duration +
1247          frame2's duration
1248
1249          @see evas_object_image_animated_get()
1250          @see evas_object_image_animated_frame_count_get()
1251          @see evas_object_image_animated_loop_type_get()
1252          @see evas_object_image_animated_loop_count_get()
1253          @see evas_object_image_animated_frame_duration_get()
1254          @see evas_object_image_animated_frame_set()
1255          @since 1.1 */
1256          return: double;
1257          params {
1258             @in int start_frame; /*@ The first frame */
1259             @in int frame_num; /*@ Number of frames in the sequence */
1260          }
1261       }
1262       data_set {
1263          /*@
1264          @brief Sets the raw image data of the given image object.
1265
1266          @if MOBILE @since_tizen 2.3
1267          @elseif WEARABLE @since_tizen 2.3.1
1268          @endif
1269
1270          @ingroup Evas_Object_Image
1271
1272          @remark Note that the raw data must be of the same size (see
1273          evas_object_image_size_set(), which has to be called @b before this
1274          one) and colorspace (see evas_object_image_colorspace_set()) of the
1275          image. If data is @c NULL, the current image data will be
1276          freed. Naturally, if one does not set an image object's data
1277          manually, it will still have one, allocated by Evas.
1278
1279          @see evas_object_image_data_get() */
1280
1281          params {
1282             @in void *data; /*@ The raw data, or @c NULL. */
1283          }
1284       }
1285       data_get @const {
1286          /*@
1287          @brief Get a pointer to the raw image data of the given image object.
1288
1289          @if MOBILE @since_tizen 2.3
1290          @elseif WEARABLE @since_tizen 2.3.1
1291          @endif
1292
1293          @ingroup Evas_Object_Image
1294
1295          @return The raw image data.
1296
1297          @remark This function returns a pointer to an image object's internal pixel
1298          buffer, for reading only or read/write. If you request it for
1299          writing, the image will be marked dirty so that it gets redrawn at
1300          the next update.
1301
1302          @remark Each time you call this function on an image object, its data
1303          buffer will have an internal reference counter
1304          incremented. Decrement it back by using
1305          evas_object_image_data_set().
1306
1307          @remark This is best suited for when you want to modify an existing image,
1308          without changing its dimensions.
1309
1310          @remark The contents' format returned by it depend on the color
1311          space of the given image object.
1312
1313          @remark You may want to use evas_object_image_data_update_add() to
1314          inform data changes, if you did any.
1315
1316          @see evas_object_image_data_set() */
1317          return: void * @warn_unused;
1318          params {
1319             @in bool for_writing; /*@ Whether the data being retrieved will be
1320             modified (@c EINA_TRUE) or not (@c EINA_FALSE). */
1321          }
1322       }
1323       preload_cancel {
1324          /*@ Cancel preloading an image object's image data in the background */
1325          legacy: null;
1326       }
1327       data_convert {
1328          /*@
1329          @brief Converts the raw image data of the given image object to the
1330          specified colorspace.
1331
1332          @if MOBILE @since_tizen 2.3
1333          @elseif WEARABLE @since_tizen 2.3.1
1334          @endif
1335
1336          @ingroup Evas_Object_Image
1337
1338          @remark Note that this function does not modify the raw image data.  If the
1339          requested colorspace is the same as the image colorspace nothing is
1340          done and @c NULL is returned. You should use
1341          evas_object_image_colorspace_get() to check the current image
1342          colorspace.
1343
1344          @remark See @ref evas_object_image_colorspace_get.
1345
1346          @return data A newly allocated data in the format specified by to_cspace. */
1347
1348          return: void * @warn_unused;
1349          params {
1350             @in Evas_Colorspace to_cspace; /*@ The colorspace to which the image raw data will be converted. */
1351          }
1352       }
1353       pixels_import {
1354          /*@
1355          @brief Import pixels from given source to a given canvas image object.
1356
1357          @if MOBILE @since_tizen 2.3
1358          @elseif WEARABLE @since_tizen 2.3.1
1359          @endif
1360
1361          @ingroup Evas_Object_Image
1362
1363          This function imports pixels from a given source to a given canvas image. */
1364
1365          return: bool;
1366          params {
1367             @in Evas_Pixel_Import_Source *pixels @nonull; /*@ The pixel's source to be imported. */
1368          }
1369       }
1370       reload {
1371          /*@
1372          @brief Reload an image object's image data.
1373
1374          @if MOBILE @since_tizen 2.3
1375          @elseif WEARABLE @since_tizen 2.3.1
1376          @endif
1377
1378          @ingroup Evas_Object_Image
1379
1380          This function reloads the image data bound to image object @p obj. */
1381       }
1382    }
1383    implements {
1384       Eo.Base.constructor;
1385       Eo.Base.destructor;
1386       Eo.Base.dbg_info_get;
1387       Efl.File.file.set;
1388       Efl.File.file.get;
1389       Efl.File.mmap.set;
1390       Efl.File.mmap.get;
1391       Efl.File.save;
1392       Efl.Image.animated.get;
1393       Efl.Image.load_size.set;
1394       Efl.Image.load_size.get;
1395       Efl.Image.smooth_scale.set;
1396       Efl.Image.smooth_scale.get;
1397    }
1398 }