• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2013 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_WINDOW_STACKING_DELEGATE_H_
6 #define UI_AURA_CLIENT_WINDOW_STACKING_DELEGATE_H_
7 
8 #include "base/basictypes.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "ui/aura/aura_export.h"
11 #include "ui/aura/window.h"
12 
13 namespace aura {
14 namespace client {
15 
16 class AURA_EXPORT WindowStackingClient {
17  public:
~WindowStackingClient()18   virtual ~WindowStackingClient() {}
19 
20   // Invoked from the various Window stacking functions. Allows the
21   // WindowStackingClient to alter the source, target and/or direction to stack.
22   virtual void AdjustStacking(Window** child,
23                               Window** target,
24                               Window::StackDirection* direction) = 0;
25 };
26 
27 // Sets/gets the WindowStackingClient. The setter takes ownership of |client|.
28 AURA_EXPORT void SetWindowStackingClient(WindowStackingClient* client);
29 AURA_EXPORT WindowStackingClient* GetWindowStackingClient();
30 
31 }  // namespace client
32 }  // namespace aura
33 
34 #endif  // UI_AURA_CLIENT_WINDOW_STACKING_DELEGATE_H_
35