From: <enl...@li...> - 2006-01-28 01:04:33
|
Enlightenment CVS committal Author : onefang Project : e17 Module : proto Dir : e17/proto/emenu/src/module Modified Files: Makefile.am e_mod_main.c Added Files: easy_menu.c easy_menu.h Log Message: * Copy the easy_menu stuff from the emu module. * Use it with a test menu hard coded into the module. =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/emenu/src/module/Makefile.am,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- Makefile.am 27 Jan 2006 15:54:19 -0000 1.1 +++ Makefile.am 28 Jan 2006 01:04:25 -0000 1.2 @@ -18,7 +18,9 @@ pkg_LTLIBRARIES = module.la module_la_SOURCES = e_mod_main.c \ - e_mod_main.h + e_mod_main.h \ + easy_menu.c \ + easy_menu.h module_la_LIBADD = @exml_libs@ @e_libs@ ../lib/libemenu.la module_la_LDFLAGS = -module -avoid-version =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/emenu/src/module/e_mod_main.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- e_mod_main.c 27 Jan 2006 15:54:19 -0000 1.1 +++ e_mod_main.c 28 Jan 2006 01:04:25 -0000 1.2 @@ -1,11 +1,33 @@ #include <e.h> #include "config.h" #include "e_mod_main.h" +#include "easy_menu.h" + +static char *_test_menu = +{ + "Lock the screen|xscreensaver-command -lock|enlightenment/desktops\n" + "Go beep|/usr/bin/play /opt/kde3/share/sounds/KDE_Beep_ShortBeep.wav\n" + "Item0|action0\n" + "Item1\n" + " Item1 Sub0|action1\n" + " -\n" + " Item1 Sub1|action2\n" + "Item2\n" + " Item2 Sub0|action3\n" + " Item2 Sub1\n" + " Item2 Sub1 Sub0|action4\n" + " Item2 Sub1 Sub1|action5\n" + "Item3\n" +}; + static EMenu *_emenu_init (E_Module *m); static void _emenu_shutdown (EMenu *em); static void _emenu_menu_add (void *data, E_Menu *m); static void _emenu_menu_cb_generate (void *data, E_Menu *m, E_Menu_Item *mi); +static void _emenu_menu_cb_action(void *data, E_Menu *m, E_Menu_Item *mi); + +static Easy_Menu *menu = NULL; EAPI E_Module_Api e_modapi = { @@ -128,4 +150,25 @@ em = data; e_module_dialog_show(_("Enlightenment Menu Module"), _("Generate Menus.")); + + if (menu) + e_object_del(E_OBJECT(menu->menu->menu)); + menu = easy_menu_add_menus("Generated Menus", "main", _test_menu, strlen(_test_menu), _emenu_menu_cb_action, em); +} + +/** + * Handle menu item activation. + * + * @param data the pointer you passed to e_menu_item_callback_set(). + * @param m the menu. + * @param mi the menu item. + * @ingroup Emu_Module_Menu_Group + */ +static void +_emenu_menu_cb_action(void *data, E_Menu *m, E_Menu_Item *mi) +{ + struct _Menu_Item_Data *item; + + item = data; + printf("Selected %s\n", item->action); } |