Enlightenment CVS committal

Author  : devilhorns
Project : e_modules
Module  : uptime

Dir     : e_modules/uptime


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


Log Message:
Convert uptime to the shelf for Gulivert ;)

Users will need to remove old module.uptime.cfg for this to work.

===================================================================
RCS file: /cvs/e/e_modules/uptime/Makefile.am,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- Makefile.am 3 Jun 2006 14:02:35 -0000       1.5
+++ Makefile.am 9 Jun 2006 11:42:59 -0000       1.6
@@ -26,8 +26,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@ -lm
 module_la_LDFLAGS      = -module -avoid-version
===================================================================
RCS file: /cvs/e/e_modules/uptime/e_mod_config.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- e_mod_config.c      5 Apr 2006 17:48:50 -0000       1.3
+++ e_mod_config.c      9 Jun 2006 11:42:59 -0000       1.4
@@ -1,11 +1,9 @@
 #include <e.h>
 #include "e_mod_main.h"
-#include "e_mod_config.h"
-#include "config.h"
 
 struct _E_Config_Dialog_Data
 {
-   int check_interval;
+   double check_interval;
 };
 
 /* Protos */
@@ -13,15 +11,16 @@
 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(Uptime *c, E_Config_Dialog_Data *cfdata);
+static void _fill_data(Config_Item *ci, E_Config_Dialog_Data *cfdata);
 
 /* Config Calls */
 void
-_configure_uptime_module(E_Container *con, Uptime *c)
+_config_ut_module(Config_Item *ci)
 {
    E_Config_Dialog *cfd;
    E_Config_Dialog_View *v;
-
+   E_Container *con;
+   
    v = E_NEW(E_Config_Dialog_View, 1);
 
    v->create_cfdata = _create_data;
@@ -29,36 +28,35 @@
    v->basic.apply_cfdata = _basic_apply_data;
    v->basic.create_widgets = _basic_create_widgets;
 
-   cfd = e_config_dialog_new(con, D_("Uptime Configuration"), NULL, 0, v, c);
-   c->cfd = cfd;
+   con = e_container_current_get(e_manager_current_get());
+   cfd = e_config_dialog_new(con, D_("Uptime Configuration"), NULL, 0, v, ci);
+   ut_config->config_dialog = cfd;
 }
 
 static void
-_fill_data(Uptime *c, E_Config_Dialog_Data *cfdata)
+_fill_data(Config_Item *ci, E_Config_Dialog_Data *cfdata)
 {
-   cfdata->check_interval = c->conf->check_interval;
+   cfdata->check_interval = ci->check_interval;
 }
 
 static void *
 _create_data(E_Config_Dialog *cfd)
 {
    E_Config_Dialog_Data *cfdata;
-   Uptime *c;
+   Config_Item *ci;
 
-   c = cfd->data;
+   ci = cfd->data;
    cfdata = E_NEW(E_Config_Dialog_Data, 1);
 
-   _fill_data(c, cfdata);
+   _fill_data(ci, cfdata);
    return cfdata;
 }
 
 static void
 _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
 {
-   Uptime *c;
-
-   c = cfd->data;
-   c->cfd = NULL;
+   if (!ut_config) return;
+   ut_config->config_dialog = NULL;
    free(cfdata);
 }
 
@@ -66,15 +64,12 @@
 _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data 
