Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

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


Modified Files:
        Makefile.am e_mod_config.c e_mod_main.c e_mod_main.h 
Removed Files:
        e_mod_config.h 


Log Message:


e packages build again - also not much point having an enlightenment-data as
it's built as an arch specific package and it is intrinsically required by e
and cannot work without it nor is the data shared betwene e and other apps
unless e itself is installed too

===================================================================
RCS file: /cvs/e/e17/apps/e/src/modules/temperature/Makefile.am,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- Makefile.am 18 Feb 2006 04:35:34 -0000      1.6
+++ Makefile.am 20 Apr 2006 11:30:25 -0000      1.7
@@ -20,8 +20,7 @@
 pkg_LTLIBRARIES        = module.la
 module_la_SOURCES      = e_mod_main.c \
                          e_mod_main.h \
-                        e_mod_config.c \
-                        e_mod_config.h
+                        e_mod_config.c
 module_la_LIBADD       = @e_libs@ @dlopen_libs@
 module_la_LDFLAGS      = -module -avoid-version
 module_la_DEPENDENCIES = $(top_builddir)/config.h
===================================================================
RCS file: /cvs/e/e17/apps/e/src/modules/temperature/e_mod_config.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -3 -r1.18 -r1.19
--- e_mod_config.c      12 Mar 2006 16:12:59 -0000      1.18
+++ e_mod_config.c      20 Apr 2006 11:30:25 -0000      1.19
@@ -3,8 +3,6 @@
  */
 #include "e.h"
 #include "e_mod_main.h"
-#include "e_mod_config.h"
-#include "config.h"
 
 /* celsius */
 #define TEMP_LOW_LOW   32
@@ -42,7 +40,7 @@
 static int           _advanced_apply_data(E_Config_Dialog *cfd, 
E_Config_Dialog_Data *cfdata);
 
 void
-_config_temperature_module(E_Container *con, Temperature *temp) 
+_config_temperature_module(void) 
 {
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
@@ -56,22 +54,23 @@
    v->advanced.apply_cfdata = _advanced_apply_data;
    v->advanced.create_widgets = _advanced_create_widgets;
    
-   cfd = e_config_dialog_new(con, _("Temperature Configuration"), NULL, 0, v, 
temp);
-   temp->config_dialog = cfd;
+   cfd = e_config_dialog_new(e_container_current_get(e_manager_current_get()), 
+                            _("Temperature Configuration"), NULL, 0, v, NULL);
+   temperature_config->config_dialog = cfd;
 }
 
 static void
-_fill_data(Temperature *t, E_Config_Dialog_Data *cfdata) 
+_fill_data(E_Config_Dialog_Data *cfdata) 
 {
    double p;
    
-   cfdata->units = t->conf->units;
-   if (t->conf->units == CELCIUS) 
+   cfdata->units = temperature_config->units;
+   if (temperature_config->units == CELCIUS) 
      cfdata->unit_method = 0;
    else 
      cfdata->unit_method = 1;
    
-   p = t->conf->poll_time;
+   p = temperature_config->poll_time;
    cfdata->poll_time = p;
    if ((p >= 0) && (p <= 5)) 
      cfdata->poll_method = 1; //Fast
@@ -82,7 +81,7 @@
    else if (p > 30) 
      cfdata->poll_method = 60; //Very Slow
    
-   p = t->conf->low;
+   p = temperature_config->low;
    if (cfdata->units == FAHRENHEIT)
      p = FAR_2_CEL(p - 1); // -1 so the conversion doesn't make mid go hi
    cfdata->low_temp = p;
@@ -93,7 +92,7 @@
    else if (p > TEMP_LOW_MID) 
      cfdata->low_method = TEMP_LOW_HIGH;
 
-   p = t->conf->high;
+   p = temperature_config->high;
    if (cfdata->units == FAHRENHEIT)
      p = FAR_2_CEL(p - 1);
    cfdata->high_temp = p;
@@ -104,11 +103,11 @@
    else if (p > TEMP_HIGH_MID) 
      cfdata->high_method = TEMP_HIGH_HIGH;
    
-   if (!strcmp(t->conf->sensor_name, "temp1")) 
+   if (!strcmp(temperature_config->sensor_name, "temp1")) 
      cfdata->sensor = 0;
-   else if (!strcmp(t->conf->sensor_name, "temp2")) 
+   else if (!strcmp(temperature_config->sensor_name, "temp2")) 
      cfdata->sensor = 1;
-   else if (!strcmp(t->conf->sensor_name, "temp3")) 
+   else if (!strcmp(temperature_config->sensor_name, "temp3")) 
      cfdata->sensor = 2;
 }
 
