Enlightenment CVS committal

Author  : devilhorns
Project : e_modules
Module  : cpu

Dir     : e_modules/cpu


Modified Files:
        e_mod_main.c 


Log Message:
Revert e_mod_main.c also.

===================================================================
RCS file: /cvs/e/e_modules/cpu/e_mod_main.c,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -3 -r1.38 -r1.39
--- e_mod_main.c        26 Aug 2007 11:37:06 -0000      1.38
+++ e_mod_main.c        26 Aug 2007 15:16:43 -0000      1.39
@@ -1,5 +1,5 @@
 /*
- * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2(0
+ * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
  */
 #include <e.h>
 #include "e_mod_main.h"
@@ -18,11 +18,6 @@
    E_Gadcon_Client *gcc;
    Cpu             *cpu;
    Ecore_Timer     *timer;
-
-   E_Gadcon_Popup  *popup;
-   Evas_Object     *o_bg, *o_chart[4], *o_poly[4];
-   Evas_List       *points[4];
-   int             chart_colors[4][4];
 };
 
 struct _Cpu 
@@ -40,12 +35,13 @@
 static int _set_cpu_load(void *data);
 static int _get_cpu_count(void);
 static int _get_cpu_load(void);
-static void _graph_values(Instance *inst);
+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 void _cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void 
*event_info);
-static void _cb_mouse_in(void *data, Evas *e, Evas_Object *obj, void 
*event_info);
-static void _cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void 
*event_info);
-static void _cpu_menu_cb_configure (void *data, E_Menu * m, E_Menu_Item * mi);
+static void _cpu_menu_fast(void *data, E_Menu *m, E_Menu_Item *mi);
+static void _cpu_menu_medium(void *data, E_Menu *m, E_Menu_Item *mi);
+static void _cpu_menu_normal(void *data, E_Menu *m, E_Menu_Item *mi);
+static void _cpu_menu_slow(void *data, E_Menu *m, E_Menu_Item *mi);
+static void _cpu_menu_very_slow(void *data, E_Menu *m, E_Menu_Item *mi);
 
 static E_Config_DD *conf_edd = NULL;
 static E_Config_DD *conf_item_edd = NULL;
@@ -54,7 +50,7 @@
 
 static int cpu_count;
 static int cpu_stats[4];
-static float update_poll_time;
+static float update_interval;
 
 static const E_Gadcon_Client_Class _gc_class = 
 {
@@ -69,10 +65,7 @@
    Instance        *inst;
    Config_Item     *ci;
    E_Gadcon_Client *gcc;
-   const char     *color_string;
    char             buf[4096];
-   int             i;
-
 
    cpu_count = _get_cpu_count();
    
@@ -90,66 +83,21 @@
    
    cpu->o_icon = edje_object_add(gc->evas);
    if (!e_theme_edje_object_set(cpu->o_icon, 
-                               "base/theme/modules", "modules/cpu/main"))
+                               "base/theme/modules/cpu", "modules/cpu/main"))
      edje_object_file_set(cpu->o_icon, buf, "modules/cpu/main");
    evas_object_show(cpu->o_icon);
    
    gcc = e_gadcon_client_new(gc, name, id, style, cpu->o_icon);