*cfdata)
 {
    Evas_Object *o, *of, *ob;
-   Uptime *c;
-
-   c = cfd->data;
 
    o = e_widget_list_add(evas, 0, 0);
    of = e_widget_framelist_add(evas, D_("Uptime Settings"), 0);
    ob = e_widget_label_add(evas, D_("Check Interval:"));
    e_widget_framelist_object_append(of, ob);
-   ob = e_widget_slider_add(evas, 1, 0, _("%1.0f seconds"), 1, 60, 1, 0, NULL, 
&(cfdata->check_interval), 150);
+   ob = e_widget_slider_add(evas, 1, 0, _("%1.0f seconds"), 1.0, 60.0, 1.0, 0, 
&(cfdata->check_interval), NULL, 100);
    e_widget_framelist_object_append(of, ob);
    e_widget_list_object_append(o, of, 1, 1, 0.5);
 
@@ -84,14 +79,12 @@
 static int
 _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
 {
-   char *tmp;
-   Uptime *c;
-
-   c = cfd->data;
-   c->conf->check_interval = cfdata->check_interval;
+   Config_Item *ci;
+   
+   ci = cfd->data;
+   ci->check_interval = cfdata->check_interval;
    e_config_save_queue();
-   if (c->face->monitor)
-      ecore_timer_interval_set(c->face->monitor, 
(double)cfdata->check_interval);
+   _ut_config_updated(ci->id);
 
    return 1;
 }
===================================================================
RCS file: /cvs/e/e_modules/uptime/e_mod_main.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- e_mod_main.c        3 Jun 2006 13:26:01 -0000       1.8
+++ e_mod_main.c        9 Jun 2006 11:42:59 -0000       1.9
@@ -1,394 +1,367 @@
 #include <e.h>
 #include <linux/kernel.h>
 #include "e_mod_main.h"
-#include "e_mod_config.h"
-#include "config.h"
 
-static Uptime *_uptime_init(E_Module *m);
-static void _uptime_shutdown(Uptime *n);
-static void _uptime_config_menu_new(Uptime *n);
-static int _uptime_face_init(Uptime_Face *cf);
-static void _uptime_face_menu_new(Uptime_Face *cf);
-static void _uptime_face_enable(Uptime_Face *cf);
-static void _uptime_face_disable(Uptime_Face *cf);
-static void _uptime_face_free(Uptime_Face *cf);
-static void _uptime_face_cb_gmc_change(void *data, E_Gadman_Client *gmc, 
E_Gadman_Change change);
-static void _uptime_face_cb_mouse_down(void *data, Evas *evas, Evas_Object 
*obj, void *event_info);
-static void _uptime_face_cb_menu_edit(void *data, E_Menu *mn, E_Menu_Item *mi);
-static void _uptime_face_cb_menu_configure(void *data, E_Menu *mn, E_Menu_Item 
*mi);
-static int _uptime_face_update_values(void *data);
+typedef struct _Instance Instance;
+typedef struct _Uptime Uptime;
 
-static int uptime_count;
-
-EAPI E_Module_Api e_modapi = {
-   E_MODULE_API_VERSION,
-   "Uptime"
+struct _Instance 
+{
+   E_Gadcon_Client *gcc;
+   Evas_Object *ut_obj;
+   Uptime *ut;
+   Ecore_Timer *monitor;
 };
 
-EAPI void *
-e_modapi_init(E_Module *m)
+struct _Uptime 
 {
-   Uptime *c;
+   Instance *inst;
+   Evas_Object *ut_obj;
+};
 
-   /* Set up module's message catalogue */
-   bindtextdomain(PACKAGE, LOCALEDIR);
-   bind_textdomain_codeset(PACKAGE, "UTF-8");
+static E_Gadcon_Client *_gc_init(E_Gadcon *gc, const char *name, const char 
*id, const char *style);
+static void _gc_shutdown(E_Gadcon_Client *gcc);
+static void _gc_orient(E_Gadcon_Client *gcc);
+static char *_gc_label(void);
+static Evas_Object *_gc_icon(Evas *evas);
+
+static void _ut_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void 
*event_info);
+static void _ut_menu_cb_configure(void *data, E_Menu *m, E_Menu_Item *mi);
+static void _ut_menu_cb_post(void *data, E_Menu *m);
+static Config_Item *_ut_config_item_get(const char *id);
+static Uptime *_ut_new(Evas *evas);
+static void _ut_free(Uptime *ut);
+static int _ut_cb_check(void *data);
+
+static E_Config_DD *conf_edd = NULL;
+static E_Config_DD *conf_item_edd = NULL;
 
-   c = _uptime_init(m);
-   if (!c)
-      return NULL;
+Config *ut_config = NULL;
 
-   return c;
-}
-
-EAPI int
-e_modapi_shutdown(E_Module *m)
+static const E_Gadcon_Client_Class _gc_class = 
 {
-   Uptime *c;
-
-   c = m->data;
-   if (!c)
-      return 0;
+   GADCON_CLIENT_CLASS_VERSION,
+     "uptime", {_gc_init, _gc_shutdown, _gc_orient, _gc_label, _gc_icon}
+};
 
