Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1777)

Unified Diff: ash/mus/non_client_frame_controller.h

Issue 2539363005: Converts ash to use aura-mus (Closed)
Patch Set: merge Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
};

Powered by Google App Engine
This is Rietveld 408576698