levelbar: start filling from the bottom

As long as we don't have an API for explicitly inverting the bar, it
makes more sense for the progress in vertical orientation to fill from
the bottom.
This commit is contained in:
Stefano Facchini 2012-09-17 22:29:54 +02:00 committed by Cosimo Cecchi
parent 7af52ba222
commit 4b3ed75f7d

View File

@ -339,9 +339,14 @@ gtk_level_bar_draw_fill_continuous (GtkLevelBar *self,
(self->priv->max_value - self->priv->min_value);
if (self->priv->orientation == GTK_ORIENTATION_HORIZONTAL)
{
block_area.width = (gint) floor (block_area.width * fill_percentage);
}
else
{
block_area.height = (gint) floor (block_area.height * fill_percentage);
block_area.y += base_area.height - block_area.height;
}
gtk_render_background (context, cr, block_area.x, block_area.y,
block_area.width, block_area.height);
@ -392,6 +397,7 @@ gtk_level_bar_draw_fill_discrete (GtkLevelBar *self,
{
block_draw_width = MAX (block_draw_width, block_area.width - block_margin.left - block_margin.right);
block_area.x += block_margin.left;
block_area.y += block_area.height - block_draw_height;
}
for (idx = 0; idx < num_blocks; idx++)
@ -399,7 +405,7 @@ gtk_level_bar_draw_fill_discrete (GtkLevelBar *self,
if (self->priv->orientation == GTK_ORIENTATION_HORIZONTAL)
block_area.x += block_margin.left;
else
block_area.y += block_margin.top;
block_area.y -= block_margin.bottom;
if (idx > num_filled - 1)
gtk_style_context_add_class (context, STYLE_CLASS_EMPTY_FILL_BLOCK);
@ -414,7 +420,7 @@ gtk_level_bar_draw_fill_discrete (GtkLevelBar *self,
if (self->priv->orientation == GTK_ORIENTATION_HORIZONTAL)
block_area.x += block_draw_width + block_margin.right;
else
block_area.y += block_draw_height + block_margin.bottom;
block_area.y -= block_draw_height + block_margin.top;
}
gtk_style_context_restore (context);