diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-05-06 18:40:37 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-05-06 18:40:37 +0000 |
commit | f2ceb5c3404bb3e7f4ccc5bb3f2236f593775d73 (patch) | |
tree | b8cc08678ab9b4e189a5cd97ae16f425fe8ab0b4 /gtk2_ardour/led.cc | |
parent | e1ed9467dc9f9ffec7549958b1bca27b753e8742 (diff) |
lots of odds and ends to do with solo isolate and its GUI
git-svn-id: svn://localhost/ardour2/branches/3.0@7072 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/led.cc')
-rw-r--r-- | gtk2_ardour/led.cc | 48 |
1 files changed, 30 insertions, 18 deletions
diff --git a/gtk2_ardour/led.cc b/gtk2_ardour/led.cc index 645b65e99b..76d71bc35e 100644 --- a/gtk2_ardour/led.cc +++ b/gtk2_ardour/led.cc @@ -122,24 +122,7 @@ LED::set_visual_state (int32_t s) if (s != _visual_state) { _visual_state = s; - - RefPtr<Style> style = get_style(); - Color c; - - switch (_visual_state) { - case 0: - c = style->get_fg (STATE_NORMAL); - break; - default: - c = style->get_fg (STATE_ACTIVE); - break; - } - - _red = c.get_red_p (); - _green = c.get_green_p (); - _blue = c.get_blue_p (); - - set_dirty (); + set_colors_from_style (); } } @@ -156,6 +139,13 @@ LED::set_diameter (float d) } void +LED::on_realize () +{ + set_colors_from_style (); + CairoWidget::on_realize (); +} + +void LED::on_size_request (Gtk::Requisition* req) { if (_fixed_diameter) { @@ -165,3 +155,25 @@ LED::on_size_request (Gtk::Requisition* req) CairoWidget::on_size_request (req); } } + +void +LED::set_colors_from_style () +{ + RefPtr<Style> style = get_style(); + Color c; + + switch (_visual_state) { + case 0: + c = style->get_fg (STATE_NORMAL); + break; + default: + c = style->get_fg (STATE_ACTIVE); + break; + } + + _red = c.get_red_p (); + _green = c.get_green_p (); + _blue = c.get_blue_p (); + + set_dirty (); +} |