Updating branch refs/heads/master
         to 558afb675622f3e11395fc25123e18c07fb8ecfb (commit)
       from bbedf98a21a4540a1a0bb7d5b1e5862cf7dd2878 (commit)

commit 558afb675622f3e11395fc25123e18c07fb8ecfb
Author: Harald Judt <h.j...@gmx.at>
Date:   Wed Jul 4 17:37:59 2012 +0200

    Locale support, part 2: Format values.
    
    Format values according to the user's locale setting.

 panel-plugin/weather-data.c |   27 ++++++++++++++-------------
 1 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/panel-plugin/weather-data.c b/panel-plugin/weather-data.c
index 73a7929..b67b4ca 100644
--- a/panel-plugin/weather-data.c
+++ b/panel-plugin/weather-data.c
@@ -26,6 +26,7 @@
 #include "weather.h"
 
 #define CHK_NULL(s) ((s) ? g_strdup(s):g_strdup(""))
+#define LOCALE_DOUBLE(value, format) (g_strdup_printf(format, 
g_ascii_strtod(value, NULL)))
 
 gboolean has_timeslice(xml_weather *data, time_t start, time_t end)
 {
@@ -52,35 +53,35 @@ get_data (xml_time *timeslice, datas type)
        case ALTITUDE:
                return CHK_NULL(loc->altitude);
        case LATITUDE:
-               return CHK_NULL(loc->latitude);
+               return LOCALE_DOUBLE(loc->latitude, "%.4f");
        case LONGITUDE:
-               return CHK_NULL(loc->longitude);
+               return LOCALE_DOUBLE(loc->longitude, "%.4f");
        case TEMPERATURE:
-               return CHK_NULL(loc->temperature_value);
+               return LOCALE_DOUBLE(loc->temperature_value, "%.1f");
        case PRESSURE:
-               return CHK_NULL(loc->pressure_value);
+               return LOCALE_DOUBLE(loc->pressure_value, "%.1f");
        case WIND_SPEED:
-               return CHK_NULL(loc->wind_speed_mps);
+               return LOCALE_DOUBLE(loc->wind_speed_mps, "%.1f");
        case WIND_BEAUFORT:
                return CHK_NULL(loc->wind_speed_beaufort);
        case WIND_DIRECTION:
                return CHK_NULL(loc->wind_dir_name);
        case WIND_DIRECTION_DEG:
-               return CHK_NULL(loc->wind_dir_deg);
+               return LOCALE_DOUBLE(loc->wind_dir_deg, "%.1f");
        case HUMIDITY:
-               return CHK_NULL(loc->humidity_value);
+               return LOCALE_DOUBLE(loc->humidity_value, "%.1f");
        case CLOUDINESS_LOW:
-               return CHK_NULL(loc->cloudiness_percent[CLOUD_LOW]);
+               return LOCALE_DOUBLE(loc->cloudiness_percent[CLOUD_LOW], 
"%.1f");
        case CLOUDINESS_MED:
-               return CHK_NULL(loc->cloudiness_percent[CLOUD_MED]);
+               return LOCALE_DOUBLE(loc->cloudiness_percent[CLOUD_MED], 
"%.1f");
        case CLOUDINESS_HIGH:
-               return CHK_NULL(loc->cloudiness_percent[CLOUD_HIGH]);
+               return LOCALE_DOUBLE(loc->cloudiness_percent[CLOUD_HIGH], 
"%.1f");
        case CLOUDINESS_OVERALL:
-               return CHK_NULL(loc->cloudiness_percent[CLOUD_OVERALL]);
+               return LOCALE_DOUBLE(loc->cloudiness_percent[CLOUD_OVERALL], 
"%.1f");
        case FOG:
-               return CHK_NULL(loc->fog_percent);
+               return LOCALE_DOUBLE(loc->fog_percent, "%.1f");
        case PRECIPITATIONS:
-               return CHK_NULL(loc->precipitation_value);
+               return LOCALE_DOUBLE(loc->precipitation_value, "%.1f");
        case SYMBOL:
                return CHK_NULL(loc->symbol);
        }
_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
https://mail.xfce.org/mailman/listinfo/xfce4-commits

Reply via email to