[gtk+] Update the design for progress bars
- From: William Jon McCann <mccann src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Update the design for progress bars
- Date: Wed, 7 May 2014 13:57:13 +0000 (UTC)
commit 74405cc964e405ea00cfac22856a62fea5ec648e
Author: William Jon McCann <william jon mccann gmail com>
Date: Wed May 7 05:13:59 2014 -0400
Update the design for progress bars
We now use a narrower trough and paint the optional text
beside the trough instead of inside it. This makes for a much
cleaner appearance and more readable text.
gtk/gtkprogressbar.c | 49 ++++++++++++++++++++++++++++++++++---------------
1 files changed, 34 insertions(+), 15 deletions(-)
---
diff --git a/gtk/gtkprogressbar.c b/gtk/gtkprogressbar.c
index 568536c..f355b07 100644
--- a/gtk/gtkprogressbar.c
+++ b/gtk/gtkprogressbar.c
@@ -63,8 +63,8 @@
*/
#define MIN_HORIZONTAL_BAR_WIDTH 150
-#define MIN_HORIZONTAL_BAR_HEIGHT 20
-#define MIN_VERTICAL_BAR_WIDTH 22
+#define MIN_HORIZONTAL_BAR_HEIGHT 6
+#define MIN_VERTICAL_BAR_WIDTH 7
#define MIN_VERTICAL_BAR_HEIGHT 80
@@ -728,6 +728,8 @@ gtk_progress_bar_paint_activity (GtkProgressBar *pbar,
cairo_t *cr,
GtkOrientation orientation,
gboolean inverted,
+ int x,
+ int y,
int width,
int height)
{
@@ -744,13 +746,13 @@ gtk_progress_bar_paint_activity (GtkProgressBar *pbar,
if (orientation == GTK_ORIENTATION_HORIZONTAL)
{
gtk_progress_bar_get_activity (pbar, orientation, &area.x, &area.width);
- area.y = padding.top;
+ area.y = y + padding.top;
area.height = height - padding.top - padding.bottom;
}
else
{
gtk_progress_bar_get_activity (pbar, orientation, &area.y, &area.height);
- area.x = padding.left;
+ area.x = x + padding.left;
area.width = width - padding.left - padding.right;
}
@@ -769,6 +771,8 @@ gtk_progress_bar_paint_continuous (GtkProgressBar *pbar,
gint amount,
GtkOrientation orientation,
gboolean inverted,
+ int x,
+ int y,
int width,
int height)
{
@@ -789,10 +793,10 @@ gtk_progress_bar_paint_continuous (GtkProgressBar *pbar,
{
area.width = amount;
area.height = height - padding.top - padding.bottom;
- area.y = padding.top;
+ area.y = y + padding.top;
if (!inverted)
- area.x = padding.left;
+ area.x = x + padding.left;
else
area.x = width - amount - padding.right;
}
@@ -800,10 +804,10 @@ gtk_progress_bar_paint_continuous (GtkProgressBar *pbar,
{
area.width = width - padding.left - padding.right;
area.height = amount;
- area.x = padding.left;
+ area.x = x + padding.left;
if (!inverted)
- area.y = padding.top;
+ area.y = y + padding.top;
else
area.y = height - amount - padding.bottom;
}
@@ -839,7 +843,7 @@ gtk_progress_bar_paint_text (GtkProgressBar *pbar,
PangoRectangle logical_rect;
GdkRectangle prelight_clip, start_clip, end_clip;
gfloat text_xalign = 0.5;
- gfloat text_yalign = 0.5;
+ gfloat text_yalign = 0.0;
context = gtk_widget_get_style_context (widget);
state = gtk_widget_get_state_flags (widget);
@@ -967,6 +971,7 @@ gtk_progress_bar_draw (GtkWidget *widget,
GtkStateFlags state;
GtkBorder padding;
int width, height;
+ int bar_width, bar_height;
context = gtk_widget_get_style_context (widget);
state = gtk_widget_get_state_flags (widget);
@@ -982,11 +987,22 @@ gtk_progress_bar_draw (GtkWidget *widget,
width = gtk_widget_get_allocated_width (widget);
height = gtk_widget_get_allocated_height (widget);
+ if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
+ {
+ bar_height = MIN_HORIZONTAL_BAR_HEIGHT;
+ bar_width = width;
+ }
+ else
+ {
+ bar_width = MIN_VERTICAL_BAR_WIDTH;
+ bar_height = height;
+ }
+
gtk_style_context_save (context);
gtk_style_context_add_class (context, GTK_STYLE_CLASS_TROUGH);
- gtk_render_background (context, cr, 0, 0, width, height);
- gtk_render_frame (context, cr, 0, 0, width, height);
+ gtk_render_background (context, cr, width - bar_width, height - bar_height, bar_width, bar_height);
+ gtk_render_frame (context, cr, width - bar_width, height - bar_height, bar_width, bar_height);
gtk_style_context_restore (context);
@@ -994,7 +1010,8 @@ gtk_progress_bar_draw (GtkWidget *widget,
{
gtk_progress_bar_paint_activity (pbar, cr,
orientation, inverted,
- width, height);
+ width - bar_width, height - bar_height,
+ bar_width, bar_height);
if (priv->show_text)
{
@@ -1014,13 +1031,15 @@ gtk_progress_bar_draw (GtkWidget *widget,
gint space;
if (orientation == GTK_ORIENTATION_HORIZONTAL)
- space = width - padding.left - padding.right;
+ space = bar_width - padding.left - padding.right;
else
- space = height - padding.top - padding.bottom;
+ space = bar_height - padding.top - padding.bottom;
amount = space * gtk_progress_bar_get_fraction (pbar);
- gtk_progress_bar_paint_continuous (pbar, cr, amount, orientation, inverted, width, height);
+ gtk_progress_bar_paint_continuous (pbar, cr, amount, orientation, inverted,
+ width - bar_width, height - bar_height,
+ bar_width, bar_height);
if (priv->show_text)
gtk_progress_bar_paint_text (pbar, cr, -1, amount, orientation, inverted, width, height);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]