Enlightenment CVS committal Author : devilhorns Project : e_modules Module : cpu
Dir : e_modules/cpu Modified Files: cpu.edc e_mod_main.h e_mod_main.c Log Message: Ok, cpu module has a graph now. I'll make the config options for graph and/or text later tonight. =================================================================== RCS file: /cvsroot/enlightenment/e_modules/cpu/cpu.edc,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- cpu.edc 26 Feb 2006 12:29:39 -0000 1.5 +++ cpu.edc 27 Feb 2006 15:11:58 -0000 1.6 @@ -21,8 +21,6 @@ state: "default" 0.0; aspect: 1.0 1.0; align: 0.5 0.5; - min: 45 50; - max: 128 128; rel1 { relative: 0.0 0.0; } @@ -78,6 +76,23 @@ } } + part { + name, "lines"; + mouse_events, 0; + type, SWALLOW; + clip_to: "fade_clip"; + description { + state, "default" 0.0; + rel1 { + relative: 0.0 0.0; + } + rel2 { + relative: 1.0 1.0; + } + color, 0 0 0 0; + } + } + } }//close group net } =================================================================== RCS file: /cvsroot/enlightenment/e_modules/cpu/e_mod_main.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- e_mod_main.h 20 Feb 2006 12:53:50 -0000 1.2 +++ e_mod_main.h 27 Feb 2006 15:11:58 -0000 1.3 @@ -32,12 +32,14 @@ E_Container *con; E_Menu *menu; Cpu *cpu; - + Evas_List *old_values; + Config_Face *conf; E_Config_DD *conf_face_edd; Evas_Object *cpu_obj; Evas_Object *event_obj; + Evas_Object *chart_obj; Ecore_Timer *monitor; =================================================================== RCS file: /cvsroot/enlightenment/e_modules/cpu/e_mod_main.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- e_mod_main.c 26 Feb 2006 12:21:58 -0000 1.6 +++ e_mod_main.c 27 Feb 2006 15:11:58 -0000 1.7 @@ -18,7 +18,8 @@ static int _cpu_face_update_values (void *data); static int _cpu_face_get_cpu_count (Cpu_Face *cf); static int _cpu_face_get_load (Cpu_Face *cf); -//static void _cpu_face_graph_values (Cpu_Face *cf, int val); +static void _cpu_face_graph_values (Cpu_Face *cf, int val); +static void _cpu_face_graph_clear (Cpu_Face *cf); static int cpu_count; @@ -227,18 +228,16 @@ { snprintf(buf, sizeof(buf), PACKAGE_DATA_DIR"/cpu.edj"); edje_object_file_set(o, buf, "modules/cpu/main"); - } - + } evas_object_show(o); - /* - o = evas_object_rectangle_add(cf->evas); - cf->chart_clip_obj = o; + o = edje_object_add(cf->evas); //evas_object_rectangle_add(cf->evas); + cf->chart_obj = o; evas_object_layer_set(o, 1); evas_object_repeat_events_set(o, 0); - evas_object_color_set(o, 255, 255, 255, 100); + evas_object_pass_events_set(o, 1); + evas_object_color_set(o, 255, 255, 255, 255); evas_object_show(o); - */ o = evas_object_rectangle_add(cf->evas); cf->event_obj = o; @@ -259,10 +258,9 @@ E_GADMAN_POLICY_VSIZE); e_gadman_client_min_size_set(cf->gmc, 45, 50); e_gadman_client_max_size_set(cf->gmc, 128, 128); - e_gadman_client_auto_size_set(cf->gmc, 40, 40); + e_gadman_client_auto_size_set(cf->gmc, 45, 50); e_gadman_client_align_set(cf->gmc, 1.0, 1.0); - //e_gadman_client_aspect_set(cf->gmc, 1.0, 1.0); - e_gadman_client_resize(cf->gmc, 40, 40); + e_gadman_client_resize(cf->gmc, 45, 50); e_gadman_client_change_func_set(cf->gmc, _cpu_face_cb_gmc_change, cf); e_gadman_client_load(cf->gmc); evas_event_thaw(cf->evas); @@ -297,7 +295,7 @@ cf->conf->enabled = 1; e_config_save_queue(); evas_object_show(cf->cpu_obj); - /* evas_object_show(cf->chart_obj); */ + evas_object_show(cf->chart_obj); evas_object_show(cf->event_obj); } @@ -307,7 +305,7 @@ cf->conf->enabled = 0; e_config_save_queue(); evas_object_hide(cf->event_obj); - /* evas_object_hide(cf->chart_obj); */ + evas_object_hide(cf->chart_obj); evas_object_hide(cf->cpu_obj); } @@ -322,11 +320,10 @@ evas_object_del(cf->event_obj); if (cf->cpu_obj) evas_object_del(cf->cpu_obj); - - /* if (cf->chart_obj) evas_object_del(cf->chart_obj); - */ + if (cf->old_values) + _cpu_face_graph_clear(cf); if (cf->gmc) { @@ -349,17 +346,21 @@ switch (change) { case E_GADMAN_CHANGE_MOVE_RESIZE: + if (cf->monitor) + ecore_timer_del(cf->monitor); e_gadman_client_geometry_get(cf->gmc, &x, &y, &w, &h); - evas_object_move(cf->cpu_obj, x, y); - //evas_object_move(cf->chart_clip_obj, x, y); + evas_object_move(cf->chart_obj, x, y); evas_object_move(cf->event_obj, x, y); - evas_object_resize(cf->cpu_obj, w, h); - //evas_object_resize(cf->chart_clip_obj, w, h); + evas_object_move(cf->cpu_obj, x, y); + evas_object_resize(cf->chart_obj, w, h); evas_object_resize(cf->event_obj, w, h); + evas_object_resize(cf->cpu_obj, w, h); + _cpu_face_graph_clear(cf); + cf->monitor = ecore_timer_add((double)cf->cpu->conf->check_interval, _cpu_face_update_values, cf); break; case E_GADMAN_CHANGE_RAISE: evas_object_raise(cf->cpu_obj); - //evas_object_raise(cf->chart_clip_obj); + evas_object_raise(cf->chart_obj); evas_object_raise(cf->event_obj); break; default: @@ -411,11 +412,14 @@ cf = data; val = _cpu_face_get_load(cf); + if (val == -1) return 1; snprintf(str, sizeof(str), "%d %%", val); edje_object_part_text_set(cf->cpu_obj, "in-text", str); + + _cpu_face_graph_values(cf, val); return 1; } @@ -492,33 +496,68 @@ old_si = new_si; if (load >= 100) - return 100; + load = 100; + return load; } -/* static void _cpu_face_graph_values(Cpu_Face *cf, int val) { - double factor = 0.0; - int value = 0; int x, y, w, h; Evas_Object *o; - - evas_object_geometry_get(cf->cpu_obj, &x, &y, &w, &h); + Evas_Object *last = NULL; + Evas_List *l; + int i, j = 0; - factor = ((double)h) / ((double)100); - value = (int)(((double)val) * factor); - if (value == 0) - return; + evas_object_geometry_get(cf->chart_obj, &x, &y, &w, &h); o = evas_object_line_add(cf->evas); - evas_object_clip_set(o, cf->chart_clip_obj); - evas_object_layer_set(o, 3); - evas_object_line_xy_set(o, (x + w), (y), (x + w), (y + value)); - evas_object_color_set(o, 255, 0, 0, 255); - evas_object_pass_events_set(o, 1); - evas_object_show(o); + edje_object_part_swallow(cf->chart_obj, "lines", o); + evas_object_layer_set(o, 1); + if (val == 0) + evas_object_hide(o); + else + { + evas_object_line_xy_set(o, (x + w), (y + h), (x + w), ((y + h) - val)); + evas_object_color_set(o, 255, 0, 0, 150); + evas_object_pass_events_set(o, 1); + evas_object_show(o); + } + + cf->old_values = evas_list_prepend(cf->old_values, o); + l = cf->old_values; + for (i = (x + w); l && (j -2) < w; l = l->next, j++) + { + Evas_Coord oy; + Evas_Object *lo; + + lo = (Evas_Object *)evas_list_data(l); + evas_object_geometry_get(lo, NULL, &oy, NULL, NULL); + evas_object_move(lo, i--, oy); + last = lo; + } + + if ((j - 2) >= w) + { + cf->old_values = evas_list_remove(cf->old_values, last); + evas_object_del(last); + } + return; } -*/ + +static void +_cpu_face_graph_clear(Cpu_Face *cf) +{ + Evas_List *l; + + for (l = cf->old_values; l; l = l->next) + { + Evas_Object *o; + o = evas_list_data(l); + evas_object_del(o); + } + evas_list_free(cf->old_values); + cf->old_values = NULL; +} ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs