a36700bc615b11a861ae83d356398d2788680c74
[platform/upstream/elementary.git] / src / lib / elc_multibuttonentry.h
1 /**
2  * @defgroup Elm_Multibuttonentry Multibuttonentry
3  * @ingroup elm_widget_group
4  *
5  * @image html multibuttonentry_inheritance_tree.png
6  * @image latex multibuttonentry_inheritance_tree.eps
7  *
8  * A multi-button entry is a widget letting an user enter text and
9  * each chunk of text managed as a set of buttons. Each text button is
10  * inserted by pressing the "return" key. If there is no space in the
11  * current row, a new button is added to the next row. When a text
12  * button is pressed, it will become focused. Backspace removes the
13  * focus. When the multi-button entry loses focus, items longer than
14  * one line are shrunk to one line.
15  *
16  * The typical use case of multi-button entry is composing
17  * emails/messages to a group of addresses, each of which is an item
18  * that can be clicked for further actions.
19  *
20  * This widget inherits from the @ref Elm_Layout one, so that all the
21  * functions acting on it also work for multi-button entry objects (since 1.8).
22  *
23  * This widget emits the following signals, besides the ones sent from
24  * @ref Elm_Layout:
25  * - @c "item,selected" - this is called when an item is selected by
26  *       api, user interaction, and etc. this is also called when a
27  *       user press back space while cursor is on the first field of
28  *       entry.
29  * - @c "item,added" - when a new multi-button entry item is added.
30  * - @c "item,deleted" - when a multi-button entry item is deleted.
31  * - @c "item,clicked" - this is called when an item is clicked by user
32  *       interaction. Both "item,selected" and "item,clicked" are needed.
33  * - @c "item,longpressed" - when multi-button entry item is pressed for a long time.
34  * - @c "clicked" - when multi-button entry is clicked.
35  * - @c "focused" - when multi-button entry is focused.
36  * - @c "unfocused" - when multi-button entry is unfocused.
37  * - @c "expanded" - when multi-button entry is expanded.
38  * - @c "contracted" - when multi-button entry is contracted.
39  * - @c "expand,state,changed" - when shrink mode state of
40  *       multi-button entry is changed.
41  *
42  * Default text parts of the multi-button entry widget that you can use are:
43  * @li "default" - A label of the multi-button entry
44  *
45  * Default text parts of multi-button entry @b items that you can use are:
46  * @li "default" - A label of the multi-button entry item
47  *
48  * Supported elm_object_item common APIs.
49  * @li @ref elm_object_item_del
50  * @li @ref elm_object_item_part_text_set
51  * @li @ref elm_object_item_part_text_get
52  */
53
54
55 /**
56  * @addtogroup Multibuttonentry
57  * @{
58  */
59
60 #include "elc_multibuttonentry_common.h"
61 #ifdef EFL_EO_API_SUPPORT
62 #include "elc_multibuttonentry_eo.h"
63 #endif
64 #ifndef EFL_NOLEGACY_API_SUPPORT
65 #include "elc_multibuttonentry_legacy.h"
66 #endif
67 /**
68  * @}
69  */