-   gcc->data   = inst;
-   inst->gcc   = gcc;
-   inst->cpu   = cpu;
-
-   inst->popup = e_gadcon_popup_new(gcc, NULL);
-   inst->o_bg  = edje_object_add(inst->popup->win->evas);
-   if (!e_theme_edje_object_set(inst->o_bg, 
-                               "base/theme/modules", "modules/cpu/popup"))
-     edje_object_file_set(inst->o_bg, buf, "modules/cpu/popup");
-
-   for (i = 0; i < cpu_count && i < 4; i++)
-     {
-       snprintf(buf, sizeof(buf), "chart%d", i + 1);
-       inst->o_chart[i] = edje_object_add(inst->popup->win->evas);
-       evas_object_layer_set(inst->o_chart[i], 1);
-       edje_object_part_swallow(inst->o_bg, buf, inst->o_chart[i]);
-
-       inst->o_poly[i] = evas_object_polygon_add(inst->popup->win->evas);
-       evas_object_layer_set(inst->o_poly[i], 1);
-       evas_object_anti_alias_set(inst->o_poly[i], 1);
-
-       evas_object_show(inst->o_chart[i]);
-       evas_object_show(inst->o_poly[i]);
-
-       snprintf(buf, sizeof(buf), "chart_color%d", i + 1);
-       color_string = edje_object_data_get(inst->o_bg, buf);
-       if (!color_string || sscanf(color_string, "%d %d %d %d",
-                                   &inst->chart_colors[i][0],
-                                   &inst->chart_colors[i][1],
-                                   &inst->chart_colors[i][2],
-                                   &inst->chart_colors[i][3]) != 4)
-         {
-            inst->chart_colors[i][0] = 55;
-            inst->chart_colors[i][1] = 110;
-            inst->chart_colors[i][2] = 250;
-            inst->chart_colors[i][3] = 155;
-         }
-     }
-
-   snprintf(buf, sizeof(buf), "e,state,orientation,%d",
-           cpu_count > 4 ? 4 : cpu_count);
-   edje_object_signal_emit(inst->o_bg, buf, "e");
-
-   e_gadcon_popup_content_set(inst->popup, inst->o_bg);
+   gcc->data = inst;
+   inst->gcc = gcc;
+   inst->cpu = cpu;
 
    cpu_conf->instances = evas_list_append(cpu_conf->instances, inst);
 
    evas_object_event_callback_add(cpu->o_icon, EVAS_CALLBACK_MOUSE_DOWN,
-                                 _cb_mouse_down, inst);
-   evas_object_event_callback_add(cpu->o_icon, EVAS_CALLBACK_MOUSE_IN,
-                                  _cb_mouse_in, inst);
-   evas_object_event_callback_add(cpu->o_icon, EVAS_CALLBACK_MOUSE_OUT,
-                                  _cb_mouse_out, inst);
+                                 _button_cb_mouse_down, inst);
 
-   inst->timer = ecore_timer_add(ci->poll_time, _set_cpu_load, inst);
+   inst->timer = ecore_timer_add(ci->interval, _set_cpu_load, inst);
    return gcc;
 }
 
@@ -162,8 +110,6 @@
    inst = gcc->data;
    cpu = inst->cpu;
 
-   if (inst->popup)
-     e_object_del(E_OBJECT(inst->popup));
    if (inst->timer)
      ecore_timer_del(inst->timer);
    if (cpu->o_icon)
@@ -215,17 +161,15 @@
        if (!ci->id) continue;
        if (!strcmp(ci->id, id))
          {
-            update_poll_time = ci->poll_time;
+            update_interval = ci->interval;
             return ci;
          }
      }
 
    ci = E_NEW(Config_Item, 1);
    ci->id = evas_stringshare_add(id);
-   ci->poll_time = 1;
-   ci->show_popup = 1;
-   ci->max_points = 20;
-   update_poll_time = ci->poll_time;
+   ci->interval = 1;
+   update_interval = ci->interval;
    
    cpu_conf->items = evas_list_append(cpu_conf->items, ci);
    return ci;
