summaryrefslogtreecommitdiffstats
path: root/chromium/ui/wm/public/scoped_tooltip_disabler.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/wm/public/scoped_tooltip_disabler.h')
-rw-r--r--chromium/ui/wm/public/scoped_tooltip_disabler.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/chromium/ui/wm/public/scoped_tooltip_disabler.h b/chromium/ui/wm/public/scoped_tooltip_disabler.h
new file mode 100644
index 00000000000..0fd3e113eee
--- /dev/null
+++ b/chromium/ui/wm/public/scoped_tooltip_disabler.h
@@ -0,0 +1,39 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UI_WM_PUBLIC_SCOPED_TOOLTIP_DISABLER_H_
+#define UI_WM_PUBLIC_SCOPED_TOOLTIP_DISABLER_H_
+
+#include "ui/aura/window_observer.h"
+
+namespace aura {
+namespace client {
+
+// Use to temporarily disable tooltips.
+class AURA_EXPORT ScopedTooltipDisabler : aura::WindowObserver {
+ public:
+ // Disables tooltips on |window| (does nothing if |window| is NULL). Tooltips
+ // are reenabled from the destructor when there are no most outstanding
+ // ScopedTooltipDisablers for |window|.
+ explicit ScopedTooltipDisabler(aura::Window* window);
+ virtual ~ScopedTooltipDisabler();
+
+ private:
+ // Reenables the tooltips on the TooltipClient.
+ void EnableTooltips();
+
+ // aura::WindowObserver:
+ virtual void OnWindowDestroying(aura::Window* window) OVERRIDE;
+
+ // The RootWindow to disable Tooltips on; NULL if the Window passed to the
+ // constructor was not in a root or the root has been destroyed.
+ aura::Window* root_;
+
+ DISALLOW_COPY_AND_ASSIGN(ScopedTooltipDisabler);
+};
+
+} // namespace client
+} // namespace aura
+
+#endif // UI_WM_PUBLIC_SCOPED_TOOLTIP_DISABLER_H_