elementary/menu - Elm_Menu_Item -> Elm_Object_Item

SVN revision: 65596
This commit is contained in:
ChunEon Park 2011-11-25 10:57:39 +00:00
parent 058c062a8d
commit 468985fa84
8 changed files with 288 additions and 246 deletions

View File

@ -603,17 +603,18 @@ _map_move_resize_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__,
}
static void
_populate(void *data, Elm_Menu_Item *item)
_populate(void *data, Elm_Object_Item *menu_it)
{
int idx;
if ((!data) || (!item) || (!source_names)) return;
if ((!data) || (!menu_it) || (!source_names)) return;
for (idx = 0; source_names[idx]; idx++)
{
if (idx >= SOURCE_MAX) break;
ms[idx].map = data;
ms[idx].source_name = strdup(source_names[idx]);
elm_menu_item_add(menu, item, "", source_names[idx], map_source, &ms[idx]);
elm_menu_item_add(menu, menu_it, "", source_names[idx], map_source,
&ms[idx]);
}
}
@ -621,7 +622,7 @@ static void
_map_mouse_down(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info)
{
Evas_Event_Mouse_Down *down = event_info;
Elm_Menu_Item *item;
Elm_Object_Item *menu_it;
if (!down) return;
if (down->button == 2)
@ -633,8 +634,8 @@ _map_mouse_down(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event
else if (down->button == 3)
{
menu = elm_menu_add(obj);
item = elm_menu_item_add(menu, NULL, NULL, "Source", NULL, NULL);
_populate(data, item);
menu_it = elm_menu_item_add(menu, NULL, NULL, "Source", NULL, NULL);
_populate(data, menu_it);
elm_menu_item_add(menu, NULL, NULL, "Show Urmatt", map_show_urmatt, data);
elm_menu_item_add(menu, NULL, NULL, "Bring Seoul", map_bring_seoul, data);
elm_menu_item_add(menu, NULL, NULL, "Paused Set", map_paused_set, data);

View File

@ -15,80 +15,88 @@ _show(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_i
}
static void
_populate_4(Elm_Menu_Item *item)
_populate_4(Elm_Object_Item *menu_it)
{
Elm_Menu_Item *item2;
Elm_Object_Item *menu_it2;
elm_menu_item_add(menu, item, "go-bottom", "menu 2", NULL, NULL);
elm_menu_item_add(menu, item, "go-first", "menu 3", NULL, NULL);
elm_menu_item_separator_add(menu, item);
item2 = elm_menu_item_add(menu, item, "go-last", "Disabled item", NULL, NULL);
elm_menu_item_disabled_set(item2, 1);
item2 = elm_menu_item_add(menu, item, "go-next", "Disabled item", NULL, NULL);
elm_menu_item_disabled_set(item2, 1);
item2 = elm_menu_item_add(menu, item, "go-up", "Disabled item", NULL, NULL);
elm_menu_item_disabled_set(item2, 1);
elm_menu_item_add(menu, menu_it, "go-bottom", "menu 2", NULL, NULL);
elm_menu_item_add(menu, menu_it, "go-first", "menu 3", NULL, NULL);
elm_menu_item_separator_add(menu, menu_it);
menu_it2 = elm_menu_item_add(menu, menu_it, "go-last", "Disabled item", NULL,
NULL);
elm_menu_item_disabled_set(menu_it2, EINA_TRUE);
menu_it2 = elm_menu_item_add(menu, menu_it, "go-next", "Disabled item", NULL,
NULL);
elm_menu_item_disabled_set(menu_it2, EINA_TRUE);
menu_it2 = elm_menu_item_add(menu, menu_it, "go-up", "Disabled item", NULL,
NULL);
elm_menu_item_disabled_set(menu_it2, EINA_TRUE);
}
static void
_populate_3(Elm_Menu_Item *item)
_populate_3(Elm_Object_Item *menu_it)
{
Elm_Menu_Item *item2;
Elm_Object_Item *menu_it2;
elm_menu_item_add(menu, item, "media-eject", "menu 2", NULL, NULL);
elm_menu_item_add(menu, item, "media-playback-start", "menu 3", NULL, NULL);
elm_menu_item_separator_add(menu,item);
item2 = elm_menu_item_add(menu, item, "media-playback-stop", "Disabled item", NULL, NULL);
elm_menu_item_disabled_set(item2, 1);
elm_menu_item_add(menu, menu_it, "media-eject", "menu 2", NULL, NULL);
elm_menu_item_add(menu, menu_it, "media-playback-start", "menu 3", NULL,
NULL);
elm_menu_item_separator_add(menu, menu_it);
menu_it2 = elm_menu_item_add(menu, menu_it, "media-playback-stop",
"Disabled item", NULL, NULL);
elm_menu_item_disabled_set(menu_it2, EINA_TRUE);
}
static void
_populate_2(Elm_Menu_Item *item)
_populate_2(Elm_Object_Item *menu_it)
{
Elm_Menu_Item *item2, *item3;
Elm_Object_Item *menu_it2, *menu_it3;
elm_menu_item_add(menu, item, "system-reboot", "menu 2", NULL, NULL);
item2 = elm_menu_item_add(menu, item, "system-shutdown", "menu 3", NULL, NULL);
elm_menu_item_add(menu, menu_it, "system-reboot", "menu 2", NULL, NULL);
menu_it2 = elm_menu_item_add(menu, menu_it, "system-shutdown", "menu 3",
NULL, NULL);
_populate_3(menu_it2);
_populate_3(item2);
elm_menu_item_separator_add(menu, menu_it);
elm_menu_item_separator_add(menu, menu_it);
elm_menu_item_separator_add(menu, menu_it);
elm_menu_item_separator_add(menu, menu_it);
elm_menu_item_separator_add(menu, menu_it);
elm_menu_item_separator_add(menu, menu_it);
elm_menu_item_separator_add(menu, menu_it);
elm_menu_item_separator_add(menu,item);
elm_menu_item_separator_add(menu,item);
elm_menu_item_separator_add(menu,item);
elm_menu_item_separator_add(menu,item);
elm_menu_item_separator_add(menu,item);
elm_menu_item_separator_add(menu,item);
elm_menu_item_separator_add(menu,item);
menu_it2 = elm_menu_item_add(menu, menu_it, "system-lock-screen", "menu 2",
NULL, NULL);
elm_menu_item_separator_add(menu, menu_it);
item2 = elm_menu_item_add(menu, item, "system-lock-screen", "menu 2", NULL, NULL);
elm_menu_item_separator_add(menu,item);
menu_it3 = elm_menu_item_add(menu, menu_it, "system-run", "Disabled item",
NULL, NULL);
elm_menu_item_disabled_set(menu_it3, EINA_TRUE);
item3 = elm_menu_item_add(menu, item, "system-run", "Disabled item", NULL, NULL);
elm_menu_item_disabled_set(item3, 1);
_populate_4(item2);
_populate_4(menu_it2);
}
static void
_populate_1(Evas_Object *win, Elm_Menu_Item *item)
_populate_1(Evas_Object *win, Elm_Object_Item *menu_it)
{
Elm_Menu_Item *item2;
Elm_Object_Item *menu_it2;
Evas_Object *radio;
radio = elm_radio_add(win);
elm_radio_state_value_set(radio, 0);
elm_radio_value_set(radio, 0);
elm_object_text_set(radio, "radio in menu");
item2 = elm_menu_item_add(menu, item, "object-rotate-left", "menu 1", NULL, NULL);
elm_menu_item_add_object(menu, item, radio, NULL, NULL);
menu_it2 = elm_menu_item_add(menu, menu_it, "object-rotate-left", "menu 1",
NULL, NULL);
elm_menu_item_add_object(menu, menu_it, radio, NULL, NULL);
_populate_2(item2);
_populate_2(menu_it2);
}
void
test_menu(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Elm_Menu_Item *item;
Elm_Object_Item *menu_it;
win = elm_win_add(NULL, "menu", ELM_WIN_BASIC);
elm_win_title_set(win, "Menu");
@ -107,10 +115,11 @@ test_menu(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info _
menu = elm_menu_add(win);
elm_menu_item_add(menu, NULL, NULL, "first item", NULL, NULL);
item = elm_menu_item_add(menu, NULL, "mail-reply-all", "second item", NULL, NULL);
_populate_1(win, item);
menu_it = elm_menu_item_add(menu, NULL, "mail-reply-all", "second item",
NULL, NULL);
_populate_1(win, menu_it);
elm_menu_item_add(menu, item, "window-new", "sub menu", NULL, NULL);
elm_menu_item_add(menu, menu_it, "window-new", "sub menu", NULL, NULL);
evas_object_event_callback_add(rect, EVAS_CALLBACK_MOUSE_DOWN, _show, menu);

View File

@ -67,7 +67,7 @@ test_toolbar(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_inf
Evas_Object *win, *bg, *bx, *tb, *ph, *menu;
Evas_Object *ph1, *ph2, *ph3, *ph4;
Elm_Toolbar_Item *item;
Elm_Menu_Item *menu_item;
Elm_Object_Item *menu_it;
char buf[PATH_MAX];
win = elm_win_add(NULL, "toolbar", ELM_WIN_BASIC);
@ -118,8 +118,8 @@ test_toolbar(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_inf
menu = elm_toolbar_item_menu_get(item);
elm_menu_item_add(menu, NULL, "edit-cut", "Shrink", tb_3, ph4);
menu_item = elm_menu_item_add(menu, NULL, "edit-copy", "Mode", tb_4, ph4);
elm_menu_item_add(menu, menu_item, "edit-paste", "is set to", tb_4, ph4);
menu_it = elm_menu_item_add(menu, NULL, "edit-copy", "Mode", tb_4, ph4);
elm_menu_item_add(menu, menu_it, "edit-paste", "is set to", tb_4, ph4);
elm_menu_item_add(menu, NULL, "edit-delete", "Menu", tb_5, ph4);
elm_box_pack_end(bx, tb);
@ -177,7 +177,7 @@ test_toolbar2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
Evas_Object *win, *bg, *bx, *tb, *ph, *menu;
Evas_Object *ph1, *ph2, *ph3, *ph4;
Elm_Toolbar_Item *item;
Elm_Menu_Item *menu_item;
Elm_Object_Item *menu_it;
char buf[PATH_MAX];
win = elm_win_add(NULL, "toolbar2", ELM_WIN_BASIC);
@ -228,8 +228,8 @@ test_toolbar2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
menu = elm_toolbar_item_menu_get(item);
elm_menu_item_add(menu, NULL, "edit-cut", "Shrink", tb_3, ph4);
menu_item = elm_menu_item_add(menu, NULL, "edit-copy", "Mode", tb_4, ph4);
elm_menu_item_add(menu, menu_item, "edit-paste", "is set to", tb_4, ph4);
menu_it = elm_menu_item_add(menu, NULL, "edit-copy", "Mode", tb_4, ph4);
elm_menu_item_add(menu, menu_it, "edit-paste", "is set to", tb_4, ph4);
elm_menu_item_add(menu, NULL, "edit-delete", "Scroll", tb_5, ph4);
elm_box_pack_end(bx, tb);
@ -287,7 +287,7 @@ test_toolbar3(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
Evas_Object *win, *bg, *bx, *tb, *ph, *menu;
Evas_Object *ph1, *ph2, *ph3, *ph4;
Elm_Toolbar_Item *item;
Elm_Menu_Item *menu_item;
Elm_Object_Item *menu_it;
char buf[PATH_MAX];
win = elm_win_add(NULL, "toolbar3", ELM_WIN_BASIC);
@ -338,15 +338,14 @@ test_toolbar3(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
menu = elm_toolbar_item_menu_get(item);
elm_menu_item_add(menu, NULL, "edit-cut", "Shrink", tb_3, ph4);
menu_item = elm_menu_item_add(menu, NULL, "edit-copy", "Mode", tb_4, ph4);
elm_menu_item_add(menu, menu_item, "edit-paste", "is set to", tb_4, ph4);
menu_it = elm_menu_item_add(menu, NULL, "edit-copy", "Mode", tb_4, ph4);
elm_menu_item_add(menu, menu_it, "edit-paste", "is set to", tb_4, ph4);
elm_menu_item_add(menu, NULL, "edit-delete", "None", tb_5, ph4);
elm_box_pack_end(bx, tb);
evas_object_show(tb);
tb = elm_table_add(win);
//elm_table_homogeneous_set(tb, 1);
evas_object_size_hint_weight_set(tb, 0.0, EVAS_HINT_EXPAND);
evas_object_size_hint_fill_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL);
@ -398,7 +397,7 @@ test_toolbar4(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
Evas_Object *win, *bg, *bx, *tb, *ph, *menu;
Evas_Object *ph1, *ph2, *ph3, *ph4;
Elm_Toolbar_Item *item;
Elm_Menu_Item *menu_item;
Elm_Object_Item *menu_it;
char buf[PATH_MAX];
win = elm_win_add(NULL, "toolbar4", ELM_WIN_BASIC);
@ -449,8 +448,8 @@ test_toolbar4(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
menu = elm_toolbar_item_menu_get(item);
elm_menu_item_add(menu, NULL, "edit-cut", "Shrink", tb_3, ph4);
menu_item = elm_menu_item_add(menu, NULL, "edit-copy", "Mode", tb_4, ph4);
elm_menu_item_add(menu, menu_item, "edit-paste", "is set to", tb_4, ph4);
menu_it = elm_menu_item_add(menu, NULL, "edit-copy", "Mode", tb_4, ph4);
elm_menu_item_add(menu, menu_it, "edit-paste", "is set to", tb_4, ph4);
elm_menu_item_add(menu, NULL, "edit-delete", "Menu", tb_5, ph4);
elm_box_pack_end(bx, tb);
@ -508,7 +507,7 @@ test_toolbar5(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
Evas_Object *win, *bg, *bx, *tb, *ph, *menu;
Evas_Object *ph1, *ph2, *ph3, *ph4;
Elm_Toolbar_Item *item;
Elm_Menu_Item *menu_item;
Elm_Object_Item *menu_it;
char buf[PATH_MAX];
win = elm_win_add(NULL, "toolbar5", ELM_WIN_BASIC);
@ -564,15 +563,14 @@ test_toolbar5(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
menu = elm_toolbar_item_menu_get(item);
elm_menu_item_add(menu, NULL, "edit-cut", "Shrink", tb_3, ph4);
menu_item = elm_menu_item_add(menu, NULL, "edit-copy", "Mode", tb_4, ph4);
elm_menu_item_add(menu, menu_item, "edit-paste", "is set to", tb_4, ph4);
menu_it = elm_menu_item_add(menu, NULL, "edit-copy", "Mode", tb_4, ph4);
elm_menu_item_add(menu, menu_it, "edit-paste", "is set to", tb_4, ph4);
elm_menu_item_add(menu, NULL, "edit-delete", "Menu", tb_5, ph4);
elm_box_pack_end(bx, tb);
evas_object_show(tb);
tb = elm_table_add(win);
//elm_table_homogeneous_set(tb, 1);
evas_object_size_hint_weight_set(tb, 0.0, EVAS_HINT_EXPAND);
evas_object_size_hint_fill_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL);
@ -623,7 +621,7 @@ test_toolbar6(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
Evas_Object *win, *bg, *bx, *tb, *ph, *menu;
Evas_Object *ph1, *ph2, *ph3, *ph4;
Elm_Toolbar_Item *item;
Elm_Menu_Item *menu_item;
Elm_Object_Item *menu_it;
char buf[PATH_MAX];
win = elm_win_add(NULL, "toolbar", ELM_WIN_BASIC);
@ -676,15 +674,14 @@ test_toolbar6(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_in
menu = elm_toolbar_item_menu_get(item);
elm_menu_item_add(menu, NULL, "edit-cut", "Shrink", tb_3, ph4);
menu_item = elm_menu_item_add(menu, NULL, "edit-copy", "Mode", tb_4, ph4);
elm_menu_item_add(menu, menu_item, "edit-paste", "is set to", tb_4, ph4);
menu_it = elm_menu_item_add(menu, NULL, "edit-copy", "Mode", tb_4, ph4);
elm_menu_item_add(menu, menu_it, "edit-paste", "is set to", tb_4, ph4);
elm_menu_item_add(menu, NULL, "edit-delete", "Menu", tb_5, ph4);
elm_box_pack_end(bx, tb);
evas_object_show(tb);
tb = elm_table_add(win);
//elm_table_homogeneous_set(tb, 1);
evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_fill_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL);

View File

@ -10,9 +10,9 @@ static void
_del_it(void *data, Evas_Object *obj, void *event_info)
{
Eina_List *l;
Elm_Menu_Item *it = elm_menu_first_item_get(data);
it = elm_menu_item_next_get(it);
l = elm_menu_item_subitems_get(it);
Elm_Object_Item *menu_it = elm_menu_first_item_get(data);
menu_it = elm_menu_item_next_get(menu_it);
l = elm_menu_item_subitems_get(menu_it);
elm_menu_item_del(eina_list_data_get(l));
}
@ -28,7 +28,7 @@ EAPI_MAIN int
elm_main(int argc, char **argv)
{
Evas_Object *win, *bg, *menu, *button, *rect;
Elm_Menu_Item *item;
Elm_Object_Item *meu_it;
win = elm_win_add(NULL, "menu", ELM_WIN_BASIC);
elm_win_title_set(win, "Menu");
@ -46,20 +46,20 @@ elm_main(int argc, char **argv)
menu = elm_menu_add(win);
elm_menu_item_add(menu, NULL, NULL, "first item", NULL, NULL);
item = elm_menu_item_add(menu, NULL, "mail-reply-all", "second item", NULL, NULL);
menu_it = elm_menu_item_add(menu, NULL, "mail-reply-all", "second item", NULL, NULL);
elm_menu_item_add(menu, item, "object-rotate-left", "menu 1", NULL, NULL);
elm_menu_item_add(menu, menu_it, "object-rotate-left", "menu 1", NULL, NULL);
button = elm_button_add(win);
elm_object_text_set(button, "button - delete items");
elm_menu_item_add_object(menu, item, button, NULL, NULL);
elm_menu_item_add_object(menu, menu_it, button, NULL, NULL);
evas_object_smart_callback_add(button, "clicked", _del_it, menu);
elm_menu_item_separator_add(menu, item);
elm_menu_item_add(menu, item, NULL, "third item", NULL, NULL);
elm_menu_item_add(menu, item, NULL, "fourth item", NULL, NULL);
elm_menu_item_add(menu, item, "window-new", "sub menu", NULL, NULL);
elm_menu_item_separator_add(menu, menu_it);
elm_menu_item_add(menu, menu_it, NULL, "third item", NULL, NULL);
elm_menu_item_add(menu, menu_it, NULL, "fourth item", NULL, NULL);
elm_menu_item_add(menu, menu_it, "window-new", "sub menu", NULL, NULL);
item = elm_menu_item_add(menu, NULL, NULL, "third item", NULL, NULL);
elm_menu_item_disabled_set(item, EINA_TRUE);
menu_it = elm_menu_item_add(menu, NULL, NULL, "third item", NULL, NULL);
elm_menu_item_disabled_set(menu_it, EINA_TRUE);
evas_object_event_callback_add(rect, EVAS_CALLBACK_MOUSE_DOWN, _show, menu);
evas_object_show(menu);

View File

@ -15978,7 +15978,7 @@ extern "C" {
* @see @ref tutorial_menu
* @{
*/
typedef struct _Elm_Menu_Item Elm_Menu_Item; /**< Item of Elm_Menu. Sub-type of Elm_Widget_Item */
/**
* @brief Add a new menu to the parent
*
@ -16038,7 +16038,7 @@ extern "C" {
*
* @warning Don't manipulate this object!
*/
EAPI Evas_Object *elm_menu_item_object_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_menu_item_object_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
/**
* @brief Add an item at the end of the given menu widget
*
@ -16050,7 +16050,7 @@ extern "C" {
* @param data Data sent by the callback.
* @return Returns the new item.
*/
EAPI Elm_Menu_Item *elm_menu_item_add(Evas_Object *obj, Elm_Menu_Item *parent, const char *icon, const char *label, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
EAPI Elm_Object_Item *elm_menu_item_add(Evas_Object *obj, Elm_Object_Item *parent, const char *icon, const char *label, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
/**
* @brief Add an object swallowed in an item at the end of the given menu
* widget
@ -16064,57 +16064,57 @@ extern "C" {
*
* Add an evas object as an item to the menu.
*/
EAPI Elm_Menu_Item *elm_menu_item_add_object(Evas_Object *obj, Elm_Menu_Item *parent, Evas_Object *subobj, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
EAPI Elm_Object_Item *elm_menu_item_add_object(Evas_Object *obj, Elm_Object_Item *parent, Evas_Object *subobj, Evas_Smart_Cb func, const void *data) EINA_ARG_NONNULL(1);
/**
* @brief Set the label of a menu item
*
* @param item The menu item object.
* @param it The menu item object.
* @param label The label to set for @p item
*
* @warning Don't use this funcion on items created with
* elm_menu_item_add_object() or elm_menu_item_separator_add().
*/
EAPI void elm_menu_item_label_set(Elm_Menu_Item *item, const char *label) EINA_ARG_NONNULL(1);
EAPI void elm_menu_item_label_set(Elm_Object_Item *it, const char *label) EINA_ARG_NONNULL(1);
/**
* @brief Get the label of a menu item
*
* @param item The menu item object.
* @param it The menu item object.
* @return The label of @p item
*/
EAPI const char *elm_menu_item_label_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
EAPI const char *elm_menu_item_label_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
/**
* @brief Set the icon of a menu item to the standard icon with name @p icon
*
* @param item The menu item object.
* @param it The menu item object.
* @param icon The icon object to set for the content of @p item
*
* Once this icon is set, any previously set icon will be deleted.
*/
EAPI void elm_menu_item_object_icon_name_set(Elm_Menu_Item *item, const char *icon) EINA_ARG_NONNULL(1, 2);
EAPI void elm_menu_item_object_icon_name_set(Elm_Object_Item *it, const char *icon) EINA_ARG_NONNULL(1, 2);
/**
* @brief Get the string representation from the icon of a menu item
*
* @param item The menu item object.
* @param it The menu item object.
* @return The string representation of @p item's icon or NULL
*
* @see elm_menu_item_object_icon_name_set()
*/
EAPI const char *elm_menu_item_object_icon_name_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
EAPI const char *elm_menu_item_object_icon_name_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
/**
* @brief Set the content object of a menu item
*
* @param item The menu item object
* @param it The menu item object
* @param The content object or NULL
* @return EINA_TRUE on success, else EINA_FALSE
*
* Use this function to change the object swallowed by a menu item, deleting
* any previously swallowed object.
*/
EAPI Eina_Bool elm_menu_item_object_content_set(Elm_Menu_Item *item, Evas_Object *obj) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_menu_item_object_content_set(Elm_Object_Item *it, Evas_Object *obj) EINA_ARG_NONNULL(1);
/**
* @brief Get the content object of a menu item
*
* @param item The menu item object
* @param it The menu item object
* @return The content object or NULL
* @note If @p item was added with elm_menu_item_add_object, this
* function will return the object passed, else it will return the
@ -16122,39 +16122,39 @@ extern "C" {
*
* @see elm_menu_item_object_content_set()
*/
EAPI Evas_Object *elm_menu_item_object_content_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
EAPI Evas_Object *elm_menu_item_object_content_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
/**
* @brief Set the selected state of @p item.
*
* @param item The menu item object.
* @param it The menu item object.
* @param selected The selected/unselected state of the item
*/
EAPI void elm_menu_item_selected_set(Elm_Menu_Item *item, Eina_Bool selected) EINA_ARG_NONNULL(1);
EAPI void elm_menu_item_selected_set(Elm_Object_Item *it, Eina_Bool selected) EINA_ARG_NONNULL(1);
/**
* @brief Get the selected state of @p item.
*
* @param item The menu item object.
* @param it The menu item object.
* @return The selected/unselected state of the item
*
* @see elm_menu_item_selected_set()
*/
EAPI Eina_Bool elm_menu_item_selected_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_menu_item_selected_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
/**
* @brief Set the disabled state of @p item.
*
* @param item The menu item object.
* @param it The menu item object.
* @param disabled The enabled/disabled state of the item
*/
EAPI void elm_menu_item_disabled_set(Elm_Menu_Item *item, Eina_Bool disabled) EINA_ARG_NONNULL(1);
EAPI void elm_menu_item_disabled_set(Elm_Object_Item *it, Eina_Bool disabled) EINA_ARG_NONNULL(1);
/**
* @brief Get the disabled state of @p item.
*
* @param item The menu item object.
* @param it The menu item object.
* @return The enabled/disabled state of the item
*
* @see elm_menu_item_disabled_set()
*/
EAPI Eina_Bool elm_menu_item_disabled_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_menu_item_disabled_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
/**
* @brief Add a separator item to menu @p obj under @p parent.
*
@ -16164,63 +16164,64 @@ extern "C" {
*
* This is item is a @ref Separator.
*/
EAPI Elm_Menu_Item *elm_menu_item_separator_add(Evas_Object *obj, Elm_Menu_Item *parent) EINA_ARG_NONNULL(1);
EAPI Elm_Object_Item *elm_menu_item_separator_add(Evas_Object *obj, Elm_Object_Item *parent) EINA_ARG_NONNULL(1);
/**
* @brief Returns whether @p item is a separator.
*
* @param item The item to check
* @param it The item to check
* @return If true, @p item is a separator
*
* @see elm_menu_item_separator_add()
*/
EAPI Eina_Bool elm_menu_item_is_separator(Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
EAPI Eina_Bool elm_menu_item_is_separator(Elm_Object_Item *it) EINA_ARG_NONNULL(1);
/**
* @brief Deletes an item from the menu.
*
* @param item The item to delete.
* @param it The item to delete.
*
* @see elm_menu_item_add()
*/
EAPI void elm_menu_item_del(Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
EAPI void elm_menu_item_del(Elm_Object_Item *it) EINA_ARG_NONNULL(1);
/**
* @brief Set the function called when a menu item is deleted.
*
* @param item The item to set the callback on
* @param it The item to set the callback on
* @param func The function called
*
* @see elm_menu_item_add()
* @see elm_menu_item_del()
*/
EAPI void elm_menu_item_del_cb_set(Elm_Menu_Item *it, Evas_Smart_Cb func) EINA_ARG_NONNULL(1);
EAPI void elm_menu_item_del_cb_set(Elm_Object_Item *it, Evas_Smart_Cb func) EINA_ARG_NONNULL(1);
/**
* @brief Returns the data associated with menu item @p item.
*
* @param item The item
* @param it The item
* @return The data associated with @p item or NULL if none was set.
*
* This is the data set with elm_menu_add() or elm_menu_item_data_set().
*/
EAPI void *elm_menu_item_data_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1);
EAPI void *elm_menu_item_data_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
/**
* @brief Sets the data to be associated with menu item @p item.
*
* @param item The item
* @param it The item
* @param data The data to be associated with @p item
*/
EAPI void elm_menu_item_data_set(Elm_Menu_Item *item, const void *data) EINA_ARG_NONNULL(1);
EAPI void elm_menu_item_data_set(Elm_Object_Item *it, const void *data) EINA_ARG_NONNULL(1);
/**
* @brief Returns a list of @p item's subitems.
*
* @param item The item
* @param it The item
* @return An Eina_List* of @p item's subitems
*
* @see elm_menu_add()
*/
EAPI const Eina_List *elm_menu_item_subitems_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1);
EAPI const Eina_List *elm_menu_item_subitems_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
/**
* @brief Get the position of a menu item
*
* @param item The menu item
* @param it The menu item
* @return The item's index
*
* This function returns the index position of a menu item in a menu.
@ -16228,16 +16229,16 @@ extern "C" {
*
* @note Index values begin with 0
*/
EAPI unsigned int elm_menu_item_index_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1) EINA_PURE;
EAPI unsigned int elm_menu_item_index_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1) EINA_PURE;
/**
* @brief @brief Return a menu item's owner menu
*
* @param item The menu item
* @param it The menu item
* @return The menu object owning @p item, or NULL on failure
*
* Use this function to get the menu object owning an item.
*/
EAPI Evas_Object *elm_menu_item_menu_get(const Elm_Menu_Item *item) EINA_ARG_NONNULL(1) EINA_PURE;
EAPI Evas_Object *elm_menu_item_menu_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1) EINA_PURE;
/**
* @brief Get the selected item in the menu
*
@ -16247,35 +16248,35 @@ extern "C" {
* @see elm_menu_item_selected_get()
* @see elm_menu_item_selected_set()
*/
EAPI Elm_Menu_Item *elm_menu_selected_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1);
EAPI Elm_Object_Item *elm_menu_selected_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1);
/**
* @brief Get the last item in the menu
*
* @param obj The menu object
* @return The last item, or NULL if none
*/
EAPI Elm_Menu_Item *elm_menu_last_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1);
EAPI Elm_Object_Item *elm_menu_last_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1);
/**
* @brief Get the first item in the menu
*
* @param obj The menu object
* @return The first item, or NULL if none
*/
EAPI Elm_Menu_Item *elm_menu_first_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1);
EAPI Elm_Object_Item *elm_menu_first_item_get(const Evas_Object * obj) EINA_ARG_NONNULL(1);
/**
* @brief Get the next item in the menu.
*
* @param item The menu item object.
* @param it The menu item object.
* @return The item after it, or NULL if none
*/
EAPI Elm_Menu_Item *elm_menu_item_next_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1);
EAPI Elm_Object_Item *elm_menu_item_next_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
/**
* @brief Get the previous item in the menu.
*
* @param item The menu item object.
* @param it The menu item object.
* @return The item before it, or NULL if none
*/
EAPI Elm_Menu_Item *elm_menu_item_prev_get(const Elm_Menu_Item *it) EINA_ARG_NONNULL(1);
EAPI Elm_Object_Item *elm_menu_item_prev_get(const Elm_Object_Item *it) EINA_ARG_NONNULL(1);
/**
* @}
*/

View File

@ -2,6 +2,7 @@
#include "elm_priv.h"
typedef struct _Widget_Data Widget_Data;
typedef struct _Elm_Menu_Item Elm_Menu_Item;
struct _Elm_Menu_Item
{
@ -116,15 +117,19 @@ _theme_hook(Evas_Object *obj)
_elm_theme_object_set
(obj, VIEW(item), "menu", "item_with_submenu",
elm_widget_style_get(obj));
elm_menu_item_label_set(item, item->label);
elm_menu_item_object_icon_name_set(item, item->icon_str);
elm_menu_item_label_set((Elm_Object_Item *) item,
item->label);
elm_menu_item_object_icon_name_set((Elm_Object_Item *) item,
item->icon_str);
}
else
{
_elm_theme_object_set(obj, VIEW(item), "menu", "item",
elm_widget_style_get(obj));
elm_menu_item_label_set(item, item->label);
elm_menu_item_object_icon_name_set(item, item->icon_str);
elm_menu_item_label_set((Elm_Object_Item *) item,
item->label);
elm_menu_item_object_icon_name_set((Elm_Object_Item *) item,
item->icon_str);
}
if (item->disabled)
edje_object_signal_emit
@ -328,7 +333,8 @@ _menu_item_activate(void *data, Evas_Object *obj __UNUSED__, const char *emissio
{
EINA_LIST_FOREACH(item->parent->submenu.items, l, item2)
{
if (item2 != item) elm_menu_item_selected_set(item2, 0);
if (item2 != item)
elm_menu_item_selected_set((Elm_Object_Item *) item2, 0);
}
}
else
@ -336,7 +342,8 @@ _menu_item_activate(void *data, Evas_Object *obj __UNUSED__, const char *emissio
Widget_Data *wd = elm_widget_data_get(WIDGET(item));
EINA_LIST_FOREACH(wd->items, l, item2)
{
if (item2 != item) elm_menu_item_selected_set(item2, 0);
if (item2 != item)
elm_menu_item_selected_set((Elm_Object_Item *) item2, 0);
}
}
}
@ -419,9 +426,11 @@ _item_submenu_obj_create(Elm_Menu_Item *item)
edje_object_mirrored_set(VIEW(item), elm_widget_mirrored_get(WIDGET(item)));
_elm_theme_object_set(WIDGET(item), VIEW(item), "menu", "item_with_submenu", elm_widget_style_get(WIDGET(item)));
elm_menu_item_label_set(item, item->label);
if (item->icon_str) elm_menu_item_object_icon_name_set(item, item->icon_str);
elm_menu_item_label_set((Elm_Object_Item *) item,
item->label);
if (item->icon_str)
elm_menu_item_object_icon_name_set((Elm_Object_Item *) item,
item->icon_str);
edje_object_signal_callback_add(VIEW(item), "elm,action,open", "",
_submenu_open, item);
evas_object_event_callback_add(VIEW(item), EVAS_CALLBACK_MOVE, _item_move_resize, item);
@ -545,30 +554,36 @@ elm_menu_close(Evas_Object *obj)
}
EAPI Evas_Object *
elm_menu_item_object_get(const Elm_Menu_Item *item)
elm_menu_item_object_get(const Elm_Object_Item *it)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item, NULL);
return VIEW(item);
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
return VIEW(((Elm_Menu_Item *) it));
}
static void
_item_clone(Evas_Object *obj, Elm_Menu_Item *parent, Elm_Menu_Item *item)
{
Elm_Menu_Item *new_item, *subitem;
Elm_Object_Item *new_item;
Elm_Menu_Item *subitem;
Eina_List *iter;
if (item->separator)
new_item = elm_menu_item_separator_add(obj, parent);
new_item = elm_menu_item_separator_add(obj, (Elm_Object_Item *) parent);
else
new_item = elm_menu_item_add(obj, parent, item->icon_str, item->label, item->func, item->base.data);
new_item = elm_menu_item_add(obj,
(Elm_Object_Item *) parent,
item->icon_str,
item->label,
item->func,
item->base.data);
elm_menu_item_disabled_set(new_item, item->disabled);
EINA_LIST_FOREACH(item->submenu.items, iter, subitem)
_item_clone(obj, new_item, subitem);
_item_clone(obj, (Elm_Menu_Item *) new_item, subitem);
}
void
elm_menu_clone(Evas_Object *from_menu, Evas_Object *to_menu, Elm_Menu_Item *parent)
elm_menu_clone(Evas_Object *from_menu, Evas_Object *to_menu, Elm_Object_Item *parent)
{
ELM_CHECK_WIDTYPE(from_menu, widtype);
ELM_CHECK_WIDTYPE(to_menu, widtype);
@ -578,7 +593,7 @@ elm_menu_clone(Evas_Object *from_menu, Evas_Object *to_menu, Elm_Menu_Item *pare
if (!from_wd) return;
EINA_LIST_FOREACH(from_wd->items, iter, item)
_item_clone(to_menu, parent, item);
_item_clone(to_menu, (Elm_Menu_Item *) parent, item);
}
static void
@ -601,8 +616,8 @@ _elm_menu_item_add_helper(Evas_Object *obj, Elm_Menu_Item *parent, Elm_Menu_Item
_sizing_eval(obj);
}
EAPI Elm_Menu_Item *
elm_menu_item_add(Evas_Object *obj, Elm_Menu_Item *parent, const char *icon, const char *label, Evas_Smart_Cb func, const void *data)
EAPI Elm_Object_Item *
elm_menu_item_add(Evas_Object *obj, Elm_Object_Item *parent, const char *icon, const char *label, Evas_Smart_Cb func, const void *data)
{
Elm_Menu_Item *subitem;
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
@ -620,23 +635,24 @@ elm_menu_item_add(Evas_Object *obj, Elm_Menu_Item *parent, const char *icon, con
}
subitem->base.data = data;
subitem->func = func;
subitem->parent = parent;
subitem->parent = (Elm_Menu_Item *) parent;
subitem->content = icon_obj;
_item_obj_create(subitem);
elm_menu_item_label_set(subitem, label);
elm_menu_item_label_set((Elm_Object_Item *) subitem, label);
elm_widget_sub_object_add(WIDGET(subitem), subitem->content);
edje_object_part_swallow(VIEW(subitem), "elm.swallow.content", subitem->content);
if (icon) elm_menu_item_object_icon_name_set(subitem, icon);
if (icon)
elm_menu_item_object_icon_name_set((Elm_Object_Item *) subitem, icon);
_elm_menu_item_add_helper(obj, parent, subitem, wd);
_elm_menu_item_add_helper(obj, (Elm_Menu_Item *) parent, subitem, wd);
return subitem;
return (Elm_Object_Item *) subitem;
}
EAPI Elm_Menu_Item *
elm_menu_item_add_object(Evas_Object *obj, Elm_Menu_Item *parent, Evas_Object *subobj, Evas_Smart_Cb func, const void *data)
EAPI Elm_Object_Item *
elm_menu_item_add_object(Evas_Object *obj, Elm_Object_Item *parent, Evas_Object *subobj, Evas_Smart_Cb func, const void *data)
{
Elm_Menu_Item *subitem;
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
@ -648,7 +664,7 @@ elm_menu_item_add_object(Evas_Object *obj, Elm_Menu_Item *parent, Evas_Object *s
subitem->base.data = data;
subitem->func = func;
subitem->parent = parent;
subitem->parent = (Elm_Menu_Item *) parent;
subitem->object_item = EINA_TRUE;
subitem->content = subobj;
@ -658,22 +674,24 @@ elm_menu_item_add_object(Evas_Object *obj, Elm_Menu_Item *parent, Evas_Object *s
edje_object_part_swallow(VIEW(subitem), "elm.swallow.content", subobj);
_sizing_eval(WIDGET(subitem));
_elm_menu_item_add_helper(obj, parent, subitem, wd);
_elm_menu_item_add_helper(obj, (Elm_Menu_Item *) parent, subitem, wd);
return subitem;
return (Elm_Object_Item *) subitem;
}
EAPI unsigned int
elm_menu_item_index_get(const Elm_Menu_Item *item)
elm_menu_item_index_get(const Elm_Object_Item *it)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item, 0);
return item->idx;
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, 0);
return ((Elm_Menu_Item *) it)->idx;
}
EAPI void
elm_menu_item_label_set(Elm_Menu_Item *item, const char *label)
elm_menu_item_label_set(Elm_Object_Item *it, const char *label)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item);
ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
Elm_Menu_Item *item = (Elm_Menu_Item *) it;
eina_stringshare_replace(&item->label, label);
if (label)
@ -687,18 +705,20 @@ elm_menu_item_label_set(Elm_Menu_Item *item, const char *label)
}
EAPI const char *
elm_menu_item_label_get(const Elm_Menu_Item *item)
elm_menu_item_label_get(const Elm_Object_Item *it)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item, NULL);
return item->label;
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
return ((Elm_Menu_Item *) it)->label;
}
EAPI void
elm_menu_item_object_icon_name_set(Elm_Menu_Item *item, const char *icon)
elm_menu_item_object_icon_name_set(Elm_Object_Item *it, const char *icon)
{
char icon_tmp[512];
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item);
ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
EINA_SAFETY_ON_NULL_RETURN(icon);
char icon_tmp[512];
Elm_Menu_Item *item = (Elm_Menu_Item *) it;
if (!*icon) return;
if ((item->icon_str) && (!strcmp(item->icon_str, icon))) return;
if ((snprintf(icon_tmp, sizeof(icon_tmp), "menu/%s", icon) > 0) &&
@ -715,9 +735,11 @@ elm_menu_item_object_icon_name_set(Elm_Menu_Item *item, const char *icon)
}
EAPI void
elm_menu_item_disabled_set(Elm_Menu_Item *item, Eina_Bool disabled)
elm_menu_item_disabled_set(Elm_Object_Item *it, Eina_Bool disabled)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item);
ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
Elm_Menu_Item *item = (Elm_Menu_Item *) it;
if (disabled == item->disabled) return;
item->disabled = !!disabled;
if (disabled)
@ -731,23 +753,24 @@ elm_menu_item_disabled_set(Elm_Menu_Item *item, Eina_Bool disabled)
}
EAPI Eina_Bool
elm_menu_item_disabled_get(const Elm_Menu_Item *item)
elm_menu_item_disabled_get(const Elm_Object_Item *it)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item, EINA_FALSE);
return item->disabled;
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, EINA_FALSE);
return ((Elm_Menu_Item *) it)->disabled;
}
EAPI Elm_Menu_Item *
elm_menu_item_separator_add(Evas_Object *obj, Elm_Menu_Item *parent)
EAPI Elm_Object_Item *
elm_menu_item_separator_add(Evas_Object *obj, Elm_Object_Item *parent)
{
Elm_Menu_Item *subitem;
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
Elm_Menu_Item *subitem;
Widget_Data *wd = elm_widget_data_get(obj);
Elm_Menu_Item *p_item = (Elm_Menu_Item *) parent;
if (!wd) return NULL;
/* don't add a separator as the first item */
if (!wd->items) return NULL;
/* don't allow adding more than one separator in a row */
if (parent) subitem = eina_list_last(parent->submenu.items)->data;
if (p_item) subitem = eina_list_last(p_item->submenu.items)->data;
else subitem = eina_list_last(wd->items)->data;
if (subitem->separator) return NULL;
@ -756,25 +779,28 @@ elm_menu_item_separator_add(Evas_Object *obj, Elm_Menu_Item *parent)
WIDGET(subitem) = obj;
subitem->separator = 1;
_item_separator_obj_create(subitem);
if (!parent)
if (!p_item)
{
elm_box_pack_end(wd->bx, VIEW(subitem));
wd->items = eina_list_append(wd->items, subitem);
}
else
{
if (!parent->submenu.bx) _item_submenu_obj_create(parent);
elm_box_pack_end(parent->submenu.bx, VIEW(subitem));
parent->submenu.items = eina_list_append(parent->submenu.items, subitem);
if (!p_item->submenu.bx) _item_submenu_obj_create(p_item);
elm_box_pack_end(p_item->submenu.bx, VIEW(subitem));
p_item->submenu.items = eina_list_append(p_item->submenu.items,
subitem);
}
_sizing_eval(obj);
return subitem;
return (Elm_Object_Item *) subitem;
}
EAPI Eina_Bool
elm_menu_item_object_content_set(Elm_Menu_Item *item, Evas_Object *obj)
elm_menu_item_object_content_set(Elm_Object_Item *it, Evas_Object *obj)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item, EINA_FALSE);
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, EINA_FALSE);
Elm_Menu_Item *item = (Elm_Menu_Item *) it;
if (item->content)
{
elm_widget_sub_object_del(WIDGET(item), item->content);
@ -790,31 +816,32 @@ elm_menu_item_object_content_set(Elm_Menu_Item *item, Evas_Object *obj)
}
EAPI Evas_Object *
elm_menu_item_object_content_get(const Elm_Menu_Item *item)
elm_menu_item_object_content_get(const Elm_Object_Item *it)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item, NULL);
return item->content;
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
return ((Elm_Menu_Item *) it)->content;
}
EAPI const char *
elm_menu_item_object_icon_name_get(const Elm_Menu_Item *item)
elm_menu_item_object_icon_name_get(const Elm_Object_Item *it)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item, NULL);
return item->icon_str;
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
return ((Elm_Menu_Item *) it)->icon_str;
}
EAPI Eina_Bool
elm_menu_item_is_separator(Elm_Menu_Item *item)
elm_menu_item_is_separator(Elm_Object_Item *it)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item, EINA_FALSE);
return item->separator;
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, EINA_FALSE);
return ((Elm_Menu_Item *) it)->separator;
}
EAPI void
elm_menu_item_del(Elm_Menu_Item *item)
elm_menu_item_del(Elm_Object_Item *it)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item);
Elm_Menu_Item *_item;
ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
Elm_Menu_Item *item = (Elm_Menu_Item *) it;
Elm_Object_Item *_item;
elm_widget_item_pre_notify_del(item);
@ -836,31 +863,29 @@ elm_menu_item_del(Elm_Menu_Item *item)
}
EAPI void
elm_menu_item_del_cb_set(Elm_Menu_Item *item, Evas_Smart_Cb func)
elm_menu_item_del_cb_set(Elm_Object_Item *it, Evas_Smart_Cb func)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item);
elm_widget_item_del_cb_set(item, func);
ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
elm_widget_item_del_cb_set(it, func);
}
EAPI void *
elm_menu_item_data_get(const Elm_Menu_Item *item)
elm_menu_item_data_get(const Elm_Object_Item *it)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item, NULL);
return elm_widget_item_data_get(item);
return elm_object_item_data_get(it);
}
EAPI void
elm_menu_item_data_set(Elm_Menu_Item *item, const void *data)
elm_menu_item_data_set(Elm_Object_Item *it, const void *data)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item);
elm_widget_item_data_set(item, data);
elm_object_item_data_set(it, (void *) data);
}
EAPI const Eina_List *
elm_menu_item_subitems_get(const Elm_Menu_Item *item)
elm_menu_item_subitems_get(const Elm_Object_Item *it)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item, NULL);
return item->submenu.items;
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
return ((Elm_Menu_Item *) it)->submenu.items;
}
EAPI const Eina_List *
@ -872,9 +897,11 @@ elm_menu_items_get(const Evas_Object * obj)
}
EAPI void
elm_menu_item_selected_set(Elm_Menu_Item *item, Eina_Bool selected)
elm_menu_item_selected_set(Elm_Object_Item *it, Eina_Bool selected)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item);
ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
Elm_Menu_Item *item = (Elm_Menu_Item *) it;
if (selected == item->selected) return;
item->selected = selected;
if (selected)
@ -891,28 +918,31 @@ elm_menu_item_selected_set(Elm_Menu_Item *item, Eina_Bool selected)
}
EAPI Eina_Bool
elm_menu_item_selected_get(const Elm_Menu_Item *item)
elm_menu_item_selected_get(const Elm_Object_Item *it)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item, EINA_FALSE);
return item->selected;
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, EINA_FALSE);
return ((Elm_Menu_Item *) it)->selected;
}
EAPI Elm_Menu_Item *
elm_menu_item_prev_get(const Elm_Menu_Item *it)
EAPI Elm_Object_Item *
elm_menu_item_prev_get(const Elm_Object_Item *it)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it, NULL);
if (it->parent)
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
Elm_Menu_Item *item = (Elm_Menu_Item *) it;
if (item->parent)
{
Eina_List *l = eina_list_data_find_list(it->parent->submenu.items, it);
Eina_List *l = eina_list_data_find_list(item->parent->submenu.items,
item);
l = eina_list_prev(l);
if (!l) return NULL;
return l->data;
}
else
{
Widget_Data *wd = elm_widget_data_get(WIDGET(it));
Widget_Data *wd = elm_widget_data_get(WIDGET(item));
if (!wd || !wd->items) return NULL;
Eina_List *l = eina_list_data_find_list(wd->items, it);
Eina_List *l = eina_list_data_find_list(wd->items, item);
l = eina_list_prev(l);
if (!l) return NULL;
return l->data;
@ -920,22 +950,25 @@ elm_menu_item_prev_get(const Elm_Menu_Item *it)
return NULL;
}
EAPI Elm_Menu_Item *
elm_menu_item_next_get(const Elm_Menu_Item *it)
EAPI Elm_Object_Item *
elm_menu_item_next_get(const Elm_Object_Item *it)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(it, NULL);
if (it->parent)
ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
Elm_Menu_Item *item = (Elm_Menu_Item *) it;
if (item->parent)
{
Eina_List *l = eina_list_data_find_list(it->parent->submenu.items, it);
Eina_List *l = eina_list_data_find_list(item->parent->submenu.items,
item);
l = eina_list_next(l);
if (!l) return NULL;
return l->data;
}
else
{
Widget_Data *wd = elm_widget_data_get(WIDGET(it));
Widget_Data *wd = elm_widget_data_get(WIDGET(item));
if (!wd || !wd->items) return NULL;
Eina_List *l = eina_list_data_find_list(wd->items, it);
Eina_List *l = eina_list_data_find_list(wd->items, item);
l = eina_list_next(l);
if (!l) return NULL;
return l->data;
@ -944,13 +977,12 @@ elm_menu_item_next_get(const Elm_Menu_Item *it)
}
EAPI Evas_Object *
elm_menu_item_menu_get(const Elm_Menu_Item *item)
elm_menu_item_menu_get(const Elm_Object_Item *it)
{
ELM_WIDGET_ITEM_WIDTYPE_CHECK_OR_RETURN(item, NULL);
return WIDGET(item);
return elm_object_item_object_get(it);
}
EAPI Elm_Menu_Item *
EAPI Elm_Object_Item *
elm_menu_first_item_get(const Evas_Object * obj)
{
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
@ -960,7 +992,7 @@ elm_menu_first_item_get(const Evas_Object * obj)
return NULL;
}
EAPI Elm_Menu_Item *
EAPI Elm_Object_Item *
elm_menu_last_item_get(const Evas_Object * obj)
{
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
@ -971,7 +1003,7 @@ elm_menu_last_item_get(const Evas_Object * obj)
return NULL;
}
EAPI Elm_Menu_Item *
EAPI Elm_Object_Item *
elm_menu_selected_item_get(const Evas_Object * obj)
{
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
@ -981,7 +1013,7 @@ elm_menu_selected_item_get(const Evas_Object * obj)
Elm_Menu_Item *item;
EINA_LIST_FOREACH(wd->items, l, item)
{
if (item->selected) return item;
if (item->selected) return ((Elm_Object_Item *) item);
}
return NULL;
}