@@ -116,21 +115,16 @@
 _create_data(E_Config_Dialog *cfd) 
 {
    E_Config_Dialog_Data *cfdata;
-   Temperature *t;
    
-   t = cfd->data;
    cfdata = E_NEW(E_Config_Dialog_Data, 1);
-   _fill_data(t, cfdata);
+   _fill_data(cfdata);
    return cfdata;
 }
 
 static void
 _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) 
 {
-   Temperature *t;
-   
-   t = cfd->data;
-   t->config_dialog = NULL;
+   temperature_config->config_dialog = NULL;
    free(cfdata);
 }
 
@@ -217,33 +211,23 @@
 static int
 _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) 
 {
-   Temperature *t;
-   
-   t = cfd->data;
-   e_border_button_bindings_ungrab_all();
    if (cfdata->unit_method == 0) 
-     t->conf->units = CELCIUS; 
+     temperature_config->units = CELCIUS;      
    else 
-     t->conf->units = FAHRENHEIT;
-   
-   t->conf->poll_time = (double)cfdata->poll_method;
-
-   if (t->conf->units == FAHRENHEIT)
+     temperature_config->units = FAHRENHEIT;
+   temperature_config->poll_time = (double)cfdata->poll_method;
+   if (temperature_config->units == FAHRENHEIT)
      {
-       t->conf->low = CEL_2_FAR(cfdata->low_method);
-       t->conf->high = CEL_2_FAR(cfdata->high_method);
+       temperature_config->low = CEL_2_FAR(cfdata->low_method);
+       temperature_config->high = CEL_2_FAR(cfdata->high_method);
      }
    else
      {
-       t->conf->low = cfdata->low_method;
-       t->conf->high = cfdata->high_method;
+       temperature_config->low = cfdata->low_method;
+       temperature_config->high = cfdata->high_method;
      }
-
-   e_border_button_bindings_grab_all();
+   _temperature_face_cb_config_updated();
    e_config_save_queue();
-   
-   /* Call Config Update */
-   _temperature_face_cb_config_updated(t);
    return 1;
 }
 
