Glib::RefPtr<Gdk::Pixbuf> SendProcessorEntry::_slider;
ProcessorEntry::ProcessorEntry (boost::shared_ptr<Processor> p, Width w)
- : _position (PreFader)
+ : _button (ArdourButton::led_default_elements)
+ , _position (PreFader)
, _processor (p)
, _width (w)
, _visual_state (Gtk::STATE_NORMAL)
_vbox.show ();
if (_processor->active()) {
- _button.set_active_state (CairoWidget::Active);
+ _button.set_active_state (Gtkmm2ext::Active);
}
_button.set_diameter (3);
- _button.signal_clicked.connect (sigc::mem_fun (*this, &ProcessorEntry::led_clicked));
- _button.set_text (name());
+ _button.set_distinct_led_click (true);
_button.set_led_left (true);
+ _button.signal_led_clicked.connect (sigc::mem_fun (*this, &ProcessorEntry::led_clicked));
+ _button.set_text (name());
_button.show ();
_processor->ActiveChanged.connect (active_connection, invalidator (*this), boost::bind (&ProcessorEntry::processor_active_changed, this), gui_context());
}
void
-ProcessorEntry::set_visual_state (Gtk::StateType t)
+ProcessorEntry::set_visual_state (Gtkmm2ext::VisualState s, bool yn)
{
- /* map from GTK state to CairoWidget */
-
- switch (t) {
- case Gtk::STATE_ACTIVE:
- _button.set_active_state (CairoWidget::Active);
- _button.unset_visual_state ();
- break;
-
- case Gtk::STATE_SELECTED:
- _button.set_visual_state (CairoWidget::Selected);
- break;
-
- case Gtk::STATE_NORMAL:
- default:
- _button.unset_visual_state ();
- _button.unset_active_state ();
- break;
+ if (yn) {
+ _button.set_visual_state (Gtkmm2ext::VisualState (_button.visual_state() | s));
+ } else {
+ _button.set_visual_state (Gtkmm2ext::VisualState (_button.visual_state() & ~s));
}
}
void
ProcessorEntry::led_clicked()
{
- if (!_processor->active ()) {
- _processor->activate ();
- } else {
+ if (_button.active_state() == Gtkmm2ext::Active) {
_processor->deactivate ();
+ } else {
+ _processor->activate ();
}
}
ProcessorEntry::processor_active_changed ()
{
if (_processor->active()) {
- _button.set_active_state (CairoWidget::Active);
+ _button.set_active_state (Gtkmm2ext::Active);
} else {
_button.unset_active_state ();
}