Enlightenment CVS committal

Author  : devilhorns
Project : e_modules
Module  : net

Dir     : e_modules/net


Modified Files:
        e_mod_main.h e_mod_main.c e_mod_config.h e_mod_config.c 


Log Message:
Per Face config for net module.
===================================================================
RCS file: /cvsroot/enlightenment/e_modules/net/e_mod_main.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- e_mod_main.h        19 Feb 2006 18:23:14 -0000      1.1
+++ e_mod_main.h        21 Feb 2006 02:09:49 -0000      1.2
@@ -8,22 +8,21 @@
 
 struct _Config 
 {
-   char *device;
-   int check_interval;
+   Evas_List *faces;
 };
 
 struct _Config_Face 
 {
    unsigned char enabled;
+   char *device;
+   int check_interval;
 };
 
 struct _Net 
 {
    E_Menu *config_menu;
-   Net_Face *face;
+   Evas_List *faces;
    Config *conf;
-   
-   E_Config_DD *conf_edd;
    E_Config_Dialog *cfd;
 };
 
@@ -35,7 +34,6 @@
    Net *net;
 
    Config_Face *conf;
-   E_Config_DD *conf_face_edd;
    
    Evas_Object *net_obj;
    Evas_Object *event_obj;
===================================================================
RCS file: /cvsroot/enlightenment/e_modules/net/e_mod_main.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- e_mod_main.c        20 Feb 2006 18:19:39 -0000      1.2
+++ e_mod_main.c        21 Feb 2006 02:09:49 -0000      1.3
@@ -3,24 +3,25 @@
 #include "e_mod_config.h"
 #include "config.h"
 
-static Net *_net_init(E_Module *m);
-static void _net_shutdown(Net *n);
-static void _net_config_menu_new(Net *n);
-
-static int  _net_face_init(Net_Face *nf);
-static void _net_face_menu_new(Net_Face *nf);
-static void _net_face_enable(Net_Face *nf);
-static void _net_face_disable(Net_Face *nf);
-static void _net_face_free(Net_Face *nf);
-static void _net_face_cb_gmc_change(void *data, E_Gadman_Client *gmc, 
E_Gadman_Change change);
-static void _net_face_cb_mouse_down(void *data, Evas *evas, Evas_Object *obj, 
void *event_info);
-static void _net_face_cb_menu_edit(void *data, E_Menu *mn, E_Menu_Item *mi);
-static void _net_face_cb_menu_configure(void *data, E_Menu *mn, E_Menu_Item 
*mi);
-
-static int  _net_face_update_values(void *data);
-static void _net_face_graph_values(Net_Face *nf, int in, int out);
+static Net      *_net_init(E_Module *m);
+static void      _net_shutdown(Net *n);
+static void      _net_config_menu_new(Net *n);
+
+static Net_Face *_net_face_init(Net *n, E_Container *con);
+static void      _net_face_menu_new(Net_Face *nf);
+static void      _net_face_enable(Net_Face *nf);
+static void      _net_face_disable(Net_Face *nf);
+static void      _net_face_free(Net_Face *nf);
+static void      _net_face_cb_gmc_change(void *data, E_Gadman_Client *gmc, 
E_Gadman_Change change);
+static void      _net_face_cb_mouse_down(void *data, Evas *evas, Evas_Object 
*obj, void *event_info);
+static void      _net_face_cb_menu_edit(void *data, E_Menu *mn, E_Menu_Item 
*mi);
+static void      _net_face_cb_menu_configure(void *data, E_Menu *mn, 
E_Menu_Item *mi);
+static int       _net_face_update_values(void *data);
+static void      _net_face_graph_values(Net_Face *nf, int in, int out);
 
 static int net_count;
+static E_Config_DD *conf_edd;
+static E_Config_DD *conf_face_edd;
 
 EAPI E_Module_Api e_modapi = 
 {
@@ -73,7 +74,7 @@
    n = m->data;
    if (!n)
      return 0;
-   e_config_domain_save("module.net", n->conf_edd, n->conf);
+   e_config_domain_save("module.net", conf_edd, n->conf);
    return 1;
 }
 
@@ -96,18 +97,30 @@
 e_modapi_config(E_Module *m) 
 {
    Net *n;
+   Evas_List *l;
    E_Container *con;
    
    n = m->data;
    if (!n)
      return 0;
-   if (!n->face)
+   if (!n->faces)
      return 0;
    
-   con = e_container_current_get(e_manager_current_get());
-   if (n->face->con == con)
-     _configure_net_module(con, n);
-   
+   for (l = n->faces; l; l = l->next) 
+     {
+       Net_Face *nf;
+       
+       nf = l->data;
+       if (!nf) 
+         continue;
+       
+       con = e_container_current_get(e_manager_current_get());
+       if (nf->con == con) 
+         {
+            _configure_net_module(nf);
+            break;
+         }
+     }
    return 1;
 }
 