@@ -252,9 +236,6 @@
 {
    Evas_Object *o, *of, *ob;
    E_Radio_Group *rg;
-   Temperature *t;
-   
-   t = cfd->data;
    
    o = e_widget_list_add(evas, 0, 0);
    of = e_widget_framelist_add(evas, _("Display Units"), 0);
@@ -312,10 +293,10 @@
    e_widget_framelist_object_append(of, ob);
    e_widget_list_object_append(o, of, 1, 1, 0.5);
 
-   cfdata->low_temp = t->conf->low;
-   cfdata->high_temp = t->conf->high;
+//   cfdata->low_temp = temperature_config->low;
+//   cfdata->high_temp = temperature_config->high;
 
-   if (t->conf->units == FAHRENHEIT)
+   if (cfdata->units == FAHRENHEIT)
      {
        /* round-off to closest 5 */
        if (cfdata->high_temp % 5 > 3)
@@ -357,14 +338,7 @@
 static int
 _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) 
 {
-   Temperature *t;
-   
-   t = cfd->data;
-   
-   e_border_button_bindings_ungrab_all();
-
-   /* Check if Display Units has been toggled */
-   if (cfdata->unit_method != t->conf->units)
+   if (cfdata->unit_method != temperature_config->units)
      {
        if (cfdata->unit_method == 0)
          {
@@ -377,35 +351,29 @@
             cfdata->low_temp = CEL_2_FAR(cfdata->low_temp);
          }
      }
-
    if (cfdata->unit_method == 0) 
-     t->conf->units = CELCIUS; 
+     temperature_config->units = CELCIUS;      
    else 
-     t->conf->units = FAHRENHEIT;
-   
-   t->conf->poll_time = cfdata->poll_time;
-
-   t->conf->low = cfdata->low_temp;
-   t->conf->high = cfdata->high_temp;
-
+     temperature_config->units = FAHRENHEIT;
+   temperature_config->poll_time = cfdata->poll_time;
+   temperature_config->low = cfdata->low_temp;
+   temperature_config->high = cfdata->high_temp;
+   if (temperature_config->sensor_name)
+     evas_stringshare_del(temperature_config->sensor_name);
+   temperature_config->sensor_name = NULL;
    switch (cfdata->sensor) 
      {
       case 0:
-       t->conf->sensor_name = strdup("temp1");
+       temperature_config->sensor_name = evas_stringshare_add("temp1");
        break;
       case 1:
-       t->conf->sensor_name = strdup("temp2");
+       temperature_config->sensor_name = evas_stringshare_add("temp2");
        break;
       case 2:
-       t->conf->sensor_name = strdup("temp3");
+       temperature_config->sensor_name = evas_stringshare_add("temp3");
        break;
      }
-   
-   e_border_button_bindings_grab_all();
+   _temperature_face_cb_config_updated();
    e_config_save_queue();
-   
-   /* Call Config Update */
-   _temperature_face_cb_config_updated(t);
-
    return 1;
 }
===================================================================
RCS file: /cvs/e/e17/apps/e/src/modules/temperature/e_mod_main.c,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -3 -r1.55 -r1.56
--- e_mod_main.c        12 Mar 2006 16:12:59 -0000      1.55
+++ e_mod_main.c        20 Apr 2006 11:30:25 -0000      1.56
@@ -3,255 +3,153 @@
  */
 #include "e.h"
 #include "e_mod_main.h"
-#include "e_mod_config.h"
 
 #ifdef __FreeBSD__
 #include <sys/types.h>
 #include <sys/sysctl.h>
 #endif
 
-/* TODO List:
- *
- * which options should be in main menu, and which in face menu?
- */
-
-/* module private routines */
-static Temperature *_temperature_new();
-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 E_Config_DD *conf_edd;
-static E_Config_DD *conf_face_edd;
-
-/* public module routines. all modules must have these */
-EAPI E_Module_Api e_modapi = 
-{
-   E_MODULE_API_VERSION,
-   "Temperature"
-};
-
-EAPI void *
-e_modapi_init(E_Module *m)
-{
-   E_Gadget *gad = NULL;
-   E_Gadget_Api *api;
-   Temperature *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)
+/***************************************************************************/
+/**/
+/* gadcon requirements */
+static E_Gadcon_Client *_gc_init(E_Gadcon *gc, char *name, char *id, char 
*style);
+static void _gc_shutdown(E_Gadcon_Client *gcc);
+static void _gc_orient(E_Gadcon_Client *gcc);
+/* and actually define the gadcon class that this module provides (just 1) */
+static const E_Gadcon_Client_Class _gadcon_class =
 {
-   E_Gadget *gad;
-   Temperature *e;
-
-   E_CONFIG_DD_FREE(conf_edd);
-   E_CONFIG_DD_FREE(conf_face_edd);
-
-   gad = m->data;
-   if (!gad) return 0;
-   e = gad->data;
-   if (e)
+   GADCON_CLIENT_CLASS_VERSION,
+     "temperature",
      {
-       if (e->config_dialog) 
-         {
-            e_object_del(E_OBJECT(e->config_dialog));
-            e->config_dialog = NULL;
-         }
-       _temperature_free(e);
+       _gc_init, _gc_shutdown, _gc_orient
      }
-   e_object_del(E_OBJECT(gad));
-   return 1;
-}
+};
+/**/
+/***************************************************************************/
 
-EAPI int
-e_modapi_save(E_Module *m)
-{
-   E_Gadget *gad;
-   Temperature *e;
+/***************************************************************************/
+/**/
+/* actual module specifics */
 
-   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;
-}
+typedef struct _Instance Instance;
 
-EAPI int
-e_modapi_info(E_Module *m)
+struct _Instance
 {
-   char buf[4096];
-
-   snprintf(buf, sizeof(buf), "%s/module_icon.png", e_module_dir_get(m));
-   m->icon_file = strdup(buf);
-   return 1;
-}
+      E_Gadcon_Client *gcc;
+      Evas_Object     *o_temp;
+};
 
