Enlightenment CVS committal

Author  : devilhorns
Project : e17
Module  : proto

Dir     : e17/proto/emenu


Modified Files:
        e_mod_main.h e_mod_main.c 


Log Message:
Make the module actually do something. Adds a menu entry to the E Configuration 
menu for now.
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/emenu/e_mod_main.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- e_mod_main.h        27 Jan 2006 00:24:25 -0000      1.2
+++ e_mod_main.h        27 Jan 2006 01:29:56 -0000      1.3
@@ -10,7 +10,7 @@
 typedef struct _EMenu EMenu;
 struct _EMenu 
 {
-   E_Menu *config_menu;
+   E_Int_Menu_Augmentation *augment;
    
    E_Config_DD *conf_edd;
    Config *conf;
@@ -23,6 +23,8 @@
 EAPI int   e_modapi_save     (E_Module *m);
 EAPI int   e_modapi_info     (E_Module *m);
 EAPI int   e_modapi_about    (E_Module *m);
+
+/* Disabled for now */
 EAPI int   e_modapi_config   (E_Module *m);
 
 #endif
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/emenu/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 00:24:25 -0000      1.1
+++ e_mod_main.c        27 Jan 2006 01:29:56 -0000      1.2
@@ -2,7 +2,12 @@
 #include "config.h"
 #include "e_mod_main.h"
 
-static EMenu *_emenu_init (E_Module *m);
+static EMenu *_emenu_init             (E_Module *m);
+static void   _emenu_shutdown         (EMenu *em);
+static void   _emenu_config_menu_new  (EMenu *em); 
+static void   _emenu_menu_add         (void *data, E_Menu *m);
+static void   _emenu_menu_del         (void *data, E_Menu *m);
+static void   _emenu_menu_cb_generate (void *data, E_Menu *m, E_Menu_Item *mi);
 
 EAPI E_Module_Api e_modapi = 
 {
@@ -15,10 +20,7 @@
 {
    EMenu *em;
    
-   /* Call the module init here
-   em = _emenu_init(m); */
-   
-   m->config_menu = NULL;
+   em = _emenu_init(m);   
    return em;
 }
 
@@ -29,15 +31,8 @@
    
    em = m->data;
    if (!m) return 0;
-   
-   if (m->config_menu) 
-     {
-       e_menu_deactivate(m->config_menu);
-       e_object_del(E_OBJECT(m->config_menu));
-       m->config_menu = NULL;
-     }
-   
-   /* Call the module shutdown here */
+      
+   _emenu_shutdown(em);   
    return 1;
 }
 
@@ -67,8 +62,84 @@
    return 1;
 }
 
+/* Disabled for now
 EAPI int
 e_modapi_config(E_Module *m) 
 {
    return 0;
 }
+*/
+
+static EMenu *
+_emenu_init(E_Module *m) 
+{
+   EMenu *em;
+   
+   em = E_NEW(EMenu, 1);
+   if (!em) return NULL;
+   
+   em->conf_edd = E_CONFIG_DD_NEW("EMenu_Config", Config);
+   #undef T
+   #undef D
+   #define T Config
+   #define D em->conf_edd
+   
+   em->conf = e_config_domain_load("module.emenu", em->conf_edd);
+   if (!em->conf) 
+     {
+       em->conf = E_NEW(Config, 1);
+     }
+   else 
+     {
+       /* Handle Whatever config loading we need */
+     }
+   
+   em->augment = e_int_menus_menu_augmentation_add("config", _emenu_menu_add, 
em, _emenu_menu_del, em);
+   
+   return em;
+}
+
+static void
+_emenu_shutdown(EMenu *em) 
+{
+   E_CONFIG_DD_FREE(em->conf_edd);
+   e_int_menus_menu_augmentation_del("config", em->augment);
+   free(em->conf);
+   free(em);
+}
+
+static void
+_emenu_menu_add(void *data, E_Menu *m) 
+{
+   EMenu *em;
+   E_Menu_Item *mi;
+   
+   em = data;
+
+   mi = e_menu_item_new(m);
+   e_menu_item_label_set(mi, _("Generate Menus"));
+   e_menu_item_callback_set(mi, _emenu_menu_cb_generate, em);
+}
+
+static void
+_emenu_menu_del(void *data, E_Menu *m) 
+{
+   EMenu *em;
+   
+   em = data;
+   if (em->augment) 
+     {
+       e_object_del(E_OBJECT(em->augment));
+       em->augment = NULL;
+     }
+}
+
+static void
+_emenu_menu_cb_generate(void *data, E_Menu *m, E_Menu_Item *mi) 
+{
+   EMenu *em;
+   
+   em = data;
+   e_module_dialog_show(_("Enlightenment Menu Module"),
+                       _("Generate Menus."));
+}




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to