Bug 796911 - Minimum window width to large.

This is down to the amount of information that is displayed on the
register status bar which can also be influenced by the type of
register being displayed. To fix this the text labels used have been
enabled to ellipsize at the end and also the displayed information has
been added to a tooltip. So for example the minimum app size was
957x736 and after the changes it can be 610x475.
pull/649/head
Robert Fewell 6 years ago
parent f66b7ed275
commit 7577afe0a9

@ -511,10 +511,17 @@ gsr_update_summary_label( GtkWidget *label,
{
gnc_numeric amount;
char string[256];
const gchar *label_str = NULL;
GtkWidget *text_label, *hbox;
gchar *tooltip;
if ( label == NULL )
return;
hbox = g_object_get_data (G_OBJECT(label), "text_box");
text_label = g_object_get_data (G_OBJECT(label), "text_label");
label_str = gtk_label_get_text (GTK_LABEL(text_label));
amount = (*getter)( leader );
if ( reverse )
@ -534,6 +541,13 @@ gsr_update_summary_label( GtkWidget *label,
gnc_set_label_color( label, amount );
gtk_label_set_text( GTK_LABEL(label), string );
if (label_str)
{
tooltip = g_strdup_printf ("%s %s", label_str, string);
gtk_widget_set_tooltip_text (GTK_WIDGET(hbox), tooltip);
g_free (tooltip);
}
}
static
@ -2418,7 +2432,7 @@ GtkWidget*
add_summary_label (GtkWidget *summarybar, gboolean pack_start, const char *label_str, GtkWidget *extra)
{
GtkWidget *hbox;
GtkWidget *label;
GtkWidget *text_label, *secondary_label;
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
gtk_box_set_homogeneous (GTK_BOX (hbox), FALSE);
@ -2427,18 +2441,21 @@ add_summary_label (GtkWidget *summarybar, gboolean pack_start, const char *label
else
gtk_box_pack_end( GTK_BOX(summarybar), hbox, FALSE, FALSE, 5 );
label = gtk_label_new( label_str );
gnc_label_set_alignment(label, 1.0, 0.5 );
gtk_box_pack_start( GTK_BOX(hbox), label, FALSE, FALSE, 0 );
text_label = gtk_label_new (label_str);
gnc_label_set_alignment (text_label, 1.0, 0.5 );
gtk_label_set_ellipsize (GTK_LABEL(text_label), PANGO_ELLIPSIZE_END);
gtk_box_pack_start (GTK_BOX(hbox), text_label, FALSE, FALSE, 0);
label = gtk_label_new( "" );
gnc_label_set_alignment(label, 1.0, 0.5 );
gtk_box_pack_start( GTK_BOX(hbox), label, FALSE, FALSE, 0 );
secondary_label = gtk_label_new ( "" );
g_object_set_data (G_OBJECT(secondary_label), "text_label", text_label);
g_object_set_data (G_OBJECT(secondary_label), "text_box", hbox);
gnc_label_set_alignment (secondary_label, 1.0, 0.5 );
gtk_box_pack_start (GTK_BOX(hbox), secondary_label, FALSE, FALSE, 0);
if (extra != NULL)
gtk_box_pack_start( GTK_BOX(hbox), extra, FALSE, FALSE, 0 );
return label;
return secondary_label;
}
static void

Loading…
Cancel
Save