-EAPI int
-e_modapi_about(E_Module *m)
-{
-   e_module_dialog_show(_("Enlightenment Temperature Module"),
-                       _("A module to measure the <hilight>ACPI Thermal 
sensor</hilight> on Linux.<br>"
-                         "It is especially useful for modern Laptops with high 
speed<br>"
-                         "CPUs that generate a lot of heat."));
-   return 1;
+static void _button_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void 
*event_info);
+static void _menu_cb_post(void *data, E_Menu *m);
+static int _temperature_cb_check(void *data);
+static void _temperature_face_level_set(Instance *inst, double level);
+static void _temperature_face_cb_menu_configure(void *data, E_Menu *m, 
E_Menu_Item *mi);
+
+static E_Config_DD *conf_edd = NULL;
+
+Config *temperature_config = NULL;
+
+static E_Gadcon_Client *
+_gc_init(E_Gadcon *gc, char *name, char *id, char *style)
+{
+   Evas_Object *o;
+   E_Gadcon_Client *gcc;
+   Instance *inst;
+   
+   inst = E_NEW(Instance, 1);
+   
+   o = edje_object_add(gc->evas);
+   e_theme_edje_object_set(o, "base/theme/modules/temperature",
+                          "modules/temperature/main");
+   
+   gcc = e_gadcon_client_new(gc, name, id, style, o);
+   gcc->data = inst;
+   
+   inst->gcc = gcc;
+   inst->o_temp = o;
+   
+   evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN,
+                                 _button_cb_mouse_down, inst);
+   temperature_config->instances = 
evas_list_append(temperature_config->instances, inst);
+   temperature_config->have_temp = -1;
+   _temperature_cb_check(NULL);
+   return gcc;
 }
 
-EAPI int
-e_modapi_config(E_Module *m)
+static void
+_gc_shutdown(E_Gadcon_Client *gcc)
 {
-   E_Gadget *gad;
-   Temperature *e;
+   Instance *inst;
    
-   gad = m->data;
-   if (!gad) return 0;
-   e = gad->data; 
-   
_config_temperature_module(e_container_current_get(e_manager_current_get()), e);
-     
-   return 1;
+   inst = gcc->data;
+   temperature_config->instances = 
evas_list_remove(temperature_config->instances, inst);
+   evas_object_del(inst->o_temp);
+   free(inst);
 }
 
-
-
-/* module private routines */
-static Temperature *
-_temperature_new()
+static void
+_gc_orient(E_Gadcon_Client *gcc)
 {
-   Temperature *e;
-
-   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
-#define T Config_Face
-#define D conf_face_edd
-   E_CONFIG_VAL(D, T, enabled, UCHAR);
-
-   conf_edd = E_CONFIG_DD_NEW("Temperature_Config", Config);
-#undef T
-#undef D
-#define T Config
-#define D conf_edd
-   E_CONFIG_VAL(D, T, poll_time, DOUBLE);
-   E_CONFIG_VAL(D, T, low, INT);
-   E_CONFIG_VAL(D, T, high, INT);
-   E_CONFIG_LIST(D, T, faces, conf_face_edd);
-   E_CONFIG_VAL(D, T, sensor_name, STR);
-   E_CONFIG_VAL(D, T, units, INT);
-
-   e->conf = e_config_domain_load("module.temperature", conf_edd);
-   if (!e->conf)
-     {
-       e->conf = E_NEW(Config, 1);
-       e->conf->poll_time = 10.0;
-       e->conf->low = 30;
-       e->conf->high = 80;
-       e->conf->sensor_name = "temp1";
-       e->conf->units = CELCIUS;
-     }
-   E_CONFIG_LIMIT(e->conf->poll_time, 0.5, 1000.0);
-   E_CONFIG_LIMIT(e->conf->low, 0, 100);
-   E_CONFIG_LIMIT(e->conf->high, 0, 220);
-   E_CONFIG_LIMIT(e->conf->units, CELCIUS, FAHRENHEIT);
-
-   e->have_temp = -1;
-
-   return e;
+   Instance *inst;
+   
+   inst = gcc->data;
+   e_gadcon_client_aspect_set(gcc, 16, 16);
+   e_gadcon_client_min_size_set(gcc, 16, 16);
 }
+/**/
+/***************************************************************************/
 