-   if (c->cfd)
-     {
-        e_object_del(E_OBJECT(c->cfd));
-        c->cfd = NULL;
-     }
-   _uptime_shutdown(c);
-   return 1;
+static E_Gadcon_Client *
+_gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style) 
+{
+   Evas_Object *o;
+   E_Gadcon_Client *gcc;
+   Instance *inst;
+   Config_Item *ci;
+   Uptime *ut;
+   char buf[4096];
+   
+   inst = E_NEW(Instance, 1);
+   ci = _ut_config_item_get(id);
+   if (!ci->id) ci->id = evas_stringshare_add(id);
+   
+   ut = _ut_new(gc->evas);
+   ut->inst = inst;
+   inst->ut = ut;
+   
+   o = ut->ut_obj;
+   gcc = e_gadcon_client_new(gc, name, id, style, o);
+   gcc->data = inst;
+   inst->gcc = gcc;
+   inst->ut_obj = o;
+   
+   evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, 
_ut_cb_mouse_down, inst);
+   ut_config->instances = evas_list_append(ut_config->instances, inst);
+
+   if (!inst->monitor)
+     inst->monitor = ecore_timer_add(ci->check_interval, _ut_cb_check, inst);
+   
+   return gcc;
 }
 
-EAPI int
-e_modapi_save(E_Module *m)
+static void
+_gc_shutdown(E_Gadcon_Client *gcc) 
 {
-   Uptime *c;
+   Instance *inst;
+   Uptime *ut;
+   
+   inst = gcc->data;
+   ut = inst->ut;
+
+   if (inst->monitor) ecore_timer_del(inst->monitor);
+   
+   ut_config->instances = evas_list_remove(ut_config->instances, inst);
+   evas_object_event_callback_del(ut->ut_obj, EVAS_CALLBACK_MOUSE_DOWN, 
_ut_cb_mouse_down);
 
-   c = m->data;
-   if (!c)
-      return 0;
-   e_config_domain_save("module.uptime", c->conf_edd, c->conf);
-   return 1;
+   _ut_free(ut);
+   free(inst);
 }
 
