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) { |