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

Unified Diff: ash/mus/shelf_delegate_mus.cc

Issue 1835403002: Support additional mash shelf alignments. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months 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/shelf_delegate_mus.cc
diff --git a/ash/mus/shelf_delegate_mus.cc b/ash/mus/shelf_delegate_mus.cc
index 510bb1b79d9409f3db96dcf5151a07bd0ac458a4..699c397ec020cd92eb88bd055eb7a94f1d4764b7 100644
--- a/ash/mus/shelf_delegate_mus.cc
+++ b/ash/mus/shelf_delegate_mus.cc
@@ -81,9 +81,10 @@ class ShelfItemDelegateMus : public ShelfItemDelegate {
} // namespace
ShelfDelegateMus::ShelfDelegateMus(ShelfModel* model)
- : model_(model), binding_(this) {
+ : model_(model), shelf_(nullptr), binding_(this) {
mojo::Connector* connector =
views::WindowManagerConnection::Get()->connector();
+ connector->ConnectToInterface("mojo:desktop_wm", &shelf_layout_);
connector->ConnectToInterface("mojo:desktop_wm", &user_window_controller_);
user_window_controller_->AddUserWindowObserver(
binding_.CreateInterfacePtrAndBind());
@@ -92,6 +93,7 @@ ShelfDelegateMus::ShelfDelegateMus(ShelfModel* model)
ShelfDelegateMus::~ShelfDelegateMus() {}
void ShelfDelegateMus::OnShelfCreated(Shelf* shelf) {
+ shelf_ = shelf;
ash::ShelfWidget* widget = shelf->shelf_widget();
ash::ShelfLayoutManager* layout_manager = widget->shelf_layout_manager();
mus::Window* window = aura::GetMusWindow(widget->GetNativeWindow());
@@ -108,7 +110,37 @@ void ShelfDelegateMus::OnShelfCreated(Shelf* shelf) {
}
void ShelfDelegateMus::OnShelfDestroyed(Shelf* shelf) {
- NOTIMPLEMENTED();
+ DCHECK_EQ(shelf_, shelf);
+ shelf_ = nullptr;
+}
+
+void ShelfDelegateMus::OnAlignmentChanged(ShelfAlignment alignment) {
+ LOG(ERROR) << "MSW ShelfDelegateMus::OnShelfAlignmentChanged";
+ // TODO(msw): Need to update the preferred sizes...
+
+ // ash::ShelfWidget* widget = shelf_->shelf_widget();
+ // ash::ShelfLayoutManager* layout_manager = widget->shelf_layout_manager();
+ // mus::Window* window = aura::GetMusWindow(widget->GetNativeWindow());
+ // gfx::Size size = layout_manager->GetIdealBounds().size();
+ // window->SetSharedProperty<gfx::Size>(
+ // mus::mojom::WindowManager::kPreferredSize_Property, size);
+
+ // ash::StatusAreaWidget* status_widget = widget->status_area_widget();
+ // mus::Window* status_window =
+ // aura::GetMusWindow(status_widget->GetNativeWindow());
+ // gfx::Size status_size = status_widget->GetWindowBoundsInScreen().size();
+ // status_window->SetSharedProperty<gfx::Size>(
+ // mus::mojom::WindowManager::kPreferredSize_Property, status_size);
+
+ shelf_layout_->SetAlignment(
+ static_cast<mash::wm::mojom::ShelfAlignment>(alignment));
+}
+
+void ShelfDelegateMus::OnAutoHideBehaviorChanged(
+ ShelfAutoHideBehavior auto_hide) {
+ LOG(ERROR) << "MSW ShelfDelegateMus::OnAutoHideBehaviorChanged";
+ shelf_layout_->SetAutoHideBehavior(
+ static_cast<mash::wm::mojom::ShelfAutoHideBehavior>(auto_hide));
}
ShelfID ShelfDelegateMus::GetShelfIDForAppID(const std::string& app_id) {

Powered by Google App Engine
This is Rietveld 408576698