[Xfce4-commits] <xfce4-weather-plugin:master> Cleanup make_label() and fix use of label size.
Harald Judt
noreply at xfce.org
Fri Jul 13 16:50:11 CEST 2012
Updating branch refs/heads/master
to 5c485d929dbe128084b3e7c51a086128cb4889f1 (commit)
from 06b98d2e57b5d5a731960201c40b9aec2f4f8adb (commit)
commit 5c485d929dbe128084b3e7c51a086128cb4889f1
Author: Harald Judt <h.judt at gmx.at>
Date: Wed Jul 11 15:13:02 2012 +0200
Cleanup make_label() and fix use of label size.
Choose the same label size in both horizontal and vertical panel
mode and improve the handling with smaller panel sizes in deskbar
mode.
panel-plugin/weather.c | 70 ++++++++++++++++++++++--------------------------
1 files changed, 32 insertions(+), 38 deletions(-)
diff --git a/panel-plugin/weather.c b/panel-plugin/weather.c
index cc42d38..69114e5 100644
--- a/panel-plugin/weather.c
+++ b/panel-plugin/weather.c
@@ -90,15 +90,31 @@ check_envproxy (gchar **proxy_host,
return TRUE;
}
-
+static gchar *
+get_label_size (xfceweather_data *data)
+{
+#if LIBXFCE4PANEL_CHECK_VERSION (4,9,0)
+ /* use small label with low number of columns in deskbar mode */
+ if (data->panel_orientation == XFCE_PANEL_PLUGIN_MODE_DESKBAR)
+ if (data->panel_size > 99)
+ return "medium";
+ else if (data->panel_size > 79)
+ return "small";
+ else
+ return "x-small";
+ else
+#endif
+ if (data->panel_size > 25)
+ return "medium";
+ else if (data->panel_size > 23)
+ return "small";
+ else
+ return "x-small";
+}
static gchar *
-make_label (xml_weather *weatherdata,
- datas opt,
- units unit,
- gint size,
- GtkOrientation orientation,
- gboolean multiple_labels)
+make_label (xfceweather_data *data,
+ datas opt)
{
gchar *str, *value, *rawvalue;
xml_time *conditions;
@@ -144,21 +160,11 @@ make_label (xml_weather *weatherdata,
break;
}
- /* arbitrary, choose something that works */
- if (orientation == GTK_ORIENTATION_HORIZONTAL)
- txtsize = "medium";
- else if (size > 36)
- txtsize = "medium";
- else if (size > 30)
- txtsize = "small";
- else if (size > 24)
- txtsize = "x-small";
- else
- txtsize = "xx-small";
+ txtsize = get_label_size(data);
/* get current weather conditions */
- conditions = get_current_conditions(weatherdata);
- rawvalue = get_data(conditions, unit, opt);
+ conditions = get_current_conditions(data->weatherdata);
+ rawvalue = get_data(conditions, data->unit, opt);
switch (opt)
{
@@ -166,15 +172,14 @@ make_label (xml_weather *weatherdata,
value = translate_wind_direction (rawvalue);
break;
case WIND_SPEED:
- value = translate_wind_speed (conditions, rawvalue, unit);
+ value = translate_wind_speed (conditions, rawvalue, data->unit);
break;
default:
value = NULL;
break;
}
-
- if (multiple_labels) {
+ if (data->labels->len > 1) {
if (value != NULL)
{
str = g_strdup_printf ("<span size=\"%s\">%s: %s</span>",
@@ -184,7 +189,7 @@ make_label (xml_weather *weatherdata,
else
{
str = g_strdup_printf ("<span size=\"%s\">%s: %s %s</span>",
- txtsize, lbl, rawvalue, get_unit (conditions, unit, opt));
+ txtsize, lbl, rawvalue, get_unit (conditions, data->unit, opt));
}
} else {
if (value != NULL)
@@ -196,7 +201,7 @@ make_label (xml_weather *weatherdata,
else
{
str = g_strdup_printf ("<span size=\"%s\">%s %s</span>",
- txtsize, rawvalue, get_unit (conditions, unit, opt));
+ txtsize, rawvalue, get_unit (conditions, data->unit, opt));
}
}
g_free (rawvalue);
@@ -222,18 +227,7 @@ set_icon_error (xfceweather_data *data)
data->weatherdata = NULL;
}
- /* arbitrary, choose something that works */
-
- if (data->panel_orientation == GTK_ORIENTATION_HORIZONTAL)
- txtsize = "medium";
- else if (size > 36)
- txtsize = "medium";
- else if (size > 30)
- txtsize = "small";
- else if (size > 24)
- txtsize = "x-small";
- else
- txtsize = "xx-small";
+ txtsize = get_label_size(data);
str = g_strdup_printf ("<span size=\"%s\">No Data</span>", txtsize);
gtk_scrollbox_set_label (GTK_SCROLLBOX (data->scrollbox), -1, str);
@@ -283,7 +277,7 @@ set_icon_current (xfceweather_data *data)
{
opt = g_array_index (data->labels, datas, i);
- str = make_label (data->weatherdata, opt, data->unit, data->panel_size, data->panel_orientation, (data->labels->len > 1));
+ str = make_label (data, opt);
gtk_scrollbox_set_label (GTK_SCROLLBOX (data->scrollbox), -1, str);
More information about the Xfce4-commits
mailing list