• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef UI_AURA_CLIENT_VISIBILITY_CLIENT_H_
6 #define UI_AURA_CLIENT_VISIBILITY_CLIENT_H_
7 
8 #include "ui/aura/aura_export.h"
9 
10 namespace aura {
11 class Window;
12 namespace client {
13 
14 // An interface implemented by an object that manages the visibility of Windows'
15 // layers as Window visibility changes.
16 class AURA_EXPORT VisibilityClient {
17  public:
18   // Called when |window|'s visibility is changing to |visible|. The implementor
19   // can decide whether or not to pass on the visibility to the underlying
20   // layer.
21   virtual void UpdateLayerVisibility(Window* window, bool visible) = 0;
22 
23  protected:
~VisibilityClient()24   virtual ~VisibilityClient() {}
25 };
26 
27 // Sets the VisibilityClient on the Window.
28 AURA_EXPORT void SetVisibilityClient(Window* window, VisibilityClient* client);
29 
30 // Gets the VisibilityClient for the window. This will crawl up |window|'s
31 // hierarchy until it finds one.
32 AURA_EXPORT VisibilityClient* GetVisibilityClient(Window* window);
33 
34 }  // namespace clients
35 }  // namespace aura
36 
37 #endif  // UI_AURA_CLIENT_VISIBILITY_CLIENT_H_
38