diff --git a/src/bin/e_apps.c b/src/bin/e_apps.c index 0d0a0726a..5e6cf7760 100644 --- a/src/bin/e_apps.c +++ b/src/bin/e_apps.c @@ -1391,6 +1391,9 @@ _e_app_copy(E_App *dst, E_App *src) dst->path = src->path; dst->win_name = src->win_name; dst->win_class = src->win_class; + dst->win_title = src->win_title; + dst->win_role = src->win_role; + dst->icon_class = src->icon_class; dst->startup_notify = src->startup_notify; dst->wait_exit = src->wait_exit; dst->starting = src->starting; diff --git a/src/bin/e_container.c b/src/bin/e_container.c index 848940fb9..186061860 100644 --- a/src/bin/e_container.c +++ b/src/bin/e_container.c @@ -952,8 +952,7 @@ _e_container_free(E_Container *con) if (con->pointer.root) e_object_del(E_OBJECT(con->pointer.root)); ecore_x_window_del(con->event_win); - if (con->gadman) e_object_del(E_OBJECT(con->gadman)); - /* We can't use e_object_del here, because border adds a ref to itself + /* We can't use e_object_del here, because border adds a ref to itself * when it is removed, and the ref is never unref'ed */ for (i = 0; i < 7; i++) { @@ -970,6 +969,7 @@ _e_container_free(E_Container *con) l = l->next; e_object_del(E_OBJECT(tmp->data)); } + if (con->gadman) e_object_del(E_OBJECT(con->gadman)); con->manager->containers = evas_list_remove(con->manager->containers, con); e_canvas_del(con->bg_ecore_evas); ecore_evas_free(con->bg_ecore_evas); @@ -977,8 +977,7 @@ _e_container_free(E_Container *con) { ecore_x_window_del(con->win); } - if (con->name) - free(con->name); + if (con->name) free(con->name); free(con); } diff --git a/src/modules/temperature/e_mod_main.c b/src/modules/temperature/e_mod_main.c index 3663d3704..16dc39d58 100644 --- a/src/modules/temperature/e_mod_main.c +++ b/src/modules/temperature/e_mod_main.c @@ -17,6 +17,7 @@ /* 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); @@ -134,6 +135,7 @@ _temperature_new() 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) @@ -143,10 +145,12 @@ _temperature_new() 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, 200); + E_CONFIG_LIMIT(e->conf->high, 0, 220); + E_CONFIG_LIMIT(e->conf->units, 0, 1); _temperature_config_menu_new(e); e->have_temp = -1; @@ -198,6 +202,10 @@ _temperature_new() mi = e_menu_item_new(ef->menu); e_menu_item_label_set(mi, _("High Temperature")); e_menu_item_submenu_set(mi, e->config_menu_high); + + mi = e_menu_item_new(ef->menu); + e_menu_item_label_set(mi, _("Unit")); + e_menu_item_submenu_set(mi, e->config_menu_unit); mi = e_menu_item_new(e->config_menu); e_menu_item_label_set(mi, con->name); @@ -232,6 +240,7 @@ _temperature_free(Temperature *e) e_object_del(E_OBJECT(e->config_menu_poll)); e_object_del(E_OBJECT(e->config_menu_low)); e_object_del(E_OBJECT(e->config_menu_high)); + e_object_del(E_OBJECT(e->config_menu_unit)); ecore_timer_del(e->temperature_check_timer); @@ -308,7 +317,7 @@ _temperature_menu_low_10(void *data, E_Menu *m, E_Menu_Item *mi) Temperature *e; e = data; - e->conf->low = 10; + e->conf->low = (10 + (30*(e->conf->units))); _temperature_cb_check(e); e_config_save_queue(); } @@ -319,7 +328,7 @@ _temperature_menu_low_20(void *data, E_Menu *m, E_Menu_Item *mi) Temperature *e; e = data; - e->conf->low = 20; + e->conf->low = (20 + (40*(e->conf->units))); _temperature_cb_check(e); e_config_save_queue(); } @@ -330,7 +339,7 @@ _temperature_menu_low_30(void *data, E_Menu *m, E_Menu_Item *mi) Temperature *e; e = data; - e->conf->low = 30; + e->conf->low = (30 + (50*(e->conf->units))); _temperature_cb_check(e); e_config_save_queue(); } @@ -341,7 +350,7 @@ _temperature_menu_low_40(void *data, E_Menu *m, E_Menu_Item *mi) Temperature *e; e = data; - e->conf->low = 40; + e->conf->low = (40 + (60*(e->conf->units))); _temperature_cb_check(e); e_config_save_queue(); } @@ -352,7 +361,7 @@ _temperature_menu_low_50(void *data, E_Menu *m, E_Menu_Item *mi) Temperature *e; e = data; - e->conf->low = 50; + e->conf->low = (50 + (70*(e->conf->units))); _temperature_cb_check(e); e_config_save_queue(); } @@ -363,7 +372,7 @@ _temperature_menu_high_20(void *data, E_Menu *m, E_Menu_Item *mi) Temperature *e; e = data; - e->conf->high = 20; + e->conf->high = (20 + (40*(e->conf->units))); _temperature_cb_check(e); e_config_save_queue(); } @@ -374,7 +383,7 @@ _temperature_menu_high_30(void *data, E_Menu *m, E_Menu_Item *mi) Temperature *e; e = data; - e->conf->high = 30; + e->conf->high = (30 + (50*(e->conf->units))); _temperature_cb_check(e); e_config_save_queue(); } @@ -385,7 +394,7 @@ _temperature_menu_high_40(void *data, E_Menu *m, E_Menu_Item *mi) Temperature *e; e = data; - e->conf->high = 40; + e->conf->high = (40 + (60*(e->conf->units))); _temperature_cb_check(e); e_config_save_queue(); } @@ -396,7 +405,7 @@ _temperature_menu_high_50(void *data, E_Menu *m, E_Menu_Item *mi) Temperature *e; e = data; - e->conf->high = 50; + e->conf->high = (50 + (70*(e->conf->units))); _temperature_cb_check(e); e_config_save_queue(); } @@ -407,7 +416,7 @@ _temperature_menu_high_60(void *data, E_Menu *m, E_Menu_Item *mi) Temperature *e; e = data; - e->conf->high = 60; + e->conf->high = (60 + (80*(e->conf->units))); _temperature_cb_check(e); e_config_save_queue(); } @@ -418,7 +427,7 @@ _temperature_menu_high_70(void *data, E_Menu *m, E_Menu_Item *mi) Temperature *e; e = data; - e->conf->high = 70; + e->conf->high = (70 + (90*(e->conf->units))); _temperature_cb_check(e); e_config_save_queue(); } @@ -429,7 +438,7 @@ _temperature_menu_high_80(void *data, E_Menu *m, E_Menu_Item *mi) Temperature *e; e = data; - e->conf->high = 80; + e->conf->high = (80 + (100*(e->conf->units))); _temperature_cb_check(e); e_config_save_queue(); } @@ -440,7 +449,7 @@ _temperature_menu_high_90(void *data, E_Menu *m, E_Menu_Item *mi) Temperature *e; e = data; - e->conf->high = 90; + e->conf->high = (90 + (120*(e->conf->units))); _temperature_cb_check(e); e_config_save_queue(); } @@ -451,7 +460,7 @@ _temperature_menu_high_100(void *data, E_Menu *m, E_Menu_Item *mi) Temperature *e; e = data; - e->conf->high = 100; + e->conf->high = (100 + (140*(e->conf->units))); _temperature_cb_check(e); e_config_save_queue(); } @@ -489,6 +498,173 @@ _temperature_menu_sensor_3(void *data, E_Menu *m, E_Menu_Item *mi) e_config_save_queue(); } +static void +_temperature_menu_unit_fahrenheit(void *data, E_Menu *m, E_Menu_Item *mi) +{ + Temperature *e; + + e = data; + e->conf->units = fahrenheit; + _temperature_cb_check(e); + e_config_save_queue(); +} + +static void +_temperature_menu_unit_celcius(void *data, E_Menu *m, E_Menu_Item *mi) +{ + Temperature *e; + + e = data; + e->conf->units = celcius; + _temperature_cb_check(e); + e_config_save_queue(); +} + +static void +_temperature_config_menu_boundaries_new(Temperature *e) +{ + E_Menu *mn; + E_Menu_Item *mi; + + char* unit_str[10]; + int unit_int[10]; + + if(e->conf->units == fahrenheit) + { + int i; + char s[6]; + + for(i=0; i < 10; ++i) + { + unit_int[i] = ((i+2)*20); + sprintf(s, "%u F", unit_int[i]); + unit_str[i] = calloc(strlen(s)+1, sizeof(char)); + strcpy(unit_str[i], s); + } + } + else if(e->conf->units == celcius) + { + int i; + char s[6]; + + for(i=0; i < 10; ++i) + { + unit_int[i] = ((i+1)*10); + sprintf(s, "%u C", unit_int[i]); + unit_str[i] = calloc(strlen(s)+1, sizeof(char)); + strcpy(unit_str[i], s); + } + } + + /* Low temperature */ + mn = e_menu_new(); + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, unit_str[0]); + e_menu_item_radio_set(mi, 1); + e_menu_item_radio_group_set(mi, 1); + if (e->conf->low == unit_int[0]) e_menu_item_toggle_set(mi, 1); + e_menu_item_callback_set(mi, _temperature_menu_low_10, e); + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, unit_str[1]); + e_menu_item_radio_set(mi, 1); + e_menu_item_radio_group_set(mi, 1); + if (e->conf->low == unit_int[1]) e_menu_item_toggle_set(mi, 1); + e_menu_item_callback_set(mi, _temperature_menu_low_20, e); + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, unit_str[2]); + e_menu_item_radio_set(mi, 1); + e_menu_item_radio_group_set(mi, 1); + if (e->conf->low == unit_int[2]) e_menu_item_toggle_set(mi, 1); + e_menu_item_callback_set(mi, _temperature_menu_low_30, e); + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, unit_str[3]); + e_menu_item_radio_set(mi, 1); + e_menu_item_radio_group_set(mi, 1); + if (e->conf->low == unit_int[3]) e_menu_item_toggle_set(mi, 1); + e_menu_item_callback_set(mi, _temperature_menu_low_40, e); + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, unit_str[4]); + e_menu_item_radio_set(mi, 1); + e_menu_item_radio_group_set(mi, 1); + if (e->conf->low == unit_int[4]) e_menu_item_toggle_set(mi, 1); + e_menu_item_callback_set(mi, _temperature_menu_low_50, e); + + e->config_menu_low = mn; + + /* High temperature */ + mn = e_menu_new(); + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _(unit_str[1])); + e_menu_item_radio_set(mi, 1); + e_menu_item_radio_group_set(mi, 1); + if (e->conf->high == unit_int[1]) e_menu_item_toggle_set(mi, 1); + e_menu_item_callback_set(mi, _temperature_menu_high_20, e); + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _(unit_str[2])); + e_menu_item_radio_set(mi, 1); + e_menu_item_radio_group_set(mi, 1); + if (e->conf->high == unit_int[2]) e_menu_item_toggle_set(mi, 1); + e_menu_item_callback_set(mi, _temperature_menu_high_30, e); + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _(unit_str[3])); + e_menu_item_radio_set(mi, 1); + e_menu_item_radio_group_set(mi, 1); + if (e->conf->high == unit_int[3]) e_menu_item_toggle_set(mi, 1); + e_menu_item_callback_set(mi, _temperature_menu_high_40, e); + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _(unit_str[4])); + e_menu_item_radio_set(mi, 1); + e_menu_item_radio_group_set(mi, 1); + if (e->conf->high == unit_int[4]) e_menu_item_toggle_set(mi, 1); + e_menu_item_callback_set(mi, _temperature_menu_high_50, e); + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _(unit_str[5])); + e_menu_item_radio_set(mi, 1); + e_menu_item_radio_group_set(mi, 1); + if (e->conf->high == unit_int[5]) e_menu_item_toggle_set(mi, 1); + e_menu_item_callback_set(mi, _temperature_menu_high_60, e); + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _(unit_str[6])); + e_menu_item_radio_set(mi, 1); + e_menu_item_radio_group_set(mi, 1); + if (e->conf->high == unit_int[6]) e_menu_item_toggle_set(mi, 1); + e_menu_item_callback_set(mi, _temperature_menu_high_70, e); + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _(unit_str[7])); + e_menu_item_radio_set(mi, 1); + e_menu_item_radio_group_set(mi, 1); + if (e->conf->high == unit_int[7]) e_menu_item_toggle_set(mi, 1); + e_menu_item_callback_set(mi, _temperature_menu_high_80, e); + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _(unit_str[8])); + e_menu_item_radio_set(mi, 1); + e_menu_item_radio_group_set(mi, 1); + if (e->conf->high == unit_int[8]) e_menu_item_toggle_set(mi, 1); + e_menu_item_callback_set(mi, _temperature_menu_high_90, e); + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _(unit_str[9])); + e_menu_item_radio_set(mi, 1); + e_menu_item_radio_group_set(mi, 1); + if (e->conf->high == unit_int[9]) e_menu_item_toggle_set(mi, 1); + e_menu_item_callback_set(mi, _temperature_menu_high_100, e); + + e->config_menu_high = mn; +} + static void _temperature_config_menu_new(Temperature *e) { @@ -537,114 +713,26 @@ _temperature_config_menu_new(Temperature *e) e_menu_item_callback_set(mi, _temperature_menu_very_slow, e); e->config_menu_poll = mn; - - /* Low temperature */ + mn = e_menu_new(); mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("10C")); + e_menu_item_label_set(mi, _("Fahrenheit")); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 1); - if (e->conf->low == 10) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _temperature_menu_low_10, e); + if (e->conf->units == fahrenheit) e_menu_item_toggle_set(mi, 1); + e_menu_item_callback_set(mi, _temperature_menu_unit_fahrenheit, e); mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("20C")); + e_menu_item_label_set(mi, _("Celcius")); e_menu_item_radio_set(mi, 1); e_menu_item_radio_group_set(mi, 1); - if (e->conf->low == 20) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _temperature_menu_low_20, e); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("30C")); - e_menu_item_radio_set(mi, 1); - e_menu_item_radio_group_set(mi, 1); - if (e->conf->low == 30) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _temperature_menu_low_30, e); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("40C")); - e_menu_item_radio_set(mi, 1); - e_menu_item_radio_group_set(mi, 1); - if (e->conf->low == 40) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _temperature_menu_low_40, e); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("50C")); - e_menu_item_radio_set(mi, 1); - e_menu_item_radio_group_set(mi, 1); - if (e->conf->low == 50) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _temperature_menu_low_50, e); - - e->config_menu_low = mn; - - /* High temperature */ - mn = e_menu_new(); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("20C")); - e_menu_item_radio_set(mi, 1); - e_menu_item_radio_group_set(mi, 1); - if (e->conf->high == 20) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _temperature_menu_high_20, e); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("30C")); - e_menu_item_radio_set(mi, 1); - e_menu_item_radio_group_set(mi, 1); - if (e->conf->high == 30) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _temperature_menu_high_30, e); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("40C")); - e_menu_item_radio_set(mi, 1); - e_menu_item_radio_group_set(mi, 1); - if (e->conf->high == 40) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _temperature_menu_high_40, e); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("50C")); - e_menu_item_radio_set(mi, 1); - e_menu_item_radio_group_set(mi, 1); - if (e->conf->high == 50) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _temperature_menu_high_50, e); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("60C")); - e_menu_item_radio_set(mi, 1); - e_menu_item_radio_group_set(mi, 1); - if (e->conf->high == 60) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _temperature_menu_high_60, e); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("70C")); - e_menu_item_radio_set(mi, 1); - e_menu_item_radio_group_set(mi, 1); - if (e->conf->high == 70) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _temperature_menu_high_70, e); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("80C")); - e_menu_item_radio_set(mi, 1); - e_menu_item_radio_group_set(mi, 1); - if (e->conf->high == 80) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _temperature_menu_high_80, e); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("90C")); - e_menu_item_radio_set(mi, 1); - e_menu_item_radio_group_set(mi, 1); - if (e->conf->high == 90) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _temperature_menu_high_90, e); - - mi = e_menu_item_new(mn); - e_menu_item_label_set(mi, _("100C")); - e_menu_item_radio_set(mi, 1); - e_menu_item_radio_group_set(mi, 1); - if (e->conf->high == 100) e_menu_item_toggle_set(mi, 1); - e_menu_item_callback_set(mi, _temperature_menu_high_100, e); - - e->config_menu_high = mn; + if (e->conf->units == celcius) e_menu_item_toggle_set(mi, 1); + e_menu_item_callback_set(mi, _temperature_menu_unit_celcius, e); + + e->config_menu_unit = mn; + + _temperature_config_menu_boundaries_new(e); /* Sensor */ #ifndef __FreeBSD__ @@ -692,13 +780,17 @@ _temperature_config_menu_new(Temperature *e) } if (therms) ecore_list_destroy(therms); #endif - + /* Main */ mn = e_menu_new(); mi = e_menu_item_new(mn); e_menu_item_label_set(mi, _("Check Interval")); e_menu_item_submenu_set(mi, e->config_menu_poll); + + mi = e_menu_item_new(mn); + e_menu_item_label_set(mi, _("Unit")); + e_menu_item_submenu_set(mi, e->config_menu_unit); mi = e_menu_item_new(mn); e_menu_item_label_set(mi, _("Low Temperature")); @@ -716,6 +808,14 @@ _temperature_config_menu_new(Temperature *e) } e->config_menu = mn; + +/* int i,j; + + for(i=0; i < 10; ++i) + { + free(unit_str[i]); + } +*/ } static Temperature_Face * @@ -957,8 +1057,9 @@ _temperature_cb_check(void *data) { char units[32]; FILE *f; + - snprintf(buf, sizeof(buf), "/proc/acpi/thermal_zone/%s/temperature", name); + snprintf(buf, sizeof(buf), "/proc/acpi/thermal_zone/TZ2/temperature", name); f = fopen(buf, "rb"); if (f) { @@ -973,6 +1074,10 @@ _temperature_cb_check(void *data) } if (therms) ecore_list_destroy(therms); #endif + + if(ef->conf->units == fahrenheit) + temp = (temp*9/5)+32; + if (ret) { if (ef->have_temp != 1) @@ -992,7 +1097,12 @@ _temperature_cb_check(void *data) _temperature_face_level_set(face, (double)(temp - ef->conf->low) / (double)(ef->conf->high - ef->conf->low)); - snprintf(buf, sizeof(buf), "%i°C", temp); + + if(ef->conf->units == fahrenheit) + snprintf(buf, sizeof(buf), "%i°F", temp); + else + snprintf(buf, sizeof(buf), "%i°C", temp); + edje_object_part_text_set(face->temp_object, "reading", buf); } } diff --git a/src/modules/temperature/e_mod_main.h b/src/modules/temperature/e_mod_main.h index c28e54ff8..369ccec57 100644 --- a/src/modules/temperature/e_mod_main.h +++ b/src/modules/temperature/e_mod_main.h @@ -8,6 +8,8 @@ typedef struct _Config Config; typedef struct _Config_Face Config_Face; typedef struct _Temperature Temperature; typedef struct _Temperature_Face Temperature_Face; + +typedef enum _unit {celcius=0, fahrenheit} unit; struct _Config { @@ -15,6 +17,7 @@ struct _Config int low, high; Evas_List *faces; char *sensor_name; + unit units; }; struct _Config_Face @@ -29,6 +32,7 @@ struct _Temperature 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;