| OLD | NEW |
| 1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/browser.h" | 5 #include "chrome/browser/browser.h" |
| 6 | 6 |
| 7 #include "app/animation.h" | 7 #include "app/animation.h" |
| 8 #include "app/l10n_util.h" | 8 #include "app/l10n_util.h" |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/idle_timer.h" | 10 #include "base/idle_timer.h" |
| (...skipping 997 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1008 // TODO(devint): http://b/issue?id=1117225 Cut, Copy, and Paste are always | 1008 // TODO(devint): http://b/issue?id=1117225 Cut, Copy, and Paste are always |
| 1009 // enabled in the page menu regardless of whether the command will do | 1009 // enabled in the page menu regardless of whether the command will do |
| 1010 // anything. When someone selects the menu item, we just act as if they hit | 1010 // anything. When someone selects the menu item, we just act as if they hit |
| 1011 // the keyboard shortcut for the command by sending the associated key press | 1011 // the keyboard shortcut for the command by sending the associated key press |
| 1012 // to windows. The real fix to this bug is to disable the commands when they | 1012 // to windows. The real fix to this bug is to disable the commands when they |
| 1013 // won't do anything. We'll need something like an overall clipboard command | 1013 // won't do anything. We'll need something like an overall clipboard command |
| 1014 // manager to do that. | 1014 // manager to do that. |
| 1015 | 1015 |
| 1016 void Browser::Cut() { | 1016 void Browser::Cut() { |
| 1017 UserMetrics::RecordAction(L"Cut", profile_); | 1017 UserMetrics::RecordAction(L"Cut", profile_); |
| 1018 ui_controls::SendKeyPress(L'X', true, false, false); | 1018 ui_controls::SendKeyPress(window()->GetNativeHandle(), L'X', true, false, |
| 1019 false); |
| 1019 } | 1020 } |
| 1020 | 1021 |
| 1021 void Browser::Copy() { | 1022 void Browser::Copy() { |
| 1022 UserMetrics::RecordAction(L"Copy", profile_); | 1023 UserMetrics::RecordAction(L"Copy", profile_); |
| 1023 ui_controls::SendKeyPress(L'C', true, false, false); | 1024 ui_controls::SendKeyPress(window()->GetNativeHandle(), L'C', true, false, |
| 1025 false); |
| 1024 } | 1026 } |
| 1025 | 1027 |
| 1026 void Browser::CopyCurrentPageURL() { | 1028 void Browser::CopyCurrentPageURL() { |
| 1027 UserMetrics::RecordAction(L"CopyURLToClipBoard", profile_); | 1029 UserMetrics::RecordAction(L"CopyURLToClipBoard", profile_); |
| 1028 std::string url = GetSelectedTabContents()->GetURL().spec(); | 1030 std::string url = GetSelectedTabContents()->GetURL().spec(); |
| 1029 | 1031 |
| 1030 if (!::OpenClipboard(NULL)) { | 1032 if (!::OpenClipboard(NULL)) { |
| 1031 NOTREACHED(); | 1033 NOTREACHED(); |
| 1032 return; | 1034 return; |
| 1033 } | 1035 } |
| 1034 | 1036 |
| 1035 if (::EmptyClipboard()) { | 1037 if (::EmptyClipboard()) { |
| 1036 HGLOBAL text = ::GlobalAlloc(GMEM_MOVEABLE, url.size() + 1); | 1038 HGLOBAL text = ::GlobalAlloc(GMEM_MOVEABLE, url.size() + 1); |
| 1037 LPSTR ptr = static_cast<LPSTR>(::GlobalLock(text)); | 1039 LPSTR ptr = static_cast<LPSTR>(::GlobalLock(text)); |
| 1038 memcpy(ptr, url.c_str(), url.size()); | 1040 memcpy(ptr, url.c_str(), url.size()); |
| 1039 ptr[url.size()] = '\0'; | 1041 ptr[url.size()] = '\0'; |
| 1040 ::GlobalUnlock(text); | 1042 ::GlobalUnlock(text); |
| 1041 | 1043 |
| 1042 ::SetClipboardData(CF_TEXT, text); | 1044 ::SetClipboardData(CF_TEXT, text); |
| 1043 } | 1045 } |
| 1044 | 1046 |
| 1045 if (!::CloseClipboard()) { | 1047 if (!::CloseClipboard()) { |
| 1046 NOTREACHED(); | 1048 NOTREACHED(); |
| 1047 } | 1049 } |
| 1048 } | 1050 } |
| 1049 | 1051 |
| 1050 void Browser::Paste() { | 1052 void Browser::Paste() { |
| 1051 UserMetrics::RecordAction(L"Paste", profile_); | 1053 UserMetrics::RecordAction(L"Paste", profile_); |
| 1052 ui_controls::SendKeyPress(L'V', true, false, false); | 1054 ui_controls::SendKeyPress(window()->GetNativeHandle(), L'V', true, false, |
| 1055 false); |
| 1053 } | 1056 } |
| 1054 #endif // #if defined(OS_WIN) | 1057 #endif // #if defined(OS_WIN) |
| 1055 | 1058 |
| 1056 void Browser::Find() { | 1059 void Browser::Find() { |
| 1057 UserMetrics::RecordAction(L"Find", profile_); | 1060 UserMetrics::RecordAction(L"Find", profile_); |
| 1058 FindInPage(false, false); | 1061 FindInPage(false, false); |
| 1059 } | 1062 } |
| 1060 | 1063 |
| 1061 void Browser::FindNext() { | 1064 void Browser::FindNext() { |
| 1062 UserMetrics::RecordAction(L"FindNext", profile_); | 1065 UserMetrics::RecordAction(L"FindNext", profile_); |
| (...skipping 1732 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2795 /////////////////////////////////////////////////////////////////////////////// | 2798 /////////////////////////////////////////////////////////////////////////////// |
| 2796 // BrowserToolbarModel (private): | 2799 // BrowserToolbarModel (private): |
| 2797 | 2800 |
| 2798 NavigationController* Browser::BrowserToolbarModel::GetNavigationController() { | 2801 NavigationController* Browser::BrowserToolbarModel::GetNavigationController() { |
| 2799 // This |current_tab| can be NULL during the initialization of the | 2802 // This |current_tab| can be NULL during the initialization of the |
| 2800 // toolbar during window creation (i.e. before any tabs have been added | 2803 // toolbar during window creation (i.e. before any tabs have been added |
| 2801 // to the window). | 2804 // to the window). |
| 2802 TabContents* current_tab = browser_->GetSelectedTabContents(); | 2805 TabContents* current_tab = browser_->GetSelectedTabContents(); |
| 2803 return current_tab ? ¤t_tab->controller() : NULL; | 2806 return current_tab ? ¤t_tab->controller() : NULL; |
| 2804 } | 2807 } |
| OLD | NEW |