+
+ if (rail->get_has_alpha()) {
+ format = Cairo::FORMAT_ARGB32;
+ } else {
+ format = Cairo::FORMAT_RGB24;
+ }
+ rail_surface = Cairo::ImageSurface::create (format, rail->get_width(), rail->get_height());
+ rail_context = Cairo::Context::create (rail_surface);
+ Gdk::Cairo::set_source_pixbuf (rail_context, rail, 0.0, 0.0);
+ rail_context->paint();
+
+ if (slider->get_has_alpha()) {
+ format = Cairo::FORMAT_ARGB32;
+ } else {
+ format = Cairo::FORMAT_RGB24;
+ }
+ slider_surface = Cairo::ImageSurface::create (format, slider->get_width(), slider->get_height());
+ slider_context = Cairo::Context::create (slider_surface);
+ Gdk::Cairo::set_source_pixbuf (slider_context, slider, 0.0, 0.0);
+ slider_context->paint();