@@ -234,12 +178,10 @@
 static int 
 _set_cpu_load(void *data) 
 {
-   Instance    *inst;
-   Cpu         *cpu;
-   Config_Item *ci;
-   Evas_List   *l;
-   int          i = 0, *p;
-   char         str[100], str_tmp[100];
+   Instance *inst;
+   Cpu      *cpu;
+   int       i = 0;
+   char      str[100], str_tmp[100];
 
    if (cpu_count == -1) return 0;
 
@@ -250,31 +192,10 @@
    
    _get_cpu_load();
 
-   ci = _config_item_get(inst->gcc->id);
-
-   for (i = 0; i < cpu_count; i++)
-     {
-       p = (int *) malloc(sizeof(int));
-       *p = cpu_stats[i];
-
-       if (evas_list_count(inst->points[i]) < ci->max_points)
-         {
-            inst->points[i] = evas_list_prepend(inst->points[i], p);
-            l = evas_list_last(inst->points[i]);
-            l->next = inst->points[i];
-            inst->points[i]->prev = l;
-         }
-       else
-         {
-            inst->points[i] = inst->points[i]->prev;
-            if (inst->points[i]->data) free(inst->points[i]->data);
-            inst->points[i]->data = p;
-         }
-     }
-
-   _graph_values(inst);
-
-   snprintf(str, sizeof(str), "%d%%", cpu_stats[0]);
+   if (cpu_count == 1)
+     snprintf(str, sizeof(str), "<br>%d%%", cpu_stats[0]);
+   else
+     snprintf(str, sizeof(str), "%d%%", cpu_stats[0]);
    
    i = 1;
    while (i < cpu_count)
@@ -337,7 +258,7 @@
    new_used = cp_time[CP_USER] + cp_time[CP_NICE] + cp_time[CP_SYS];
    new_tot = new_used + cp_time[CP_IDLE];
 
-   cpu_stats[0] = (100 * (float)(new_used - old_used) / (float)(new_tot - 
old_tot)) / update_poll_time;
+   cpu_stats[0] = (100 * (float)(new_used - old_used) / (float)(new_tot - 
old_tot)) / update_interval;
 
    old_tot = new_tot;
    old_used = new_used; 
@@ -379,7 +300,7 @@
             tmp_s = ((new_s - old_s[i]));
          }
        
-       cpu_stats[i] = (tmp_u + tmp_n + tmp_s) / update_poll_time;
+       cpu_stats[i] = (tmp_u + tmp_n + tmp_s) / update_interval;
 
        old_u[i] = new_u;
        old_n[i] = new_n;
@@ -398,113 +319,70 @@
 }
 
 static void
