elementary - +ingroup, fixed indentations.
[framework/uifw/elementary.git] / src / lib / elm_bubble.h
1 /**
2  * @defgroup Bubble Bubble
3  * @ingroup Elementary
4  *
5  * @image html img/widget/bubble/preview-00.png
6  * @image latex img/widget/bubble/preview-00.eps
7  * @image html img/widget/bubble/preview-01.png
8  * @image latex img/widget/bubble/preview-01.eps
9  * @image html img/widget/bubble/preview-02.png
10  * @image latex img/widget/bubble/preview-02.eps
11  *
12  * @brief The Bubble is a widget to show text similar to how speech is
13  * represented in comics.
14  *
15  * The bubble widget contains 5 important visual elements:
16  * @li The frame is a rectangle with rounded edjes and an "arrow".
17  * @li The @p icon is an image to which the frame's arrow points to.
18  * @li The @p label is a text which appears to the right of the icon if the
19  * corner is "top_left" or "bottom_left" and is right aligned to the frame
20  * otherwise.
21  * @li The @p info is a text which appears to the right of the label. Info's
22  * font is of a lighter color than label.
23  * @li The @p content is an evas object that is shown inside the frame.
24  *
25  * The position of the arrow, icon, label and info depends on which corner is
26  * selected. The four available corners are:
27  * @li "top_left" - Default
28  * @li "top_right"
29  * @li "bottom_left"
30  * @li "bottom_right"
31  *
32  * Signals that you can add callbacks for are:
33  * @li "clicked" - This is called when a user has clicked the bubble.
34  *
35  * Default content parts of the bubble that you can use for are:
36  * @li "default" - A content of the bubble
37  * @li "icon" - An icon of the bubble
38  *
39  * Default text parts of the button widget that you can use for are:
40  * @li "default" - Label of the bubble
41  * @li "info" - info of the bubble
42  *
43  * Supported elm_object common APIs.
44  * @li elm_object_part_text_set
45  * @li elm_object_part_text_get
46  * @li elm_object_part_content_set
47  * @li elm_object_part_content_get
48  * @li elm_object_part_content_unset
49  *
50  * For an example of using a bubble see @ref bubble_01_example_page "this".
51  *
52  * @{
53  */
54
55 /**
56  * Defines the corner values for a bubble.
57  *
58  * The corner will be used to determine where the arrow of the
59  * bubble points to.
60  */
61 typedef enum
62 {
63   ELM_BUBBLE_POS_INVALID = -1,
64   ELM_BUBBLE_POS_TOP_LEFT,
65   ELM_BUBBLE_POS_TOP_RIGHT,
66   ELM_BUBBLE_POS_BOTTOM_LEFT,
67   ELM_BUBBLE_POS_BOTTOM_RIGHT,
68 } Elm_Bubble_Pos;
69
70 /**
71  * Add a new bubble to the parent
72  *
73  * @param parent The parent object
74  * @return The new object or NULL if it cannot be created
75  *
76  * This function adds a text bubble to the given parent evas object.
77  *
78  * @ingroup Bubble
79  */
80 EAPI Evas_Object                 *elm_bubble_add(Evas_Object *parent);
81
82 /**
83  * Set the corner of the bubble
84  *
85  * @param obj The bubble object.
86  * @param pos The given corner for the bubble.
87  *
88  * This function sets the corner of the bubble. The corner will be used to
89  * determine where the arrow in the frame points to and where label, icon and
90  * info are shown.
91  *
92  *
93  * @ingroup Bubble
94  */
95 EAPI void  elm_bubble_pos_set(Evas_Object *obj, Elm_Bubble_Pos pos);
96
97 /**
98  * Get the corner of the bubble
99  *
100  * @param obj The bubble object.
101  * @return The given corner for the bubble.
102  *
103  * This function gets the selected corner of the bubble.
104  *
105  * @ingroup Bubble
106  */
107 EAPI Elm_Bubble_Pos elm_bubble_pos_get(const Evas_Object *obj);
108
109 /**
110  * @}
111  */