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

Side by Side 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, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/mus/shelf_delegate_mus.h" 5 #include "ash/mus/shelf_delegate_mus.h"
6 6
7 #include "ash/shelf/shelf.h" 7 #include "ash/shelf/shelf.h"
8 #include "ash/shelf/shelf_item_delegate.h" 8 #include "ash/shelf/shelf_item_delegate.h"
9 #include "ash/shelf/shelf_item_delegate_manager.h" 9 #include "ash/shelf/shelf_item_delegate_manager.h"
10 #include "ash/shelf/shelf_layout_manager.h" 10 #include "ash/shelf/shelf_layout_manager.h"
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 uint32_t window_id_; 74 uint32_t window_id_;
75 base::string16 title_; 75 base::string16 title_;
76 UserWindowController* user_window_controller_; 76 UserWindowController* user_window_controller_;
77 77
78 DISALLOW_COPY_AND_ASSIGN(ShelfItemDelegateMus); 78 DISALLOW_COPY_AND_ASSIGN(ShelfItemDelegateMus);
79 }; 79 };
80 80
81 } // namespace 81 } // namespace
82 82
83 ShelfDelegateMus::ShelfDelegateMus(ShelfModel* model) 83 ShelfDelegateMus::ShelfDelegateMus(ShelfModel* model)
84 : model_(model), binding_(this) { 84 : model_(model), shelf_(nullptr), binding_(this) {
85 mojo::Connector* connector = 85 mojo::Connector* connector =
86 views::WindowManagerConnection::Get()->connector(); 86 views::WindowManagerConnection::Get()->connector();
87 connector->ConnectToInterface("mojo:desktop_wm", &shelf_layout_);
87 connector->ConnectToInterface("mojo:desktop_wm", &user_window_controller_); 88 connector->ConnectToInterface("mojo:desktop_wm", &user_window_controller_);
88 user_window_controller_->AddUserWindowObserver( 89 user_window_controller_->AddUserWindowObserver(
89 binding_.CreateInterfacePtrAndBind()); 90 binding_.CreateInterfacePtrAndBind());
90 } 91 }
91 92
92 ShelfDelegateMus::~ShelfDelegateMus() {} 93 ShelfDelegateMus::~ShelfDelegateMus() {}
93 94
94 void ShelfDelegateMus::OnShelfCreated(Shelf* shelf) { 95 void ShelfDelegateMus::OnShelfCreated(Shelf* shelf) {
96 shelf_ = shelf;
95 ash::ShelfWidget* widget = shelf->shelf_widget(); 97 ash::ShelfWidget* widget = shelf->shelf_widget();
96 ash::ShelfLayoutManager* layout_manager = widget->shelf_layout_manager(); 98 ash::ShelfLayoutManager* layout_manager = widget->shelf_layout_manager();
97 mus::Window* window = aura::GetMusWindow(widget->GetNativeWindow()); 99 mus::Window* window = aura::GetMusWindow(widget->GetNativeWindow());
98 gfx::Size size = layout_manager->GetIdealBounds().size(); 100 gfx::Size size = layout_manager->GetIdealBounds().size();
99 window->SetSharedProperty<gfx::Size>( 101 window->SetSharedProperty<gfx::Size>(
100 mus::mojom::WindowManager::kPreferredSize_Property, size); 102 mus::mojom::WindowManager::kPreferredSize_Property, size);
101 103
102 ash::StatusAreaWidget* status_widget = widget->status_area_widget(); 104 ash::StatusAreaWidget* status_widget = widget->status_area_widget();
103 mus::Window* status_window = 105 mus::Window* status_window =
104 aura::GetMusWindow(status_widget->GetNativeWindow()); 106 aura::GetMusWindow(status_widget->GetNativeWindow());
105 gfx::Size status_size = status_widget->GetWindowBoundsInScreen().size(); 107 gfx::Size status_size = status_widget->GetWindowBoundsInScreen().size();
106 status_window->SetSharedProperty<gfx::Size>( 108 status_window->SetSharedProperty<gfx::Size>(
107 mus::mojom::WindowManager::kPreferredSize_Property, status_size); 109 mus::mojom::WindowManager::kPreferredSize_Property, status_size);
108 } 110 }
109 111
110 void ShelfDelegateMus::OnShelfDestroyed(Shelf* shelf) { 112 void ShelfDelegateMus::OnShelfDestroyed(Shelf* shelf) {
111 NOTIMPLEMENTED(); 113 DCHECK_EQ(shelf_, shelf);
114 shelf_ = nullptr;
115 }
116
117 void ShelfDelegateMus::OnAlignmentChanged(ShelfAlignment alignment) {
118 LOG(ERROR) << "MSW ShelfDelegateMus::OnShelfAlignmentChanged";
119 // TODO(msw): Need to update the preferred sizes...
120
121 // ash::ShelfWidget* widget = shelf_->shelf_widget();
122 // ash::ShelfLayoutManager* layout_manager = widget->shelf_layout_manager();
123 // mus::Window* window = aura::GetMusWindow(widget->GetNativeWindow());
124 // gfx::Size size = layout_manager->GetIdealBounds().size();
125 // window->SetSharedProperty<gfx::Size>(
126 // mus::mojom::WindowManager::kPreferredSize_Property, size);
127
128 // ash::StatusAreaWidget* status_widget = widget->status_area_widget();
129 // mus::Window* status_window =
130 // aura::GetMusWindow(status_widget->GetNativeWindow());
131 // gfx::Size status_size = status_widget->GetWindowBoundsInScreen().size();
132 // status_window->SetSharedProperty<gfx::Size>(
133 // mus::mojom::WindowManager::kPreferredSize_Property, status_size);
134
135 shelf_layout_->SetAlignment(
136 static_cast<mash::wm::mojom::ShelfAlignment>(alignment));
137 }
138
139 void ShelfDelegateMus::OnAutoHideBehaviorChanged(
140 ShelfAutoHideBehavior auto_hide) {
141 LOG(ERROR) << "MSW ShelfDelegateMus::OnAutoHideBehaviorChanged";
142 shelf_layout_->SetAutoHideBehavior(
143 static_cast<mash::wm::mojom::ShelfAutoHideBehavior>(auto_hide));
112 } 144 }
113 145
114 ShelfID ShelfDelegateMus::GetShelfIDForAppID(const std::string& app_id) { 146 ShelfID ShelfDelegateMus::GetShelfIDForAppID(const std::string& app_id) {
115 NOTIMPLEMENTED(); 147 NOTIMPLEMENTED();
116 return 0; 148 return 0;
117 } 149 }
118 150
119 bool ShelfDelegateMus::HasShelfIDToAppIDMapping(ShelfID id) const { 151 bool ShelfDelegateMus::HasShelfIDToAppIDMapping(ShelfID id) const {
120 NOTIMPLEMENTED(); 152 NOTIMPLEMENTED();
121 return false; 153 return false;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 DCHECK_GE(index, 0); 235 DCHECK_GE(index, 0);
204 ShelfItems::const_iterator iter = model_->ItemByID(shelf_id); 236 ShelfItems::const_iterator iter = model_->ItemByID(shelf_id);
205 DCHECK(iter != model_->items().end()); 237 DCHECK(iter != model_->items().end());
206 ShelfItem item = *iter; 238 ShelfItem item = *iter;
207 item.status = has_focus ? STATUS_ACTIVE : STATUS_RUNNING; 239 item.status = has_focus ? STATUS_ACTIVE : STATUS_RUNNING;
208 model_->Set(index, item); 240 model_->Set(index, item);
209 } 241 }
210 242
211 } // namespace sysui 243 } // namespace sysui
212 } // namespace ash 244 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698