Initialize Tizen 2.3
[framework/uifw/elementary.git] / mobile / src / lib / elm_frame.h
1 /**
2  * @defgroup Frame Frame
3  * @ingroup Elementary
4  *
5  * @image html frame_inheritance_tree.png
6  * @image latex frame_inheritance_tree.eps
7  *
8  * @image html img/widget/frame/preview-00.png
9  * @image latex img/widget/frame/preview-00.eps
10  *
11  * @brief Frame is a widget that holds some content and has a title.
12  *
13  * The default look is a frame with a title, but Frame supports multiple
14  * styles:
15  * @li default
16  * @li pad_small
17  * @li pad_medium
18  * @li pad_large
19  * @li pad_huge
20  * @li outdent_top
21  * @li outdent_bottom
22  *
23  * Of all this styles only default shows the title.
24  *
25  * This widget inherits from the @ref Layout one, so that all the
26  * functions acting on it also work for frame objects.
27  *
28  * This widget emits the following signals, besides the ones sent from
29  * @ref Layout:
30  * - @c "clicked" - The user has clicked the frame's label
31  *
32  * Default content parts of the frame widget that you can use for are:
33  * @li "default" - A content of the frame
34  *
35  * Default text parts of the frame widget that you can use for are:
36  * @li "default" - Label of the frame
37  *
38  * Supported elm_object common APIs.
39  * @li @ref elm_object_part_text_set
40  * @li @ref elm_object_part_text_get
41  * @li @ref elm_object_part_content_set
42  * @li @ref elm_object_part_content_get
43  * @li @ref elm_object_part_content_unset
44  *
45  * For a detailed example see the @ref tutorial_frame.
46  *
47  * @{
48  */
49
50 /**
51  * @brief Add a new frame to the parent
52  *
53  * @param parent The parent object
54  * @return The new object or NULL if it cannot be created
55  *
56  * @ingroup Frame
57  */
58 EAPI Evas_Object                 *elm_frame_add(Evas_Object *parent);
59
60 /**
61  * @brief Toggle autocollapsing of a frame
62  * @param obj The frame
63  * @param autocollapse Whether to enable autocollapse
64  *
65  * When @p enable is EINA_TRUE, clicking a frame's label will collapse the frame
66  * vertically, shrinking it to the height of the label.
67  * By default, this is DISABLED.
68  *
69  * @ingroup Frame
70  */
71 EAPI void elm_frame_autocollapse_set(Evas_Object *obj, Eina_Bool autocollapse);
72
73 /**
74  * @brief Determine autocollapsing of a frame
75  * @param obj The frame
76  * @return Whether autocollapse is enabled
77  *
78  * When this returns EINA_TRUE, clicking a frame's label will collapse the frame
79  * vertically, shrinking it to the height of the label.
80  * By default, this is DISABLED.
81  *
82  * @ingroup Frame
83  */
84 EAPI Eina_Bool elm_frame_autocollapse_get(const Evas_Object *obj);
85
86 /**
87  * @brief Manually collapse a frame without animations
88  * @param obj The frame
89  * @param collapse true to collapse, false to expand
90  *
91  * Use this to toggle the collapsed state of a frame, bypassing animations.
92  *
93  * @ingroup Frame
94  */
95 EAPI void elm_frame_collapse_set(Evas_Object *obj, Eina_Bool collapse);
96
97 /**
98  * @brief Determine the collapse state of a frame
99  * @param obj The frame
100  * @return true if collapsed, false otherwise
101  *
102  * Use this to determine the collapse state of a frame.
103  *
104  * @ingroup Frame
105  */
106 EAPI Eina_Bool elm_frame_collapse_get(const Evas_Object *obj);
107
108 /**
109  * @brief Manually collapse a frame with animations
110  * @param obj The frame
111  * @param collapse true to collapse, false to expand
112  *
113  * Use this to toggle the collapsed state of a frame, triggering animations.
114  *
115  * @ingroup Frame
116  */
117 EAPI void elm_frame_collapse_go(Evas_Object *obj, Eina_Bool collapse);
118
119 /**
120  * @}
121  */