OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "mash/example/window_type_launcher/window_type_launcher.h" | 5 #include "mash/example/window_type_launcher/window_type_launcher.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 } | 218 } |
219 | 219 |
220 // The contents view/delegate of a window that shows some buttons that create | 220 // The contents view/delegate of a window that shows some buttons that create |
221 // various window types. | 221 // various window types. |
222 class WindowTypeLauncherView : public views::WidgetDelegateView, | 222 class WindowTypeLauncherView : public views::WidgetDelegateView, |
223 public views::ButtonListener, | 223 public views::ButtonListener, |
224 public views::MenuDelegate, | 224 public views::MenuDelegate, |
225 public views::ContextMenuController { | 225 public views::ContextMenuController { |
226 public: | 226 public: |
227 explicit WindowTypeLauncherView(WindowTypeLauncher* window_type_launcher, | 227 explicit WindowTypeLauncherView(WindowTypeLauncher* window_type_launcher, |
228 shell::Connector* connector) | 228 service_manager::Connector* connector) |
229 : window_type_launcher_(window_type_launcher), | 229 : window_type_launcher_(window_type_launcher), |
230 connector_(connector), | 230 connector_(connector), |
231 create_button_( | 231 create_button_( |
232 MdTextButton::Create(this, base::ASCIIToUTF16("Create Window"))), | 232 MdTextButton::Create(this, base::ASCIIToUTF16("Create Window"))), |
233 always_on_top_button_(MdTextButton::Create( | 233 always_on_top_button_(MdTextButton::Create( |
234 this, | 234 this, |
235 base::ASCIIToUTF16("Create Always On Top Window"))), | 235 base::ASCIIToUTF16("Create Always On Top Window"))), |
236 panel_button_( | 236 panel_button_( |
237 MdTextButton::Create(this, base::ASCIIToUTF16("Create Panel"))), | 237 MdTextButton::Create(this, base::ASCIIToUTF16("Create Panel"))), |
238 create_nonresizable_button_(MdTextButton::Create( | 238 create_nonresizable_button_(MdTextButton::Create( |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
425 MenuItemView::NORMAL); | 425 MenuItemView::NORMAL); |
426 // MenuRunner takes ownership of root. | 426 // MenuRunner takes ownership of root. |
427 menu_runner_.reset(new MenuRunner( | 427 menu_runner_.reset(new MenuRunner( |
428 root, MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU | | 428 root, MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU | |
429 views::MenuRunner::ASYNC)); | 429 views::MenuRunner::ASYNC)); |
430 menu_runner_->RunMenuAt(GetWidget(), NULL, gfx::Rect(point, gfx::Size()), | 430 menu_runner_->RunMenuAt(GetWidget(), NULL, gfx::Rect(point, gfx::Size()), |
431 views::MENU_ANCHOR_TOPLEFT, source_type); | 431 views::MENU_ANCHOR_TOPLEFT, source_type); |
432 } | 432 } |
433 | 433 |
434 WindowTypeLauncher* window_type_launcher_; | 434 WindowTypeLauncher* window_type_launcher_; |
435 shell::Connector* connector_; | 435 service_manager::Connector* connector_; |
436 views::Button* create_button_; | 436 views::Button* create_button_; |
437 views::Button* always_on_top_button_; | 437 views::Button* always_on_top_button_; |
438 views::Button* panel_button_; | 438 views::Button* panel_button_; |
439 views::Button* create_nonresizable_button_; | 439 views::Button* create_nonresizable_button_; |
440 views::Button* bubble_button_; | 440 views::Button* bubble_button_; |
441 views::Button* lock_button_; | 441 views::Button* lock_button_; |
442 views::Button* logout_button_; | 442 views::Button* logout_button_; |
443 views::Button* switch_user_button_; | 443 views::Button* switch_user_button_; |
444 views::Button* widgets_button_; | 444 views::Button* widgets_button_; |
445 views::Button* system_modal_button_; | 445 views::Button* system_modal_button_; |
(...skipping 16 matching lines...) Expand all Loading... |
462 WindowTypeLauncher::~WindowTypeLauncher() {} | 462 WindowTypeLauncher::~WindowTypeLauncher() {} |
463 | 463 |
464 void WindowTypeLauncher::RemoveWindow(views::Widget* window) { | 464 void WindowTypeLauncher::RemoveWindow(views::Widget* window) { |
465 auto it = std::find(windows_.begin(), windows_.end(), window); | 465 auto it = std::find(windows_.begin(), windows_.end(), window); |
466 DCHECK(it != windows_.end()); | 466 DCHECK(it != windows_.end()); |
467 windows_.erase(it); | 467 windows_.erase(it); |
468 if (windows_.empty()) | 468 if (windows_.empty()) |
469 base::MessageLoop::current()->QuitWhenIdle(); | 469 base::MessageLoop::current()->QuitWhenIdle(); |
470 } | 470 } |
471 | 471 |
472 void WindowTypeLauncher::OnStart(const shell::Identity& identity) { | 472 void WindowTypeLauncher::OnStart(const service_manager::Identity& identity) { |
473 aura_init_.reset( | 473 aura_init_.reset( |
474 new views::AuraInit(connector(), "views_mus_resources.pak")); | 474 new views::AuraInit(connector(), "views_mus_resources.pak")); |
475 window_manager_connection_ = | 475 window_manager_connection_ = |
476 views::WindowManagerConnection::Create(connector(), identity); | 476 views::WindowManagerConnection::Create(connector(), identity); |
477 } | 477 } |
478 | 478 |
479 bool WindowTypeLauncher::OnConnect(const shell::Identity& remote_identity, | 479 bool WindowTypeLauncher::OnConnect( |
480 shell::InterfaceRegistry* registry) { | 480 const service_manager::Identity& remote_identity, |
| 481 service_manager::InterfaceRegistry* registry) { |
481 registry->AddInterface<mash::mojom::Launchable>(this); | 482 registry->AddInterface<mash::mojom::Launchable>(this); |
482 return true; | 483 return true; |
483 } | 484 } |
484 | 485 |
485 void WindowTypeLauncher::Launch(uint32_t what, mash::mojom::LaunchMode how) { | 486 void WindowTypeLauncher::Launch(uint32_t what, mash::mojom::LaunchMode how) { |
486 bool reuse = how == mash::mojom::LaunchMode::REUSE || | 487 bool reuse = how == mash::mojom::LaunchMode::REUSE || |
487 how == mash::mojom::LaunchMode::DEFAULT; | 488 how == mash::mojom::LaunchMode::DEFAULT; |
488 if (reuse && !windows_.empty()) { | 489 if (reuse && !windows_.empty()) { |
489 windows_.back()->Activate(); | 490 windows_.back()->Activate(); |
490 return; | 491 return; |
491 } | 492 } |
492 views::Widget* window = new views::Widget; | 493 views::Widget* window = new views::Widget; |
493 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); | 494 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); |
494 params.delegate = new WindowTypeLauncherView(this, connector()); | 495 params.delegate = new WindowTypeLauncherView(this, connector()); |
495 window->Init(params); | 496 window->Init(params); |
496 window->Show(); | 497 window->Show(); |
497 windows_.push_back(window); | 498 windows_.push_back(window); |
498 } | 499 } |
499 | 500 |
500 void WindowTypeLauncher::Create(const shell::Identity& remote_identity, | 501 void WindowTypeLauncher::Create( |
501 mash::mojom::LaunchableRequest request) { | 502 const service_manager::Identity& remote_identity, |
| 503 mash::mojom::LaunchableRequest request) { |
502 bindings_.AddBinding(this, std::move(request)); | 504 bindings_.AddBinding(this, std::move(request)); |
503 } | 505 } |
504 | 506 |
505 MojoResult ServiceMain(MojoHandle service_request_handle) { | 507 MojoResult ServiceMain(MojoHandle service_request_handle) { |
506 return shell::ServiceRunner(new WindowTypeLauncher) | 508 return service_manager::ServiceRunner(new WindowTypeLauncher) |
507 .Run(service_request_handle); | 509 .Run(service_request_handle); |
508 } | 510 } |
OLD | NEW |