summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsuzhe@chromium.org <suzhe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-27 04:40:18 +0000
committersuzhe@chromium.org <suzhe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-27 04:40:18 +0000
commit7d767625372cad11adca0789531753bd56e40e0e (patch)
treed9d4231db33bfaf1aa1d506391c7ec64a7af934a
parent699a94cd0f5560846eb23108f72a27743e788151 (diff)
downloadchromium_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.cc4
-rw-r--r--chrome/browser/browser.h2
-rw-r--r--chrome/browser/browser_window.h11
-rw-r--r--chrome/browser/cocoa/browser_window_cocoa.h3
-rw-r--r--chrome/browser/cocoa/browser_window_cocoa.mm12
-rw-r--r--chrome/test/test_browser_window.h3
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() {}