Updating branch refs/heads/master to 0a018afa98d12c93231852814d7cb0721fc5ee70 (commit) from 750bfb2208760eee55af064fc4f5758b2741e8e3 (commit)
commit 0a018afa98d12c93231852814d7cb0721fc5ee70 Author: Harald Judt <h.j...@gmx.at> Date: Mon May 20 12:11:21 2013 +0200 Summary window: Add tooltip for forecast day header showing astrodata. panel-plugin/weather-summary.c | 89 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 88 insertions(+), 1 deletion(-) diff --git a/panel-plugin/weather-summary.c b/panel-plugin/weather-summary.c index 33e52fb..33915c3 100644 --- a/panel-plugin/weather-summary.c +++ b/panel-plugin/weather-summary.c @@ -681,6 +681,87 @@ forecast_cell_get_tooltip_text(plugin_data *data, } +static gchar * +forecast_day_header_tooltip_text(xml_astro *astro) +{ + GString *text; + gchar *result, *day, *sunrise, *sunset, *moonrise, *moonset, *moonphase; + + /* TRANSLATORS: Please use spaces as needed or desired to properly + align the values; Monospace font is enforced with <tt> tags for + alignment, and the text is enclosed in <small> tags because + that looks much better and saves space. + */ + + text = g_string_new(""); + if (astro) { + day = format_date(astro->day, "%Y-%m-%d", TRUE); + g_string_append_printf(text, _("<b>%s</b>\n"), day); + g_free(day); + + if (astro->sun_never_rises) + g_string_append(text, _("<tt><small>" + "Sunrise: The sun never rises this day." + "</small></tt>\n")); + else if (astro->sun_never_sets) + g_string_append(text, _("<tt><small>" + "Sunset: The sun never sets this day." + "</small></tt>\n")); + else { + sunrise = format_date(astro->sunrise, NULL, TRUE); + g_string_append_printf(text, _("<tt><small>" + "Sunrise: %s" + "</small></tt>\n"), sunrise); + g_free(sunrise); + + sunset = format_date(astro->sunset, NULL, TRUE); + g_string_append_printf(text, _("<tt><small>" + "Sunset: %s" + "</small></tt>\n\n"), sunset); + g_free(sunset); + } + + if (astro->moon_phase) + g_string_append_printf(text, _("<tt><small>" + "Moon phase: %s" + "</small></tt>\n"), + translate_moon_phase(astro->moon_phase)); + else + g_string_append(text, _("<tt><small>" + "Moon phase: Unknown" + "</small></tt>\n")); + + if (astro->moon_never_rises) + g_string_append(text, _("<tt><small>" + "Moonrise: The moon never rises this day." + "</small></tt>\n")); + else if (astro->moon_never_sets) + g_string_append(text, + _("<tt><small>" + "Moonset: The moon never sets this day." + "</small></tt>\n")); + else { + moonrise = format_date(astro->moonrise, NULL, TRUE); + g_string_append_printf(text, _("<tt><small>" + "Moonrise: %s" + "</small></tt>\n"), moonrise); + g_free(moonrise); + + moonset = format_date(astro->moonset, NULL, TRUE); + g_string_append_printf(text, _("<tt><small>" + "Moonset: %s" + "</small></tt>"), moonset); + g_free(moonset); + } + } + + /* Free GString only and return its character data */ + result = text->str; + g_string_free(text, FALSE); + return result; +} + + static GtkWidget * wrap_forecast_cell(const GtkWidget *widget, const GdkColor *color) @@ -815,7 +896,8 @@ make_forecast(plugin_data *data) const GdkColor lightbg = {0, 0xeaea, 0xeaea, 0xeaea}; const GdkColor darkbg = {0, 0x6666, 0x6666, 0x6666}; GArray *daydata; - gchar *dayname; + xml_astro *astro; + gchar *dayname, *text; gint i; daytime daytime; @@ -848,6 +930,11 @@ make_forecast(plugin_data *data) ebox = add_forecast_header(dayname, 90.0, &darkbg); g_free(dayname); + /* add tooltip to forecast day header */ + astro = get_astro_data_for_day(data->astrodata, i); + text = forecast_day_header_tooltip_text(astro); + gtk_widget_set_tooltip_markup(GTK_WIDGET(ebox), text); + if (data->forecast_layout == FC_LAYOUT_CALENDAR) gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(ebox), i+1, i+2, 0, 1); _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits