summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/apps/apps_metro_handler_win.cc
blob: 8d212e8c163ed47285a9144c4092d6eb02b776b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// 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 "chrome/browser/ui/apps/apps_metro_handler_win.h"

#include "apps/app_window.h"
#include "apps/app_window_registry.h"
#include "chrome/app/chrome_command_ids.h"
#include "chrome/browser/ui/simple_message_box.h"
#include "chrome/grit/chromium_strings.h"
#include "chrome/grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"

bool VerifyASHSwitchForApps(gfx::NativeWindow parent_window,
                            int win_restart_command_id) {
  DCHECK(win_restart_command_id == IDC_WIN_DESKTOP_RESTART ||
      win_restart_command_id == IDC_WIN8_METRO_RESTART ||
      win_restart_command_id == IDC_WIN_CHROMEOS_RESTART);
  if (!apps::AppWindowRegistry::IsAppWindowRegisteredInAnyProfile(
           apps::AppWindow::WINDOW_TYPE_DEFAULT)) {
    return true;
  }

  int string_id = 0;
  switch (win_restart_command_id) {
    case IDC_WIN8_METRO_RESTART:
      string_id = IDS_WIN8_PROMPT_TO_CLOSE_APPS_FOR_METRO;
      break;
    case IDC_WIN_CHROMEOS_RESTART:
      string_id = IDS_WIN_PROMPT_TO_CLOSE_APPS_FOR_CHROMEOS;
      break;
    default:
      string_id = IDS_WIN_PROMPT_TO_CLOSE_APPS_FOR_DESKTOP;
      break;
  }
  chrome::MessageBoxResult result = chrome::ShowMessageBox(
      parent_window,
      l10n_util::GetStringUTF16(IDS_PRODUCT_NAME),
      l10n_util::GetStringUTF16(string_id),
      chrome::MESSAGE_BOX_TYPE_OK_CANCEL);

  return result == chrome::MESSAGE_BOX_RESULT_YES;
}