Enlightenment CVS committal

Author  : rephorm
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/modules/temperature


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


Log Message:

move the temperature module over to E_Gadget
i haven't been able to test that this fully works, since i don't have ACPI 
temperature sensors on here. but, it works to the extent that the old one did 
here, so it SHOULD be fine.

===================================================================
RCS file: 
/cvsroot/enlightenment/e17/apps/e/src/modules/temperature/e_mod_config.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- e_mod_config.c      22 Jan 2006 14:15:30 -0000      1.14
+++ e_mod_config.c      26 Jan 2006 05:40:17 -0000      1.15
@@ -17,8 +17,6 @@
 #define FAR_2_CEL(x) (x - 32) / 1.8
 #define CEL_2_FAR(x) (x * 1.8) + 32
 
-typedef struct _Cfg_File_Data Cfg_File_Data;
-
 struct _E_Config_Dialog_Data
 {
    int poll_method;
@@ -37,12 +35,6 @@
    int sensor;
 };
 
-struct _Cfg_File_Data 
-{
-   E_Config_Dialog *cfd;
-   char *file;
-};
-
 /* Protos */
 static void          *_create_data(E_Config_Dialog *cfd);
 static void          _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data 
*cfdata);
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/apps/e/src/modules/temperature/e_mod_main.c,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -3 -r1.52 -r1.53
--- e_mod_main.c        20 Jan 2006 04:04:14 -0000      1.52
+++ e_mod_main.c        26 Jan 2006 05:40:17 -0000      1.53
@@ -17,29 +17,19 @@
 
 /* module private routines */
 static Temperature *_temperature_new();
-static void     _temperature_free(Temperature *e);
-//static void     _temperature_config_menu_boundaries_new(Temperature *e);
-static void     _temperature_config_menu_new(Temperature *e);
-static int      _temperature_cb_check(void *data);
-
-static Temperature_Face *_temperature_face_new(Temperature *t, E_Container 
*con);
-static void     _temperature_face_free(Temperature_Face *ef);
-static void     _temperature_face_enable(Temperature_Face *face);
-static void     _temperature_face_disable(Temperature_Face *face);
-static void     _temperature_face_menu_new(Temperature_Face *face);
-static void     _temperature_face_cb_gmc_change(void *data, E_Gadman_Client 
*gmc, E_Gadman_Change change);
-static void     _temperature_face_cb_mouse_down(void *data, Evas *e, 
Evas_Object *obj, void *event_info);
-static void     _temperature_face_level_set(Temperature_Face *ef, double 
level);
-static void     _temperature_face_cb_menu_edit(void *data, E_Menu *m, 
E_Menu_Item *mi);
-static void     _temperature_face_cb_menu_configure(void *data, E_Menu *m, 
E_Menu_Item *mi);
+static void      _temperature_free(Temperature *e);
+static int       _temperature_cb_check(void *data);
+
+static void      _temperature_face_init(void *data, E_Gadget_Face *face);
+static void      _temperature_face_free(void *data, E_Gadget_Face *face);
+
+static void      _temperature_face_level_set(E_Gadget_Face *face, double 
level);
 
 static void    _temperature_cb_update_policy(void *data);
 
 static E_Config_DD *conf_edd;
 static E_Config_DD *conf_face_edd;
 
