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

Side by Side Diff: examples/window_manager/window_manager.cc

Issue 818583002: Moves Create() off of View and onto ViewManager (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: merge 2 trunk Created 6 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 unified diff | Download patch
« no previous file with comments | « examples/recipes/window_manager/window_manager.cc ('k') | examples/wm_flow/app/app.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/bind.h" 5 #include "base/bind.h"
6 #include "base/macros.h" 6 #include "base/macros.h"
7 #include "examples/keyboard/keyboard.mojom.h" 7 #include "examples/keyboard/keyboard.mojom.h"
8 #include "examples/window_manager/debug_panel.h" 8 #include "examples/window_manager/debug_panel.h"
9 #include "examples/window_manager/window_manager.mojom.h" 9 #include "examples/window_manager/window_manager.mojom.h"
10 #include "mojo/application/application_runner_chromium.h" 10 #include "mojo/application/application_runner_chromium.h"
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 view_->parent()->RemoveObserver(this); 92 view_->parent()->RemoveObserver(this);
93 } 93 }
94 94
95 View* view() { return view_; } 95 View* view() { return view_; }
96 96
97 void Init(ApplicationImpl* application, 97 void Init(ApplicationImpl* application,
98 ViewManager* view_manager, 98 ViewManager* view_manager,
99 View* parent, 99 View* parent,
100 const Rect& bounds) { 100 const Rect& bounds) {
101 view_manager_ = view_manager; 101 view_manager_ = view_manager;
102 view_ = View::Create(view_manager); 102 view_ = view_manager->CreateView();
103 view_->SetBounds(bounds); 103 view_->SetBounds(bounds);
104 parent->AddChild(view_); 104 parent->AddChild(view_);
105 view_->Embed("mojo:keyboard"); 105 view_->Embed("mojo:keyboard");
106 application->ConnectToService("mojo:keyboard", &keyboard_service_); 106 application->ConnectToService("mojo:keyboard", &keyboard_service_);
107 keyboard_service_.set_client(this); 107 keyboard_service_.set_client(this);
108 parent->AddObserver(this); 108 parent->AddObserver(this);
109 } 109 }
110 110
111 void Show(Id view_id, const Rect& bounds) { 111 void Show(Id view_id, const Rect& bounds) {
112 keyboard_service_->SetTarget(view_id); 112 keyboard_service_->SetTarget(view_id);
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 return true; 345 return true;
346 } 346 }
347 347
348 // Overridden from ViewManagerDelegate: 348 // Overridden from ViewManagerDelegate:
349 virtual void OnEmbed(View* root, 349 virtual void OnEmbed(View* root,
350 ServiceProviderImpl* exported_services, 350 ServiceProviderImpl* exported_services,
351 scoped_ptr<ServiceProvider> imported_services) override { 351 scoped_ptr<ServiceProvider> imported_services) override {
352 DCHECK(!view_manager_); 352 DCHECK(!view_manager_);
353 view_manager_ = root->view_manager(); 353 view_manager_ = root->view_manager();
354 354
355 View* view = View::Create(view_manager_); 355 View* view = view_manager_->CreateView();
356 root->AddChild(view); 356 root->AddChild(view);
357 Rect rect; 357 Rect rect;
358 rect.width = root->bounds().width; 358 rect.width = root->bounds().width;
359 rect.height = root->bounds().height; 359 rect.height = root->bounds().height;
360 view->SetBounds(rect); 360 view->SetBounds(rect);
361 view->SetVisible(true); 361 view->SetVisible(true);
362 content_view_id_ = view->id(); 362 content_view_id_ = view->id();
363 363
364 Id launcher_ui_id = CreateLauncherUI(); 364 Id launcher_ui_id = CreateLauncherUI();
365 Id control_panel_id = CreateControlPanel(view); 365 Id control_panel_id = CreateControlPanel(view);
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 view->bounds().height - (3 * kBorderInset + kTextfieldHeight); 455 view->bounds().height - (3 * kBorderInset + kTextfieldHeight);
456 if (!windows_.empty()) { 456 if (!windows_.empty()) {
457 bounds.x = windows_.back()->view()->bounds().x + 35; 457 bounds.x = windows_.back()->view()->bounds().x + 35;
458 bounds.y = windows_.back()->view()->bounds().y + 35; 458 bounds.y = windows_.back()->view()->bounds().y + 35;
459 } 459 }
460 return CreateWindow(bounds); 460 return CreateWindow(bounds);
461 } 461 }
462 462
463 Window* CreateWindow(const Rect& bounds) { 463 Window* CreateWindow(const Rect& bounds) {
464 View* content = view_manager_->GetViewById(content_view_id_); 464 View* content = view_manager_->GetViewById(content_view_id_);
465 View* view = View::Create(view_manager_); 465 View* view = view_manager_->CreateView();
466 content->AddChild(view); 466 content->AddChild(view);
467 view->SetBounds(bounds); 467 view->SetBounds(bounds);
468 view->SetVisible(true); 468 view->SetVisible(true);
469 view->SetFocus(); 469 view->SetFocus();
470 return new Window(this, view); 470 return new Window(this, view);
471 } 471 }
472 472
473 bool IsDescendantOfKeyboard(View* target) { 473 bool IsDescendantOfKeyboard(View* target) {
474 return keyboard_manager_.get() && 474 return keyboard_manager_.get() &&
475 keyboard_manager_->view()->Contains(target); 475 keyboard_manager_->view()->Contains(target);
476 } 476 }
477 477
478 Id CreateControlPanel(View* root) { 478 Id CreateControlPanel(View* root) {
479 View* view = View::Create(view_manager_); 479 View* view = view_manager_->CreateView();
480 root->AddChild(view); 480 root->AddChild(view);
481 481
482 Rect bounds; 482 Rect bounds;
483 bounds.x = root->bounds().width - kControlPanelWidth - kBorderInset; 483 bounds.x = root->bounds().width - kControlPanelWidth - kBorderInset;
484 bounds.y = kBorderInset * 2 + kTextfieldHeight; 484 bounds.y = kBorderInset * 2 + kTextfieldHeight;
485 bounds.width = kControlPanelWidth; 485 bounds.width = kControlPanelWidth;
486 bounds.height = 486 bounds.height =
487 root->bounds().height - kBorderInset * 3 - kTextfieldHeight; 487 root->bounds().height - kBorderInset * 3 - kTextfieldHeight;
488 view->SetBounds(bounds); 488 view->SetBounds(bounds);
489 view->SetVisible(true); 489 view->SetVisible(true);
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 window_manager_->RequestNavigate(view_id_, target, request.Pass()); 546 window_manager_->RequestNavigate(view_id_, target, request.Pass());
547 } 547 }
548 548
549 } // namespace examples 549 } // namespace examples
550 } // namespace mojo 550 } // namespace mojo
551 551
552 MojoResult MojoMain(MojoHandle shell_handle) { 552 MojoResult MojoMain(MojoHandle shell_handle) {
553 mojo::ApplicationRunnerChromium runner(new mojo::examples::WindowManager); 553 mojo::ApplicationRunnerChromium runner(new mojo::examples::WindowManager);
554 return runner.Run(shell_handle); 554 return runner.Run(shell_handle);
555 } 555 }
OLDNEW
« no previous file with comments | « examples/recipes/window_manager/window_manager.cc ('k') | examples/wm_flow/app/app.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698