Chromium Code Reviews| Index: ash/mus/non_client_frame_controller.h |
| diff --git a/ash/mus/non_client_frame_controller.h b/ash/mus/non_client_frame_controller.h |
| index e701a765ca97a7b8cc2a4b01763d7be339feebb5..0215422d41a3118811801dd7f278897488cc5061 100644 |
| --- a/ash/mus/non_client_frame_controller.h |
| +++ b/ash/mus/non_client_frame_controller.h |
| @@ -7,33 +7,57 @@ |
| #include <stdint.h> |
| +#include <map> |
| +#include <string> |
| +#include <vector> |
| + |
| #include "ash/mus/frame/detached_title_area_renderer_host.h" |
| #include "base/macros.h" |
| #include "base/strings/string16.h" |
| -#include "services/ui/public/cpp/window_observer.h" |
| +#include "ui/aura/window_observer.h" |
| +#include "ui/gfx/geometry/insets.h" |
| +#include "ui/gfx/geometry/rect.h" |
| #include "ui/views/widget/widget_delegate.h" |
| +namespace aura { |
| +class Window; |
| +class WindowManagerClient; |
| +} |
| + |
| namespace gfx { |
| class Insets; |
| } |
| namespace ui { |
| -class Window; |
| -class WindowManagerClient; |
| +namespace mojom { |
| +enum class WindowType; |
| +} |
| } |
| namespace ash { |
| namespace mus { |
| +class WindowManager; |
| + |
| // Provides the non-client frame for mus Windows. |
| class NonClientFrameController : public views::WidgetDelegateView, |
| - public ui::WindowObserver, |
| + public aura::WindowObserver, |
| public DetachedTitleAreaRendererHost { |
| public: |
| - // NonClientFrameController deletes itself when |window| is destroyed. |
| - static void Create(ui::Window* parent, |
| - ui::Window* window, |
| - ui::WindowManagerClient* window_manager_client); |
| + // Creates a new NonClientFrameController and window to render the non-client |
| + // frame decorations. This eletes itself when |window| is destroyed. |
|
James Cook
2016/12/05 19:21:44
eletes -> deletes
sky
2016/12/05 21:39:19
Done.
|
| + // |parent| is the parent to place the newly created window in. |
|
James Cook
2016/12/05 19:21:44
Comment whether parent, context or both can be nul
sky
2016/12/05 21:39:19
Done.
|
| + NonClientFrameController( |
| + aura::Window* parent, |
| + aura::Window* context, |
| + const gfx::Rect& bounds, |
| + ui::mojom::WindowType window_type, |
| + std::map<std::string, std::vector<uint8_t>>* properties, |
| + WindowManager* window_manager); |
| + |
| + // Returns the NonClientFrameController for the specified window, null if |
| + // one was not created. |
| + static NonClientFrameController* Get(aura::Window* window); |
| // Returns the preferred client area insets. |
| static gfx::Insets GetPreferredClientAreaInsets(); |
| @@ -42,12 +66,16 @@ class NonClientFrameController : public views::WidgetDelegateView, |
| // title bar. |
| static int GetMaxTitleBarButtonWidth(); |
| - ui::Window* window() { return window_; } |
| + aura::Window* window() { return window_; } |
| + |
| + aura::WindowManagerClient* window_manager_client() { |
| + return window_manager_client_; |
| + } |
| + |
| + void SetClientArea(const gfx::Insets& insets, |
| + const std::vector<gfx::Rect>& additional_client_areas); |
| private: |
| - NonClientFrameController(ui::Window* parent, |
| - ui::Window* window, |
| - ui::WindowManagerClient* window_manager_client); |
| ~NonClientFrameController() override; |
| // DetachedTitleAreaRendererHost: |
| @@ -62,28 +90,30 @@ class NonClientFrameController : public views::WidgetDelegateView, |
| bool ShouldShowWindowTitle() const override; |
| views::ClientView* CreateClientView(views::Widget* widget) override; |
| - // ui::WindowObserver: |
| - void OnTreeChanged(const TreeChangeParams& params) override; |
| - void OnWindowSharedPropertyChanged( |
| - ui::Window* window, |
| - const std::string& name, |
| - const std::vector<uint8_t>* old_data, |
| - const std::vector<uint8_t>* new_data) override; |
| - void OnWindowLocalPropertyChanged(ui::Window* window, |
| - const void* key, |
| - intptr_t old) override; |
| - void OnWindowDestroyed(ui::Window* window) override; |
| + // aura::WindowObserver: |
| + void OnWindowHierarchyChanged(const HierarchyChangeParams& params) override; |
| + void OnWindowPropertyChanged(aura::Window* window, |
| + const void* key, |
| + intptr_t old) override; |
| + void OnWindowDestroyed(aura::Window* window) override; |
| + |
| + aura::WindowManagerClient* window_manager_client_; |
| views::Widget* widget_; |
| // WARNING: as widget delays destruction there is a portion of time when this |
| // is null. |
| - ui::Window* window_; |
| + aura::Window* window_; |
| // Used if a child window is added that has the |
| // kRendererParentTitleArea_Property set. |
| DetachedTitleAreaRenderer* detached_title_area_renderer_ = nullptr; |
| + bool did_init_native_widget_ = false; |
| + |
| + gfx::Insets client_area_insets_; |
| + std::vector<gfx::Rect> additional_client_areas_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(NonClientFrameController); |
| }; |