-EAPI int
-e_modapi_about(E_Module *m)
+static void
+_gc_orient(E_Gadcon_Client *gcc) 
 {
-   e_module_dialog_show(D_("Enlightenment Uptime Monitor Module"), D_("This 
module is used to monitor uptime."));
-   return 1;
+   e_gadcon_client_aspect_set(gcc, 16, 16);
+   e_gadcon_client_min_size_set(gcc, 16, 16);
 }
 
-EAPI int
-e_modapi_config(E_Module *m)
+static char *
+_gc_label(void) 
 {
-   Uptime *c;
-   E_Container *con;
-
-   c = m->data;
-   if (!c)
-      return 0;
-   if (!c->face)
-      return 0;
-
-   con = e_container_current_get(e_manager_current_get());
-   if (c->face->con == con)
-      _configure_uptime_module(con, c);
-
-   return 1;
+   return D_("Uptime");
 }
 
-static Uptime *
-_uptime_init(E_Module *m)
+static Evas_Object *
+_gc_icon(Evas *evas) 
 {
-   Uptime *c;
-   E_Menu_Item *mi;
-   Evas_List *mans, *l, *l2;
-
-   c = E_NEW(Uptime, 1);
-
-   if (!c)
-      return NULL;
-
-   c->conf_edd = E_CONFIG_DD_NEW("Uptime_Config", Config);
-#undef T
-#undef D
-#define T Config
-#define D c->conf_edd
-   E_CONFIG_VAL(D, T, check_interval, INT);
-
-   c->conf = e_config_domain_load("module.uptime", c->conf_edd);
-   if (!c->conf)
-     {
-        c->conf = E_NEW(Config, 1);
-
-        c->conf->check_interval = 1;
-     }
-   E_CONFIG_LIMIT(c->conf->check_interval, 0, 60);
-
-   _uptime_config_menu_new(c);
+   Evas_Object *o;
+   char buf[4096];
+   
+   o = edje_object_add(evas);
+   snprintf(buf, sizeof(buf), "%s/module.eap", 
e_module_dir_get(ut_config->module));
+   edje_object_file_set(o, buf, "icon");
+   return o;
+}
 
-   mans = e_manager_list();
-   for (l = mans; l; l = l->next)
+static void 
+_ut_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info) 
+{
+   Instance *inst;
+   Evas_Event_Mouse_Down *ev;
+   
+   if (ut_config->menu) return;
+   
+   inst = data;
+   ev = event_info;
+   if (ev->button == 3)
      {
-        E_Manager *man;
-
-        man = l->data;
-        for (l2 = man->containers; l2; l2 = l2->next)
-          {
-             E_Container *con;
-             Uptime_Face *cf;
-
-             con = l2->data;
-             cf = E_NEW(Uptime_Face, 1);
-
-             if (cf)
-               {
-                  cf->conf_face_edd = E_CONFIG_DD_NEW("Uptime_Face_Config", 
Config_Face);
-
-#undef T
-#undef D
-#define T Config_Face
-#define D cf->conf_face_edd
-                  E_CONFIG_VAL(D, T, enabled, UCHAR);
-
-                  c->face = cf;
-                  cf->uptime = c;
-                  cf->con = con;
-                  cf->evas = con->bg_evas;
-
-                  cf->conf = E_NEW(Config_Face, 1);
-
-                  cf->conf->enabled = 1;
-
-                  if (!_uptime_face_init(cf))
-                     return NULL;
-
-                  _uptime_face_menu_new(cf);
-
-                  mi = e_menu_item_new(c->config_menu);
-                  e_menu_item_label_set(mi, _("Configuration"));
-                  e_menu_item_callback_set(mi, _uptime_face_cb_menu_configure, 
cf);
-
-                  mi = e_menu_item_new(c->config_menu);
-                  e_menu_item_label_set(mi, con->name);
-                  e_menu_item_submenu_set(mi, cf->menu);
-
-                  if (!cf->conf->enabled)
-                     _uptime_face_disable(cf);
-                  else
-                     _uptime_face_enable(cf);
-               }
-          }
+       E_Menu *mn;
+       E_Menu_Item *mi;
+       int x, y, w, h;
+       
+       mn = e_menu_new();
+       e_menu_post_deactivate_callback_set(mn, _ut_menu_cb_post, inst);
+       ut_config->menu = mn;
+       
+       mi = e_menu_item_new(mn);
+       e_menu_item_label_set(mi, D_("Configuration"));
+       e_util_menu_item_edje_icon_set(mi, "enlightenment/configuration");
+       e_menu_item_callback_set(mi, _ut_menu_cb_configure, inst);
+       
+       mi = e_menu_item_new(mn);
+       e_menu_item_separator_set(mi, 1);
+       
+        e_gadcon_client_util_menu_items_append(inst->gcc, mn, 0);
+        e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &x, &y, &w, &h);
+        e_menu_activate_mouse(mn, 
e_util_zone_current_get(e_manager_current_get()),
+                              x + ev->output.x, y + 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);
      }
-   return c;
 }
 
 static void
-_uptime_shutdown(Uptime *c)
+_ut_menu_cb_post(void *data, E_Menu *m) 
 {
-   _uptime_face_free(c->face);
-
-   E_FREE(c->conf);
-   E_CONFIG_DD_FREE(c->conf_edd);
-   E_FREE(c);
+   if (!ut_config->menu) return;
+   e_object_del(E_OBJECT(ut_config->menu));
+   ut_config->menu = NULL;
 }
 
 static void
