Home | History | Annotate | Download | only in ui
      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
      3 // found in the LICENSE file.
      4 
      5 #include "chrome/browser/chromeos/login/ui/lock_window_aura.h"
      6 
      7 #include "ash/shell.h"
      8 #include "ash/shell_window_ids.h"
      9 #include "ash/wm/window_animations.h"
     10 #include "base/command_line.h"
     11 #include "ui/aura/window.h"
     12 #include "ui/aura/window_event_dispatcher.h"
     13 
     14 namespace chromeos {
     15 
     16 LockWindow* LockWindow::Create() {
     17   LockWindowAura* lock_window = new LockWindowAura();
     18   // Cancel existing touch events when screen is locked.
     19   ui::GestureRecognizer::Get()->TransferEventsTo(
     20       lock_window->GetNativeWindow(), NULL);
     21   return lock_window;
     22 }
     23 
     24 ////////////////////////////////////////////////////////////////////////////////
     25 // LockWindow implementation:
     26 void LockWindowAura::Grab() {
     27   // We already have grab from the lock screen container, just call the ready
     28   // callback immediately.
     29   if (observer_)
     30     observer_->OnLockWindowReady();
     31 }
     32 
     33 views::Widget* LockWindowAura::GetWidget() {
     34   return this;
     35 }
     36 
     37 ////////////////////////////////////////////////////////////////////////////////
     38 // LockWindowAura private:
     39 LockWindowAura::LockWindowAura() {
     40   Init();
     41 }
     42 
     43 LockWindowAura::~LockWindowAura() {
     44 }
     45 
     46 void LockWindowAura::Init() {
     47   views::Widget::InitParams params(
     48       views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
     49   params.show_state = ui::SHOW_STATE_FULLSCREEN;
     50   params.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW;
     51   // TODO(oshima): move the lock screen harness to ash.
     52   params.parent =
     53       ash::Shell::GetContainer(ash::Shell::GetPrimaryRootWindow(),
     54                                ash::kShellWindowId_LockScreenContainer);
     55   views::Widget::Init(params);
     56   wm::SetWindowVisibilityAnimationTransition(
     57       GetNativeView(), wm::ANIMATE_NONE);
     58 }
     59 
     60 }  // namespace chromeos
     61