summaryrefslogtreecommitdiff
path: root/src/lib/elementary/elm_menu_eo.h
blob: 1c4a8111eb1a5499775169d0ceea12854d470513 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#ifndef _ELM_MENU_EO_H_
#define _ELM_MENU_EO_H_

#ifndef _ELM_MENU_EO_CLASS_TYPE
#define _ELM_MENU_EO_CLASS_TYPE

typedef Eo Elm_Menu;

#endif

#ifndef _ELM_MENU_EO_TYPES
#define _ELM_MENU_EO_TYPES


#endif
/** Elementary menu class
 *
 * @ingroup Elm_Menu
 */
#define ELM_MENU_CLASS elm_menu_class_get()

EWAPI const Efl_Class *elm_menu_class_get(void);

/**
 * @brief Get the selected item in the widget.
 *
 * @param[in] obj The object.
 *
 * @return The selected item or @c null.
 *
 * @ingroup Elm_Menu
 */
EOAPI Elm_Widget_Item *elm_obj_menu_selected_item_get(const Eo *obj);

/**
 * @brief Get the first item in the widget.
 *
 * @param[in] obj The object.
 *
 * @return The first item or @c null.
 *
 * @ingroup Elm_Menu
 */
EOAPI Elm_Widget_Item *elm_obj_menu_first_item_get(const Eo *obj);

/**
 * @brief Get the last item in the widget.
 *
 * @param[in] obj The object.
 *
 * @return The last item or @c null.
 *
 * @ingroup Elm_Menu
 */
EOAPI Elm_Widget_Item *elm_obj_menu_last_item_get(const Eo *obj);

/**
 * @brief Returns a list of the widget item.
 *
 * @param[in] obj The object.
 *
 * @return const list to widget items
 *
 * @ingroup Elm_Menu
 */
EOAPI const Eina_List *elm_obj_menu_items_get(const Eo *obj);

/**
 * @brief Move the menu to a new position
 *
 * Sets the top-left position of the menu to ($x, @c y).
 *
 * @note @c x and @c y coordinates are relative to parent.
 *
 * @param[in] obj The object.
 * @param[in] x The new X coordinate
 * @param[in] y The new Y coordinate
 *
 * @ingroup Elm_Menu
 */
EOAPI void elm_obj_menu_relative_move(Eo *obj, int x, int y);

/**
 * @brief Add an item at the end of the given menu widget.
 *
 * @note This function does not accept relative icon path.
 *
 * @param[in] obj The object.
 * @param[in] parent The parent menu item (optional).
 * @param[in] icon An icon display on the item. The icon will be destroyed by
 * the menu.
 * @param[in] label The label of the item.
 * @param[in] func Function called when the user select the item.
 * @param[in] data Data sent by the callback.
 *
 * @return The new menu item.
 *
 * @ingroup Elm_Menu
 */
EOAPI Elm_Widget_Item *elm_obj_menu_item_add(Eo *obj, Elm_Widget_Item *parent, const char *icon, const char *label, Evas_Smart_Cb func, const void *data);

/**
 * @brief Open a closed menu
 *
 * Show the menu with no child sub-menus expanded..
 * @param[in] obj The object.
 *
 * @ingroup Elm_Menu
 */
EOAPI void elm_obj_menu_open(Eo *obj);

/**
 * @brief Close a opened menu
 *
 * Hides the menu and all it's sub-menus.
 * @param[in] obj The object.
 *
 * @ingroup Elm_Menu
 */
EOAPI void elm_obj_menu_close(Eo *obj);

/**
 * @brief Add a separator item to menu @c obj under @c parent.
 *
 * @param[in] obj The object.
 * @param[in] parent The item to add the separator under.
 *
 * @return The created item or @c null.
 *
 * @ingroup Elm_Menu
 */
EOAPI Elm_Widget_Item *elm_obj_menu_item_separator_add(Eo *obj, Elm_Widget_Item *parent);

EWAPI extern const Efl_Event_Description _ELM_MENU_EVENT_DISMISSED;

/** Called when menu widget was dismissed
 *
 * @ingroup Elm_Menu
 */
#define ELM_MENU_EVENT_DISMISSED (&(_ELM_MENU_EVENT_DISMISSED))

EWAPI extern const Efl_Event_Description _ELM_MENU_EVENT_ELM_ACTION_BLOCK_MENU;

/** Called when menu blocking have been enabled
 *
 * @ingroup Elm_Menu
 */
#define ELM_MENU_EVENT_ELM_ACTION_BLOCK_MENU (&(_ELM_MENU_EVENT_ELM_ACTION_BLOCK_MENU))

EWAPI extern const Efl_Event_Description _ELM_MENU_EVENT_ELM_ACTION_UNBLOCK_MENU;

/** Called when menu blocking has been disabled
 *
 * @ingroup Elm_Menu
 */
#define ELM_MENU_EVENT_ELM_ACTION_UNBLOCK_MENU (&(_ELM_MENU_EVENT_ELM_ACTION_UNBLOCK_MENU))

#endif