-_uptime_config_menu_new(Uptime *c)
+_ut_menu_cb_configure(void *data, E_Menu *m, E_Menu_Item *mi) 
 {
-   E_Menu *mn;
-
-   mn = e_menu_new();
-   c->config_menu = mn;
+   Instance *inst;
+   Config_Item *ci;
+   
+   inst = data;
+   ci = _ut_config_item_get(inst->gcc->id);
+   _config_ut_module(ci);
 }
 
-static int
-_uptime_face_init(Uptime_Face *cf)
+static Config_Item *
+_ut_config_item_get(const char *id) 
 {
-   Evas_Object *o;
+   Evas_List *l;
+   Config_Item *ci;
    char buf[4096];
-
-   evas_event_freeze(cf->evas);
-
-   o = edje_object_add(cf->evas);
-   cf->uptime_obj = o;
-
-   if (!e_theme_edje_object_set(o, "base/theme/modules/uptime", 
"modules/uptime/main"))
+   
+   for (l = ut_config->items; l; l = l->next) 
      {
-        snprintf(buf, sizeof(buf), PACKAGE_DATA_DIR "/uptime.edj");
-        edje_object_file_set(o, buf, "modules/uptime/main");
+       ci = l->data;
+       if (!ci->id) continue;
+       if (!strcmp(ci->id, id)) return ci;
      }
-
-   evas_object_show(o);
-
-   o = evas_object_rectangle_add(cf->evas);
-   cf->event_obj = 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, 
_uptime_face_cb_mouse_down, cf);
-   evas_object_show(o);
-
-   cf->gmc = e_gadman_client_new(cf->con->gadman);
-   e_gadman_client_domain_set(cf->gmc, "module.uptime", uptime_count++);
-   e_gadman_client_policy_set(cf->gmc,
-                              E_GADMAN_POLICY_ANYWHERE |
-                              E_GADMAN_POLICY_HMOVE | E_GADMAN_POLICY_HSIZE | 
E_GADMAN_POLICY_VSIZE | E_GADMAN_POLICY_VMOVE);
-   e_gadman_client_auto_size_set(cf->gmc, 40, 40);
-   e_gadman_client_align_set(cf->gmc, 1.0, 1.0);
-   e_gadman_client_resize(cf->gmc, 160, 20);
-   e_gadman_client_change_func_set(cf->gmc, _uptime_face_cb_gmc_change, cf);
-   e_gadman_client_load(cf->gmc);
-   evas_event_thaw(cf->evas);
-
-   cf->monitor = ecore_timer_add((double)cf->uptime->conf->check_interval, 
_uptime_face_update_values, cf);
-   return 1;
+   ci = E_NEW(Config_Item, 1);
+   ci->id = evas_stringshare_add(id);
+   ci->check_interval = 60.0;
+   
+   ut_config->items = evas_list_append(ut_config->items, ci);
+   return ci;
+}
+
+void
+_ut_config_updated(const char *id) 
+{
+   Evas_List *l;
+   Config_Item *ci;
+   
+   if (!ut_config) return;
+   ci = _ut_config_item_get(id);
+   for (l = ut_config->instances; l; l = l->next) 
+     {
+       Instance *inst;
+       
+       inst = l->data;
+       if (!inst->gcc->id) continue;
+       if (!strcmp(inst->gcc->id, ci->id)) 
+         {
+            if (inst->monitor) ecore_timer_del(inst->monitor);
+            inst->monitor = ecore_timer_add(ci->check_interval, _ut_cb_check, 
inst);
+            break;
+         }
+     }
+   return;
 }
 
