1 /**
2  * @defgroup Elm_Popup_Group Popup
3  * @ingroup Elementary
4  *
5  * @image html popup_inheritance_tree.png
6  * @image latex popup_inheritance_tree.eps
7  *
8  * This widget is an enhancement of @ref Notify. In addition to
9  * content area, there are two optional sections, namely title area and
10  * action area.
11  *
12  * The popup widget displays its content with a particular orientation in
13  * the parent area. This orientation can be one among top, center,
14  * bottom, left, top-left, top-right, bottom-left and bottom-right.
15  * Content part of Popup can be an Evas Object set by application or
16  * it can be Text set by application or set of items containing an
17  * icon and/or text. The content/item-list can be removed using
18  * elm_object_content_set with second parameter passed as NULL.
19  *
20  * The following figures show the textual layouts of popup in which Title
21  * Area and Action area are optional ones. Action area can have
22  * up to 3 buttons handled using elm_object common APIs mentioned
23  * below. If user wants to have more than 3 buttons then these buttons
24  * can be put inside the items of a list as content. User needs to
25  * handle the clicked signal of these action buttons if required. No
26  * event is processed by the widget automatically when clicked on
27  * these action buttons.
28  *
29  * <pre>
30  *
31  *|---------------------|    |---------------------|    |---------------------|
32  *|     Title Area      |    |     Title Area      |    |     Title Area      |
33  *|Icon|    Text        |    |Icon|    Text        |    |Icon|    Text        |
34  *|---------------------|    |---------------------|    |---------------------|
35  *|       Item 1        |    |                     |    |                     |
36  *|---------------------|    |                     |    |                     |
37  *|       Item 2        |    |                     |    |    Description      |
38  *|---------------------|    |       Content       |    |                     |
39  *|       Item 3        |    |                     |    |                     |
40  *|---------------------|    |                     |    |                     |
41  *|         .           |    |---------------------|    |---------------------|
42  *|         .           |    |     Action Area     |    |     Action Area     |
43  *|         .           |    | Btn1  |Btn2|. |Btn3 |    | Btn1  |Btn2|  |Btn3 |
44  *|---------------------|    |---------------------|    |---------------------|
45  *|       Item N        |     Content Based Layout     Description based Layout
46  *|---------------------|
47  *|     Action Area     |
48  *| Btn1  |Btn2|. |Btn3 |
49  *|---------------------|
50  *   Item Based Layout
51  *
52  * </pre>
53  *
54  * Timeout can be set on expiry of which popup instance hides and
55  * sends a smart signal "timeout" to the user. The visible region of
56  * popup is surrounded by a translucent region called Blocked Event
57  * area. By clicking on Blocked Event area, the signal
58  * "block,clicked" is sent to the application. This block event area
59  * can be avoided by using API elm_popup_allow_events_set. When gets
60  * hidden, popup does not get destroyed automatically, application
61  * should destroy the popup instance after use. To control the
62  * maximum height of the internal scroller for item, we use the height
63  * of the action area which is passed by theme based on the number of
64  * buttons currently set to popup.
65  *
66  * Popup sets the focus to itself when evas_object_show is called on popup.
67  * To set the focus into popup's contents and buttons automatically,
68  * evas_object_show on popup should be called after setting all the contents
69  * and buttons of popup.
70  *
71  * This widget inherits from the @ref Elm_Layout one, so that all the
72  * functions acting on it also work for popup objects (since 1.8).
73  *
74  * This widget emits the following signals, besides the ones sent from
75  * @ref Elm_Layout :
76  * @li @c "timeout" - whenever popup is closed as a result of timeout.
77  * @li @c "block,clicked" - whenever user taps on Blocked Event area.
78  * @li @c "focused" - When the popup has received focus. (since 1.8)
79  * @li @c "unfocused" - When the popup has lost focus. (since 1.8)
80  * @li "language,changed" - the program's language changed (since 1.8)
81  * @li "item,focused" - When the popup item has received focus. (since 1.10)
82  * @li "item,unfocused" - When the popup item has lost focus. (since 1.10)
83  *
84  * Styles available for Popup
85  * @li "default"
86  *
87  * Default contents parts of the popup widget that you can use are:
88  * @li "default" - The content of the popup
89  * @li "title,icon" - Title area's icon
90  * @li "button1" - 1st button of the action area
91  * @li "button2" - 2nd button of the action area
92  * @li "button3" - 3rd button of the action area
93  *
94  * Default text parts of the popup widget that you can use are:
95  * @li "title,text" - A title area's label
96  * @li "default" - A content-text set in the content area of the widget
97  *
98  * Default contents parts of the popup items that you can use are:
99  * @li "default" - An item's icon
100  *
101  * Default text parts of the popup items that you can use are:
102  * @li "default" - An item's label
103  *
104  * Supported elm_object_item common APIs.
105  * @li @ref elm_object_item_part_text_set
106  * @li @ref elm_object_item_part_text_get
107  * @li @ref elm_object_item_part_content_set
108  * @li @ref elm_object_item_part_content_get
109  * @li @ref elm_object_item_disabled_set
110  * @li @ref elm_object_item_disabled_get
111  * @li @ref elm_object_item_del
112  * @li @ref elm_object_item_signal_emit
113  *
114  * supported elm_object common APIs.
115  * @li @ref elm_object_part_text_set
116  * @li @ref elm_object_part_text_get
117  * @li @ref elm_object_part_content_set
118  * @li @ref elm_object_part_content_get
119  * @li @ref elm_object_part_content_unset
120  * @li @ref elm_object_signal_emit
121  *
122  * Here are some sample code to illustrate Popup usage:
123  * @li @ref popup_example_01_c
124  * @li @ref popup_example_02_c
125  * @li @ref popup_example_03_c
126  */
127 
128 #ifndef EFL_NOLEGACY_API_SUPPORT
129 #include "elc_popup_legacy.h"
130 #endif
131