-_graph_values(Instance *inst)
-{
-   Config_Item *ci;
-   Evas_List *l;
-   int i, m, p, v, step = 3;
-   float coeff;
-
-   if (!inst->popup->win->visible) return;
-
-   ci = _config_item_get(inst->gcc->id);
-   for (i = 0; i < cpu_count; i++)
-     {
-       Evas_Coord w = 0, h = 0, x = 0, y = 0;
-
-       evas_object_polygon_points_clear(inst->o_poly[i]);
-       evas_object_geometry_get(inst->o_chart[i], &x, &y, &w, &h);
-
-       coeff = (float) -h / 100;
-       step = ((int) ((float) w / (float) ci->max_points + 0.5));
-       if (step < 1) step = 1;
-       if (step * ci->max_points < w) step++;
-
-       /* Lower right */
-       evas_object_polygon_point_add(inst->o_poly[i], p = (x + w), m = (y + 
h));
-       for (l = inst->points[i]; l && p >= x; l = l->next, p = p - step)
-         {
-            v = m + (*(int *) l->data) * coeff;
-            evas_object_polygon_point_add(inst->o_poly[i], p, v);
-            if (l->next == inst->points[i]) break;
-         }
-       if (p > x)
-         evas_object_polygon_point_add(inst->o_poly[i], p, m);
-       /* Lower left */
-       evas_object_polygon_point_add(inst->o_poly[i], x, m);
-       evas_object_color_set(inst->o_poly[i],
-                             inst->chart_colors[i][0],
-                             inst->chart_colors[i][1],
-                             inst->chart_colors[i][2],
-                             inst->chart_colors[i][3]);
-     }
-}
-
-void
-_cpu_config_updated(const char *id)
-{
-  Evas_List *l;
-  Config_Item *ci;
-
-  if (!cpu_conf)
-    return;
-  ci = _config_item_get(id);
-  for (l = cpu_conf->instances; l; l = l->next)
-    {
-      Instance *inst;
-
-      inst = l->data;
-      if (!inst->gcc->id)
-       continue;
-
-      if (!strcmp(inst->gcc->id, ci->id))
-       {
-         if (inst->timer)
-           ecore_timer_del(inst->timer);
-         inst->timer =
-           ecore_timer_add(ci->poll_time, _set_cpu_load, inst);
-
-         if (!ci->show_popup)
-           {
-              if (inst->popup->pinned)
-                e_gadcon_popup_toggle_pinned(inst->popup);
-              e_gadcon_popup_hide(inst->popup);
-           }
-
-         break;
-       }
-    }
-}
-
-static void
-_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
+_button_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
 {
    Instance *inst;
    Evas_Event_Mouse_Down *ev;
    
    inst = data;
    ev = event_info;
-   if (ev->button == 1)
-     e_gadcon_popup_toggle_pinned(inst->popup);
    if ((ev->button == 3) && (!cpu_conf->menu))
      {
        E_Menu *mn;
        E_Menu_Item *mi;
        int cx, cy, cw, ch;
+       Config_Item *ci;
+       
+       ci = _config_item_get(inst->gcc->id);
 
        mn = e_menu_new();
-       cpu_conf->menu = mn;
-       e_menu_post_deactivate_callback_set(mn, _menu_cb_post, inst);
+       cpu_conf->menu_interval = 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, _cpu_menu_cb_configure, inst);
+       e_menu_item_label_set(mi, _("Fast (0.5 sec)"));
+       e_menu_item_radio_set(mi, 1);
+       e_menu_item_radio_group_set(mi, 1);
+       if (ci->interval <= 0.5) e_menu_item_toggle_set(mi, 1);
+       e_menu_item_callback_set(mi, _cpu_menu_fast, inst);
+
+       mi = e_menu_item_new(mn);
+       e_menu_item_label_set(mi, _("Medium (1 sec)"));
+       e_menu_item_radio_set(mi, 1);
+       e_menu_item_radio_group_set(mi, 1);
+       if (ci->interval > 0.5) e_menu_item_toggle_set(mi, 1);
+       e_menu_item_callback_set(mi, _cpu_menu_medium, inst);
+
+       mi = e_menu_item_new(mn);
+       e_menu_item_label_set(mi, _("Normal (2 sec)"));
+       e_menu_item_radio_set(mi, 1);
+       e_menu_item_radio_group_set(mi, 1);
+       if (ci->interval >= 2.0) e_menu_item_toggle_set(mi, 1);
+       e_menu_item_callback_set(mi, _cpu_menu_normal, inst);
+
+       mi = e_menu_item_new(mn);
+       e_menu_item_label_set(mi, _("Slow (5 sec)"));
+       e_menu_item_radio_set(mi, 1);
+       e_menu_item_radio_group_set(mi, 1);
+       if (ci->interval >= 5.0) e_menu_item_toggle_set(mi, 1);
+       e_menu_item_callback_set(mi, _cpu_menu_slow, inst);
 
        mi = e_menu_item_new(mn);
-       e_menu_item_separator_set(mi, 1);
+       e_menu_item_label_set(mi, _("Very Slow (30 sec)"));
+       e_menu_item_radio_set(mi, 1);
+       e_menu_item_radio_group_set(mi, 1);
+       if (ci->interval >= 30.0) e_menu_item_toggle_set(mi, 1);
+       e_menu_item_callback_set(mi, _cpu_menu_very_slow, inst);
+
+       mn = e_menu_new();
+       cpu_conf->menu = mn;
+       e_menu_post_deactivate_callback_set(mn, _menu_cb_post, inst);
+       
+       mi = e_menu_item_new(mn);
+       e_menu_item_label_set(mi, _("Time Between Updates"));
+       e_menu_item_submenu_set(mi, cpu_conf->menu_interval);
 
         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()),
@@ -515,62 +393,90 @@
      }
 }
 
-static void 
-_cb_mouse_in(void *data, Evas *e, Evas_Object *obj, void *event_info)
+static void
+_menu_cb_post(void *data, E_Menu *m)
+{
+   if (!cpu_conf->menu) return;
+   e_object_del(E_OBJECT(cpu_conf->menu));
+   cpu_conf->menu = NULL;
+   if (cpu_conf->menu_interval)
+     e_object_del(E_OBJECT(cpu_conf->menu_interval));
+   cpu_conf->menu_interval = NULL;
+}
+   
+static void
+_cpu_menu_fast(void *data, E_Menu *m, E_Menu_Item *mi)
 {
    Instance *inst;
    Config_Item *ci;
-
-   if (!(inst = data)) return;
+   
+   inst = data;
    ci = _config_item_get(inst->gcc->id);
-   if (!ci->show_popup) return;
 
-   e_gadcon_popup_show(inst->popup);
-   _graph_values(inst);
+   ci->interval = 0.5;
+   ecore_timer_del(inst->timer);
+   inst->timer = ecore_timer_add(ci->interval, _set_cpu_load, inst);
+   e_config_save_queue();
 }
 