-static void
-_uptime_face_menu_new(Uptime_Face *cf)
-{
-   E_Menu *mn;
-   E_Menu_Item *mi;
-
-   mn = e_menu_new();
-   cf->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, _uptime_face_cb_menu_configure, cf);
-
-   mi = e_menu_item_new(mn);
-   e_menu_item_label_set(mi, _("Edit Mode"));
-   e_util_menu_item_edje_icon_set(mi, "enlightenment/gadgets");
-   e_menu_item_callback_set(mi, _uptime_face_cb_menu_edit, cf);
-}
+EAPI E_Module_Api e_modapi = {
+   E_MODULE_API_VERSION,
+   "Uptime"
+};
 
-static void
-_uptime_face_enable(Uptime_Face *cf)
+EAPI void *
+e_modapi_init(E_Module *m)
 {
-   cf->conf->enabled = 1;
-   e_config_save_queue();
-   evas_object_show(cf->uptime_obj);
-   /* evas_object_show(cf->chart_obj); */
-   evas_object_show(cf->event_obj);
-}
+   bindtextdomain(PACKAGE, LOCALEDIR);
+   bind_textdomain_codeset(PACKAGE, "UTF-8");
 
-static void
-_uptime_face_disable(Uptime_Face *cf)
-{
-   cf->conf->enabled = 0;
-   e_config_save_queue();
-   evas_object_hide(cf->event_obj);
-   /* evas_object_hide(cf->chart_obj); */
-   evas_object_hide(cf->uptime_obj);
+   conf_item_edd = E_CONFIG_DD_NEW("Uptime_Config_Item", Config_Item);
+   #undef T
+   #undef D
+   #define T Config_Item
+   #define D conf_item_edd
+   E_CONFIG_VAL(D, T, id, STR);
+   E_CONFIG_VAL(D, T, check_interval, DOUBLE);
+   
+   conf_edd = E_CONFIG_DD_NEW("Uptime_Config", Config);
+   #undef T
+   #undef D
+   #define T Config
+   #define D conf_edd
+   E_CONFIG_LIST(D, T, items, conf_item_edd);
+   
+   ut_config = e_config_domain_load("module.uptime", conf_edd);
+   if (!ut_config) 
+     {
+       Config_Item *ci;
+       char buf[4096];
+       
+       ut_config = E_NEW(Config, 1);
+       ci = E_NEW(Config_Item, 1);
+       ci->id = evas_stringshare_add("0");
+       ci->check_interval = 60.0;
+       ut_config->items = evas_list_append(ut_config->items, ci);
+     }
+   ut_config->module = m;
+   e_gadcon_provider_register(&_gc_class);
+   return 1;
 }
 
-static void
-_uptime_face_free(Uptime_Face *cf)
+EAPI int
+e_modapi_shutdown(E_Module *m)
 {
-   if (cf->monitor)
-      ecore_timer_del(cf->monitor);
-   if (cf->menu)
-      e_object_del(E_OBJECT(cf->menu));
-   if (cf->event_obj)
-      evas_object_del(cf->event_obj);
-   if (cf->uptime_obj)
-      evas_object_del(cf->uptime_obj);
-
-   /*
-    * if (cf->chart_obj)
-    * evas_object_del(cf->chart_obj);
-    */
-
-   if (cf->gmc)
+   ut_config->module = NULL;
+   e_gadcon_provider_unregister(&_gc_class);
+   
+   if (ut_config->config_dialog) 
+     e_object_del(E_OBJECT(ut_config->config_dialog));
+   
+   if (ut_config->menu) 
      {
-        e_gadman_client_save(cf->gmc);
-        e_object_del(E_OBJECT(cf->gmc));
+       e_menu_post_deactivate_callback_set(ut_config->menu, NULL, NULL);
+       e_object_del(E_OBJECT(ut_config->menu));
+       ut_config->menu = NULL;
      }
-
-   E_FREE(cf->conf);
-   E_FREE(cf);
-   uptime_count--;
+   while (ut_config->items) 
+     {
+       Config_Item *ci;
+       
+       ci = ut_config->items->data;
+       ut_config->items = evas_list_remove_list(ut_config->items, 
ut_config->items);
+       if (ci->id) evas_stringshare_del(ci->id);
+       free(ci);
+     }
+   free(ut_config);
+   ut_config = NULL;
+   E_CONFIG_DD_FREE(conf_item_edd);
+   E_CONFIG_DD_FREE(conf_edd);
+   return 1;
 }
 
