1 #ifndef _ELM_HOVERSEL_EO_LEGACY_H_
2 #define _ELM_HOVERSEL_EO_LEGACY_H_
3 
4 #ifndef _ELM_HOVERSEL_EO_CLASS_TYPE
5 #define _ELM_HOVERSEL_EO_CLASS_TYPE
6 
7 typedef Eo Elm_Hoversel;
8 
9 #endif
10 
11 #ifndef _ELM_HOVERSEL_EO_TYPES
12 #define _ELM_HOVERSEL_EO_TYPES
13 
14 
15 #endif
16 
17 /**
18  * @brief Control if the hoversel should expand horizontally.
19  *
20  * @note The initial button will display horizontally regradless of this
21  * setting.
22  *
23  * @param[in] obj The object.
24  * @param[in] horizontal If @c true, the hover will expand horizontally to the
25  * right.
26  *
27  * @ingroup Elm_Hoversel_Group
28  */
29 EAPI void elm_hoversel_horizontal_set(Elm_Hoversel *obj, Eina_Bool horizontal);
30 
31 /**
32  * @brief Control if the hoversel should expand horizontally.
33  *
34  * @note The initial button will display horizontally regradless of this
35  * setting.
36  *
37  * @param[in] obj The object.
38  *
39  * @return If @c true, the hover will expand horizontally to the right.
40  *
41  * @ingroup Elm_Hoversel_Group
42  */
43 EAPI Eina_Bool elm_hoversel_horizontal_get(const Elm_Hoversel *obj);
44 
45 /**
46  * @brief Control the hover parent.
47  *
48  * Sets the hover parent object, the area that will be darkened when the
49  * hoversel is clicked. Should probably be the window that the hoversel is in.
50  *
51  * @param[in] obj The object.
52  * @param[in] parent The parent to use
53  *
54  * @ingroup Elm_Hoversel_Group
55  */
56 EAPI void elm_hoversel_hover_parent_set(Elm_Hoversel *obj, Efl_Canvas_Object *parent);
57 
58 /**
59  * @brief Control the hover parent.
60  *
61  * Sets the hover parent object, the area that will be darkened when the
62  * hoversel is clicked. Should probably be the window that the hoversel is in.
63  *
64  * @param[in] obj The object.
65  *
66  * @return The parent to use
67  *
68  * @ingroup Elm_Hoversel_Group
69  */
70 EAPI Efl_Canvas_Object *elm_hoversel_hover_parent_get(const Elm_Hoversel *obj);
71 
72 /**
73  * @brief Returns whether the hoversel is expanded.
74  *
75  * @param[in] obj The object.
76  *
77  * @return @c true if the hoversel is expanded or @c false otherwise
78  *
79  * @ingroup Elm_Hoversel_Group
80  */
81 EAPI Eina_Bool elm_hoversel_expanded_get(const Elm_Hoversel *obj);
82 
83 /**
84  * @brief Get the list of items within the given hoversel.
85  *
86  * @param[in] obj The object.
87  *
88  * @return List of items
89  *
90  * @ingroup Elm_Hoversel_Group
91  */
92 EAPI const Eina_List *elm_hoversel_items_get(const Elm_Hoversel *obj);
93 
94 /**
95  * @brief Update icon and text of hoversel same to those of selected item
96  * automatically.
97  *
98  * @param[in] obj The object.
99  * @param[in] auto_update @c true if hoversel is updated automatically or
100  * @c false otherwise
101  *
102  * @ingroup Elm_Hoversel_Group
103  */
104 EAPI void elm_hoversel_auto_update_set(Elm_Hoversel *obj, Eina_Bool auto_update);
105 
106 /**
107  * @brief Update icon and text of hoversel same to those of selected item
108  * automatically.
109  *
110  * @param[in] obj The object.
111  *
112  * @return @c true if hoversel is updated automatically or @c false otherwise
113  *
114  * @ingroup Elm_Hoversel_Group
115  */
116 EAPI Eina_Bool elm_hoversel_auto_update_get(const Elm_Hoversel *obj);
117 
118 /** This triggers the hoversel popup from code, the same as if the user had
119  * clicked the button.
120  *
121  * @ingroup Elm_Hoversel_Group
122  */
123 EAPI void elm_hoversel_hover_begin(Elm_Hoversel *obj);
124 
125 /**
126  * @brief This will remove all the children items from the hoversel.
127  *
128  * Warning Should *not* be called while the hoversel is active; use
129  * @ref elm_hoversel_expanded_get to check first.
130  * @param[in] obj The object.
131  *
132  * @ingroup Elm_Hoversel_Group
133  */
134 EAPI void elm_hoversel_clear(Elm_Hoversel *obj);
135 
136 /** This dismisses the hoversel popup as if the user had clicked outside the
137  * hover.
138  *
139  * @ingroup Elm_Hoversel_Group
140  */
141 EAPI void elm_hoversel_hover_end(Elm_Hoversel *obj);
142 
143 /**
144  * @brief Add an item to the hoversel button
145  *
146  * This adds an item to the hoversel to show when it is clicked. Note: if you
147  * need to use an icon from an edje file then use Elm.Hoversel.Item.icon.set
148  * right after this function, and set icon_file to @c null here.
149  *
150  * @param[in] obj The object.
151  * @param[in] label The text label to use for the item (NULL if not desired)
152  * @param[in] icon_file An image file path on disk to use for the icon or
153  * standard icon name (NULL if not desired)
154  * @param[in] icon_type The icon type if relevant
155  * @param[in] func Convenience function to call when this item is selected. The
156  * last parameter @c event_info of @c func is the selected item pointer.
157  * @param[in] data Data to pass to item-related functions
158  *
159  * @return A handle to the added item.
160  *
161  * @ingroup Elm_Hoversel_Group
162  */
163 EAPI Elm_Widget_Item *elm_hoversel_item_add(Elm_Hoversel *obj, const char *label, const char *icon_file, Elm_Icon_Type icon_type, Evas_Smart_Cb func, const void *data);
164 
165 #endif
166