+ virtual void render (cairo_t *, cairo_rectangle_t*) = 0;
+
+ static void set_flat_buttons (bool yn);
+ static bool flat_buttons() { return _flat_buttons; }
+
+ static void set_widget_prelight (bool yn);
+ static bool widget_prelight() { return _widget_prelight; }
+
+ static void set_source_rgb_a( cairo_t* cr, Gdk::Color, float a=1.0 );
+
+ /* set_focus_handler() will cause all button-press events on any
+ CairoWidget to invoke this slot/functor/function/method/callback.
+
+ We do this because in general, CairoWidgets do not grab
+ keyboard focus, but a button press on them should
+ clear focus from any active text entry.
+
+ This is global to all CairoWidgets and derived types.
+
+ However, derived types can override the behaviour by defining their
+ own on_button_press_event() handler which returns true under all
+ conditions (which will block this handler from being called). If
+ they wish to invoke any existing focus handler from their own
+ button press handler, they can just use: focus_handler();
+ */
+ static void set_focus_handler (sigc::slot<void>);
+