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

Side by Side Diff: chrome/browser/ui/cocoa/tabs/tab_strip_model_observer_bridge.mm

Issue 11305008: Remove TabContents from TabStripModelObserverBridge. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 1 month 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
« no previous file with comments | « chrome/browser/ui/cocoa/tabs/tab_strip_model_observer_bridge.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/ui/cocoa/tabs/tab_strip_model_observer_bridge.h" 5 #include "chrome/browser/ui/cocoa/tabs/tab_strip_model_observer_bridge.h"
6 6
7 #include "chrome/browser/ui/tabs/tab_strip_model.h" 7 #include "chrome/browser/ui/tabs/tab_strip_model.h"
8 #include "chrome/browser/ui/tab_contents/tab_contents.h"
9
10 namespace {
11
12 // TODO(avi): Remove when TabStripModelObserver sends WebContents.
13 content::WebContents* WebContentsOf(TabContents* tab_contents) {
14 return tab_contents ? tab_contents->web_contents() : NULL;
15 }
16
17 } // namespace
8 18
9 TabStripModelObserverBridge::TabStripModelObserverBridge(TabStripModel* model, 19 TabStripModelObserverBridge::TabStripModelObserverBridge(TabStripModel* model,
10 id controller) 20 id controller)
11 : controller_(controller), model_(model) { 21 : controller_(controller), model_(model) {
12 DCHECK(model && controller); 22 DCHECK(model && controller);
13 // Register to be a listener on the model so we can get updates and tell 23 // Register to be a listener on the model so we can get updates and tell
14 // |controller_| about them in the future. 24 // |controller_| about them in the future.
15 model_->AddObserver(this); 25 model_->AddObserver(this);
16 } 26 }
17 27
18 TabStripModelObserverBridge::~TabStripModelObserverBridge() { 28 TabStripModelObserverBridge::~TabStripModelObserverBridge() {
19 // Remove ourselves from receiving notifications. 29 // Remove ourselves from receiving notifications.
20 model_->RemoveObserver(this); 30 model_->RemoveObserver(this);
21 } 31 }
22 32
23 void TabStripModelObserverBridge::TabInsertedAt(TabContents* contents, 33 void TabStripModelObserverBridge::TabInsertedAt(TabContents* contents,
24 int index, 34 int index,
25 bool foreground) { 35 bool foreground) {
26 if ([controller_ respondsToSelector: 36 if ([controller_ respondsToSelector:
27 @selector(insertTabWithContents:atIndex:inForeground:)]) { 37 @selector(insertTabWithContents:atIndex:inForeground:)]) {
28 [controller_ insertTabWithContents:contents 38 [controller_ insertTabWithContents:WebContentsOf(contents)
29 atIndex:index 39 atIndex:index
30 inForeground:foreground]; 40 inForeground:foreground];
31 } 41 }
32 } 42 }
33 43
34 void TabStripModelObserverBridge::TabClosingAt(TabStripModel* tab_strip_model, 44 void TabStripModelObserverBridge::TabClosingAt(TabStripModel* tab_strip_model,
35 TabContents* contents, 45 TabContents* contents,
36 int index) { 46 int index) {
37 if ([controller_ respondsToSelector: 47 if ([controller_ respondsToSelector:
38 @selector(tabClosingWithContents:atIndex:)]) { 48 @selector(tabClosingWithContents:atIndex:)]) {
39 [controller_ tabClosingWithContents:contents atIndex:index]; 49 [controller_ tabClosingWithContents:WebContentsOf(contents) atIndex:index];
40 } 50 }
41 } 51 }
42 52
43 void TabStripModelObserverBridge::TabDetachedAt(TabContents* contents, 53 void TabStripModelObserverBridge::TabDetachedAt(TabContents* contents,
44 int index) { 54 int index) {
45 if ([controller_ respondsToSelector: 55 if ([controller_ respondsToSelector:
46 @selector(tabDetachedWithContents:atIndex:)]) { 56 @selector(tabDetachedWithContents:atIndex:)]) {
47 [controller_ tabDetachedWithContents:contents atIndex:index]; 57 [controller_ tabDetachedWithContents:WebContentsOf(contents)
58 atIndex:index];
48 } 59 }
49 } 60 }
50 61
51 void TabStripModelObserverBridge::ActiveTabChanged( 62 void TabStripModelObserverBridge::ActiveTabChanged(
52 TabContents* old_contents, 63 TabContents* old_contents,
53 TabContents* new_contents, 64 TabContents* new_contents,
54 int index, 65 int index,
55 bool user_gesture) { 66 bool user_gesture) {
56 if ([controller_ respondsToSelector: 67 if ([controller_ respondsToSelector:
57 @selector(activateTabWithContents:previousContents:atIndex: 68 @selector(activateTabWithContents:previousContents:atIndex:
58 userGesture:)]) { 69 userGesture:)]) {
59 [controller_ activateTabWithContents:new_contents 70 [controller_ activateTabWithContents:WebContentsOf(new_contents)
60 previousContents:old_contents 71 previousContents:WebContentsOf(old_contents)
61 atIndex:index 72 atIndex:index
62 userGesture:user_gesture]; 73 userGesture:user_gesture];
63 } 74 }
64 } 75 }
65 76
66 void TabStripModelObserverBridge::TabMoved(TabContents* contents, 77 void TabStripModelObserverBridge::TabMoved(TabContents* contents,
67 int from_index, 78 int from_index,
68 int to_index) { 79 int to_index) {
69 if ([controller_ respondsToSelector: 80 if ([controller_ respondsToSelector:
70 @selector(tabMovedWithContents:fromIndex:toIndex:)]) { 81 @selector(tabMovedWithContents:fromIndex:toIndex:)]) {
71 [controller_ tabMovedWithContents:contents 82 [controller_ tabMovedWithContents:WebContentsOf(contents)
72 fromIndex:from_index 83 fromIndex:from_index
73 toIndex:to_index]; 84 toIndex:to_index];
74 } 85 }
75 } 86 }
76 87
77 void TabStripModelObserverBridge::TabChangedAt(TabContents* contents, 88 void TabStripModelObserverBridge::TabChangedAt(TabContents* contents,
78 int index, 89 int index,
79 TabChangeType change_type) { 90 TabChangeType change_type) {
80 if ([controller_ respondsToSelector: 91 if ([controller_ respondsToSelector:
81 @selector(tabChangedWithContents:atIndex:changeType:)]) { 92 @selector(tabChangedWithContents:atIndex:changeType:)]) {
82 [controller_ tabChangedWithContents:contents 93 [controller_ tabChangedWithContents:WebContentsOf(contents)
83 atIndex:index 94 atIndex:index
84 changeType:change_type]; 95 changeType:change_type];
85 } 96 }
86 } 97 }
87 98
88 void TabStripModelObserverBridge::TabReplacedAt( 99 void TabStripModelObserverBridge::TabReplacedAt(
89 TabStripModel* tab_strip_model, 100 TabStripModel* tab_strip_model,
90 TabContents* old_contents, 101 TabContents* old_contents,
91 TabContents* new_contents, 102 TabContents* new_contents,
92 int index) { 103 int index) {
93 if ([controller_ respondsToSelector: 104 if ([controller_ respondsToSelector:
94 @selector(tabReplacedWithContents:previousContents:atIndex:)]) { 105 @selector(tabReplacedWithContents:previousContents:atIndex:)]) {
95 [controller_ tabReplacedWithContents:new_contents 106 [controller_ tabReplacedWithContents:WebContentsOf(new_contents)
96 previousContents:old_contents 107 previousContents:WebContentsOf(old_contents)
97 atIndex:index]; 108 atIndex:index];
98 } else { 109 } else {
99 TabChangedAt(new_contents, index, ALL); 110 TabChangedAt(new_contents, index, ALL);
100 } 111 }
101 } 112 }
102 113
103 void TabStripModelObserverBridge::TabMiniStateChanged( 114 void TabStripModelObserverBridge::TabMiniStateChanged(
104 TabContents* contents, int index) { 115 TabContents* contents,
116 int index) {
105 if ([controller_ respondsToSelector: 117 if ([controller_ respondsToSelector:
106 @selector(tabMiniStateChangedWithContents:atIndex:)]) { 118 @selector(tabMiniStateChangedWithContents:atIndex:)]) {
107 [controller_ tabMiniStateChangedWithContents:contents atIndex:index]; 119 [controller_ tabMiniStateChangedWithContents:WebContentsOf(contents)
120 atIndex:index];
108 } 121 }
109 } 122 }
110 123
111 void TabStripModelObserverBridge::TabStripEmpty() { 124 void TabStripModelObserverBridge::TabStripEmpty() {
112 if ([controller_ respondsToSelector:@selector(tabStripEmpty)]) 125 if ([controller_ respondsToSelector:@selector(tabStripEmpty)])
113 [controller_ tabStripEmpty]; 126 [controller_ tabStripEmpty];
114 } 127 }
115 128
116 void TabStripModelObserverBridge::TabStripModelDeleted() { 129 void TabStripModelObserverBridge::TabStripModelDeleted() {
117 if ([controller_ respondsToSelector:@selector(tabStripModelDeleted)]) 130 if ([controller_ respondsToSelector:@selector(tabStripModelDeleted)])
118 [controller_ tabStripModelDeleted]; 131 [controller_ tabStripModelDeleted];
119 } 132 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/cocoa/tabs/tab_strip_model_observer_bridge.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698