ardour
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
Gtkmm2ext::FastMeter Class Reference

#include <fastmeter.h>

Inheritance diagram for Gtkmm2ext::FastMeter:
CairoWidget

Classes

struct  Pattern10MapKey
 
struct  PatternBgMapKey
 

Public Types

enum  Orientation { Horizontal, Vertical }
 

Public Member Functions

 FastMeter (long hold_cnt, unsigned long width, Orientation, int len=0, int clr0=0x008800ff, int clr1=0x008800ff, int clr2=0x00ff00ff, int clr3=0x00ff00ff, int clr4=0xffaa00ff, int clr5=0xffaa00ff, int clr6=0xffff00ff, int clr7=0xffff00ff, int clr8=0xff0000ff, int clr9=0xff0000ff, int bgc0=0x333333ff, int bgc1=0x444444ff, int bgh0=0x991122ff, int bgh1=0x551111ff, float stp0=55.0, float stp1=77.5, float stp2=92.5, float stp3=100.0, int styleflags=3)
 
virtual ~FastMeter ()
 
void set (float level, float peak=-1)
 
void clear ()
 
float get_level ()
 
float get_user_level ()
 
float get_peak ()
 
long hold_count ()
 
void set_hold_count (long)
 
void set_highlight (bool)
 
bool get_highlight ()
 
- Public Member Functions inherited from CairoWidget
 CairoWidget ()
 
virtual ~CairoWidget ()
 
void set_dirty ()
 
Gtkmm2ext::ActiveState active_state () const
 
Gtkmm2ext::VisualState visual_state () const
 
virtual void set_active_state (Gtkmm2ext::ActiveState)
 
virtual void set_visual_state (Gtkmm2ext::VisualState)
 
void unset_active_state ()
 
void unset_visual_state ()
 
void set_active (bool)
 
bool get_active ()
 
void set_draw_background (bool yn)
 

Static Public Member Functions

static void flush_pattern_cache ()
 
- Static Public Member Functions inherited from CairoWidget
static void provide_background_for_cairo_widget (Gtk::Widget &w, const Gdk::Color &bg)
 
static void set_flat_buttons (bool yn)
 
static bool flat_buttons ()
 
static void set_widget_prelight (bool yn)
 
static bool widget_prelight ()
 
static void set_source_rgb_a (cairo_t *cr, Gdk::Color, float a=1.0)
 
static void set_focus_handler (sigc::slot< void >)
 

Protected Member Functions

void render (cairo_t *, cairo_rectangle_t *)
 
void on_size_request (GtkRequisition *)
 
void on_size_allocate (Gtk::Allocation &)
 
- Protected Member Functions inherited from CairoWidget
virtual bool on_expose_event (GdkEventExpose *)
 
void on_size_allocate (Gtk::Allocation &)
 
void on_state_changed (Gtk::StateType)
 
void on_style_changed (const Glib::RefPtr< Gtk::Style > &)
 
bool on_button_press_event (GdkEventButton *)
 
Gdk::Color get_parent_bg ()
 
virtual void on_name_changed ()
 

Private Types

typedef std::map
< Pattern10MapKey,
Cairo::RefPtr< Cairo::Pattern > > 
Pattern10Map
 
typedef std::map
< PatternBgMapKey,
Cairo::RefPtr< Cairo::Pattern > > 
PatternBgMap
 

Private Member Functions

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)
 
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)
 

Static Private Member Functions

static Cairo::RefPtr
< Cairo::Pattern > 
generate_meter_pattern (int, int, int *, float *, int, bool)
 
static Cairo::RefPtr
< Cairo::Pattern > 
request_vertical_meter (int, int, int *, float *, int)
 
static Cairo::RefPtr
< Cairo::Pattern > 
request_horizontal_meter (int, int, int *, float *, int)
 
static Cairo::RefPtr
< Cairo::Pattern > 
generate_meter_background (int, int, int *, bool, bool)
 
static Cairo::RefPtr
< Cairo::Pattern > 
request_vertical_background (int, int, int *, bool)
 
static Cairo::RefPtr
< Cairo::Pattern > 
request_horizontal_background (int, int, int *, bool)
 

Private Attributes

Cairo::RefPtr< Cairo::Pattern > fgpattern
 
Cairo::RefPtr< Cairo::Pattern > bgpattern
 
gint pixheight
 
gint pixwidth
 
float _stp [4]
 
int _clr [10]
 
int _bgc [2]
 
int _bgh [2]
 
int _styleflags
 
Orientation orientation
 
GdkRectangle pixrect
 
GdkRectangle last_peak_rect
 
gint request_width
 
gint request_height
 
unsigned long hold_cnt
 
unsigned long hold_state
 
bool bright_hold
 
float current_level
 
float current_peak
 
float current_user_level
 
bool highlight
 

Static Private Attributes

static bool no_rgba_overlay = false
 
static Pattern10Map vm_pattern_cache
 
static PatternBgMap vb_pattern_cache
 
static Pattern10Map hm_pattern_cache
 
