+ if (use_parent) {
+ parent = get_parent();
+
+ if (parent) {
+ c = parent->get_style()->get_fg (parent->get_state());
+ r = c.get_red_p ();
+ g = c.get_green_p ();
+ b = c.get_blue_p ();
+ context->set_source_rgb (r, g, b);
+ context->rectangle (0, 0, darea.get_width(), darea.get_height());
+ context->fill ();
+ }
+
+ } else {
+
+ c = get_style()->get_bg (get_state());
+ r = c.get_red_p ();
+ g = c.get_green_p ();
+ b = c.get_blue_p ();
+ context->set_source_rgb (r, g, b);
+ context->rectangle (0, 0, darea.get_width() - ((darea.get_width()+1) % 2), darea.get_height());
+ context->fill ();
+ }
+
+ c = get_style()->get_fg (get_state());
+ r = c.get_red_p ();
+ g = c.get_green_p ();
+ b = c.get_blue_p ();
+ context->set_source_rgb (r, g, b);
+ context->move_to (x1, 0);
+ context->line_to (x1, h);
+ context->stroke ();
+ break;
+
+ case Blob:
+ w = darea.get_width() - 1;
+ h = darea.get_height();
+ x1 = (gint) floor (w * fract);
+ x2 = min (w-2,h-2);
+