- /* 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));