diff options
author | Benjamin Berg <benjamin@sipsolutions.net> | 2009-04-09 21:54:32 (GMT) |
---|---|---|
committer | Benjamin Berg <benjamin@sipsolutions.net> | 2009-04-09 21:54:32 (GMT) |
commit | f0a4cb716d993fbebb2a6a509e9f6416bcb4d1b4 (patch) | |
tree | 2ac46a075e03ff41de99e6e553b3f4cd3e83d989 /gtk/engine/sugar-drawing.c | |
parent | 299b4040a38d2ab825ae8d402946a36473a2f94d (diff) |
Added basic support for entry progress bars.
Diffstat (limited to 'gtk/engine/sugar-drawing.c')
-rw-r--r-- | gtk/engine/sugar-drawing.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/gtk/engine/sugar-drawing.c b/gtk/engine/sugar-drawing.c index 512b64e..4af32fc 100644 --- a/gtk/engine/sugar-drawing.c +++ b/gtk/engine/sugar-drawing.c @@ -283,6 +283,38 @@ sugar_draw_scrollbar_trough (cairo_t *cr, } void +sugar_draw_entry_progress (cairo_t *cr, SugarInfo *info) +{ + GtkBorder *border; + SugarRectangle pos = info->pos; + gint max_radius = info->max_radius; + + /* Try to retrieve the style property. */ + gtk_widget_style_get (info->widget, + "progress-border", &border, + NULL); + + if (border == NULL) { + max_radius = MAX (0, max_radius - info->style->ythickness * 2); + } else { + max_radius = MAX (0, max_radius - border->top - border->bottom); + gtk_border_free (border); + border = NULL; + } + + pos.width += 2*max_radius; + sugar_rounded_rectangle (cr, &pos, 0, max_radius, info->corners); + cairo_clip(cr); + + pos.x -= 2*max_radius; + sugar_rounded_rectangle (cr, &pos, 0, max_radius, info->corners); + cairo_clip(cr); + + gdk_cairo_set_source_color (cr, &info->style->bg[info->state]); + cairo_paint (cr); +} + +void sugar_draw_entry (cairo_t *cr, SugarInfo *info) { SugarRectangle *pos = &info->pos; |