Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(192)

Side by Side Diff: chrome/browser/cocoa/history_menu_cocoa_controller.mm

Issue 173044: This changelist represents the necessary merger of two others:... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 11 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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/app/chrome_dll_resource.h" // IDC_HISTORY_MENU 5 #include "chrome/app/chrome_dll_resource.h" // IDC_HISTORY_MENU
6 #include "chrome/browser/browser.h" 6 #include "chrome/browser/browser.h"
7 #import "chrome/browser/cocoa/history_menu_cocoa_controller.h" 7 #import "chrome/browser/cocoa/history_menu_cocoa_controller.h"
8 #include "chrome/browser/browser_list.h" 8 #include "chrome/browser/browser_list.h"
9 #include "chrome/browser/browser_process.h" 9 #include "chrome/browser/browser_process.h"
10 #include "chrome/browser/cocoa/event_utils.h"
10 #include "chrome/browser/history/history.h" 11 #include "chrome/browser/history/history.h"
11 #include "chrome/browser/history/history_types.h" 12 #include "chrome/browser/history/history_types.h"
12 #include "chrome/browser/tab_contents/tab_contents.h" 13 #include "chrome/browser/tab_contents/tab_contents.h"
13 #import "chrome/common/cocoa_utils.h"
14 #include "webkit/glue/window_open_disposition.h" 14 #include "webkit/glue/window_open_disposition.h"
15 15
16 @implementation HistoryMenuCocoaController 16 @implementation HistoryMenuCocoaController
17 17
18 - (id)initWithBridge:(HistoryMenuBridge*)bridge { 18 - (id)initWithBridge:(HistoryMenuBridge*)bridge {
19 if ((self = [super init])) { 19 if ((self = [super init])) {
20 bridge_ = bridge; 20 bridge_ = bridge;
21 DCHECK(bridge_); 21 DCHECK(bridge_);
22 } 22 }
23 return self; 23 return self;
24 } 24 }
25 25
26 // Open the URL of the given history item in the current tab. 26 // Open the URL of the given history item in the current tab.
27 - (void)openURLForItem:(HistoryMenuBridge::HistoryItem&)node { 27 - (void)openURLForItem:(HistoryMenuBridge::HistoryItem&)node {
28 Browser* browser = BrowserList::GetLastActive(); 28 Browser* browser = Browser::GetOrCreateTabbedBrowser(bridge_->profile());
29 29 WindowOpenDisposition disposition =
30 if (!browser) { // No windows open? 30 event_utils::WindowOpenDispositionFromNSEvent([NSApp currentEvent]);
31 Browser::OpenEmptyWindow(bridge_->profile()); 31 browser->OpenURL(node.url, GURL(), disposition,
32 browser = BrowserList::GetLastActive(); 32 PageTransition::AUTO_BOOKMARK);
33 }
34 DCHECK(browser);
35 TabContents* tab_contents = browser->GetSelectedTabContents();
36 DCHECK(tab_contents);
37
38 // A TabContents is a PageNavigator, so we can OpenURL() on it.
39 WindowOpenDisposition disposition = event_utils::DispositionFromEventFlags(
40 [[NSApp currentEvent] modifierFlags]);
41 tab_contents->OpenURL(node.url, GURL(), disposition,
42 PageTransition::AUTO_BOOKMARK);
43 } 33 }
44 34
45 - (HistoryMenuBridge::HistoryItem)itemForTag:(NSInteger)tag { 35 - (HistoryMenuBridge::HistoryItem)itemForTag:(NSInteger)tag {
46 std::vector<HistoryMenuBridge::HistoryItem>* results = NULL; 36 std::vector<HistoryMenuBridge::HistoryItem>* results = NULL;
47 NSInteger tag_base = 0; 37 NSInteger tag_base = 0;
48 if (tag > IDC_HISTORY_MENU_VISITED && tag < IDC_HISTORY_MENU_CLOSED) { 38 if (tag > IDC_HISTORY_MENU_VISITED && tag < IDC_HISTORY_MENU_CLOSED) {
49 results = bridge_->visited_results(); 39 results = bridge_->visited_results();
50 tag_base = IDC_HISTORY_MENU_VISITED; 40 tag_base = IDC_HISTORY_MENU_VISITED;
51 } else if (tag > IDC_HISTORY_MENU_CLOSED) { 41 } else if (tag > IDC_HISTORY_MENU_CLOSED) {
52 results = bridge_->closed_results(); 42 results = bridge_->closed_results();
(...skipping 10 matching lines...) Expand all
63 } 53 }
64 54
65 - (IBAction)openHistoryMenuItem:(id)sender { 55 - (IBAction)openHistoryMenuItem:(id)sender {
66 NSInteger tag = [sender tag]; 56 NSInteger tag = [sender tag];
67 HistoryMenuBridge::HistoryItem item = [self itemForTag:tag]; 57 HistoryMenuBridge::HistoryItem item = [self itemForTag:tag];
68 DCHECK(item.url.is_valid()); 58 DCHECK(item.url.is_valid());
69 [self openURLForItem:item]; 59 [self openURLForItem:item];
70 } 60 }
71 61
72 @end // HistoryMenuCocoaController 62 @end // HistoryMenuCocoaController
OLDNEW
« no previous file with comments | « chrome/browser/cocoa/event_utils_unittest.mm ('k') | chrome/browser/cocoa/infobar_controller.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698