summaryrefslogtreecommitdiffstats
path: root/mash/example
diff options
context:
space:
mode:
authorben <ben@chromium.org>2016-01-27 10:36:38 -0800
committerCommit bot <commit-bot@chromium.org>2016-01-27 18:38:54 +0000
commit1a26c8220ac6bd396bddb4585ff9e8e2de448df2 (patch)
treeddc06a7ab781bfc5dc9ca38c964f013876e2a905 /mash/example
parente8de841b2e6e94acdaf9c4762e81d9e0410cc5d1 (diff)
downloadchromium_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.gn1
-rw-r--r--mash/example/window_type_launcher/window_type_launcher.cc13
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();
}