summaryrefslogtreecommitdiff
path: root/libs/gtkmm2ext/visibility_tracker.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-04-26 14:12:52 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-04-26 14:12:52 -0400
commitdb34831b183d511d76ea1f29606e1933e5ad4caf (patch)
treee1418a7085f5879311074717f107098df63ab34c /libs/gtkmm2ext/visibility_tracker.cc
parenta366fba7d0933a8f2d97d95fefcbcdc9692d2117 (diff)
redesign toggling of editor/mixer stacking to use Gtkmm2ext::VisibilityTracker
Diffstat (limited to 'libs/gtkmm2ext/visibility_tracker.cc')
-rw-r--r--libs/gtkmm2ext/visibility_tracker.cc19
1 files changed, 18 insertions, 1 deletions
diff --git a/libs/gtkmm2ext/visibility_tracker.cc b/libs/gtkmm2ext/visibility_tracker.cc
index c0aabdfca6..d5a020d370 100644
--- a/libs/gtkmm2ext/visibility_tracker.cc
+++ b/libs/gtkmm2ext/visibility_tracker.cc
@@ -41,10 +41,27 @@ VisibilityTracker::handle_visibility_notify_event (GdkEventVisibility* ev)
void
VisibilityTracker::cycle_visibility ()
{
- if (window.is_mapped() && (_visibility == GDK_VISIBILITY_UNOBSCURED)) {
+ if (fully_visible ()) {
window.hide ();
} else {
window.present ();
}
}
+bool
+VisibilityTracker::fully_visible () const
+{
+ return window.is_mapped() && (_visibility == GDK_VISIBILITY_UNOBSCURED);
+}
+
+bool
+VisibilityTracker::not_visible () const
+{
+ return !window.is_mapped() || (_visibility == GDK_VISIBILITY_FULLY_OBSCURED);
+}
+
+bool
+VisibilityTracker::partially_visible () const
+{
+ return window.is_mapped() && (_visibility == GDK_VISIBILITY_PARTIAL);
+}