X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fgtkmm2ext%2Fgtkmm2ext%2Ffastmeter.h;h=dbb3296c4653fe30c0d0844d7f3bc980d3edc134;hb=2a7a64a8738413df27e494e67c31695a429f6edc;hp=6802481777c0819cf6d6319adc7df091db53cba8;hpb=5792674ca4d02e093b4318d31a117a47ae72ecdf;p=ardour.git diff --git a/libs/gtkmm2ext/gtkmm2ext/fastmeter.h b/libs/gtkmm2ext/gtkmm2ext/fastmeter.h index 6802481777..dbb3296c46 100644 --- a/libs/gtkmm2ext/gtkmm2ext/fastmeter.h +++ b/libs/gtkmm2ext/gtkmm2ext/fastmeter.h @@ -24,14 +24,13 @@ #include #include #include -#include -#include +#include "gtkmm2ext/cairo_widget.h" #include "gtkmm2ext/visibility.h" namespace Gtkmm2ext { -class LIBGTKMM2EXT_API FastMeter : public Gtk::DrawingArea { +class LIBGTKMM2EXT_API FastMeter : public CairoWidget { public: enum Orientation { Horizontal, @@ -53,6 +52,7 @@ class LIBGTKMM2EXT_API FastMeter : public Gtk::DrawingArea { int styleflags = 3 ); virtual ~FastMeter (); + static void flush_pattern_cache(); void set (float level, float peak = -1); void clear (); @@ -67,7 +67,7 @@ class LIBGTKMM2EXT_API FastMeter : public Gtk::DrawingArea { bool get_highlight () { return highlight; } protected: - bool on_expose_event (GdkEventExpose*); + void render (cairo_t *, cairo_rectangle_t*); void on_size_request (GtkRequisition*); void on_size_allocate (Gtk::Allocation&); private: @@ -96,12 +96,12 @@ private: float current_user_level; bool highlight; - bool vertical_expose (GdkEventExpose*); + void vertical_expose (cairo_t*, cairo_rectangle_t*); void vertical_size_request (GtkRequisition*); void vertical_size_allocate (Gtk::Allocation&); void queue_vertical_redraw (const Glib::RefPtr&, float); - bool horizontal_expose (GdkEventExpose*); + void horizontal_expose (cairo_t*, cairo_rectangle_t*); void horizontal_size_request (GtkRequisition*); void horizontal_size_allocate (Gtk::Allocation&); void queue_horizontal_redraw (const Glib::RefPtr&, float);