View File

@ -246,7 +246,7 @@ void elm_object_sub_tooltip_content_cb_set(Evas_Object *eventare
void elm_cursor_theme(Elm_Cursor *cur);
void elm_object_sub_cursor_set(Evas_Object *eventarea, Evas_Object *owner, const char *cursor);
void elm_menu_clone(Evas_Object *from_menu, Evas_Object *to_menu, Elm_Menu_Item *parent);
void elm_menu_clone(Evas_Object *from_menu, Evas_Object *to_menu, Elm_Object_Item *parent);
Eina_Bool _elm_dangerous_call_check(const char *call);

View File

@ -533,11 +533,13 @@ _resize_job(void *data)
elm_menu_item_separator_add(menu, NULL);
else
{
Elm_Menu_Item *item;
item = elm_menu_item_add(menu, NULL, it->icon_str, it->label,
_elm_toolbar_item_menu_cb, it);
elm_menu_item_disabled_set(item, it->disabled);
if (it->o_menu) elm_menu_clone(it->o_menu, menu, item);
Elm_Object_Item *menu_it;
menu_it = elm_menu_item_add(menu, NULL,
it->icon_str, it->label,
_elm_toolbar_item_menu_cb, it);
elm_menu_item_disabled_set(menu_it, it->disabled);
if (it->o_menu)
elm_menu_clone(it->o_menu, menu, menu_it);
}
evas_object_hide(VIEW(it));
}