diff options
author | Robin Gareus <robin@gareus.org> | 2017-03-20 17:11:56 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-03-20 17:12:08 +0100 |
commit | d06de26a4fd828b6a0a9da8718e3b0c829a4d162 (patch) | |
tree | 4dedb0ad6a118e0d60aeee611652bb1180d14a8c /libs/gtkmm2ext | |
parent | 3294b82e259085997f6e2f0d361cbb3ef4763545 (diff) |
Towards a consistent render() API.
This fixes an -Woverloaded-virtual ambiguity introduced in b5e613d45
void render (cairo_t*, cairo_rectagle*)
void render (Cairo::RefPtr<Cairo::Context> const&, cairo_rectangle_t*)
ArdourCanvas prefers cairomm and CairoWidget itself uses Cairo::Context,
this improves overall API consistency.
Diffstat (limited to 'libs/gtkmm2ext')
-rw-r--r-- | libs/gtkmm2ext/cairo_widget.cc | 4 | ||||
-rw-r--r-- | libs/gtkmm2ext/fader.cc | 3 | ||||
-rw-r--r-- | libs/gtkmm2ext/fastmeter.cc | 6 | ||||
-rw-r--r-- | libs/gtkmm2ext/gtkmm2ext/cairo_widget.h | 7 | ||||
-rw-r--r-- | libs/gtkmm2ext/gtkmm2ext/fader.h | 2 | ||||
-rw-r--r-- | libs/gtkmm2ext/gtkmm2ext/fastmeter.h | 2 | ||||
-rw-r--r-- | libs/gtkmm2ext/gtkmm2ext/pixfader.h | 2 | ||||
-rw-r--r-- | libs/gtkmm2ext/pixfader.cc | 4 | ||||
-rw-r--r-- | libs/gtkmm2ext/waves_fastmeter.cc | 6 |
9 files changed, 17 insertions, 19 deletions
diff --git a/libs/gtkmm2ext/cairo_widget.cc b/libs/gtkmm2ext/cairo_widget.cc index 088e21b6a8..d06f07ced2 100644 --- a/libs/gtkmm2ext/cairo_widget.cc +++ b/libs/gtkmm2ext/cairo_widget.cc @@ -195,7 +195,7 @@ CairoWidget::on_expose_event (GdkEventExpose *ev) cr->fill (); } - render (cr->cobj(), &expose_area); + render (cr, &expose_area); #ifdef USE_CAIRO_IMAGE_SURFACE_FOR_CAIRO_WIDGET if(get_visible_window ()) { @@ -283,7 +283,7 @@ CairoWidget::on_expose_event (GdkEventExpose *ev) expose_area.width = ev->area.width; expose_area.height = ev->area.height; - render (cr->cobj(), &expose_area); + render (cr, &expose_area); #ifdef OPTIONAL_CAIRO_IMAGE_SURFACE if (getenv("ARDOUR_IMAGE_SURFACE")) { diff --git a/libs/gtkmm2ext/fader.cc b/libs/gtkmm2ext/fader.cc index f6fe487ed1..899e0a886f 100644 --- a/libs/gtkmm2ext/fader.cc +++ b/libs/gtkmm2ext/fader.cc @@ -184,8 +184,9 @@ Fader::set_touch_cursor (const Glib::RefPtr<Gdk::Pixbuf>& touch_cursor) } void -Fader::render (cairo_t* cr, cairo_rectangle_t*) +Fader::render (Cairo::RefPtr<Cairo::Context> const& ctx, cairo_rectangle_t*) { + cairo_t* cr = ctx->cobj(); double xscale = 1.0; double yscale = 1.0; diff --git a/libs/gtkmm2ext/fastmeter.cc b/libs/gtkmm2ext/fastmeter.cc index f3928910bc..c2275eab9f 100644 --- a/libs/gtkmm2ext/fastmeter.cc +++ b/libs/gtkmm2ext/fastmeter.cc @@ -544,12 +544,12 @@ FastMeter::horizontal_size_allocate (Gtk::Allocation &alloc) } void -FastMeter::render (cairo_t* cr, cairo_rectangle_t* area) +FastMeter::render (Cairo::RefPtr<Cairo::Context> const& ctx, cairo_rectangle_t* area) { if (orientation == Vertical) { - return vertical_expose (cr, area); + return vertical_expose (ctx->cobj(), area); } else { - return horizontal_expose (cr, area); + return horizontal_expose (ctx->cobj(), area); } } diff --git a/libs/gtkmm2ext/gtkmm2ext/cairo_widget.h b/libs/gtkmm2ext/gtkmm2ext/cairo_widget.h index 3b8fc545a9..6d8c1f5d55 100644 --- a/libs/gtkmm2ext/gtkmm2ext/cairo_widget.h +++ b/libs/gtkmm2ext/gtkmm2ext/cairo_widget.h @@ -20,6 +20,7 @@ #ifndef __gtk2_ardour_cairo_widget_h__ #define __gtk2_ardour_cairo_widget_h__ +#include <cairomm/context.h> #include <cairomm/surface.h> #include <gtkmm/eventbox.h> @@ -81,12 +82,6 @@ public: static void provide_background_for_cairo_widget (Gtk::Widget& w, const Gdk::Color& bg); - virtual void render (cairo_t *, cairo_rectangle_t*) = 0; - - virtual void render (Cairo::RefPtr<Cairo::Context> const & ctx, cairo_rectangle_t* r) { - render (ctx->cobj(), r); - } - uint32_t background_color (); static void set_flat_buttons (bool yn); diff --git a/libs/gtkmm2ext/gtkmm2ext/fader.h b/libs/gtkmm2ext/gtkmm2ext/fader.h index e82771901c..ec6df5384b 100644 --- a/libs/gtkmm2ext/gtkmm2ext/fader.h +++ b/libs/gtkmm2ext/gtkmm2ext/fader.h @@ -62,7 +62,7 @@ class LIBGTKMM2EXT_API Fader : public CairoWidget void on_size_request (GtkRequisition*); void on_size_allocate (Gtk::Allocation& alloc); - void render (cairo_t* cr, cairo_rectangle_t*); + void render (Cairo::RefPtr<Cairo::Context> const&, cairo_rectangle_t*); bool on_button_press_event (GdkEventButton*); bool on_button_release_event (GdkEventButton*); bool on_motion_notify_event (GdkEventMotion*); diff --git a/libs/gtkmm2ext/gtkmm2ext/fastmeter.h b/libs/gtkmm2ext/gtkmm2ext/fastmeter.h index dbb3296c46..7b71289d3e 100644 --- a/libs/gtkmm2ext/gtkmm2ext/fastmeter.h +++ b/libs/gtkmm2ext/gtkmm2ext/fastmeter.h @@ -65,9 +65,9 @@ class LIBGTKMM2EXT_API FastMeter : public CairoWidget { void set_hold_count (long); void set_highlight (bool); bool get_highlight () { return highlight; } + void render (Cairo::RefPtr<Cairo::Context> const&, cairo_rectangle_t*); protected: - void render (cairo_t *, cairo_rectangle_t*); void on_size_request (GtkRequisition*); void on_size_allocate (Gtk::Allocation&); private: diff --git a/libs/gtkmm2ext/gtkmm2ext/pixfader.h b/libs/gtkmm2ext/gtkmm2ext/pixfader.h index c5ed9c585c..5454ac53be 100644 --- a/libs/gtkmm2ext/gtkmm2ext/pixfader.h +++ b/libs/gtkmm2ext/gtkmm2ext/pixfader.h @@ -58,7 +58,7 @@ class LIBGTKMM2EXT_API PixFader : public CairoWidget void on_size_request (GtkRequisition*); void on_size_allocate (Gtk::Allocation& alloc); - void render (cairo_t *, cairo_rectangle_t*); + void render (Cairo::RefPtr<Cairo::Context> const&, cairo_rectangle_t*); bool on_grab_broken_event (GdkEventGrabBroken*); bool on_button_press_event (GdkEventButton*); bool on_button_release_event (GdkEventButton*); diff --git a/libs/gtkmm2ext/pixfader.cc b/libs/gtkmm2ext/pixfader.cc index 64ee449646..23510e824e 100644 --- a/libs/gtkmm2ext/pixfader.cc +++ b/libs/gtkmm2ext/pixfader.cc @@ -205,8 +205,10 @@ PixFader::create_patterns () } void -PixFader::render (cairo_t *cr, cairo_rectangle_t* area) +PixFader::render (Cairo::RefPtr<Cairo::Context> const& ctx, cairo_rectangle_t* area) { + cairo_t* cr = ctx->cobj(); + if (!_pattern) { create_patterns(); } diff --git a/libs/gtkmm2ext/waves_fastmeter.cc b/libs/gtkmm2ext/waves_fastmeter.cc index e6b973b130..f290e6ce64 100644 --- a/libs/gtkmm2ext/waves_fastmeter.cc +++ b/libs/gtkmm2ext/waves_fastmeter.cc @@ -542,12 +542,12 @@ FastMeter::horizontal_size_allocate (Gtk::Allocation &alloc) } void -FastMeter::render (cairo_t* cr, cairo_rectangle_t* area) +FastMeter::render (Cairo::RefPtr<Cairo::Context> const& ctx, cairo_rectangle_t* area) { if (orientation == Vertical) { - return vertical_expose (cr, area); + return vertical_expose (cr->cobj(), area); } else { - return horizontal_expose (cr, area); + return horizontal_expose (cr->cobj(), area); } } |