summaryrefslogtreecommitdiff
path: root/src/lib/elm_photo.h
blob: ebd58e10e7a28795265895dc7870b0b6f75c05db (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
/**
 * @internal
 * @defgroup Photo Photo
 * @ingroup elm_widget_group
 *
 * @image html photo_inheritance_tree.png
 * @image latex photo_inheritance_tree.eps
 *
 * @brief The Elementary photo widget is intended for displaying a photo,
 *        for eg., a person's image (contact).
 *
 * Simple, yet with a very specific purpose. It has a decorative frame around
 * the inner image itself, on the default theme. If and while no photo is set
 * on it, it displays a person icon, indicating it's a photo placeholder.
 *
 * This widget relies on an internal @ref Icon, so that the APIs of
 * these two widgets are similar (drag and drop is also possible here,
 * for example).
 *
 * Signals that you can add callbacks for are:
 * - @c "clicked" - This is called when a user has clicked the photo.
 * - @c "drag,start" - One has started dragging the inner image out of the
 *                     photo's frame.
 * - @c "drag,end" - One has dropped the dragged image somewhere.
 *
 * @{
 */

/**
 * @brief Addw a new photo to the parent.
 *
 * @since_tizen 2.3
 *
 * @param[in] parent The parent object
 * @return The new object, otherwise @c NULL if it cannot be created
 */
EAPI Evas_Object *elm_photo_add(Evas_Object *parent);

/**
 * @brief Sets the file that is used as the photo widget's image.
 *
 * @since_tizen 2.3
 *
 * @remarks Use @c NULL on a @a file to set the photo widget back to it's
 *          initial state, which indicates "no photo".
 *
 * @param[in] obj The photo object
 * @param[in] file The path to the file that is used as the @a obj image
 *
 * @return @c EINA_TRUE on success, otherwise @c EINA_FALSE
 */
EAPI Eina_Bool elm_photo_file_set(Evas_Object *obj, const char *file);

/**
 * @brief Sets the file that is used as a thumbnail in the photo.
 *
 * @since_tizen 2.3
 *
 * @param[in] obj The photo object
 * @param[in] file The path to the file that is used as the thumbnail
 * @param[in] group The key used in case of an EET file
 */
EAPI void      elm_photo_thumb_set(const Evas_Object *obj, const char *file, const char *group);

/**
 * @brief Sets the size that is used on the photo.
 *
 * @since_tizen 2.3
 *
 * @param[in] obj The photo object
 * @param[in] size The size of the photo
 */
EAPI void      elm_photo_size_set(Evas_Object *obj, int size);

/**
 * @brief Sets whether the photo should be completely visible.
 *
 * @since_tizen 2.3
 *
 * @param[in] obj The photo object
 * @param[in] fill If @c true the photo is completely visible,
 *             otherwise @c false
 */
EAPI void      elm_photo_fill_inside_set(Evas_Object *obj, Eina_Bool fill);

/**
 * @brief Sets editability of the photo.
 *
 * @since_tizen 2.3
 *
 * @remarks An editable photo can be dragged to or from, and can be cut or
 *          pasted too. Note that pasting an image or dropping an item on
 *          the image deletes the existing content.
 *
 * @param[in] obj The photo object
 * @param[in] set The boolean value that sets or clears editability
 */
EAPI void      elm_photo_editable_set(Evas_Object *obj, Eina_Bool set);

/**
 * @brief Sets whether the original aspect ratio of the photo should be kept on resize.
 *
 * @remarks The original aspect ratio (width / height) of the photo is usually
 *          distorted to match the object's size. Enabling this option fixes
 *          this original aspect, and the way the photo is fit into
 *          the object's area.
 *
 * @param obj The photo object
 * @param fixed If @c EINA_TRUE the photo should fix the aspect,
 *              otherwise @c EINA_FALSE
 *
 * @see elm_photo_aspect_fixed_get()
 */
EAPI void             elm_photo_aspect_fixed_set(Evas_Object *obj, Eina_Bool fixed);

/**
 * @brief Gets whether the object keeps the original aspect ratio.
 *
 * @param obj The photo object
 * @return @c EINA_TRUE if the object keeps the original aspect, otherwise @c EINA_FALSE
 */
EAPI Eina_Bool        elm_photo_aspect_fixed_get(const Evas_Object *obj);

/**
 * @}
 */