summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authormazda@chromium.org <mazda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-02 03:54:50 +0000
committermazda@chromium.org <mazda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-02 03:54:50 +0000
commitd14af52a5523e6ecd71f6173b7254a481852e3c8 (patch)
tree4342abbb7fbdc1cebcdc91b35c5cba6bb9fb50c2 /chrome
parent15e123091eaa54a4b20f407a181cdc17532e9364 (diff)
downloadchromium_src-d14af52a5523e6ecd71f6173b7254a481852e3c8.zip
chromium_src-d14af52a5523e6ecd71f6173b7254a481852e3c8.tar.gz
chromium_src-d14af52a5523e6ecd71f6173b7254a481852e3c8.tar.bz2
Enable to show the keyboard overlay by shortcut key.
BUG=chromium-os:6268 TEST=manually on the netbook Review URL: http://codereview.chromium.org/5440001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67962 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/app/chrome_command_ids.h1
-rw-r--r--chrome/browser/ui/browser.cc6
-rw-r--r--chrome/browser/ui/browser.h1
-rw-r--r--chrome/browser/ui/browser_window.h5
-rw-r--r--chrome/browser/ui/views/accelerator_table_gtk.cc3
-rw-r--r--chrome/browser/ui/views/frame/browser_view.cc10
-rw-r--r--chrome/browser/ui/views/frame/browser_view.h3
-rw-r--r--chrome/browser/ui/views/keyboard_overlay_delegate.cc70
-rw-r--r--chrome/browser/ui/views/keyboard_overlay_delegate.h39
-rw-r--r--chrome/chrome_browser.gypi7
-rw-r--r--chrome/test/test_browser_window.h3
11 files changed, 148 insertions, 0 deletions
diff --git a/chrome/app/chrome_command_ids.h b/chrome/app/chrome_command_ids.h
index cc78218..021c293 100644
--- a/chrome/app/chrome_command_ids.h
+++ b/chrome/app/chrome_command_ids.h
@@ -173,6 +173,7 @@
#define IDC_UPGRADE_DIALOG 40026
#define IDC_VIEW_INCOMPATIBILITIES 40027
#define IDC_VIEW_BACKGROUND_PAGES 40028
+#define IDC_SHOW_KEYBOARD_OVERLAY 40029
// Spell-check
// Insert any additional suggestions before _LAST; these have to be consecutive.
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index 3653aa9..a0be08a 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -1461,6 +1461,10 @@ void Browser::Search() {
// Otherwise just open it.
NewTab();
}
+
+void Browser::ShowKeyboardOverlay() {
+ window_->ShowKeyboardOverlay(window_->GetNativeHandle());
+}
#endif
void Browser::Exit() {
@@ -2129,6 +2133,7 @@ void Browser::ExecuteCommandWithDisposition(
case IDC_TOGGLE_VERTICAL_TABS: ToggleUseVerticalTabs(); break;
#if defined(OS_CHROMEOS)
case IDC_SEARCH: Search(); break;
+ case IDC_SHOW_KEYBOARD_OVERLAY: ShowKeyboardOverlay(); break;
#endif
// Page-related commands
@@ -3469,6 +3474,7 @@ void Browser::InitCommandState() {
#if defined(OS_CHROMEOS)
command_updater_.UpdateCommandEnabled(IDC_SEARCH, true);
+ command_updater_.UpdateCommandEnabled(IDC_SHOW_KEYBOARD_OVERLAY, true);
command_updater_.UpdateCommandEnabled(IDC_SYSTEM_OPTIONS, true);
command_updater_.UpdateCommandEnabled(IDC_INTERNET_OPTIONS, true);
#endif
diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h
index faa316c..b5ff475 100644
--- a/chrome/browser/ui/browser.h
+++ b/chrome/browser/ui/browser.h
@@ -459,6 +459,7 @@ class Browser : public TabHandlerDelegate,
#if defined(OS_CHROMEOS)
void ToggleCompactNavigationBar();
void Search();
+ void ShowKeyboardOverlay();
#endif
// Page-related commands
diff --git a/chrome/browser/ui/browser_window.h b/chrome/browser/ui/browser_window.h
index 810bf92..77c8898 100644
--- a/chrome/browser/ui/browser_window.h
+++ b/chrome/browser/ui/browser_window.h
@@ -330,6 +330,11 @@ class BrowserWindow {
// placed at.
virtual gfx::Rect GetInstantBounds() = 0;
+#if defined(OS_CHROMEOS)
+ // Shows the keyboard overlay dialog box.
+ virtual void ShowKeyboardOverlay(gfx::NativeWindow owning_window) = 0;
+#endif
+
// Construct a BrowserWindow implementation for the specified |browser|.
static BrowserWindow* CreateBrowserWindow(Browser* browser);
diff --git a/chrome/browser/ui/views/accelerator_table_gtk.cc b/chrome/browser/ui/views/accelerator_table_gtk.cc
index 261420e..fae032a 100644
--- a/chrome/browser/ui/views/accelerator_table_gtk.cc
+++ b/chrome/browser/ui/views/accelerator_table_gtk.cc
@@ -19,6 +19,9 @@ const AcceleratorMapping kAcceleratorMap[] = {
{ app::VKEY_BACK, false, false, false, IDC_BACK },
#if defined(OS_CHROMEOS)
{ app::VKEY_F1, false, false, false, IDC_BACK },
+ // TODO(mazda): Change VKEY_1 to VKEY_OME_2 once the new version of the
+ // keyboard overlay is ready.
+ { app::VKEY_1, false, true, true, IDC_SHOW_KEYBOARD_OVERLAY },
#endif
{ app::VKEY_D, false, true, false, IDC_BOOKMARK_PAGE },
{ app::VKEY_D, true, true, false, IDC_BOOKMARK_ALL_TABS },
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc
index 95a8e4c..c7d9265 100644
--- a/chrome/browser/ui/views/frame/browser_view.cc
+++ b/chrome/browser/ui/views/frame/browser_view.cc
@@ -92,6 +92,10 @@
#include "views/window/window_gtk.h"
#endif
+#if defined(OS_CHROMEOS)
+#include "chrome/browser/ui/views/keyboard_overlay_delegate.h"
+#endif
+
using base::TimeDelta;
using views::ColumnSet;
using views::GridLayout;
@@ -1383,6 +1387,12 @@ gfx::Rect BrowserView::GetInstantBounds() {
return contents_->GetPreviewBounds();
}
+#if defined(OS_CHROMEOS)
+void BrowserView::ShowKeyboardOverlay(gfx::NativeWindow owning_window) {
+ KeyboardOverlayDelegate::ShowDialog(owning_window);
+}
+#endif
+
///////////////////////////////////////////////////////////////////////////////
// BrowserView, BrowserWindowTesting implementation:
diff --git a/chrome/browser/ui/views/frame/browser_view.h b/chrome/browser/ui/views/frame/browser_view.h
index c0464d4..40364d1 100644
--- a/chrome/browser/ui/views/frame/browser_view.h
+++ b/chrome/browser/ui/views/frame/browser_view.h
@@ -327,6 +327,9 @@ class BrowserView : public BrowserBubbleHost,
virtual void ShowInstant(TabContents* preview_contents);
virtual void HideInstant();
virtual gfx::Rect GetInstantBounds();
+#if defined(OS_CHROMEOS)
+ virtual void ShowKeyboardOverlay(gfx::NativeWindow owning_window);
+#endif
// Overridden from BrowserWindowTesting:
virtual BookmarkBarView* GetBookmarkBarView() const;
diff --git a/chrome/browser/ui/views/keyboard_overlay_delegate.cc b/chrome/browser/ui/views/keyboard_overlay_delegate.cc
new file mode 100644
index 0000000..5673f02
--- /dev/null
+++ b/chrome/browser/ui/views/keyboard_overlay_delegate.cc
@@ -0,0 +1,70 @@
+// Copyright (c) 2010 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_delegate.h"
+
+#include "app/l10n_util.h"
+#include "base/scoped_ptr.h"
+#include "chrome/browser/browser_list.h"
+#include "chrome/browser/dom_ui/html_dialog_ui.h"
+#include "chrome/browser/ui/browser.h"
+#include "chrome/common/url_constants.h"
+#include "grit/generated_resources.h"
+
+
+void KeyboardOverlayDelegate::ShowDialog(gfx::NativeWindow owning_window) {
+ Browser* browser = BrowserList::GetLastActive();
+ KeyboardOverlayDelegate* delegate = new KeyboardOverlayDelegate(
+ l10n_util::GetString(IDS_KEYBOARD_OVERLAY_TITLE));
+ DCHECK(browser);
+ browser->BrowserShowHtmlDialog(delegate, owning_window);
+}
+
+KeyboardOverlayDelegate::KeyboardOverlayDelegate(
+ const std::wstring& title)
+ : title_(title) {
+}
+
+KeyboardOverlayDelegate::~KeyboardOverlayDelegate() {
+}
+
+bool KeyboardOverlayDelegate::IsDialogModal() const {
+ return true;
+}
+
+std::wstring KeyboardOverlayDelegate::GetDialogTitle() const {
+ return title_;
+}
+
+GURL KeyboardOverlayDelegate::GetDialogContentURL() const {
+ std::string url_string(chrome::kChromeUIKeyboardOverlayURL);
+ return GURL(url_string);
+}
+
+void KeyboardOverlayDelegate::GetDOMMessageHandlers(
+ std::vector<DOMMessageHandler*>* handlers) const {
+}
+
+void KeyboardOverlayDelegate::GetDialogSize(
+ gfx::Size* size) const {
+ size->SetSize(1170, 483);
+}
+
+std::string KeyboardOverlayDelegate::GetDialogArgs() const {
+ return "[]";
+}
+
+void KeyboardOverlayDelegate::OnDialogClosed(
+ const std::string& json_retval) {
+ delete this;
+ return;
+}
+
+void KeyboardOverlayDelegate::OnCloseContents(TabContents* source,
+ bool* out_close_dialog) {
+}
+
+bool KeyboardOverlayDelegate::ShouldShowDialogTitle() const {
+ return false;
+}
diff --git a/chrome/browser/ui/views/keyboard_overlay_delegate.h b/chrome/browser/ui/views/keyboard_overlay_delegate.h
new file mode 100644
index 0000000..9c957e1
--- /dev/null
+++ b/chrome/browser/ui/views/keyboard_overlay_delegate.h
@@ -0,0 +1,39 @@
+// Copyright (c) 2010 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_DELEGATE_H_
+#define CHROME_BROWSER_UI_VIEWS_KEYBOARD_OVERLAY_DELEGATE_H_
+
+#include "gfx/native_widget_types.h"
+#include "chrome/browser/dom_ui/html_dialog_ui.h"
+
+class KeyboardOverlayDelegate : public HtmlDialogUIDelegate {
+ public:
+ KeyboardOverlayDelegate(const std::wstring& title);
+
+ // Shows the keyboard overlay dialog box.
+ static void ShowDialog(gfx::NativeWindow owning_window);
+
+ private:
+ ~KeyboardOverlayDelegate();
+
+ // Overridden from HtmlDialogUI::Delegate:
+ virtual bool IsDialogModal() const;
+ virtual std::wstring GetDialogTitle() const;
+ virtual GURL GetDialogContentURL() const;
+ virtual void GetDOMMessageHandlers(
+ std::vector<DOMMessageHandler*>* handlers) const;
+ virtual void GetDialogSize(gfx::Size* size) const;
+ virtual std::string GetDialogArgs() const;
+ virtual void OnDialogClosed(const std::string& json_retval);
+ virtual void OnCloseContents(TabContents* source, bool* out_close_dialog);
+ virtual bool ShouldShowDialogTitle() const;
+
+ // The dialog title.
+ std::wstring title_;
+
+ DISALLOW_COPY_AND_ASSIGN(KeyboardOverlayDelegate);
+};
+
+#endif // CHROME_BROWSER_UI_VIEWS_KEYBOARD_OVERLAY_DELEGATE_H_
diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi
index 46c128b..b685ee4 100644
--- a/chrome/chrome_browser.gypi
+++ b/chrome/chrome_browser.gypi
@@ -3204,6 +3204,8 @@
'browser/ui/views/js_modal_dialog_views.h',
'browser/ui/views/keyword_editor_view.cc',
'browser/ui/views/keyword_editor_view.h',
+ 'browser/ui/views/keyboard_overlay_delegate.cc',
+ 'browser/ui/views/keyboard_overlay_delegate.h',
'browser/ui/views/list_background.h',
'browser/ui/views/local_storage_info_view.cc',
'browser/ui/views/local_storage_info_view.h',
@@ -3785,6 +3787,7 @@
'browser/importer/nss_decryptor_system_nss.cc',
'browser/importer/nss_decryptor_system_nss.h',
'browser/power_save_blocker_stub.cc',
+ 'browser/ui/views/keyboard_overlay_delegate.cc',
'browser/ui/views/select_file_dialog.cc',
],
'conditions': [
@@ -3938,6 +3941,8 @@
['include', '^browser/ui/views/instant_confirm_view.h'],
['include', '^browser/ui/views/js_modal_dialog_views.cc'],
['include', '^browser/ui/views/js_modal_dialog_views.h'],
+ ['include', '^browser/ui/views/keyboard_overlay_delegate.cc'],
+ ['include', '^browser/ui/views/keyboard_overlay_delegate.h'],
['include', '^browser/ui/views/location_bar/click_handler.cc'],
['include', '^browser/ui/views/location_bar/click_handler.h'],
['include', '^browser/ui/views/location_bar/content_setting_image_view.cc'],
@@ -4154,6 +4159,8 @@
['include', '^browser/gtk/external_protocol_dialog_gtk.h'],
['include', '^browser/ui/views/notifications/balloon_view.cc'],
['include', '^browser/ui/views/notifications/balloon_view.h'],
+ ['exclude', '^browser/ui/views/keyboard_overlay_delegate.cc'],
+ ['exclude', '^browser/ui/views/keyboard_overlay_delegate.h'],
['exclude', '^browser/ui/views/select_file_dialog.cc'],
],
}],
diff --git a/chrome/test/test_browser_window.h b/chrome/test/test_browser_window.h
index b051dfb..61a25d0 100644
--- a/chrome/test/test_browser_window.h
+++ b/chrome/test/test_browser_window.h
@@ -108,6 +108,9 @@ class TestBrowserWindow : public BrowserWindow {
virtual void ShowInstant(TabContents* preview_contents) {}
virtual void HideInstant() {}
virtual gfx::Rect GetInstantBounds() { return gfx::Rect(); }
+#if defined(OS_CHROMEOS)
+ virtual void ShowKeyboardOverlay(gfx::NativeWindow owning_window) {}
+#endif
protected:
virtual void DestroyBrowser() {}