@@ -116,32 +129,36 @@
 {
    Net *n;
    E_Menu_Item *mi;
-   Evas_List *mans, *l, *l2;
+   Evas_List *mans, *l, *l2, *fl;
    
    n = E_NEW(Net, 1);
    if (!n)
      return NULL;
    
-   n->conf_edd = E_CONFIG_DD_NEW("Net_Config", Config);
+   conf_face_edd = E_CONFIG_DD_NEW("Net_Config_Face", Config_Face);
    #undef T
    #undef D
-   #define T Config
-   #define D n->conf_edd
+   #define T Config_Face
+   #define D conf_face_edd
+   E_CONFIG_VAL(D, T, enabled, UCHAR);
    E_CONFIG_VAL(D, T, device, STR);
    E_CONFIG_VAL(D, T, check_interval, INT);
    
-   n->conf = e_config_domain_load("module.net", n->conf_edd);
+   conf_edd = E_CONFIG_DD_NEW("Net_Config", Config);
+   #undef T
+   #undef D
+   #define T Config
+   #define D conf_edd
+   E_CONFIG_LIST(D, T, faces, conf_face_edd);
+   
+   n->conf = e_config_domain_load("module.net", conf_edd);
    if (!n->conf) 
-     {
-       n->conf = E_NEW(Config, 1);
-       n->conf->device = (char *)evas_stringshare_add("eth0");
-       n->conf->check_interval = 30;
-     }
-   E_CONFIG_LIMIT(n->conf->check_interval, 0, 60);
+     n->conf = E_NEW(Config, 1);
    
    _net_config_menu_new(n);
    
    mans = e_manager_list();
+   fl = n->conf->faces;
    for (l = mans; l; l = l->next) 
      {
        E_Manager *man;
@@ -153,26 +170,26 @@
             Net_Face *nf;
             
             con = l2->data;
-            nf = E_NEW(Net_Face, 1);
+            nf = _net_face_init(n, con);
             if (nf) 
               {
-                 nf->conf_face_edd = E_CONFIG_DD_NEW("Net_Face_Config", 
Config_Face);
-                 #undef T
-                 #undef D
-                 #define T Config_Face
-                 #define D nf->conf_face_edd
-                 E_CONFIG_VAL(D, T, enabled, UCHAR);
-                 
-                 n->face = nf;
-                 nf->net = n;            
-                 nf->con = con;
-                 nf->evas = con->bg_evas;
-                 
-                 nf->conf = E_NEW(Config_Face, 1);
-                 nf->conf->enabled = 1;
-                 
-                 if (!_net_face_init(nf))
-                   return NULL;
+                 printf("Created Face\n");
+                 if (!fl)
+                   {
+                      nf->conf = E_NEW(Config_Face, 1);
+                      nf->conf->enabled = 1;
+                      nf->conf->device = (char *)evas_stringshare_add("eth0");
+                      nf->conf->check_interval = 30;
+                      n->conf->faces = evas_list_append(n->conf->faces, 
nf->conf);
+                   }
+                 else 
+                   {
+                      nf->conf = fl->data;
+                      fl = fl->next;
+                   }
+                 E_CONFIG_LIMIT(nf->conf->check_interval, 0, 60);
+
+                 nf->monitor = 
ecore_timer_add((double)nf->conf->check_interval, _net_face_update_values, nf); 
  
                  
                  _net_face_menu_new(nf);
                  
@@ -186,8 +203,6 @@
                 
                  if (!nf->conf->enabled)
                    _net_face_disable(nf);
-                 else
-                   _net_face_enable(nf);
               }
          }
      }
@@ -197,13 +212,16 @@
 static void
 _net_shutdown(Net *n) 
 {
-   _net_face_free(n->face);
+   E_CONFIG_DD_FREE(conf_edd);
+   E_CONFIG_DD_FREE(conf_face_edd);
+
+   while (n->faces)
+     _net_face_free(n->faces->data);
 
-   if (n->conf->device)
-     evas_stringshare_del(n->conf->device);
+   e_object_del(E_OBJECT(n->config_menu));
+   evas_list_free(n->conf->faces);
    
    E_FREE(n->conf);
-   E_CONFIG_DD_FREE(n->conf_edd);
    E_FREE(n);
 }
 
