ardourfader: beginning of per-fader color
This commit is contained in:
parent
e0d33bb726
commit
9459ca5583
@ -58,6 +58,8 @@ ArdourFader::ArdourFader (Gtk::Adjustment& adj, int orientation, int fader_lengt
|
|||||||
, _dragging (false)
|
, _dragging (false)
|
||||||
, _centered_text (true)
|
, _centered_text (true)
|
||||||
, _current_parent (0)
|
, _current_parent (0)
|
||||||
|
, have_explicit_bg (false)
|
||||||
|
, have_explicit_fg (false)
|
||||||
{
|
{
|
||||||
_default_value = _adjustment.get_value();
|
_default_value = _adjustment.get_value();
|
||||||
update_unity_position ();
|
update_unity_position ();
|
||||||
@ -206,6 +208,18 @@ ArdourFader::create_patterns ()
|
|||||||
cairo_surface_destroy (surface);
|
cairo_surface_destroy (surface);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Gdk::Color
|
||||||
|
ArdourFader::bg_color (Gtk::StateType s)
|
||||||
|
{
|
||||||
|
return get_style()->get_bg (s);
|
||||||
|
}
|
||||||
|
|
||||||
|
Gdk::Color
|
||||||
|
ArdourFader::fg_color (Gtk::StateType s)
|
||||||
|
{
|
||||||
|
return get_style()->get_fg (s);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArdourFader::render (Cairo::RefPtr<Cairo::Context> const& ctx, cairo_rectangle_t* area)
|
ArdourFader::render (Cairo::RefPtr<Cairo::Context> const& ctx, cairo_rectangle_t* area)
|
||||||
{
|
{
|
||||||
@ -258,9 +272,9 @@ ArdourFader::render (Cairo::RefPtr<Cairo::Context> const& ctx, cairo_rectangle_t
|
|||||||
cairo_matrix_init_translate (&matrix, 0, (h - ds));
|
cairo_matrix_init_translate (&matrix, 0, (h - ds));
|
||||||
cairo_pattern_set_matrix (_pattern, &matrix);
|
cairo_pattern_set_matrix (_pattern, &matrix);
|
||||||
} else {
|
} else {
|
||||||
CairoWidget::set_source_rgb_a (cr, get_style()->get_bg (get_state()), 1);
|
CairoWidget::set_source_rgb_a (cr, bg_color (get_state()), 1);
|
||||||
cairo_fill (cr);
|
cairo_fill (cr);
|
||||||
CairoWidget::set_source_rgb_a (cr, get_style()->get_fg (get_state()), 1);
|
CairoWidget::set_source_rgb_a (cr, fg_color (get_state()), 1);
|
||||||
Gtkmm2ext::rounded_rectangle (cr, CORNER_OFFSET, ds + CORNER_OFFSET,
|
Gtkmm2ext::rounded_rectangle (cr, CORNER_OFFSET, ds + CORNER_OFFSET,
|
||||||
w - CORNER_SIZE, h - ds - CORNER_SIZE, CORNER_RADIUS);
|
w - CORNER_SIZE, h - ds - CORNER_SIZE, CORNER_RADIUS);
|
||||||
}
|
}
|
||||||
@ -288,9 +302,9 @@ ArdourFader::render (Cairo::RefPtr<Cairo::Context> const& ctx, cairo_rectangle_t
|
|||||||
cairo_matrix_init_translate (&matrix, w - ds, 0);
|
cairo_matrix_init_translate (&matrix, w - ds, 0);
|
||||||
cairo_pattern_set_matrix (_pattern, &matrix);
|
cairo_pattern_set_matrix (_pattern, &matrix);
|
||||||
} else {
|
} else {
|
||||||
CairoWidget::set_source_rgb_a (cr, get_style()->get_bg (get_state()), 1);
|
CairoWidget::set_source_rgb_a (cr, bg_color (get_state()), 1);
|
||||||
cairo_fill (cr);
|
cairo_fill (cr);
|
||||||
CairoWidget::set_source_rgb_a (cr, get_style()->get_fg (get_state()), 1);
|
CairoWidget::set_source_rgb_a (cr, fg_color (get_state()), 1);
|
||||||
Gtkmm2ext::rounded_rectangle (cr, CORNER_OFFSET, CORNER_OFFSET,
|
Gtkmm2ext::rounded_rectangle (cr, CORNER_OFFSET, CORNER_OFFSET,
|
||||||
ds - CORNER_SIZE, h - CORNER_SIZE, CORNER_RADIUS);
|
ds - CORNER_SIZE, h - CORNER_SIZE, CORNER_RADIUS);
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#include <gtkmm/adjustment.h>
|
#include <gtkmm/adjustment.h>
|
||||||
|
|
||||||
#include "gtkmm2ext/cairo_widget.h"
|
#include "gtkmm2ext/cairo_widget.h"
|
||||||
|
#include "gtkmm2ext/colors.h"
|
||||||
#include "widgets/visibility.h"
|
#include "widgets/visibility.h"
|
||||||
|
|
||||||
namespace ArdourWidgets {
|
namespace ArdourWidgets {
|
||||||
@ -99,12 +100,18 @@ private:
|
|||||||
sigc::connection _parent_style_change;
|
sigc::connection _parent_style_change;
|
||||||
Widget * _current_parent;
|
Widget * _current_parent;
|
||||||
Gdk::Color get_parent_bg ();
|
Gdk::Color get_parent_bg ();
|
||||||
|
Gtkmm2ext::Color _explicit_bg;
|
||||||
|
bool have_explicit_bg;
|
||||||
|
Gtkmm2ext::Color _explicit_fg;
|
||||||
|
bool have_explicit_fg;
|
||||||
|
|
||||||
void create_patterns();
|
void create_patterns();
|
||||||
void adjustment_changed ();
|
void adjustment_changed ();
|
||||||
void set_adjustment_from_event (GdkEventButton *);
|
void set_adjustment_from_event (GdkEventButton *);
|
||||||
void update_unity_position ();
|
void update_unity_position ();
|
||||||
int display_span ();
|
int display_span ();
|
||||||
|
Gdk::Color bg_color (Gtk::StateType);
|
||||||
|
Gdk::Color fg_color (Gtk::StateType);
|
||||||
|
|
||||||
struct FaderImage {
|
struct FaderImage {
|
||||||
cairo_pattern_t* pattern;
|
cairo_pattern_t* pattern;
|
||||||
|
Loading…
Reference in New Issue
Block a user