diff options
author | ben <ben@chromium.org> | 2016-01-27 10:36:38 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-27 18:38:54 +0000 |
commit | 1a26c8220ac6bd396bddb4585ff9e8e2de448df2 (patch) | |
tree | ddc06a7ab781bfc5dc9ca38c964f013876e2a905 /mash/example | |
parent | e8de841b2e6e94acdaf9c4762e81d9e0410cc5d1 (diff) | |
download | chromium_src-1a26c8220ac6bd396bddb4585ff9e8e2de448df2.zip chromium_src-1a26c8220ac6bd396bddb4585ff9e8e2de448df2.tar.gz chromium_src-1a26c8220ac6bd396bddb4585ff9e8e2de448df2.tar.bz2 |
Add simplistic screenlock application.
Lock state is controlled by mash_shell, which will connect to the screenlock application to show a view.
TBD: broadcasting lock state changes via a listener.
TBD: a better mechanism for quitting an application.
R=sky@chromium.org
http://crbug.com/557398
Review URL: https://codereview.chromium.org/1637113003
Cr-Commit-Position: refs/heads/master@{#371826}
Diffstat (limited to 'mash/example')
-rw-r--r-- | mash/example/window_type_launcher/BUILD.gn | 1 | ||||
-rw-r--r-- | mash/example/window_type_launcher/window_type_launcher.cc | 13 |
2 files changed, 10 insertions, 4 deletions
diff --git a/mash/example/window_type_launcher/BUILD.gn b/mash/example/window_type_launcher/BUILD.gn index a5cf7591..d05b7e6 100644 --- a/mash/example/window_type_launcher/BUILD.gn +++ b/mash/example/window_type_launcher/BUILD.gn @@ -23,6 +23,7 @@ executable("window_type_launcher") { "//base:base_static", "//build/config/sanitizers:deps", "//components/mus/public/interfaces", + "//mash/shell/public/interfaces", "//mojo/common:common_base", "//mojo/converters/geometry", "//mojo/message_pump", diff --git a/mash/example/window_type_launcher/window_type_launcher.cc b/mash/example/window_type_launcher/window_type_launcher.cc index 06812a6..dbf3802 100644 --- a/mash/example/window_type_launcher/window_type_launcher.cc +++ b/mash/example/window_type_launcher/window_type_launcher.cc @@ -6,6 +6,7 @@ #include "base/macros.h" #include "base/strings/utf_string_conversions.h" +#include "mash/shell/public/interfaces/shell.mojom.h" #include "mojo/converters/geometry/geometry_type_converters.h" #include "mojo/shell/public/cpp/application_connection.h" #include "mojo/shell/public/cpp/application_impl.h" @@ -163,8 +164,9 @@ class WindowTypeLauncherView : public views::WidgetDelegateView, public views::MenuDelegate, public views::ContextMenuController { public: - WindowTypeLauncherView() - : create_button_(new views::LabelButton( + explicit WindowTypeLauncherView(mojo::ApplicationImpl* app) + : app_(app), + create_button_(new views::LabelButton( this, base::ASCIIToUTF16("Create Window"))), panel_button_(new views::LabelButton( this, base::ASCIIToUTF16("Create Panel"))), @@ -271,7 +273,9 @@ class WindowTypeLauncherView : public views::WidgetDelegateView, NOTIMPLEMENTED(); } else if (sender == lock_button_) { - NOTIMPLEMENTED(); + mash::shell::mojom::ShellPtr shell; + app_->ConnectToService("mojo:mash_shell", &shell); + shell->LockScreen(); } else if (sender == widgets_button_) { NOTIMPLEMENTED(); @@ -327,6 +331,7 @@ class WindowTypeLauncherView : public views::WidgetDelegateView, } } + mojo::ApplicationImpl* app_; views::LabelButton* create_button_; views::LabelButton* panel_button_; views::LabelButton* create_nonresizable_button_; @@ -362,7 +367,7 @@ void WindowTypeLauncher::Initialize(mojo::ApplicationImpl* app) { views::Widget* widget = new views::Widget; views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); - params.delegate = new WindowTypeLauncherView; + params.delegate = new WindowTypeLauncherView(app); widget->Init(params); widget->Show(); } |