OLD | NEW |
(Empty) | |
| 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_TREE_CLIENT_H_ |
| 6 #define UI_AURA_CLIENT_WINDOW_TREE_CLIENT_H_ |
| 7 |
| 8 #include "ui/aura/aura_export.h" |
| 9 |
| 10 namespace gfx { |
| 11 class Rect; |
| 12 } |
| 13 |
| 14 namespace aura { |
| 15 class Window; |
| 16 namespace client { |
| 17 |
| 18 // Implementations of this object are used to help locate a default parent for |
| 19 // NULL-parented Windows. |
| 20 class AURA_EXPORT WindowTreeClient { |
| 21 public: |
| 22 virtual ~WindowTreeClient() {} |
| 23 |
| 24 // Called by the Window when it looks for a default parent. Returns the |
| 25 // window that |window| should be added to instead. |context| provides a |
| 26 // Window (generally a RootWindow) that can be used to determine which |
| 27 // desktop type the default parent should be chosen from. NOTE: this may |
| 28 // have side effects. It should only be used when |window| is going to be |
| 29 // immediately added. |
| 30 // |
| 31 // TODO(erg): Remove |context|, and maybe after oshima's patch lands, |
| 32 // |bounds|. |
| 33 virtual Window* GetDefaultParent( |
| 34 Window* context, |
| 35 Window* window, |
| 36 const gfx::Rect& bounds) = 0; |
| 37 }; |
| 38 |
| 39 // Set/Get a window tree client for the RootWindow containing |window|. |window| |
| 40 // must not be NULL. |
| 41 AURA_EXPORT void SetWindowTreeClient(Window* window, |
| 42 WindowTreeClient* window_tree_client); |
| 43 WindowTreeClient* GetWindowTreeClient(Window* window); |
| 44 |
| 45 // Adds |window| to an appropriate parent by consulting an implementation of |
| 46 // WindowTreeClient attached at the root Window containing |context|. The final |
| 47 // location may be a window hierarchy other than the one supplied via |
| 48 // |context|, which must not be NULL. |screen_bounds| may be empty. |
| 49 AURA_EXPORT void ParentWindowWithContext(Window* window, |
| 50 Window* context, |
| 51 const gfx::Rect& screen_bounds); |
| 52 |
| 53 } // namespace client |
| 54 } // namespace aura |
| 55 |
| 56 #endif // UI_AURA_CLIENT_WINDOW_TREE_CLIENT_H_ |
OLD | NEW |