-static void
-_uptime_face_cb_gmc_change(void *data, E_Gadman_Client *gmc, E_Gadman_Change 
change)
+EAPI int
+e_modapi_save(E_Module *m)
 {
-   Uptime_Face *cf;
-   Evas_Coord x, y, w, h;
-
-   cf = data;
-   switch (change)
+   Evas_List *l;
+   
+   for (l = ut_config->instances; l; l = l->next) 
      {
-     case E_GADMAN_CHANGE_MOVE_RESIZE:
-        e_gadman_client_geometry_get(cf->gmc, &x, &y, &w, &h);
-        evas_object_move(cf->uptime_obj, x, y);
-        /* evas_object_move(cf->chart_obj, x, y); */
-        evas_object_move(cf->event_obj, x, y);
-        evas_object_resize(cf->uptime_obj, w, h);
-        /* evas_object_resize(cf->chart_obj, w, h); */
-        evas_object_resize(cf->event_obj, w, h);
-        break;
-     case E_GADMAN_CHANGE_RAISE:
-        evas_object_raise(cf->uptime_obj);
-        /* evas_object_raise(cf->chart_obj); */
-        evas_object_raise(cf->event_obj);
-        break;
-     default:
-        break;
+       Instance *inst;
+       Config_Item *ci;
+       
+       inst = l->data;
+       ci = _ut_config_item_get(inst->gcc->id);
+       if (ci->id) evas_stringshare_del(ci->id);
+       ci->id = evas_stringshare_add(inst->gcc->id);
      }
+   e_config_domain_save("module.uptime", conf_edd, ut_config);
+   return 1;
 }
 
-static void
-_uptime_face_cb_mouse_down(void *data, Evas *evas, Evas_Object *obj, void 
*event_info)
+EAPI int
+e_modapi_about(E_Module *m)
 {
-   Uptime_Face *cf;
-   Evas_Event_Mouse_Down *ev;
-
-   ev = event_info;
-   cf = data;
-   if (ev->button == 3)
-     {
-        e_menu_activate_mouse(cf->menu, e_zone_current_get(cf->con),
-                              ev->output.x, ev->output.y, 1, 1, 
E_MENU_POP_DIRECTION_DOWN, ev->timestamp);
-        e_util_container_fake_mouse_up_all_later(cf->con);
-     }
+   e_module_dialog_show(D_("Enlightenment Uptime Monitor Module"), 
+                       D_("This module is used to monitor uptime."));
+   return 1;
 }
 
-static void
-_uptime_face_cb_menu_edit(void *data, E_Menu *mn, E_Menu_Item *mi)
+static Uptime *
+_ut_new(Evas *evas) 
 {
-   Uptime_Face *cf;
+   Uptime *ut;
+   char buf[4096];
+   
+   ut = E_NEW(Uptime, 1);
+   snprintf(buf, sizeof(buf), "%s/uptime.edj", 
e_module_dir_get(ut_config->module));
+
+   ut->ut_obj = edje_object_add(evas);
+   if (!e_theme_edje_object_set(ut->ut_obj, "base/theme/modules/uptime", 
"modules/uptime/main"))
+     edje_object_file_set(ut->ut_obj, buf, "modules/uptime/main");
 
-   cf = data;
-   e_gadman_mode_set(cf->gmc->gadman, E_GADMAN_MODE_EDIT);
+   evas_object_show(ut->ut_obj);   
+   return ut;
 }
 
 static void
-_uptime_face_cb_menu_configure(void *data, E_Menu *mn, E_Menu_Item *mi)
+_ut_free(Uptime *ut) 
 {
-   Uptime_Face *cf;
-
-   cf = data;
-   _configure_uptime_module(cf->con, cf->uptime);
+   evas_object_del(ut->ut_obj);
+   free(ut);
 }
 
 static int