-static void 
-_cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void *event_info)
+static void
+_cpu_menu_medium(void *data, E_Menu *m, E_Menu_Item *mi)
 {
    Instance *inst;
    Config_Item *ci;
    
-   if (!(inst = data)) return;
+   inst = data;
    ci = _config_item_get(inst->gcc->id);
-   if (!ci->show_popup) return;
 
-   e_gadcon_popup_hide(inst->popup);
+   ci->interval = 1.0;
+   ecore_timer_del(inst->timer);
+   inst->timer = ecore_timer_add(ci->interval, _set_cpu_load, inst);
+   e_config_save_queue();
 }
 
 static void
-_menu_cb_post(void *data, E_Menu *m)
+_cpu_menu_normal(void *data, E_Menu *m, E_Menu_Item *mi)
 {
-   if (!cpu_conf->menu) return;
-   e_object_del(E_OBJECT(cpu_conf->menu));
-   cpu_conf->menu = NULL;
-}
+   Instance *inst;
+   Config_Item *ci;
    
+   inst = data;
+   ci = _config_item_get(inst->gcc->id);
+
+   ci->interval = 2.0;
+   ecore_timer_del(inst->timer);
+   inst->timer = ecore_timer_add(ci->interval, _set_cpu_load, inst);
+   e_config_save_queue();
+}
+
 static void
-_cpu_menu_cb_configure (void *data, E_Menu * m, E_Menu_Item * mi)
+_cpu_menu_slow(void *data, E_Menu *m, E_Menu_Item *mi)
 {
    Instance *inst;
    Config_Item *ci;
-   int i, max = 0, w = 0;
-
+   
    inst = data;
-   ci = _config_item_get (inst->gcc->id);
+   ci = _config_item_get(inst->gcc->id);
 
-   for (i = 0; i < cpu_count && i < 4; i++)
-     {
-       evas_object_geometry_get(inst->o_chart[i],
-                                NULL, NULL,
-                                &w, NULL);
+   ci->interval = 5.0;
+   ecore_timer_del(inst->timer);
+   inst->timer = ecore_timer_add(ci->interval, _set_cpu_load, inst);
+   e_config_save_queue();
+}
 
-       if (w > max)
-         max = w;
-     }
+static void
+_cpu_menu_very_slow(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   Instance *inst;
+   Config_Item *ci;
+   
+   inst = data;
+   ci = _config_item_get(inst->gcc->id);
 
-   _config_cpu_module(ci, max);
+   ci->interval = 30.0;
+   ecore_timer_del(inst->timer);
+   inst->timer = ecore_timer_add(ci->interval, _set_cpu_load, inst);
+   e_config_save_queue();
 }
 
 EAPI E_Module_Api e_modapi = 
@@ -589,9 +495,7 @@
    #undef D
    #define D conf_item_edd
    E_CONFIG_VAL(D, T, id, STR);
-   E_CONFIG_VAL(D, T, poll_time, DOUBLE);
-   E_CONFIG_VAL(D, T, show_popup, INT);
-   E_CONFIG_VAL(D, T, max_points, INT);
+   E_CONFIG_VAL(D, T, interval, DOUBLE);
    
    #undef T
    #define T Config
@@ -607,9 +511,7 @@
        cpu_conf = E_NEW(Config, 1);
        ci = E_NEW(Config_Item, 1);
        ci->id = evas_stringshare_add("0");
-       ci->poll_time = 1;
-       ci->show_popup = 1;
-       ci->max_points = 20;
+       ci->interval = 1;
        
        cpu_conf->items = evas_list_append(cpu_conf->items, ci);
      }
@@ -633,7 +535,7 @@
        cpu_conf->menu = NULL;
      }
 
-   while (cpu_conf->items) 
+   while(cpu_conf->items) 
      {
        Config_Item *ci;
        



-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to