-void _temperature_face_init(void *data, E_Gadget_Face *face)
+/***************************************************************************/
+/**/
+static void
+_button_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
 {
-   Temperature *e;
-   Temperature_Face *ef;
-   E_Gadman_Policy  policy;
-
-   e = data;
-
-   ef = E_NEW(Temperature_Face, 1);
-   if (!ef) return;
-
-   e_gadget_face_theme_set(face, "base/theme/modules/temperature",
-                          "modules/temperature/main");
-
-   policy = E_GADMAN_POLICY_ANYWHERE |
-           E_GADMAN_POLICY_HMOVE |
-           E_GADMAN_POLICY_VMOVE |
-           E_GADMAN_POLICY_HSIZE |
-           E_GADMAN_POLICY_VSIZE;
-
-   e_gadman_client_policy_set(face->gmc, policy);
-
-   ef->conf = evas_list_nth(e->conf->faces, face->face_num);
-   if (!ef->conf)
+   Instance *inst;
+   Evas_Event_Mouse_Down *ev;
+   
+   inst = data;
+   ev = event_info;
+   if ((ev->button == 3) && (!temperature_config->menu))
      {
-       ef->conf = E_NEW(Config_Face, 1);
-       ef->conf->enabled = 1;
-       e->conf->faces = evas_list_append(e->conf->faces, ef->conf);
+       E_Menu *mn;
+       E_Menu_Item *mi;
+       int cx, cy, cw, ch;
+       
+       mn = e_menu_new();
+       e_menu_post_deactivate_callback_set(mn, _menu_cb_post, inst);
+       temperature_config->menu = mn;
+       
+       mi = e_menu_item_new(mn);
+       e_menu_item_label_set(mi, _("Configuration"));
+       e_util_menu_item_edje_icon_set(mi, "enlightenment/configuration");
+       e_menu_item_callback_set(mi, _temperature_face_cb_menu_configure, NULL);
+       
+       e_gadcon_client_util_menu_items_append(inst->gcc, mn, 0);
+       
+       e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon,
+                                         &cx, &cy, &cw, &ch);
+       e_menu_activate_mouse(mn,
+                             e_util_zone_current_get(e_manager_current_get()),
+                             cx + ev->output.x, cy + ev->output.y, 1, 1,
+                             E_MENU_POP_DIRECTION_DOWN, ev->timestamp);
+       evas_event_feed_mouse_up(inst->gcc->gadcon->evas, ev->button,
+                                EVAS_BUTTON_NONE, ev->timestamp, NULL);
      }
-
-   face->data = ef;
-
-   _temperature_cb_check(face->gad);
-
-   return;
 }
 
 static void
