Add APIs for floating mode (app-in-app)
[framework/uifw/elementary.git] / src / lib / elm_photo.h
1 /**
2  * @defgroup Photo Photo
3  * @ingroup Elementary
4  *
5  * For displaying a photo, for ex., a person (contact). Simple, yet
6  * with a very specific purpose.
7  *
8  * Signals that you can add callbacks for are:
9  *
10  * "clicked" - This is called when a user has clicked the photo
11  * "drag,start" - dragging the image out of the photo object
12  * "drag,end" - Drop the dragged item
13  *
14  * @{
15  */
16
17 /**
18  * Add a new photo to the parent
19  *
20  * @param parent The parent object
21  * @return The new object or NULL if it cannot be created
22  *
23  * @ingroup Photo
24  */
25 EAPI Evas_Object *elm_photo_add(Evas_Object *parent);
26
27 /**
28  * Set the file that will be used as photo
29  *
30  * @param obj The photo object
31  * @param file The path to file that will be used as photo
32  *
33  * @return (1 = success, 0 = error)
34  *
35  * @ingroup Photo
36  */
37 EAPI Eina_Bool elm_photo_file_set(Evas_Object *obj, const char *file);
38
39 /**
40  * Set the file that will be used as thumbnail in the photo.
41  *
42  * @param obj The photo object.
43  * @param file The path to file that will be used as thumbnail.
44  * @param group The key used in case of an EET file.
45  *
46  * @ingroup Photo
47  */
48 EAPI void      elm_photo_thumb_set(const Evas_Object *obj, const char *file, const char *group);
49
50 /**
51  * Set the size that will be used on the photo
52  *
53  * @param obj The photo object
54  * @param size The size of the photo
55  *
56  * @ingroup Photo
57  */
58 EAPI void      elm_photo_size_set(Evas_Object *obj, int size);
59
60 /**
61  * Set if the photo should be completely visible or not.
62  *
63  * @param obj The photo object
64  * @param fill if true the photo will be completely visible
65  *
66  * @ingroup Photo
67  */
68 EAPI void      elm_photo_fill_inside_set(Evas_Object *obj, Eina_Bool fill);
69
70 /**
71  * Set editability of the photo.
72  *
73  * An editable photo can be dragged to or from, and can be cut or
74  * pasted too.  Note that pasting an image or dropping an item on
75  * the image will delete the existing content.
76  *
77  * @param obj The photo object.
78  * @param set To set of clear editability.
79  */
80 EAPI void      elm_photo_editable_set(Evas_Object *obj, Eina_Bool set);
81
82 /**
83  * Set whether the original aspect ratio of the photo should be kept on resize.
84  *
85  * @param obj The photo object.
86  * @param fixed @c EINA_TRUE if the photo should fix the aspect,
87  * @c EINA_FALSE otherwise.
88  *
89  * The original aspect ratio (width / height) of the photo is usually
90  * distorted to match the object's size. Enabling this option will fix
91  * this original aspect, and the way that the photo is fit into
92  * the object's area
93  *
94  * @see elm_photo_aspect_fixed_get()
95  *
96  * @ingroup Photo
97  */
98 EAPI void             elm_photo_aspect_fixed_set(Evas_Object *obj, Eina_Bool fixed);
99
100 /**
101  * Get if the object keeps the original aspect ratio.
102  *
103  * @param obj The photo object.
104  * @return @c EINA_TRUE if the object keeps the original aspect, @c EINA_FALSE
105  * otherwise.
106  *
107  * @ingroup Photo
108  */
109 EAPI Eina_Bool        elm_photo_aspect_fixed_get(const Evas_Object *obj);
110
111 /**
112  * @}
113  */