efl/legacy/efreet/src/bin/ef_menu.c

154 lines
3.1 KiB
C

/* vim: set sw=4 ts=4 sts=4 et: */
#include "Efreet.h"
#include "efreet_private.h"
static void
ef_menu_desktop_exec(Efreet_Menu *menu)
{
#if 0
if (menu->entries)
{
Efreet_Desktop *desktop;
ecore_list_first_goto(menu->entries);
while ((desktop = ecore_list_next(menu->entries)))
efreet_desktop_exec(desktop, NULL);
}
if (menu->sub_menus)
{
Efreet_Menu *sub_menu;
ecore_list_first_goto(menu->sub_menus);
while ((sub_menu = ecore_list_next(menu->sub_menus)))
ef_menu_desktop_exec(sub_menu);
}
#endif
}
int
ef_cb_menu_get(void)
{
Efreet_Menu *menu;
menu = efreet_menu_get();
// menu = efreet_menu_parse(PACKAGE_DATA_DIR"/efreet/test/test.menu");
if (!menu)
{
printf("efreet_menu_get() returned NULL\n");
return 0;
}
printf("\n");
efreet_menu_dump(menu, "");
efreet_menu_free(menu);
return 1;
}
int
ef_cb_menu_with_slashes(void)
{
Efreet_Menu *menu;
menu = efreet_menu_parse(PACKAGE_DATA_DIR"/efreet/test/test_menu_slash_bad.menu");
if (menu)
{
printf("efreet_menu_get() didn't return NULL\n");
return 0;
}
return 1;
}
int
ef_cb_menu_save(void)
{
Efreet_Menu *menu;
int ret;
// menu = efreet_menu_get();
menu = efreet_menu_parse(PACKAGE_DATA_DIR"/efreet/test/test.menu");
if (!menu)
{
printf("efreet_menu_get() returned NULL\n");
return 0;
}
unlink("/tmp/test.menu");
ret = efreet_menu_save(menu, "/tmp/test.menu");
efreet_menu_free(menu);
return ret;
}
int
ef_cb_menu_edit(void)
{
Efreet_Menu *menu, *entry;
Efreet_Desktop *desktop;
// menu = efreet_menu_get();
menu = efreet_menu_parse(PACKAGE_DATA_DIR"/efreet/test/test.menu");
if (!menu)
{
printf("efreet_menu_get() returned NULL\n");
return 0;
}
#if 0
printf("\n");
efreet_menu_dump(menu, "");
printf("\n");
#endif
desktop = efreet_desktop_get(PACKAGE_DATA_DIR"/efreet/test/test.desktop");
if (!desktop)
{
efreet_menu_free(menu);
printf("No desktop found.\n");
return 0;
}
efreet_menu_desktop_insert(menu, desktop, 0);
#if 0
printf("\n");
efreet_menu_dump(menu, "");
printf("\n");
#endif
ecore_list_first_goto(menu->entries);
entry = ecore_list_current(menu->entries);
if (desktop != entry->desktop)
{
efreet_menu_free(menu);
return 0;
}
efreet_menu_desktop_insert(menu, desktop, 2);
#if 0
printf("\n");
efreet_menu_dump(menu, "");
printf("\n");
#endif
ecore_list_index_goto(menu->entries, 2);
entry = ecore_list_current(menu->entries);
if (desktop != entry->desktop)
{
efreet_menu_free(menu);
return 0;
}
efreet_menu_desktop_insert(menu, desktop, -1);
#if 0
printf("\n");
efreet_menu_dump(menu, "");
printf("\n");
#endif
ecore_list_last_goto(menu->entries);
entry = ecore_list_current(menu->entries);
if (desktop != entry->desktop)
{
efreet_menu_free(menu);
return 0;
}
efreet_menu_free(menu);
return 1;
}