-static int temperature_count;
-
 /* public module routines. all modules must have these */
 EAPI E_Module_Api e_modapi = 
 {
@@ -50,24 +40,42 @@
 EAPI void *
 e_modapi_init(E_Module *m)
 {
+   E_Gadget *gad = NULL;
+   E_Gadget_Api *api;
    Temperature *e;
 
-   /* actually init temperature */
-   e = _temperature_new(m);
-   m->config_menu = e->config_menu;
-   return e;
+   e = _temperature_new();
+
+   /* set up our actual gadget */
+   api = E_NEW(E_Gadget_Api, 1);
+   api->module = m;
+   api->name = "temperature";
+   api->func_face_init = _temperature_face_init;
+   api->func_face_free = _temperature_face_free;
+   api->data = e;
+
+   gad = e_gadget_new(api);
+   E_FREE(api);
+
+   /* start the timer */
+   e->gad = gad;
+   e->temperature_check_timer = ecore_timer_add(e->conf->poll_time, 
_temperature_cb_check, gad);
+   return gad;
 }
 
 EAPI int
 e_modapi_shutdown(E_Module *m)
 {
+   E_Gadget *gad;
    Temperature *e;
 
-   if (m->config_menu)
-     m->config_menu = NULL;
+   E_CONFIG_DD_FREE(conf_edd);
+   E_CONFIG_DD_FREE(conf_face_edd);
 
-   e = m->data;
-   if (e) 
+   gad = m->data;
+   if (!gad) return;
+   e = gad->data;
+   if (e)
      {
        if (e->config_dialog) 
          {
@@ -76,15 +84,20 @@
          }
        _temperature_free(e);
      }
+   e_object_del(E_OBJECT(gad));
    return 1;
 }
 
 EAPI int
 e_modapi_save(E_Module *m)
 {
+   E_Gadget *gad;
    Temperature *e;
 
-   e = m->data;
+   gad = m->data;
+   if (!gad) return 0;
+   e = gad->data;
+   if (!e) return 0;
    e_config_domain_save("module.temperature", conf_edd, e->conf);
    return 1;
 }
@@ -112,38 +125,30 @@
 EAPI int
 e_modapi_config(E_Module *m)
 {
+   E_Gadget *gad;
    Temperature *e;
    Evas_List *l;
    
-   e = m->data;
-   if (!e) return 0;
-   if (!e->faces) return 0;
-   for (l = e->faces; l; l = l->next) 
-     {
-       Temperature_Face *face;
-       face = l->data;
-       if (!face) return 0;
-       if (face->con == e_container_current_get(e_manager_current_get())) 
-         {
-            _config_temperature_module(face->con, face->temp);
-            break;
-         }
-     }
+   gad = m->data;
+   if (!gad) return 0;
+   e = gad->data; 
+   
_config_temperature_module(e_container_current_get(e_manager_current_get()), e);
+     
    return 1;
 }
 
+
+
 /* module private routines */
 static Temperature *
 _temperature_new()
 {
    Temperature *e;
-   Evas_List *managers, *l, *l2, *cl;
-   E_Menu_Item *mi;
 
-   temperature_count = 0;
    e = E_NEW(Temperature, 1);
    if (!e) return NULL;
 
+   /* create the config edd */
    conf_face_edd = E_CONFIG_DD_NEW("Temperature_Config_Face", Config_Face);
 #undef T
 #undef D
@@ -181,130 +186,26 @@
    E_CONFIG_LIMIT(e->conf->units, CELCIUS, FAHRENHEIT);
    E_CONFIG_LIMIT(e->conf->allow_overlap, 0, 1);
 
-   _temperature_config_menu_new(e);
    e->have_temp = -1;
-   e->temperature_check_timer = ecore_timer_add(e->conf->poll_time, 
_temperature_cb_check, e);
-
-   managers = e_manager_list();
-   cl = e->conf->faces;
-   for (l = managers; l; l = l->next)
-     {
-       E_Manager *man;
-
-       man = l->data;
-       for (l2 = man->containers; l2; l2 = l2->next)
-         {
-            E_Container *con;
-            Temperature_Face *ef;
-
-            con = l2->data;
-            ef = _temperature_face_new(e, con);
-            if (ef)
-              {
-                 ef->temp = e;
-                 e->faces = evas_list_append(e->faces, ef);
-                 /* Config */
-                 if (!cl)
-                   {
-                      ef->conf = E_NEW(Config_Face, 1);
-                      ef->conf->enabled = 1;
-                      e->conf->faces = evas_list_append(e->conf->faces, 
ef->conf);
-                   }
-                 else
-                   {
-                      ef->conf = cl->data;
-                      cl = cl->next;
-                   }
-
-                 /* Menu */
-                 /* This menu must be initialized after conf */
-                 _temperature_face_menu_new(ef);
-
-                 /* Add main menu to face menu */
-                 mi = e_menu_item_new(e->config_menu);
-                 e_menu_item_label_set(mi, _("Configuration"));
-                 e_menu_item_callback_set(mi, 
_temperature_face_cb_menu_configure, ef);
-
-                 mi = e_menu_item_new(e->config_menu);
-                 e_menu_item_label_set(mi, con->name);
-                 e_menu_item_submenu_set(mi, ef->menu);
-
-                 /* Setup */
-                 if (!ef->conf->enabled)
-                   _temperature_face_disable(ef);
-              }
-         }
-     }
-
-   _temperature_cb_check(e);
 
    return e;
 }
 
-static void
-_temperature_free(Temperature *e)
-{
-   Evas_List *l;
-
-   E_CONFIG_DD_FREE(conf_edd);
-   E_CONFIG_DD_FREE(conf_face_edd);
-
-   for (l = e->faces; l; l = l->next)
-     _temperature_face_free(l->data);
-   evas_list_free(e->faces);
-
-   e_object_del(E_OBJECT(e->config_menu));
-
-   ecore_timer_del(e->temperature_check_timer);
-
-   for (l = e->conf->faces; l; l = l->next)
-     free(l->data);
-   evas_list_free(e->conf->faces);
-   free(e->conf);
-   free(e);
-}
-
-
-static void
-_temperature_config_menu_new(Temperature *e)
-{
-   E_Menu *mn;
-
-   mn = e_menu_new();
-   e->config_menu = mn;
-}
-
-static Temperature_Face *
-_temperature_face_new(Temperature *t, E_Container *con)
+void _temperature_face_init(void *data, E_Gadget_Face *face)
 {
-   Evas_Object *o;
+   Temperature *e;
    Temperature_Face *ef;
+   Config_Face *cf;
+   Evas_Object *o;
    E_Gadman_Policy  policy;
 
-   ef = E_NEW(Temperature_Face, 1);
-   if (!ef) return NULL;
-
-   ef->con = con;
-   e_object_ref(E_OBJECT(con));
+   e = data;
 
-   evas_event_freeze(con->bg_evas);
-   o = edje_object_add(con->bg_evas);
-   ef->temp_object = o;
+   ef = E_NEW(Temperature_Face, 1);
+   if (!ef) return;
 
-   e_theme_edje_object_set(o, "base/theme/modules/temperature",
+   e_gadget_face_theme_set(face, "base/theme/modules/temperature",
                           "modules/temperature/main");
-   evas_object_show(o);
-
-   o = evas_object_rectangle_add(con->bg_evas);
-   ef->event_object = o;
-   evas_object_layer_set(o, 2);
-   evas_object_repeat_events_set(o, 1);
-   evas_object_color_set(o, 0, 0, 0, 0);
-   evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, 
_temperature_face_cb_mouse_down, ef);
-   evas_object_show(o);
-
-   ef->gmc = e_gadman_client_new(ef->con->gadman);
-   e_gadman_client_domain_set(ef->gmc, "module.temperature", 
temperature_count++);
 
    policy = E_GADMAN_POLICY_ANYWHERE |
            E_GADMAN_POLICY_HMOVE |
@@ -312,127 +213,57 @@
            E_GADMAN_POLICY_HSIZE |
            E_GADMAN_POLICY_VSIZE;
 
-   if (t->conf->allow_overlap == 0)
+   if (e->conf->allow_overlap == 0)
      policy &= ~E_GADMAN_POLICY_ALLOW_OVERLAP;
    else
      policy |= E_GADMAN_POLICY_ALLOW_OVERLAP;
 
-   e_gadman_client_policy_set(ef->gmc, policy);
-   e_gadman_client_min_size_set(ef->gmc, 4, 4);
-   e_gadman_client_max_size_set(ef->gmc, 128, 128);
-   e_gadman_client_auto_size_set(ef->gmc, 40, 40);
-   e_gadman_client_align_set(ef->gmc, 1.0, 1.0);
-   e_gadman_client_resize(ef->gmc, 40, 40);
-   e_gadman_client_change_func_set(ef->gmc, _temperature_face_cb_gmc_change, 
ef);
-   e_gadman_client_load(ef->gmc);
+   e_gadman_client_policy_set(face->gmc, policy);
 
-   evas_event_thaw(con->bg_evas);
+   ef->conf = evas_list_nth(e->conf->faces, face->face_num);
+   if (!ef->conf)
+     {
+       ef->conf = E_NEW(Config_Face, 1);
+       ef->conf->enabled = 1;
+       e->conf->faces = evas_list_append(e->conf->faces, ef->conf);
+     }
 
-   return ef;
-}
+   face->data = ef;
 
-static void
-_temperature_face_free(Temperature_Face *ef)
-{
-   e_object_unref(E_OBJECT(ef->con));
-   e_object_del(E_OBJECT(ef->gmc));
-   evas_object_del(ef->temp_object);
-   evas_object_del(ef->event_object);
-   e_object_del(E_OBJECT(ef->menu));
+   _temperature_cb_check(face->gad);
 
-   free(ef);
-   temperature_count--;
+   return;
 }
 
 static void
-_temperature_face_enable(Temperature_Face *face)
-{
-   face->conf->enabled = 1;
-   evas_object_show(face->temp_object);
-   evas_object_show(face->event_object);
-   e_config_save_queue();
-}
-
-static void
-_temperature_face_disable(Temperature_Face *face)
-{
-   face->conf->enabled = 0;
-   evas_object_hide(face->temp_object);
-   evas_object_hide(face->event_object);
-   e_config_save_queue();
-}
-
-static void
-_temperature_face_menu_new(Temperature_Face *face)
+_temperature_free(Temperature *e)
 {
-   E_Menu *mn;
-   E_Menu_Item *mi;
-
-   mn = e_menu_new();
-   face->menu = mn;
-   
-   /* Config */
-   mi = e_menu_item_new(mn);
-   e_menu_item_label_set(mi, _("Configuration"));
-   e_menu_item_callback_set(mi, _temperature_face_cb_menu_configure, face);
-   
-   /* Edit */
-   mi = e_menu_item_new(mn);
-   e_menu_item_label_set(mi, _("Edit Mode"));
-   e_menu_item_callback_set(mi, _temperature_face_cb_menu_edit, face);
-}
+   Evas_List *l;
 
-static void
-_temperature_face_cb_gmc_change(void *data, E_Gadman_Client *gmc, 
E_Gadman_Change change)
-{
-   Temperature_Face *ef;
-   Evas_Coord x, y, w, h;
+   ecore_timer_del(e->temperature_check_timer);
 
-   ef = data;
-   switch (change)
-     {
-      case E_GADMAN_CHANGE_MOVE_RESIZE:
-        e_gadman_client_geometry_get(ef->gmc, &x, &y, &w, &h);
-        evas_object_move(ef->temp_object, x, y);
-        evas_object_move(ef->event_object, x, y);
-        evas_object_resize(ef->temp_object, w, h);
-        evas_object_resize(ef->event_object, w, h);
-        break;
-      case E_GADMAN_CHANGE_RAISE:
-        evas_object_raise(ef->temp_object);
-        evas_object_raise(ef->event_object);
-        break;
-      case E_GADMAN_CHANGE_EDGE:
-      case E_GADMAN_CHANGE_ZONE:
-        /* FIXME
-         * Must we do something here?
-         */
-        break;
-     }
+   for (l = e->conf->faces; l; l = l->next)
+     free(l->data);
+   evas_list_free(e->conf->faces);
+   free(e->conf);
+   free(e);
 }
 
 static void
-_temperature_face_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void 
*event_info)
+_temperature_face_free(void *data, E_Gadget_Face *face)
 {
-   Evas_Event_Mouse_Down *ev;
    Temperature_Face *ef;
+   ef = face->data;
 
-   ev = event_info;
-   ef = data;
-   if (ev->button == 3)
-     {
-       e_menu_activate_mouse(ef->menu, e_zone_current_get(ef->con),
-                             ev->output.x, ev->output.y, 1, 1,
-                             E_MENU_POP_DIRECTION_DOWN, ev->timestamp);
-       e_util_container_fake_mouse_up_all_later(ef->con);
-     }
+   free(ef);
 }
 
 static int
 _temperature_cb_check(void *data)
 {
-   Temperature *ef;
-   Temperature_Face *face;
+   E_Gadget *gad;
+   E_Gadget_Face *face;
+   Temperature *t;
    int ret = 0;
    Ecore_List *therms;
    Evas_List *l;
@@ -442,7 +273,12 @@
    static int mib[5] = {-1};
    int len;
 #endif
-   ef = data;
+
+   gad = data;
+   if (!gad) return;
+   t = gad->data;
+   if (!t) return;
+
 #ifdef __FreeBSD__
    if (mib[0] == -1)
      {
@@ -482,7 +318,7 @@
               {
                  char *name, *sensor;
 
-                 sensor = ef->conf->sensor_name;
+                 sensor = t->conf->sensor_name;
                  if (!sensor) sensor = "temp1";
 
                  while ((name = ecore_list_next(therms)))
@@ -547,87 +383,69 @@
      }
 #endif   
    
-   if (ef->conf->units == FAHRENHEIT)
+   if (t->conf->units == FAHRENHEIT)
        temp = (temp * 9.0 / 5.0) + 32;
-   
+
    if (ret)
      {
        char *utf8;
 
-       if (ef->have_temp != 1)
+       if (t->have_temp != 1)
          {
             /* enable therm object */
-            for (l = ef->faces; l; l = l->next)
+            for (l = gad->faces; l; l = l->next)
               {
                  face = l->data;
-                 edje_object_signal_emit(face->temp_object, "known", "");
+                 edje_object_signal_emit(face->main_obj, "known", "");
               }
-            ef->have_temp = 1;
+            t->have_temp = 1;
          }
 
-       if (ef->conf->units == FAHRENHEIT) 
+       if (t->conf->units == FAHRENHEIT) 
          snprintf(buf, sizeof(buf), "%i°F", temp);
        else
          snprintf(buf, sizeof(buf), "%i°C", temp);               
        utf8 = ecore_txt_convert("iso-8859-1", "utf-8", buf);
 
-       for (l = ef->faces; l; l = l->next)
+       for (l = gad->faces; l; l = l->next)
          {
             face = l->data;
             _temperature_face_level_set(face,
-                                   (double)(temp - ef->conf->low) /
-                                   (double)(ef->conf->high - ef->conf->low));
+                                   (double)(temp - t->conf->low) /
+                                   (double)(t->conf->high - t->conf->low));
                  
-            edje_object_part_text_set(face->temp_object, "reading", utf8);
+            edje_object_part_text_set(face->main_obj, "reading", utf8);
          }
        free(utf8);
      }
    else
      {
-       if (ef->have_temp != 0)
+       if (t->have_temp != 0)
          {
             /* disable therm object */
-            for (l = ef->faces; l; l = l->next)
+            for (l = gad->faces; l; l = l->next)
+
               {
                  face = l->data;
-                 edje_object_signal_emit(face->temp_object, "unknown", "");
-                 edje_object_part_text_set(face->temp_object, "reading", "NO 
TEMP");
+                 edje_object_signal_emit(face->main_obj, "unknown", "");
+                 edje_object_part_text_set(face->main_obj, "reading", "NO 
TEMP");
                  _temperature_face_level_set(face, 0.5);
               }
-            ef->have_temp = 0;
+            t->have_temp = 0;
          }
      }
    return 1;
 }
 
 static void
-_temperature_face_level_set(Temperature_Face *ef, double level)
+_temperature_face_level_set(E_Gadget_Face *face, double level)
 {
    Edje_Message_Float msg;
 
    if (level < 0.0) level = 0.0;
    else if (level > 1.0) level = 1.0;
    msg.val = level;
-   edje_object_message_send(ef->temp_object, EDJE_MESSAGE_FLOAT, 1, &msg);
-}
-
-static void
-_temperature_face_cb_menu_edit(void *data, E_Menu *m, E_Menu_Item *mi)
-{
-   Temperature_Face *face;
-
-   face = data;
-   e_gadman_mode_set(face->gmc->gadman, E_GADMAN_MODE_EDIT);
-}
-
-static void
-_temperature_face_cb_menu_configure(void *data, E_Menu *m, E_Menu_Item *mi) 
-{
-   Temperature_Face *tf;
-   
-   tf = data;
-   if (!tf) return;
-   _config_temperature_module(tf->con, tf->temp);
+   edje_object_message_send(face->main_obj, EDJE_MESSAGE_FLOAT, 1, &msg);
 }
 
 void 
@@ -635,29 +453,35 @@
 {
    /* Call all funcs needed to handle update */
    ecore_timer_del(temp->temperature_check_timer);
-   temp->temperature_check_timer = ecore_timer_add(temp->conf->poll_time, 
_temperature_cb_check, temp);
+   temp->temperature_check_timer = ecore_timer_add(temp->conf->poll_time, 
_temperature_cb_check, temp->gad);
    _temperature_cb_update_policy(temp);
+   
 }
 
 void
 _temperature_cb_update_policy(void *data)
 {
   Temperature *temp;
-  Temperature_Face *tf;
+  E_Gadget_Face *face;
   Evas_List *l;
   E_Gadman_Policy policy;
+  E_Gadget *gad;
 
   temp = data;
-  for (l = temp->faces; l; l = l->next)
+  if (!temp) return;
+  gad = temp->gad;
+  if (!gad) return;
+
+  for (l = gad->faces; l; l = l->next)
     {
-      tf = l->data;
-      policy = tf->gmc->policy;
+      face = l->data;
+      policy = face->gmc->policy;
 
       if (temp->conf->allow_overlap == 0)
        policy &= ~E_GADMAN_POLICY_ALLOW_OVERLAP;
       else
        policy |= E_GADMAN_POLICY_ALLOW_OVERLAP;
 
-      e_gadman_client_policy_set(tf->gmc, policy);
+      e_gadman_client_policy_set(face->gmc, policy);
     }
 }
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/apps/e/src/modules/temperature/e_mod_main.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- e_mod_main.h        20 Jan 2006 04:04:14 -0000      1.15
+++ e_mod_main.h        26 Jan 2006 05:40:17 -0000      1.16
@@ -32,31 +32,18 @@
 
 struct _Temperature
 {
-   E_Menu           *config_menu;
-   E_Menu           *config_menu_low;
-   E_Menu           *config_menu_high;
-   E_Menu           *config_menu_poll;
-   E_Menu           *config_menu_sensor;
-   E_Menu           *config_menu_unit;
-   Evas_List        *faces;
-
    Config           *conf;
    Ecore_Timer      *temperature_check_timer;
    E_Config_Dialog  *config_dialog;
    unsigned char    have_temp;
+   E_Gadget        *gad;
 };
 
 struct _Temperature_Face
 {
    Temperature *temp;
-   E_Container *con;
-   E_Menu      *menu;
    Config_Face *conf;
 
-   Evas_Object *temp_object;
-   Evas_Object *event_object;
-
-   E_Gadman_Client *gmc;
 };
 
 EAPI extern E_Module_Api e_modapi;




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