diff options
author | mazda@chromium.org <mazda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-02 03:54:50 +0000 |
---|---|---|
committer | mazda@chromium.org <mazda@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-02 03:54:50 +0000 |
commit | d14af52a5523e6ecd71f6173b7254a481852e3c8 (patch) | |
tree | 4342abbb7fbdc1cebcdc91b35c5cba6bb9fb50c2 /chrome | |
parent | 15e123091eaa54a4b20f407a181cdc17532e9364 (diff) | |
download | chromium_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.h | 1 | ||||
-rw-r--r-- | chrome/browser/ui/browser.cc | 6 | ||||
-rw-r--r-- | chrome/browser/ui/browser.h | 1 | ||||
-rw-r--r-- | chrome/browser/ui/browser_window.h | 5 | ||||
-rw-r--r-- | chrome/browser/ui/views/accelerator_table_gtk.cc | 3 | ||||
-rw-r--r-- | chrome/browser/ui/views/frame/browser_view.cc | 10 | ||||
-rw-r--r-- | chrome/browser/ui/views/frame/browser_view.h | 3 | ||||
-rw-r--r-- | chrome/browser/ui/views/keyboard_overlay_delegate.cc | 70 | ||||
-rw-r--r-- | chrome/browser/ui/views/keyboard_overlay_delegate.h | 39 | ||||
-rw-r--r-- | chrome/chrome_browser.gypi | 7 | ||||
-rw-r--r-- | chrome/test/test_browser_window.h | 3 |
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() {} |