-_temperature_free(Temperature *e)
+_menu_cb_post(void *data, E_Menu *m)
 {
-   Evas_List *l;
-
-   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_face_free(void *data, E_Gadget_Face *face)
-{
-   Temperature_Face *ef;
-   ef = face->data;
-
-   free(ef);
+   if (!temperature_config->menu) return;
+   e_object_del(E_OBJECT(temperature_config->menu));
+   temperature_config->menu = NULL;
 }
 
 static int
 _temperature_cb_check(void *data)
 {
-   E_Gadget *gad;
-   E_Gadget_Face *face;
-   Temperature *t;
    int ret = 0;
+   Instance *inst;
    Ecore_List *therms;
    Evas_List *l;
    int temp = 0;
@@ -261,11 +159,6 @@
    int len;
 #endif
 
-   gad = data;
-   if (!gad) return 0;
-   t = gad->data;
-   if (!t) return 0;
-
 #ifdef __FreeBSD__
    if (mib[0] == -1)
      {
@@ -305,7 +198,7 @@
               {
                  char *name, *sensor;
 
-                 sensor = t->conf->sensor_name;
+                 sensor = temperature_config->sensor_name;
                  if (!sensor) sensor = "temp1";
 
                  while ((name = ecore_list_next(therms)))
@@ -370,77 +263,183 @@
      }
 #endif   
    
-   if (t->conf->units == FAHRENHEIT)
-       temp = (temp * 9.0 / 5.0) + 32;
+   if (temperature_config->units == FAHRENHEIT)
+     temp = (temp * 9.0 / 5.0) + 32;
 
    if (ret)
      {
        char *utf8;
 
-       if (t->have_temp != 1)
+       if (temperature_config->have_temp != 1)
          {
             /* enable therm object */
-            for (l = gad->faces; l; l = l->next)
+            for (l = temperature_config->instances; l; l = l->next)
               {
-                 face = l->data;
-                 edje_object_signal_emit(face->main_obj, "known", "");
+                 inst = l->data;
+                 edje_object_signal_emit(inst->o_temp, "known", "");
               }
-            t->have_temp = 1;
+            temperature_config->have_temp = 1;
          }
 
-       if (t->conf->units == FAHRENHEIT) 
+       if (temperature_config->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 = gad->faces; l; l = l->next)
+       for (l = temperature_config->instances; l; l = l->next)
          {
-            face = l->data;
-            _temperature_face_level_set(face,
-                                   (double)(temp - t->conf->low) /
-                                   (double)(t->conf->high - t->conf->low));
-                 
-            edje_object_part_text_set(face->main_obj, "reading", utf8);
+            inst = l->data;
+            _temperature_face_level_set(inst,
+                                        (double)(temp - 
temperature_config->low) /
+                                        (double)(temperature_config->high - 
temperature_config->low));
+            edje_object_part_text_set(inst->o_temp, "reading", utf8);
          }
        free(utf8);
      }
    else
      {
-       if (t->have_temp != 0)
+       if (temperature_config->have_temp != 0)
          {
             /* disable therm object */
-            for (l = gad->faces; l; l = l->next)
-
+            for (l = temperature_config->instances; l; l = l->next)
               {
-                 face = l->data;
-                 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);
+                 inst = l->data;
+                 edje_object_signal_emit(inst->o_temp, "unknown", "");
+                 edje_object_part_text_set(inst->o_temp, "reading", "NO TEMP");
+                 _temperature_face_level_set(inst, 0.5);
               }
-            t->have_temp = 0;
+            temperature_config->have_temp = 0;
          }
      }
    return 1;
 }
 
 static void
-_temperature_face_level_set(E_Gadget_Face *face, double level)
+_temperature_face_level_set(Instance *inst, 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(face->main_obj, EDJE_MESSAGE_FLOAT, 1, &msg);
+   edje_object_message_send(inst->o_temp, EDJE_MESSAGE_FLOAT, 1, &msg);
+}
+
+static void
+_temperature_face_cb_menu_configure(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   if (!temperature_config) return;
+   if (temperature_config->config_dialog) return;
+   _config_temperature_module();
 }
 
 void 
-_temperature_face_cb_config_updated(Temperature *temp) 
+_temperature_face_cb_config_updated(void)
+{
+   ecore_timer_del(temperature_config->temperature_check_timer);
+   temperature_config->temperature_check_timer = 
+     ecore_timer_add(temperature_config->poll_time, _temperature_cb_check, 
+                    NULL);
+}
+
+/***************************************************************************/
+/**/
+/* module setup */
+EAPI E_Module_Api e_modapi = 
+{
+   E_MODULE_API_VERSION,
+     "Temperature"
+};
+
+EAPI void *
+e_modapi_init(E_Module *m)
+{
+   conf_edd = E_CONFIG_DD_NEW("Temperature_Config", Config);
+#undef T
+#undef D
+#define T Config
+#define D conf_edd
+   E_CONFIG_VAL(D, T, poll_time, DOUBLE);
+   E_CONFIG_VAL(D, T, low, INT);
+   E_CONFIG_VAL(D, T, high, INT);
+   E_CONFIG_VAL(D, T, sensor_name, STR);
+   E_CONFIG_VAL(D, T, units, INT);
+
+   temperature_config = e_config_domain_load("module.temperature", conf_edd);
+   if (!temperature_config)
+     {
+       temperature_config = E_NEW(Config, 1);
+       temperature_config->poll_time = 10.0;
+       temperature_config->low = 30;
+       temperature_config->high = 80;
+       temperature_config->sensor_name = evas_stringshare_add("temp1");
+       temperature_config->units = CELCIUS;
+     }
+   E_CONFIG_LIMIT(temperature_config->poll_time, 0.5, 1000.0);
+   E_CONFIG_LIMIT(temperature_config->low, 0, 100);
+   E_CONFIG_LIMIT(temperature_config->high, 0, 220);
+   E_CONFIG_LIMIT(temperature_config->units, CELCIUS, FAHRENHEIT);
+
+   temperature_config->have_temp = -1;
+   temperature_config->temperature_check_timer = 
+     ecore_timer_add(temperature_config->poll_time, _temperature_cb_check, 
+                    NULL);
+   e_gadcon_provider_register(&_gadcon_class);
+   return 1;
+}
+
+EAPI int
+e_modapi_shutdown(E_Module *m)
 {
-   /* 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->gad);
+   e_gadcon_provider_unregister(&_gadcon_class);
    
+   if (temperature_config->config_dialog) 
+     e_object_del(E_OBJECT(temperature_config->config_dialog));
+   if (temperature_config->temperature_check_timer)
+     ecore_timer_del(temperature_config->temperature_check_timer);
+   if (temperature_config->sensor_name)
+     evas_stringshare_del(temperature_config->sensor_name);
+   free(temperature_config);
+   temperature_config = NULL;
+   E_CONFIG_DD_FREE(conf_edd);
+   return 1;
+}
+
+EAPI int
+e_modapi_save(E_Module *m)
+{
+   e_config_domain_save("module.temperature", conf_edd, temperature_config);
+   return 1;
+}
+
+EAPI int
+e_modapi_info(E_Module *m)
+{
+   char buf[4096];
+
+   snprintf(buf, sizeof(buf), "%s/module_icon.png", e_module_dir_get(m));
+   m->icon_file = strdup(buf);
+   return 1;
 }
 
+EAPI int
+e_modapi_about(E_Module *m)
+{
+   e_module_dialog_show(_("Enlightenment Temperature Module"),
+                       _("A module to measure the <hilight>ACPI Thermal 
sensor</hilight> on Linux.<br>"
+                         "It is especially useful for modern Laptops with high 
speed<br>"
+                         "CPUs that generate a lot of heat."));
+   return 1;
+}
+
+EAPI int
+e_modapi_config(E_Module *m)
+{
+   if (!temperature_config) return 0;
+   if (temperature_config->config_dialog) return 0;
+   _config_temperature_module();
+   return 1;
+}
+/**/
+/***************************************************************************/
===================================================================
RCS file: /cvs/e/e17/apps/e/src/modules/temperature/e_mod_main.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -3 -r1.17 -r1.18
--- e_mod_main.h        12 Mar 2006 16:12:59 -0000      1.17
+++ e_mod_main.h        20 Apr 2006 11:30:25 -0000      1.18
@@ -5,9 +5,6 @@
 #define E_MOD_MAIN_H
 
 typedef struct _Config           Config;
-typedef struct _Config_Face      Config_Face;
-typedef struct _Temperature      Temperature;
-typedef struct _Temperature_Face Temperature_Face;
        
 typedef enum _Unit
 {
@@ -17,32 +14,17 @@
 
 struct _Config
 {
-   double poll_time;
-   int low, high;
-   Evas_List *faces;
-   char *sensor_name;
-   Unit units;
-};
-
-struct _Config_Face
-{
-   unsigned char enabled;
-};
-
-struct _Temperature
-{
-   Config           *conf;
-   Ecore_Timer      *temperature_check_timer;
-   E_Config_Dialog  *config_dialog;
+   /* saved * loaded config values */
+   double           poll_time;
+   int              low, high;
+   char            *sensor_name;
+   Unit             units;
+   /* just config state */
+   E_Config_Dialog *config_dialog;
+   Evas_List       *instances;
+   E_Menu          *menu;
+   Ecore_Timer     *temperature_check_timer;
    unsigned char    have_temp;
-   E_Gadget        *gad;
-};
-
-struct _Temperature_Face
-{
-   Temperature *temp;
-   Config_Face *conf;
-
 };
 
 EAPI extern E_Module_Api e_modapi;
@@ -54,6 +36,9 @@
 EAPI int   e_modapi_about    (E_Module *m);
 EAPI int   e_modapi_config   (E_Module *m);
 
-void   _temperature_face_cb_config_updated(Temperature *temp);
+void _config_temperature_module(void);
+void _temperature_face_cb_config_updated(void);
+extern Config *temperature_config;
+
 
 #endif




-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to