diff options
author | suzhe@chromium.org <suzhe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-27 04:40:18 +0000 |
---|---|---|
committer | suzhe@chromium.org <suzhe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-27 04:40:18 +0000 |
commit | 7d767625372cad11adca0789531753bd56e40e0e (patch) | |
tree | d9d4231db33bfaf1aa1d506391c7ec64a7af934a | |
parent | 699a94cd0f5560846eb23108f72a27743e788151 (diff) | |
download | chromium_src-7d767625372cad11adca0789531753bd56e40e0e.zip chromium_src-7d767625372cad11adca0789531753bd56e40e0e.tar.gz chromium_src-7d767625372cad11adca0789531753bd56e40e0e.tar.bz2 |
[Mac]Implement Cut, Copy and Paste from page menu
BUG=none
TEST=Cut/Copy/Paste items in page menu should work in both omnibox and web content.
Review URL: http://codereview.chromium.org/556016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37231 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/browser.cc | 4 | ||||
-rw-r--r-- | chrome/browser/browser.h | 2 | ||||
-rw-r--r-- | chrome/browser/browser_window.h | 11 | ||||
-rw-r--r-- | chrome/browser/cocoa/browser_window_cocoa.h | 3 | ||||
-rw-r--r-- | chrome/browser/cocoa/browser_window_cocoa.mm | 12 | ||||
-rw-r--r-- | chrome/test/test_browser_window.h | 3 |
6 files changed, 22 insertions, 13 deletions
diff --git a/chrome/browser/browser.cc b/chrome/browser/browser.cc index 4fd3742..4f3576e 100644 --- a/chrome/browser/browser.cc +++ b/chrome/browser/browser.cc @@ -1107,7 +1107,6 @@ void Browser::OverrideEncoding(int encoding_id) { } } -#if !defined(OS_MACOSX) void Browser::Cut() { UserMetrics::RecordAction("Cut", profile_); window()->Cut(); @@ -1122,7 +1121,6 @@ void Browser::Paste() { UserMetrics::RecordAction("Paste", profile_); window()->Paste(); } -#endif void Browser::Find() { UserMetrics::RecordAction("Find", profile_); @@ -1536,12 +1534,10 @@ void Browser::ExecuteCommandWithDisposition( case IDC_ENCODING_WINDOWS1255: case IDC_ENCODING_WINDOWS1258: OverrideEncoding(id); break; -#if !defined(OS_MACOSX) // Clipboard commands case IDC_CUT: Cut(); break; case IDC_COPY: Copy(); break; case IDC_PASTE: Paste(); break; -#endif // Find-in-page case IDC_FIND: Find(); break; diff --git a/chrome/browser/browser.h b/chrome/browser/browser.h index 8958c6a..5737790 100644 --- a/chrome/browser/browser.h +++ b/chrome/browser/browser.h @@ -382,12 +382,10 @@ class Browser : public TabStripModelDelegate, void ToggleEncodingAutoDetect(); void OverrideEncoding(int encoding_id); -#if !defined(OS_MACOSX) // Clipboard commands void Cut(); void Copy(); void Paste(); -#endif // Find-in-page void Find(); diff --git a/chrome/browser/browser_window.h b/chrome/browser/browser_window.h index c3c2f48..a5dae90 100644 --- a/chrome/browser/browser_window.h +++ b/chrome/browser/browser_window.h @@ -287,13 +287,10 @@ class BrowserWindow { virtual void ToggleCompactNavigationBar() = 0; #endif -#if !defined(OS_MACOSX) - // Clipboard commands applied to the whole browser window. Only for Linux, - // Windows and ChromeOS ports. - virtual void Cut() {} - virtual void Copy() {} - virtual void Paste() {} -#endif + // Clipboard commands applied to the whole browser window. + virtual void Cut() = 0; + virtual void Copy() = 0; + virtual void Paste() = 0; // Construct a BrowserWindow implementation for the specified |browser|. static BrowserWindow* CreateBrowserWindow(Browser* browser); diff --git a/chrome/browser/cocoa/browser_window_cocoa.h b/chrome/browser/cocoa/browser_window_cocoa.h index 54fb2a5..34aa11c 100644 --- a/chrome/browser/cocoa/browser_window_cocoa.h +++ b/chrome/browser/cocoa/browser_window_cocoa.h @@ -95,6 +95,9 @@ class BrowserWindowCocoa : public BrowserWindow, bool* is_keyboard_shortcut); virtual void HandleKeyboardEvent(const NativeWebKeyboardEvent& event); virtual void ShowCreateShortcutsDialog(TabContents* tab_contents); + virtual void Cut(); + virtual void Copy(); + virtual void Paste(); // Overridden from NotificationObserver virtual void Observe(NotificationType type, diff --git a/chrome/browser/cocoa/browser_window_cocoa.mm b/chrome/browser/cocoa/browser_window_cocoa.mm index 8e1df28..25d56ee 100644 --- a/chrome/browser/cocoa/browser_window_cocoa.mm +++ b/chrome/browser/cocoa/browser_window_cocoa.mm @@ -502,6 +502,18 @@ void BrowserWindowCocoa::ShowCreateShortcutsDialog(TabContents* tab_contents) { NOTIMPLEMENTED(); } +void BrowserWindowCocoa::Cut() { + [NSApp sendAction:@selector(cut:) to:nil from:nil]; +} + +void BrowserWindowCocoa::Copy() { + [NSApp sendAction:@selector(copy:) to:nil from:nil]; +} + +void BrowserWindowCocoa::Paste() { + [NSApp sendAction:@selector(paste:) to:nil from:nil]; +} + void BrowserWindowCocoa::Observe(NotificationType type, const NotificationSource& source, const NotificationDetails& details) { diff --git a/chrome/test/test_browser_window.h b/chrome/test/test_browser_window.h index 1028b0a..d994961 100644 --- a/chrome/test/test_browser_window.h +++ b/chrome/test/test_browser_window.h @@ -93,6 +93,9 @@ class TestBrowserWindow : public BrowserWindow { const GURL& url, const NavigationEntry::SSLStatus& ssl, bool show_history) { } + virtual void Cut() { } + virtual void Copy() { } + virtual void Paste() { } protected: virtual void DestroyBrowser() {} |