diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2011-10-27 11:24:43 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2011-10-27 11:24:43 +0000 |
commit | 892f3c361e1b6d22da7f38194ec42182c185b14e (patch) | |
tree | 56b5c50708c8310134acc1af34c16e21c1de8ebd /gtk2_ardour/cairo_widget.cc | |
parent | 24765e845965211e0731c577a2bfcd6f76de9674 (diff) |
change CairoWidget API to be a more logical/intuitive for setting widget state, to differentiate between active state and visual state (prelight, insensitive etc)
git-svn-id: svn://localhost/ardour2/branches/3.0@10314 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/cairo_widget.cc')
-rw-r--r-- | gtk2_ardour/cairo_widget.cc | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/gtk2_ardour/cairo_widget.cc b/gtk2_ardour/cairo_widget.cc index 11fcfdffd6..025bb16ea6 100644 --- a/gtk2_ardour/cairo_widget.cc +++ b/gtk2_ardour/cairo_widget.cc @@ -23,7 +23,8 @@ CairoWidget::CairoWidget () : _width (1) , _height (1) - , _state (CairoWidget::State (0)) + , _active_state (CairoWidget::ActiveState (0)) + , _visual_state (CairoWidget::VisualState (0)) , _dirty (true) , _pixmap (0) @@ -131,17 +132,19 @@ CairoWidget::get_parent_bg () } void -CairoWidget::set_state (CairoWidget::State s, bool yn) +CairoWidget::set_active_state (CairoWidget::ActiveState s) { - if (yn) { - if (!(_state & s)) { - _state = CairoWidget::State (_state|s); - StateChanged (); - } - } else { - if (_state & s) { - _state = CairoWidget::State (_state & ~s); - StateChanged (); - } + if (_active_state != s) { + _active_state = s; + StateChanged (); + } +} + +void +CairoWidget::set_visual_state (CairoWidget::VisualState s) +{ + if (_visual_state != s) { + _visual_state = s; + StateChanged (); } } |