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

Side by Side Diff: mojo/examples/browser/browser.cc

Issue 383123006: Preliminary interactive layout of window manager's demo_launcher (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/strings/string_util.h" 6 #include "base/strings/string_util.h"
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "mojo/examples/window_manager/window_manager.mojom.h" 8 #include "mojo/examples/window_manager/window_manager.mojom.h"
9 #include "mojo/public/cpp/application/application_connection.h" 9 #include "mojo/public/cpp/application/application_connection.h"
10 #include "mojo/public/cpp/application/application_delegate.h" 10 #include "mojo/public/cpp/application/application_delegate.h"
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 MOJO_OVERRIDE { 168 MOJO_OVERRIDE {
169 view_manager::ViewManager::ConfigureIncomingConnection(connection, this); 169 view_manager::ViewManager::ConfigureIncomingConnection(connection, this);
170 return true; 170 return true;
171 } 171 }
172 172
173 void CreateWidget(view_manager::Node* node) { 173 void CreateWidget(view_manager::Node* node) {
174 views::Textfield* textfield = new views::Textfield; 174 views::Textfield* textfield = new views::Textfield;
175 textfield->set_controller(this); 175 textfield->set_controller(this);
176 176
177 views::WidgetDelegateView* widget_delegate = new views::WidgetDelegateView; 177 views::WidgetDelegateView* widget_delegate = new views::WidgetDelegateView;
178 widget_delegate->GetContentsView()->set_background( 178 contents_view_ = widget_delegate->GetContentsView();
179 contents_view_->set_background(
179 views::Background::CreateSolidBackground(SK_ColorBLUE)); 180 views::Background::CreateSolidBackground(SK_ColorBLUE));
180 widget_delegate->GetContentsView()->AddChildView(textfield); 181 contents_view_->AddChildView(textfield);
181 widget_delegate->GetContentsView()->SetLayoutManager( 182 contents_view_->SetLayoutManager(new BrowserLayoutManager);
182 new BrowserLayoutManager);
183 183
184 widget_ = new views::Widget; 184 widget_ = new views::Widget;
185 views::Widget::InitParams params( 185 views::Widget::InitParams params(
186 views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); 186 views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
187 params.native_widget = new NativeWidgetViewManager(widget_, node); 187 params.native_widget = new NativeWidgetViewManager(widget_, node);
188 params.delegate = widget_delegate; 188 params.delegate = widget_delegate;
189 params.bounds = gfx::Rect(node->bounds().width(), node->bounds().height()); 189 params.bounds = gfx::Rect(node->bounds().width(), node->bounds().height());
190 widget_->Init(params); 190 widget_->Init(params);
191 // KeyboardManager handles deleting itself when the widget is destroyed. 191 // KeyboardManager handles deleting itself when the widget is destroyed.
192 new KeyboardManager(widget_, window_manager_.get(), node); 192 new KeyboardManager(widget_, window_manager_.get(), node);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 virtual void OnNodeFocusChanged(view_manager::Node* gained_focus, 226 virtual void OnNodeFocusChanged(view_manager::Node* gained_focus,
227 view_manager::Node* lost_focus) OVERRIDE { 227 view_manager::Node* lost_focus) OVERRIDE {
228 aura::client::FocusClient* focus_client = 228 aura::client::FocusClient* focus_client =
229 aura::client::GetFocusClient(widget_->GetNativeView()); 229 aura::client::GetFocusClient(widget_->GetNativeView());
230 if (lost_focus == root_) 230 if (lost_focus == root_)
231 focus_client->FocusWindow(NULL); 231 focus_client->FocusWindow(NULL);
232 else if (gained_focus == root_) 232 else if (gained_focus == root_)
233 focus_client->FocusWindow(widget_->GetNativeView()); 233 focus_client->FocusWindow(widget_->GetNativeView());
234 } 234 }
235 235
236 virtual void OnNodeBoundsChanged(view_manager::Node* node,
237 const gfx::Rect& /*old_bounds*/,
sky 2014/07/11 18:19:46 We generally don't use this style in chrome code.
238 const gfx::Rect& /*new_bounds*/) OVERRIDE {
239 widget_->SetBounds(gfx::Rect(node->bounds().size()));
sky 2014/07/11 18:19:46 NativeWidgetViewManager is a NodeObserver. It shou
240 contents_view_->Layout();
sky 2014/07/11 18:19:46 This should happen automatically as a result of se
241 }
242
236 scoped_ptr<ViewsInit> views_init_; 243 scoped_ptr<ViewsInit> views_init_;
237 244
238 view_manager::ViewManager* view_manager_; 245 view_manager::ViewManager* view_manager_;
239 view_manager::Node* root_; 246 view_manager::Node* root_;
240 views::Widget* widget_; 247 views::Widget* widget_;
248 views::View* contents_view_;
sky 2014/07/11 18:19:46 initialize this to NULL in the member initializer
241 navigation::NavigatorHostPtr navigator_host_; 249 navigation::NavigatorHostPtr navigator_host_;
242 IWindowManagerPtr window_manager_; 250 IWindowManagerPtr window_manager_;
243 251
244 DISALLOW_COPY_AND_ASSIGN(Browser); 252 DISALLOW_COPY_AND_ASSIGN(Browser);
245 }; 253 };
246 254
247 } // namespace examples 255 } // namespace examples
248 256
249 // static 257 // static
250 ApplicationDelegate* ApplicationDelegate::Create() { 258 ApplicationDelegate* ApplicationDelegate::Create() {
251 return new examples::Browser; 259 return new examples::Browser;
252 } 260 }
253 261
254 } // namespace mojo 262 } // namespace mojo
OLDNEW
« no previous file with comments | « no previous file | mojo/examples/window_manager/debug_panel.h » ('j') | mojo/examples/window_manager/window_manager.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698