summaryrefslogtreecommitdiff
path: root/gtk2_ardour/led.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-05-06 18:40:37 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-05-06 18:40:37 +0000
commitf2ceb5c3404bb3e7f4ccc5bb3f2236f593775d73 (patch)
treeb8cc08678ab9b4e189a5cd97ae16f425fe8ab0b4 /gtk2_ardour/led.cc
parente1ed9467dc9f9ffec7549958b1bca27b753e8742 (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.cc48
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 ();
+}