static PatternBgMap hb_pattern_cache
 
static int min_pattern_metric_size = 16
 
static int max_pattern_metric_size = 1024
 

Additional Inherited Members

- Public Attributes inherited from CairoWidget
sigc::signal< void > StateChanged
 
- Protected Attributes inherited from CairoWidget
Gtkmm2ext::ActiveState _active_state
 
Gtkmm2ext::VisualState _visual_state
 
bool _need_bg
 
bool _grabbed
 
- Static Protected Attributes inherited from CairoWidget
static bool _flat_buttons = false
 
static bool _widget_prelight = true
 
static sigc::slot< void > focus_handler
 

Detailed Description

Definition at line 33 of file fastmeter.h.

Member Typedef Documentation

typedef std::map<Pattern10MapKey, Cairo::RefPtr<Cairo::Pattern> > Gtkmm2ext::FastMeter::Pattern10Map
private

Definition at line 149 of file fastmeter.h.

typedef std::map<PatternBgMapKey, Cairo::RefPtr<Cairo::Pattern> > Gtkmm2ext::FastMeter::PatternBgMap
private

Definition at line 164 of file fastmeter.h.

Member Enumeration Documentation

Enumerator
Horizontal 
Vertical 

Definition at line 35 of file fastmeter.h.

Constructor & Destructor Documentation

FastMeter::FastMeter ( long  hold_cnt,
unsigned long  width,
Orientation  o,
int  len = 0,
int  clr0 = 0x008800ff,
int  clr1 = 0x008800ff,
int  clr2 = 0x00ff00ff,
int  clr3 = 0x00ff00ff,
int  clr4 = 0xffaa00ff,
int  clr5 = 0xffaa00ff,
int  clr6 = 0xffff00ff,
int  clr7 = 0xffff00ff,
int  clr8 = 0xff0000ff,
int  clr9 = 0xff0000ff,
int  bgc0 = 0x333333ff,
int  bgc1 = 0x444444ff,
int  bgh0 = 0x991122ff,
int  bgh1 = 0x551111ff,
float  stp0 = 55.0,
float  stp1 = 77.5,
float  stp2 = 92.5,
float  stp3 = 100.0,
int  styleflags = 3 
)

Definition at line 52 of file fastmeter.cc.

FastMeter::~FastMeter ( )
virtual

Definition at line 132 of file fastmeter.cc.

Member Function Documentation

void FastMeter::clear ( )

Definition at line 921 of file fastmeter.cc.

void FastMeter::flush_pattern_cache ( )
static

Definition at line 137 of file fastmeter.cc.

Cairo::RefPtr< Cairo::Pattern > FastMeter::generate_meter_background ( int  width,
int  height,
int *  clr,
bool  shade,
bool  horiz 
)
staticprivate

Definition at line 281 of file fastmeter.cc.

Cairo::RefPtr< Cairo::Pattern > FastMeter::generate_meter_pattern ( int  width,
int  height,
int *  clr,
float *  stp,
int  styleflags,
bool  horiz 
)
staticprivate

Definition at line 155 of file fastmeter.cc.

bool Gtkmm2ext::FastMeter::get_highlight ( )
inline

Definition at line 67 of file fastmeter.h.

float Gtkmm2ext::FastMeter::get_level ( )
inline

Definition at line 60 of file fastmeter.h.

float Gtkmm2ext::FastMeter::get_peak ( )
inline

Definition at line 62 of file fastmeter.h.

float Gtkmm2ext::FastMeter::get_user_level ( )
inline

Definition at line 61 of file fastmeter.h.

long Gtkmm2ext::FastMeter::hold_count ( )
inline

Definition at line 64 of file fastmeter.h.

void FastMeter::horizontal_expose ( cairo_t *  cr,
cairo_rectangle_t *  area 
)
private

Definition at line 637 of file fastmeter.cc.

void FastMeter::horizontal_size_allocate ( Gtk::Allocation &  alloc)
private

Definition at line 529 of file fastmeter.cc.

void FastMeter::horizontal_size_request ( GtkRequisition *  req)
private

Definition at line 482 of file fastmeter.cc.

void FastMeter::on_size_allocate ( Gtk::Allocation &  alloc)
protected

Definition at line 493 of file fastmeter.cc.

void FastMeter::on_size_request ( GtkRequisition *  req)
protected

Definition at line 461 of file fastmeter.cc.

void FastMeter::queue_horizontal_redraw ( const Glib::RefPtr< Gdk::Window > &  win,
float  old_level 
)
private

Definition at line 835 of file fastmeter.cc.

void FastMeter::queue_vertical_redraw ( const Glib::RefPtr< Gdk::Window > &  win,
float  old_level 
)
private

Definition at line 754 of file fastmeter.cc.

void FastMeter::render ( cairo_t *  cr,
cairo_rectangle_t *  area 
)
protectedvirtual

Implements CairoWidget.

Definition at line 554 of file fastmeter.cc.

Cairo::RefPtr< Cairo::Pattern > FastMeter::request_horizontal_background ( int  width,
int  height,
int *  bgc,
bool  shade 
)
staticprivate