-_uptime_face_update_values(void *data)
+_ut_cb_check(void *data)
 {
-   Uptime_Face *cf;
+   Instance *inst;
    char u_date_time[256];
    struct sysinfo s_info;
    long minute = 60;
    long hour = minute * 60;
    long day = hour * 24;
 
-   cf = data;
+   inst = data;
+   if (!inst) return 0;
+
    sysinfo(&s_info);
    sprintf(u_date_time, D_("uptime: %ld days, %ld:%02ld:%02ld"),
            s_info.uptime / day, (s_info.uptime % day) / hour, (s_info.uptime % 
hour) / minute, s_info.uptime % minute);
-   edje_object_part_text_set(cf->uptime_obj, "uptime", u_date_time);
+   edje_object_part_text_set(inst->ut->ut_obj, "uptime", u_date_time);
+   
    return 1;
 }
===================================================================
RCS file: /cvs/e/e_modules/uptime/e_mod_main.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- e_mod_main.h        3 Jun 2006 13:26:01 -0000       1.4
+++ e_mod_main.h        9 Jun 2006 11:42:59 -0000       1.5
@@ -4,47 +4,21 @@
 #define E_MOD_MAIN_H
 
 typedef struct _Config Config;
-typedef struct _Config_Face Config_Face;
-typedef struct _Uptime Uptime;
-typedef struct _Uptime_Face Uptime_Face;
+typedef struct _Config_Item Config_Item;
 
 struct _Config
 {
-   unsigned char hostname;
-   int check_interval;
-};
-
-struct _Config_Face
-{
-   unsigned char enabled;
-};
-
-struct _Uptime
-{
-   E_Menu *config_menu;
-   Uptime_Face *face;
-   Config *conf;
-
-   E_Config_DD *conf_edd;
-   E_Config_Dialog *cfd;
+   E_Module *module;
+   E_Config_Dialog *config_dialog;
+   E_Menu *menu;
+   Evas_List *instances;
+   Evas_List *items;
 };
 
-struct _Uptime_Face
+struct _Config_Item
 {
-   Evas *evas;
-   E_Container *con;
-   E_Menu *menu;
-   Uptime *uptime;
-
-   Config_Face *conf;
-   E_Config_DD *conf_face_edd;
-
-   Evas_Object *uptime_obj;
-   Evas_Object *event_obj;
-
-   Ecore_Timer *monitor;
-
-   E_Gadman_Client *gmc;
+   const char *id;
+   int check_interval;
 };
 
 EAPI extern E_Module_Api e_modapi;
@@ -53,6 +27,8 @@
 EAPI int e_modapi_shutdown(E_Module *m);
 EAPI int e_modapi_save(E_Module *m);
 EAPI int e_modapi_about(E_Module *m);
-EAPI int e_modapi_config(E_Module *m);
+
+void _config_ut_module(Config_Item *ci);
+extern Config *ut_config;
 
 #endif
===================================================================
RCS file: /cvs/e/e_modules/uptime/uptime.edc,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- uptime.edc  21 May 2006 08:18:19 -0000      1.5
+++ uptime.edc  9 Jun 2006 11:42:59 -0000       1.6
@@ -19,7 +19,7 @@
               {
                  name: "base";
                  type: RECT;
-                 mouse_events: 0;
+                 mouse_events: 1;
                  description
                    {
                       state: "default" 0.0;
@@ -33,7 +33,7 @@
                  type,           TEXT;
                  clip_to: "base";
                  effect,         OUTLINE_SOFT_SHADOW;
-                 mouse_events, 0;
+                 mouse_events, 1;
                  description
                    {
                       state: "default" 0.0;
@@ -48,7 +48,7 @@
                            relative: 1.0 1.0;
                         }
                       color: 255 255 255 255;
-             color2: 64 64 64 255;
+                      color2: 64 64 64 255;
                       color3: 128 128 128 192;
                       text
                         {
@@ -60,8 +60,7 @@
                         }
                    }
               }
-         } 
+         }
      }
 }
-
 




_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to