#include <boost/tuple/tuple.hpp>
#include <boost/tuple/tuple_comparison.hpp>
#include <cairomm/pattern.h>
-#include <gtkmm/drawingarea.h>
-#include <gdkmm/pixbuf.h>
+#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,
int styleflags = 3
);
virtual ~FastMeter ();
+ static void flush_pattern_cache();
void set (float level, float peak = -1);
void clear ();
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:
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<Gdk::Window>&, 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<Gdk::Window>&, float);