Definition at line 422 of file fastmeter.cc.

Cairo::RefPtr< Cairo::Pattern > FastMeter::request_horizontal_meter ( int  width,
int  height,
int *  clr,
float *  stp,
int  styleflags 
)
staticprivate

Definition at line 396 of file fastmeter.cc.

Cairo::RefPtr< Cairo::Pattern > FastMeter::request_vertical_background ( int  width,
int  height,
int *  bgc,
bool  shade 
)
staticprivate

Definition at line 374 of file fastmeter.cc.

Cairo::RefPtr< Cairo::Pattern > FastMeter::request_vertical_meter ( int  width,
int  height,
int *  clr,
float *  stp,
int  styleflags 
)
staticprivate

Definition at line 348 of file fastmeter.cc.

void FastMeter::set ( float  level,
float  peak = -1 
)

Definition at line 706 of file fastmeter.cc.

void FastMeter::set_highlight ( bool  onoff)

Definition at line 906 of file fastmeter.cc.

void FastMeter::set_hold_count ( long  val)

Definition at line 447 of file fastmeter.cc.

void FastMeter::vertical_expose ( cairo_t *  cr,
cairo_rectangle_t *  area 
)
private

Definition at line 564 of file fastmeter.cc.

void FastMeter::vertical_size_allocate ( Gtk::Allocation &  alloc)
private

Definition at line 504 of file fastmeter.cc.

void FastMeter::vertical_size_request ( GtkRequisition *  req)
private

Definition at line 471 of file fastmeter.cc.

Member Data Documentation

int Gtkmm2ext::FastMeter::_bgc[2]
private

Definition at line 82 of file fastmeter.h.

int Gtkmm2ext::FastMeter::_bgh[2]
private

Definition at line 83 of file fastmeter.h.

int Gtkmm2ext::FastMeter::_clr[10]
private

Definition at line 81 of file fastmeter.h.

float Gtkmm2ext::FastMeter::_stp[4]
private

Definition at line 80 of file fastmeter.h.

int Gtkmm2ext::FastMeter::_styleflags
private

Definition at line 84 of file fastmeter.h.

Cairo::RefPtr<Cairo::Pattern> Gtkmm2ext::FastMeter::bgpattern
private

Definition at line 76 of file fastmeter.h.

bool Gtkmm2ext::FastMeter::bright_hold
private

Definition at line 93 of file fastmeter.h.

float Gtkmm2ext::FastMeter::current_level
private

Definition at line 94 of file fastmeter.h.

float Gtkmm2ext::FastMeter::current_peak
private

Definition at line 95 of file fastmeter.h.

float Gtkmm2ext::FastMeter::current_user_level
private

Definition at line 96 of file fastmeter.h.

Cairo::RefPtr<Cairo::Pattern> Gtkmm2ext::FastMeter::fgpattern
private

Definition at line 75 of file fastmeter.h.

FastMeter::PatternBgMap FastMeter::hb_pattern_cache
staticprivate

Definition at line 169 of file fastmeter.h.

bool Gtkmm2ext::FastMeter::highlight
private

Definition at line 97 of file fastmeter.h.

FastMeter::Pattern10Map FastMeter::hm_pattern_cache
staticprivate

Definition at line 168 of file fastmeter.h.

unsigned long Gtkmm2ext::FastMeter::hold_cnt
private

Definition at line 91 of file fastmeter.h.

unsigned long Gtkmm2ext::FastMeter::hold_state
private

Definition at line 92 of file fastmeter.h.

GdkRectangle Gtkmm2ext::FastMeter::last_peak_rect
private

Definition at line 88 of file fastmeter.h.

int FastMeter::max_pattern_metric_size = 1024
staticprivate

Definition at line 171 of file fastmeter.h.

int FastMeter::min_pattern_metric_size = 16
staticprivate

Definition at line 170 of file fastmeter.h.

bool FastMeter::no_rgba_overlay = false
staticprivate

Definition at line 109 of file fastmeter.h.

Orientation Gtkmm2ext::FastMeter::orientation
private

Definition at line 86 of file fastmeter.h.

gint Gtkmm2ext::FastMeter::pixheight
private

Definition at line 77 of file fastmeter.h.

GdkRectangle Gtkmm2ext::FastMeter::pixrect
private

Definition at line 87 of file fastmeter.h.

gint Gtkmm2ext::FastMeter::pixwidth
private

Definition at line 78 of file fastmeter.h.

gint Gtkmm2ext::FastMeter::request_height
private

Definition at line 90 of file fastmeter.h.

gint Gtkmm2ext::FastMeter::request_width
private

Definition at line 89 of file fastmeter.h.

FastMeter::PatternBgMap FastMeter::vb_pattern_cache
staticprivate

Definition at line 167 of file fastmeter.h.

FastMeter::Pattern10Map FastMeter::vm_pattern_cache
staticprivate

Definition at line 166 of file fastmeter.h.


The documentation for this class was generated from the following files: