summaryrefslogtreecommitdiff
path: root/gtk2_ardour/cairo_widget.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2011-10-27 11:24:43 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2011-10-27 11:24:43 +0000
commit892f3c361e1b6d22da7f38194ec42182c185b14e (patch)
tree56b5c50708c8310134acc1af34c16e21c1de8ebd /gtk2_ardour/cairo_widget.cc
parent24765e845965211e0731c577a2bfcd6f76de9674 (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.cc27
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 ();
}
}