+stock_plugin_realize(GtkWidget* widget)
+{
+ GdkScreen *screen = gtk_widget_get_screen(widget);
+ gtk_widget_set_colormap(widget, gdk_screen_get_rgba_colormap(screen));
+ gtk_widget_set_app_paintable(widget, TRUE);
+ GTK_WIDGET_CLASS(stock_plugin_parent_class)->realize(widget);
+}
+
+void
+cairo_rounded_rectangle(cairo_t *cr,
+ double x,
+ double y,
+ double width,
+ double height,
+ double corner_div)
+{
+ double aspect = 1.0;
+ double corner_radius = height / corner_div;
+ double radius = corner_radius / aspect;
+ double degrees = 3.14159265 / 180.0;
+
+ cairo_new_sub_path (cr);
+ cairo_arc (cr, x + width - radius, y + radius, radius, -90 * degrees, 0 * degrees);
+ cairo_arc (cr, x + width - radius, y + height - radius, radius, 0 * degrees, 90 * degrees);
+ cairo_arc (cr, x + radius, y + height - radius, radius, 90 * degrees, 180 * degrees);
+ cairo_arc (cr, x + radius, y + radius, radius, 180 * degrees, 270 * degrees);
+ cairo_close_path (cr);
+
+ cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.25);
+ cairo_fill_preserve (cr);
+ cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 1.0);
+ cairo_set_line_width (cr, 1.0);
+ cairo_stroke (cr);
+}
+
+static gboolean
+stock_plugin_expose(GtkWidget* widget, GdkEventExpose *event)
+{
+ cairo_t* cr;
+ int width = 0;
+ int height = 0;
+ GdkRectangle *psRect;
+
+ cr = gdk_cairo_create(GDK_DRAWABLE(widget->window));
+
+ psRect = &event->area;
+
+ width = psRect->width;
+ height = psRect->height;
+
+ DebugOut(("X: %d Y: %d Width: %d Height %d",psRect->x,psRect->y,psRect->width,psRect->height));
+
+ cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.5);
+ #if 1
+ cairo_rounded_rectangle(cr, 0, 0, width, height, 10.0);
+ #else
+ cairo_rectangle(cr, 0, 0, width, height);
+ #endif
+ cairo_fill(cr);
+
+ cairo_destroy(cr);
+ return GTK_WIDGET_CLASS(stock_plugin_parent_class)->expose_event(widget, event);
+}
+
+static void