Index: ash/common/accelerators/exit_warning_handler.cc |
diff --git a/ash/common/accelerators/exit_warning_handler.cc b/ash/common/accelerators/exit_warning_handler.cc |
deleted file mode 100644 |
index 9f6b97088a0a4d0eeffe0b38ca64699f0bed8c96..0000000000000000000000000000000000000000 |
--- a/ash/common/accelerators/exit_warning_handler.cc |
+++ /dev/null |
@@ -1,175 +0,0 @@ |
-// Copyright 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "ash/common/accelerators/exit_warning_handler.h" |
- |
-#include "ash/common/shell_delegate.h" |
-#include "ash/common/wm_shell.h" |
-#include "ash/common/wm_window.h" |
-#include "ash/public/cpp/shell_window_ids.h" |
-#include "ash/root_window_controller.h" |
-#include "ash/strings/grit/ash_strings.h" |
-#include "base/strings/utf_string_conversions.h" |
-#include "base/time/time.h" |
-#include "base/timer/timer.h" |
-#include "ui/accessibility/ax_node_data.h" |
-#include "ui/base/l10n/l10n_util.h" |
-#include "ui/base/resource/resource_bundle.h" |
-#include "ui/gfx/canvas.h" |
-#include "ui/gfx/font_list.h" |
-#include "ui/gfx/text_utils.h" |
-#include "ui/views/controls/label.h" |
-#include "ui/views/layout/fill_layout.h" |
-#include "ui/views/view.h" |
-#include "ui/views/widget/widget.h" |
-#include "ui/views/widget/widget_delegate.h" |
- |
-namespace ash { |
-namespace { |
- |
-const int64_t kTimeOutMilliseconds = 2000; |
-// Color of the text of the warning message. |
-const SkColor kTextColor = SK_ColorWHITE; |
-// Color of the window background. |
-const SkColor kWindowBackgroundColor = SkColorSetARGB(0xC0, 0x0, 0x0, 0x0); |
-// Radius of the rounded corners of the window. |
-const int kWindowCornerRadius = 2; |
-const int kHorizontalMarginAroundText = 100; |
-const int kVerticalMarginAroundText = 100; |
- |
-class ExitWarningWidgetDelegateView : public views::WidgetDelegateView { |
- public: |
- ExitWarningWidgetDelegateView() |
- : text_(l10n_util::GetStringUTF16(IDS_ASH_SIGN_OUT_WARNING_POPUP_TEXT)), |
- accessible_name_(l10n_util::GetStringUTF16( |
- IDS_ASH_SIGN_OUT_WARNING_POPUP_TEXT_ACCESSIBLE)), |
- text_width_(0), |
- width_(0), |
- height_(0) { |
- ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); |
- const gfx::FontList& font_list = |
- rb.GetFontList(ui::ResourceBundle::LargeFont); |
- text_width_ = gfx::GetStringWidth(text_, font_list); |
- width_ = text_width_ + kHorizontalMarginAroundText; |
- height_ = font_list.GetHeight() + kVerticalMarginAroundText; |
- views::Label* label = new views::Label(); |
- label->SetText(text_); |
- label->SetHorizontalAlignment(gfx::ALIGN_CENTER); |
- label->SetFontList(font_list); |
- label->SetEnabledColor(kTextColor); |
- label->SetDisabledColor(kTextColor); |
- label->SetAutoColorReadabilityEnabled(false); |
- label->SetSubpixelRenderingEnabled(false); |
- AddChildView(label); |
- SetLayoutManager(new views::FillLayout); |
- } |
- |
- gfx::Size GetPreferredSize() const override { |
- return gfx::Size(width_, height_); |
- } |
- |
- void OnPaint(gfx::Canvas* canvas) override { |
- cc::PaintFlags flags; |
- flags.setStyle(cc::PaintFlags::kFill_Style); |
- flags.setColor(kWindowBackgroundColor); |
- canvas->DrawRoundRect(GetLocalBounds(), kWindowCornerRadius, flags); |
- views::WidgetDelegateView::OnPaint(canvas); |
- } |
- |
- void GetAccessibleNodeData(ui::AXNodeData* node_data) override { |
- node_data->SetName(accessible_name_); |
- node_data->role = ui::AX_ROLE_ALERT; |
- } |
- |
- private: |
- base::string16 text_; |
- base::string16 accessible_name_; |
- int text_width_; |
- int width_; |
- int height_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ExitWarningWidgetDelegateView); |
-}; |
- |
-} // namespace |
- |
-ExitWarningHandler::ExitWarningHandler() |
- : state_(IDLE), stub_timer_for_test_(false) {} |
- |
-ExitWarningHandler::~ExitWarningHandler() { |
- // Note: If a timer is outstanding, it is stopped in its destructor. |
- Hide(); |
-} |
- |
-void ExitWarningHandler::HandleAccelerator() { |
- switch (state_) { |
- case IDLE: |
- state_ = WAIT_FOR_DOUBLE_PRESS; |
- Show(); |
- StartTimer(); |
- WmShell::Get()->RecordUserMetricsAction(UMA_ACCEL_EXIT_FIRST_Q); |
- break; |
- case WAIT_FOR_DOUBLE_PRESS: |
- state_ = EXITING; |
- CancelTimer(); |
- Hide(); |
- WmShell::Get()->RecordUserMetricsAction(UMA_ACCEL_EXIT_SECOND_Q); |
- WmShell::Get()->delegate()->Exit(); |
- break; |
- case EXITING: |
- break; |
- } |
-} |
- |
-void ExitWarningHandler::TimerAction() { |
- Hide(); |
- if (state_ == WAIT_FOR_DOUBLE_PRESS) |
- state_ = IDLE; |
-} |
- |
-void ExitWarningHandler::StartTimer() { |
- if (stub_timer_for_test_) |
- return; |
- timer_.Start(FROM_HERE, |
- base::TimeDelta::FromMilliseconds(kTimeOutMilliseconds), this, |
- &ExitWarningHandler::TimerAction); |
-} |
- |
-void ExitWarningHandler::CancelTimer() { |
- timer_.Stop(); |
-} |
- |
-void ExitWarningHandler::Show() { |
- if (widget_) |
- return; |
- WmWindow* root_window = WmShell::Get()->GetRootWindowForNewWindows(); |
- ExitWarningWidgetDelegateView* delegate = new ExitWarningWidgetDelegateView; |
- gfx::Size rs = root_window->GetBounds().size(); |
- gfx::Size ps = delegate->GetPreferredSize(); |
- gfx::Rect bounds((rs.width() - ps.width()) / 2, |
- (rs.height() - ps.height()) / 3, ps.width(), ps.height()); |
- views::Widget::InitParams params; |
- params.type = views::Widget::InitParams::TYPE_POPUP; |
- params.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW; |
- params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
- params.accept_events = false; |
- params.keep_on_top = true; |
- params.remove_standard_frame = true; |
- params.delegate = delegate; |
- params.bounds = bounds; |
- params.name = "ExitWarningWindow"; |
- widget_.reset(new views::Widget); |
- root_window->GetRootWindowController()->ConfigureWidgetInitParamsForContainer( |
- widget_.get(), kShellWindowId_SettingBubbleContainer, ¶ms); |
- widget_->Init(params); |
- widget_->Show(); |
- |
- delegate->NotifyAccessibilityEvent(ui::AX_EVENT_ALERT, true); |
-} |
- |
-void ExitWarningHandler::Hide() { |
- widget_.reset(); |
-} |
- |
-} // namespace ash |