@@ -216,19 +234,29 @@
    n->config_menu = mn;
 }
 
-static int
-_net_face_init(Net_Face *nf) 
+static Net_Face *
+_net_face_init(Net *n, E_Container *con) 
 {
+   Net_Face *nf;
    Evas_Object *o;
    char buf[4096];
+
+   nf = E_NEW(Net_Face, 1);
+   if (!nf)
+     return NULL;   
+   nf->net = n;
+   n->faces = evas_list_append(n->faces, nf);
+
+   nf->con = con;
+   e_object_ref(E_OBJECT(con));
+   nf->evas = con->bg_evas;
    
    evas_event_freeze(nf->evas);
    
    o = edje_object_add(nf->evas);
    nf->net_obj = o;
    
-   if (!e_theme_edje_object_set(o, "base/theme/modules/net", 
-                               "modules/net/main")) 
+   if (!e_theme_edje_object_set(o, "base/theme/modules/net", 
"modules/net/main")) 
      {
        snprintf(buf, sizeof(buf), PACKAGE_DATA_DIR"/net.edj"); 
        edje_object_file_set(o, buf, "modules/net/main");
@@ -236,15 +264,6 @@
    
    evas_object_show(o);
 
-   /*
-   o = evas_object_rectangle_add(nf->evas);
-   nf->chart_obj = o;
-   evas_object_layer_set(o, 2);
-   evas_object_repeat_events_set(o, 0);
-   evas_object_color_set(o, 0, 0, 0, 255);
-   evas_object_show(o);
-   */
-   
    o = evas_object_rectangle_add(nf->evas);
    nf->event_obj = o;
    evas_object_layer_set(o, 2);
@@ -271,9 +290,8 @@
    e_gadman_client_change_func_set(nf->gmc, _net_face_cb_gmc_change, nf);
    e_gadman_client_load(nf->gmc);
    evas_event_thaw(nf->evas);
-
-   nf->monitor = ecore_timer_add((double)nf->net->conf->check_interval, 
_net_face_update_values, nf);
-   return 1;
+   
+   return nf;
 }
 
 static void
@@ -319,6 +337,9 @@
 static void 
 _net_face_free(Net_Face *nf) 
 {
+   e_object_unref(E_OBJECT(nf->con));
+   e_object_del(E_OBJECT(nf->menu));
+   
    if (nf->monitor)
      ecore_timer_del(nf->monitor);
    if (nf->menu)
@@ -339,6 +360,8 @@
        e_object_del(E_OBJECT(nf->gmc));
      }
    
+   nf->net->faces = evas_list_remove(nf->net->faces, nf);
+   
    E_FREE(nf->conf);
    E_FREE(nf);
    net_count--;
@@ -356,20 +379,17 @@
       case E_GADMAN_CHANGE_MOVE_RESIZE:
        e_gadman_client_geometry_get(nf->gmc, &x, &y, &w, &h);
        evas_object_move(nf->net_obj, x, y);
-       /* evas_object_move(nf->chart_obj, x, y); */
        evas_object_move(nf->event_obj, x, y);
        evas_object_resize(nf->net_obj, w, h);
-       /* evas_object_resize(nf->chart_obj, w, h); */
        evas_object_resize(nf->event_obj, w, h);
        break;
       case E_GADMAN_CHANGE_RAISE:
        evas_object_raise(nf->net_obj);
-       /* evas_object_raise(nf->chart_obj); */
        evas_object_raise(nf->event_obj);
        break;
       default:
        break;
-     }   
+     }
 }
 
 static void 
@@ -404,7 +424,10 @@
    Net_Face *nf;
 
    nf = data;
-   _configure_net_module(nf->con, nf->net);
+   if (!nf)
+     return;
+   
+   _configure_net_module(nf);
 }
 
 static int 
@@ -438,7 +461,7 @@
                    &dummy, &dummy, &dummy, &dummy, &dummy, &out, &dummy,
                    &dummy, &dummy, &dummy, &dummy, &dummy, &dummy) < 17)
            continue;
