summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ash/DEPS1
-rw-r--r--ash/ash.gyp5
-rw-r--r--ash/ash_strings.grd4
-rw-r--r--ash/keyboard_overlay/keyboard_overlay_delegate.cc (renamed from chrome/browser/ui/views/keyboard_overlay_delegate.cc)12
-rw-r--r--ash/keyboard_overlay/keyboard_overlay_delegate.h (renamed from chrome/browser/ui/views/keyboard_overlay_delegate.h)12
-rw-r--r--ash/keyboard_overlay/keyboard_overlay_view.cc52
-rw-r--r--ash/keyboard_overlay/keyboard_overlay_view.h42
-rw-r--r--chrome/browser/ui/views/ash/chrome_shell_delegate.cc8
-rw-r--r--chrome/browser/ui/views/keyboard_overlay_dialog_view.cc65
-rw-r--r--chrome/browser/ui/views/keyboard_overlay_dialog_view.h38
-rw-r--r--chrome/chrome_browser.gypi10
11 files changed, 123 insertions, 126 deletions
diff --git a/ash/DEPS b/ash/DEPS
index 5681eb3..1d2a2b1 100644
--- a/ash/DEPS
+++ b/ash/DEPS
@@ -1,5 +1,6 @@
include_rules = [
"+chromeos",
+ "+content/public",
"+grit/ash_strings.h",
"+grit/ui_resources.h",
"+grit/ui_strings.h",
diff --git a/ash/ash.gyp b/ash/ash.gyp
index 5883fb1..eb180ba 100644
--- a/ash/ash.gyp
+++ b/ash/ash.gyp
@@ -33,6 +33,7 @@
'../ui/ui.gyp:ui',
'../ui/ui.gyp:ui_resources',
'../ui/views/views.gyp:views',
+ '../ui/web_dialogs/web_dialogs.gyp:web_dialogs',
],
'defines': [
'ASH_IMPLEMENTATION',
@@ -110,6 +111,10 @@
'display/screen_position_controller.h',
'display/secondary_display_view.cc',
'display/secondary_display_view.h',
+ 'keyboard_overlay/keyboard_overlay_delegate.cc',
+ 'keyboard_overlay/keyboard_overlay_delegate.h',
+ 'keyboard_overlay/keyboard_overlay_view.cc',
+ 'keyboard_overlay/keyboard_overlay_view.h',
'root_window_controller.cc',
'root_window_controller.h',
'rotator/screen_rotation.cc',
diff --git a/ash/ash_strings.grd b/ash/ash_strings.grd
index 8878155..826e17e 100644
--- a/ash/ash_strings.grd
+++ b/ash/ash_strings.grd
@@ -200,6 +200,10 @@ This file contains the strings for ash.
Pull down to minimize, left or right to tile
</message>
+ <message name="IDS_ASH_KEYBOARD_OVERLAY_TITLE" desc="The title of the keyboard overlay.">
+ Keyboard Overlay
+ </message>
+
<!-- Status tray items -->
<message name="IDS_ASH_STATUS_TRAY_ACCESSIBLE_NAME" desc="The accessible name of the status tray.">
Status tray
diff --git a/chrome/browser/ui/views/keyboard_overlay_delegate.cc b/ash/keyboard_overlay/keyboard_overlay_delegate.cc
index 051979e9..e819a98 100644
--- a/chrome/browser/ui/views/keyboard_overlay_delegate.cc
+++ b/ash/keyboard_overlay/keyboard_overlay_delegate.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/ui/views/keyboard_overlay_delegate.h"
+#include "ash/keyboard_overlay/keyboard_overlay_delegate.h"
#include <algorithm>
@@ -10,11 +10,8 @@
#include "base/memory/weak_ptr.h"
#include "base/utf_string_conversions.h"
#include "base/values.h"
-#include "chrome/common/url_constants.h"
#include "content/public/browser/web_ui.h"
#include "content/public/browser/web_ui_message_handler.h"
-#include "googleurl/src/gurl.h"
-#include "grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/gfx/screen.h"
#include "ui/views/controls/webview/web_dialog_view.h"
@@ -61,8 +58,10 @@ void PaintMessageHandler::DidPaint(const ListValue* args) {
} // namespace
-KeyboardOverlayDelegate::KeyboardOverlayDelegate(const string16& title)
+KeyboardOverlayDelegate::KeyboardOverlayDelegate(const string16& title,
+ const GURL& url)
: title_(title),
+ url_(url),
view_(NULL) {
}
@@ -101,8 +100,7 @@ string16 KeyboardOverlayDelegate::GetDialogTitle() const {
}
GURL KeyboardOverlayDelegate::GetDialogContentURL() const {
- std::string url_string(chrome::kChromeUIKeyboardOverlayURL);
- return GURL(url_string);
+ return url_;
}
void KeyboardOverlayDelegate::GetWebUIMessageHandlers(
diff --git a/chrome/browser/ui/views/keyboard_overlay_delegate.h b/ash/keyboard_overlay/keyboard_overlay_delegate.h
index 50b8a92..7a63ee5 100644
--- a/chrome/browser/ui/views/keyboard_overlay_delegate.h
+++ b/ash/keyboard_overlay/keyboard_overlay_delegate.h
@@ -2,11 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_UI_VIEWS_KEYBOARD_OVERLAY_DELEGATE_H_
-#define CHROME_BROWSER_UI_VIEWS_KEYBOARD_OVERLAY_DELEGATE_H_
+#ifndef ASH_KEYBOARD_OVERLAY_KEYBOARD_OVERLAY_DELEGATE_H_
+#define ASH_KEYBOARD_OVERLAY_KEYBOARD_OVERLAY_DELEGATE_H_
#include "base/basictypes.h"
#include "base/compiler_specific.h"
+#include "googleurl/src/gurl.h"
#include "ui/web_dialogs/web_dialog_delegate.h"
namespace views {
@@ -15,7 +16,7 @@ class WebDialogView;
class KeyboardOverlayDelegate : public ui::WebDialogDelegate {
public:
- explicit KeyboardOverlayDelegate(const string16& title);
+ KeyboardOverlayDelegate(const string16& title, const GURL& url);
void Show(views::WebDialogView* view);
@@ -42,6 +43,9 @@ class KeyboardOverlayDelegate : public ui::WebDialogDelegate {
// The dialog title.
string16 title_;
+ // The URL of the keyboard overlay.
+ GURL url_;
+
// The view associated with this delegate.
// This class does not own the pointer.
views::WebDialogView* view_;
@@ -49,4 +53,4 @@ class KeyboardOverlayDelegate : public ui::WebDialogDelegate {
DISALLOW_COPY_AND_ASSIGN(KeyboardOverlayDelegate);
};
-#endif // CHROME_BROWSER_UI_VIEWS_KEYBOARD_OVERLAY_DELEGATE_H_
+#endif // ASH_KEYBOARD_OVERLAY_KEYBOARD_OVERLAY_DELEGATE_H_
diff --git a/ash/keyboard_overlay/keyboard_overlay_view.cc b/ash/keyboard_overlay/keyboard_overlay_view.cc
new file mode 100644
index 0000000..d9a7b6c
--- /dev/null
+++ b/ash/keyboard_overlay/keyboard_overlay_view.cc
@@ -0,0 +1,52 @@
+// Copyright (c) 2012 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/keyboard_overlay/keyboard_overlay_view.h"
+
+#include "ash/keyboard_overlay/keyboard_overlay_delegate.h"
+#include "base/utf_string_conversions.h"
+#include "content/public/browser/browser_context.h"
+#include "grit/ash_strings.h"
+#include "ui/base/l10n/l10n_util.h"
+#include "ui/gfx/screen.h"
+#include "ui/views/widget/widget.h"
+#include "ui/web_dialogs/web_dialog_delegate.h"
+
+using ui::WebDialogDelegate;
+
+namespace {
+// Store the pointer to the view currently shown.
+KeyboardOverlayView* g_instance = NULL;
+}
+
+KeyboardOverlayView::KeyboardOverlayView(
+ content::BrowserContext* context,
+ WebDialogDelegate* delegate,
+ WebContentsHandler* handler)
+ : views::WebDialogView(context, delegate, handler) {
+}
+
+KeyboardOverlayView::~KeyboardOverlayView() {
+}
+
+void KeyboardOverlayView::ShowDialog(
+ content::BrowserContext* context,
+ WebContentsHandler* handler,
+ const GURL& url) {
+ // Ignore the call if another view is already shown.
+ if (g_instance)
+ return;
+
+ KeyboardOverlayDelegate* delegate = new KeyboardOverlayDelegate(
+ l10n_util::GetStringUTF16(IDS_ASH_KEYBOARD_OVERLAY_TITLE), url);
+ KeyboardOverlayView* view =
+ new KeyboardOverlayView(context, delegate, handler);
+ delegate->Show(view);
+
+ g_instance = view;
+}
+
+void KeyboardOverlayView::WindowClosing() {
+ g_instance = NULL;
+}
diff --git a/ash/keyboard_overlay/keyboard_overlay_view.h b/ash/keyboard_overlay/keyboard_overlay_view.h
new file mode 100644
index 0000000..a0b44e0
--- /dev/null
+++ b/ash/keyboard_overlay/keyboard_overlay_view.h
@@ -0,0 +1,42 @@
+// Copyright (c) 2012 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.
+
+#ifndef ASH_KEYBOARD_OVERLAY_KEYBOARD_OVERLAY_VIEW_H_
+#define ASH_KEYBOARD_OVERLAY_KEYBOARD_OVERLAY_VIEW_H_
+
+#include "ash/ash_export.h"
+#include "base/compiler_specific.h"
+#include "ui/views/controls/webview/web_dialog_view.h"
+
+class GURL;
+
+namespace content {
+class BrowserContext;
+}
+
+namespace ui {
+class WebDialogDelegate;
+}
+
+// A customized dialog view for the keyboard overlay.
+class ASH_EXPORT KeyboardOverlayView : public views::WebDialogView {
+ public:
+ KeyboardOverlayView(content::BrowserContext* context,
+ ui::WebDialogDelegate* delegate,
+ WebContentsHandler* handler);
+ virtual ~KeyboardOverlayView();
+
+ // Shows the keyboard overlay.
+ static void ShowDialog(content::BrowserContext* context,
+ WebContentsHandler* handler,
+ const GURL& url);
+
+ private:
+ // Overridden from views::WidgetDelegate:
+ virtual void WindowClosing() OVERRIDE;
+
+ DISALLOW_COPY_AND_ASSIGN(KeyboardOverlayView);
+};
+
+#endif // ASH_KEYBOARD_OVERLAY_KEYBOARD_OVERLAY_VIEW_H_
diff --git a/chrome/browser/ui/views/ash/chrome_shell_delegate.cc b/chrome/browser/ui/views/ash/chrome_shell_delegate.cc
index 9f5ff2b..1e8ad69 100644
--- a/chrome/browser/ui/views/ash/chrome_shell_delegate.cc
+++ b/chrome/browser/ui/views/ash/chrome_shell_delegate.cc
@@ -34,6 +34,7 @@
#include "ui/aura/window.h"
#if defined(OS_CHROMEOS)
+#include "ash/keyboard_overlay/keyboard_overlay_view.h"
#include "base/chromeos/chromeos_version.h"
#include "chrome/browser/chromeos/accessibility/accessibility_util.h"
#include "chrome/browser/chromeos/background/ash_user_wallpaper_delegate.h"
@@ -42,7 +43,6 @@
#include "chrome/browser/chromeos/login/user_manager.h"
#include "chrome/browser/chromeos/login/webui_login_display_host.h"
#include "chrome/browser/chromeos/system/ash_system_tray_delegate.h"
-#include "chrome/browser/ui/views/keyboard_overlay_dialog_view.h"
#include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
#include "chrome/browser/ui/webui/chromeos/mobile_setup_dialog.h"
#include "chromeos/dbus/dbus_thread_manager.h"
@@ -262,8 +262,12 @@ bool ChromeShellDelegate::RotatePaneFocus(ash::Shell::Direction direction) {
void ChromeShellDelegate::ShowKeyboardOverlay() {
#if defined(OS_CHROMEOS)
+ // TODO(mazda): Move the show logic to ash (http://crbug.com/124222).
Profile* profile = ProfileManager::GetDefaultProfileOrOffTheRecord();
- KeyboardOverlayDialogView::ShowDialog(profile, new ChromeWebContentsHandler);
+ std::string url(chrome::kChromeUIKeyboardOverlayURL);
+ KeyboardOverlayView::ShowDialog(profile,
+ new ChromeWebContentsHandler,
+ GURL(url));
#endif
}
diff --git a/chrome/browser/ui/views/keyboard_overlay_dialog_view.cc b/chrome/browser/ui/views/keyboard_overlay_dialog_view.cc
deleted file mode 100644
index 1ca47ea..0000000
--- a/chrome/browser/ui/views/keyboard_overlay_dialog_view.cc
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright (c) 2012 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/views/keyboard_overlay_dialog_view.h"
-
-#include "base/utf_string_conversions.h"
-#include "chrome/browser/ui/views/keyboard_overlay_delegate.h"
-#include "content/public/browser/browser_context.h"
-#include "grit/generated_resources.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/gfx/screen.h"
-#include "ui/views/widget/widget.h"
-#include "ui/web_dialogs/web_dialog_delegate.h"
-
-#if defined(OS_CHROMEOS)
-#include "chrome/browser/chromeos/input_method/input_method_manager.h"
-#endif
-
-using ui::WebDialogDelegate;
-
-namespace {
-// Store the pointer to the view currently shown.
-KeyboardOverlayDialogView* g_instance = NULL;
-}
-
-KeyboardOverlayDialogView::KeyboardOverlayDialogView(
- content::BrowserContext* context,
- WebDialogDelegate* delegate,
- WebContentsHandler* handler)
- : views::WebDialogView(context, delegate, handler) {
-}
-
-KeyboardOverlayDialogView::~KeyboardOverlayDialogView() {
-}
-
-void KeyboardOverlayDialogView::ShowDialog(
- content::BrowserContext* context,
- WebContentsHandler* handler) {
- // Ignore the call if another view is already shown.
- if (g_instance)
- return;
-
-#if defined(OS_CHROMEOS)
- // Temporarily disable all accelerators for IME switching including Shift+Alt
- // since the user might press Shift+Alt to remember an accelerator that starts
- // with Shift+Alt (e.g. Shift+Alt+Tab for moving focus backwards).
- chromeos::input_method::InputMethodManager::GetInstance()->DisableHotkeys();
-#endif
- KeyboardOverlayDelegate* delegate = new KeyboardOverlayDelegate(
- l10n_util::GetStringUTF16(IDS_KEYBOARD_OVERLAY_TITLE));
- KeyboardOverlayDialogView* view =
- new KeyboardOverlayDialogView(context, delegate, handler);
- delegate->Show(view);
-
- g_instance = view;
-}
-
-void KeyboardOverlayDialogView::WindowClosing() {
-#if defined(OS_CHROMEOS)
- // Re-enable the IME accelerators. See the comment in ShowDialog() above.
- chromeos::input_method::InputMethodManager::GetInstance()->EnableHotkeys();
-#endif
- g_instance = NULL;
-}
diff --git a/chrome/browser/ui/views/keyboard_overlay_dialog_view.h b/chrome/browser/ui/views/keyboard_overlay_dialog_view.h
deleted file mode 100644
index 2eecf3ef..0000000
--- a/chrome/browser/ui/views/keyboard_overlay_dialog_view.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (c) 2012 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.
-
-#ifndef CHROME_BROWSER_UI_VIEWS_KEYBOARD_OVERLAY_DIALOG_VIEW_H_
-#define CHROME_BROWSER_UI_VIEWS_KEYBOARD_OVERLAY_DIALOG_VIEW_H_
-
-#include "base/compiler_specific.h"
-#include "ui/views/controls/webview/web_dialog_view.h"
-
-namespace content {
-class BrowserContext;
-}
-
-namespace ui {
-class WebDialogDelegate;
-}
-
-// A customized dialog view for the keyboard overlay.
-class KeyboardOverlayDialogView : public views::WebDialogView {
- public:
- KeyboardOverlayDialogView(content::BrowserContext* context,
- ui::WebDialogDelegate* delegate,
- WebContentsHandler* handler);
- virtual ~KeyboardOverlayDialogView();
-
- // Shows the keyboard overlay.
- static void ShowDialog(content::BrowserContext* context,
- WebContentsHandler* handler);
-
- private:
- // Overridden from views::WidgetDelegate:
- virtual void WindowClosing() OVERRIDE;
-
- DISALLOW_COPY_AND_ASSIGN(KeyboardOverlayDialogView);
-};
-
-#endif // CHROME_BROWSER_UI_VIEWS_KEYBOARD_OVERLAY_DIALOG_VIEW_H_
diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi
index de2dde1..da21bbd 100644
--- a/chrome/chrome_browser.gypi
+++ b/chrome/chrome_browser.gypi
@@ -3712,10 +3712,6 @@
'browser/ui/views/infobars/translate_message_infobar.h',
'browser/ui/views/javascript_app_modal_dialog_views.cc',
'browser/ui/views/javascript_app_modal_dialog_views.h',
- 'browser/ui/views/keyboard_overlay_delegate.cc',
- 'browser/ui/views/keyboard_overlay_delegate.h',
- 'browser/ui/views/keyboard_overlay_dialog_view.cc',
- 'browser/ui/views/keyboard_overlay_dialog_view.h',
'browser/ui/views/location_bar/action_box_button_view.cc',
'browser/ui/views/location_bar/action_box_button_view.h',
'browser/ui/views/location_bar/chrome_to_mobile_view.cc',
@@ -5169,8 +5165,6 @@
'browser/ui/crypto_module_password_dialog.cc',
'browser/ui/crypto_module_password_dialog_nss.cc',
'browser/ui/startup/autolaunch_prompt.cc',
- 'browser/ui/views/keyboard_overlay_delegate.cc',
- 'browser/ui/views/keyboard_overlay_dialog_view.cc',
'browser/ui/views/simple_message_box_views.cc',
'browser/ui/webui/help/version_updater_basic.cc',
'browser/ui/webui/help/version_updater_basic.h',
@@ -5247,10 +5241,6 @@
'sources/': [
['exclude', '^browser/chromeos/extensions/file_browser_handler_api'],
['exclude', '^browser/chromeos/extensions/file_browser_private_api'],
- ['exclude', '^browser/ui/views/keyboard_overlay_delegate.cc'],
- ['exclude', '^browser/ui/views/keyboard_overlay_delegate.h'],
- ['exclude', '^browser/ui/views/keyboard_overlay_dialog_view.cc'],
- ['exclude', '^browser/ui/views/keyboard_overlay_dialog_view.h'],
],
}],
# GTK build only