-       if (!strcmp(dev, strdup(nf->net->conf->device))) 
+       if (!strcmp(dev, strdup(nf->conf->device))) 
          {
             found = 1;
             break;
===================================================================
RCS file: /cvsroot/enlightenment/e_modules/net/e_mod_config.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- e_mod_config.h      19 Feb 2006 18:23:14 -0000      1.1
+++ e_mod_config.h      21 Feb 2006 02:09:49 -0000      1.2
@@ -5,7 +5,7 @@
 
 #include "e_mod_main.h"
 
-void _configure_net_module(E_Container *con, Net *n);
+void _configure_net_module(Net_Face *nf);
 
 #endif
 #endif
===================================================================
RCS file: /cvsroot/enlightenment/e_modules/net/e_mod_config.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- e_mod_config.c      20 Feb 2006 12:05:35 -0000      1.2
+++ e_mod_config.c      21 Feb 2006 02:09:49 -0000      1.3
@@ -17,12 +17,12 @@
 static void         _free_data              (E_Config_Dialog *cfd, 
E_Config_Dialog_Data *cfdata);
 static Evas_Object *_basic_create_widgets   (E_Config_Dialog *cfd, Evas *evas, 
E_Config_Dialog_Data *cfdata);
 static int          _basic_apply_data       (E_Config_Dialog *cfd, 
E_Config_Dialog_Data *cfdata);
-static void         _fill_data              (Net *n, E_Config_Dialog_Data 
*cfdata);
+static void         _fill_data              (Net_Face *nf, 
E_Config_Dialog_Data *cfdata);
 static void         _net_config_get_devices (Ecore_List *devs);
 
 /* Config Calls */
 void
-_configure_net_module(E_Container *con, Net *n)
+_configure_net_module(Net_Face *nf)
 {
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
@@ -34,20 +34,20 @@
    v->basic.apply_cfdata = _basic_apply_data;
    v->basic.create_widgets = _basic_create_widgets;
    
-   cfd = e_config_dialog_new(con, _("Net Configuration"), NULL, 0, v, n);
-   n->cfd = cfd;
+   cfd = e_config_dialog_new(nf->con, _("Net Configuration"), NULL, 0, v, nf);
+   nf->net->cfd = cfd;
 }
 
 static void
-_fill_data(Net *n, E_Config_Dialog_Data *cfdata)
+_fill_data(Net_Face *nf, E_Config_Dialog_Data *cfdata)
 {
    char *tmp;
    int i;
 
-   cfdata->check_interval = n->conf->check_interval;
+   cfdata->check_interval = nf->conf->check_interval;
    
-   if (n->conf->device != NULL)
-     cfdata->device = strdup(n->conf->device);
+   if (nf->conf->device != NULL)
+     cfdata->device = strdup(nf->conf->device);
    else
      cfdata->device = NULL;
    
@@ -77,21 +77,21 @@
 _create_data(E_Config_Dialog *cfd)
 {
    E_Config_Dialog_Data *cfdata;
-   Net *n;
+   Net_Face *nf;
 
-   n = cfd->data;
+   nf = cfd->data;
    cfdata = E_NEW(E_Config_Dialog_Data, 1);
-   _fill_data(n, cfdata);
+   _fill_data(nf, cfdata);
    return cfdata;
 }
 
 static void
 _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
 {
-   Net *n;
+   Net_Face *nf;
 
-   n = cfd->data;
-   n->cfd = NULL;
+   nf = cfd->data;
+   nf->net->cfd = NULL;
    free(cfdata);
 }
 
@@ -100,12 +100,9 @@
 {
    Evas_Object *o, *of, *ob, *ot;
    E_Radio_Group *rg;
-   Net *n;
    char *tmp;
    int i;
    
-   n = cfd->data;
-   
    o = e_widget_list_add(evas, 0, 0);
    of = e_widget_framelist_add(evas, _("Device Settings"), 0);
    ot = e_widget_table_add(evas, 0);
@@ -135,20 +132,18 @@
 _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
 {
    char *tmp;
-   Net *n;
+   Net_Face *nf;
 
-   n = cfd->data;
-   //e_border_button_bindings_ungrab_all();
+   nf = cfd->data;
    tmp = ecore_list_goto_index(cfdata->devs, cfdata->dev_num);
    if (tmp != NULL)
-     n->conf->device = (char *)evas_stringshare_add(strdup(tmp));
-   n->conf->check_interval = cfdata->check_interval;
+     nf->conf->device = (char *)evas_stringshare_add(strdup(tmp));
+   nf->conf->check_interval = cfdata->check_interval;
    e_config_save_queue ();
-   //e_border_button_bindings_grab_all ();
-
-   if (n->face->monitor)
-     ecore_timer_interval_set(n->face->monitor, 
(double)cfdata->check_interval);
 
+   if (nf->monitor)
+     ecore_timer_interval_set(nf->monitor, (double)cfdata->check_interval);
+   
    return 1;
 }
 




-------------------------------------------------------
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