OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/cocoa/tab_strip_model_observer_bridge.h" | 5 #include "chrome/browser/cocoa/tab_strip_model_observer_bridge.h" |
6 | 6 |
7 #include "chrome/browser/tabs/tab_strip_model.h" | 7 #include "chrome/browser/tabs/tab_strip_model.h" |
8 | 8 |
9 TabStripModelObserverBridge::TabStripModelObserverBridge(TabStripModel* model, | 9 TabStripModelObserverBridge::TabStripModelObserverBridge(TabStripModel* model, |
10 id controller) | 10 id controller) |
11 : controller_(controller), model_(model) { | 11 : controller_(controller), model_(model) { |
12 DCHECK(model && controller); | 12 DCHECK(model && controller); |
13 // Register to be a listener on the model so we can get updates and tell | 13 // Register to be a listener on the model so we can get updates and tell |
14 // |controller_| about them in the future. | 14 // |controller_| about them in the future. |
15 model_->AddObserver(this); | 15 model_->AddObserver(this); |
16 } | 16 } |
17 | 17 |
18 TabStripModelObserverBridge::~TabStripModelObserverBridge() { | 18 TabStripModelObserverBridge::~TabStripModelObserverBridge() { |
19 // Remove ourselves from receiving notifications. | 19 // Remove ourselves from receiving notifications. |
20 model_->RemoveObserver(this); | 20 model_->RemoveObserver(this); |
21 } | 21 } |
22 | 22 |
23 void TabStripModelObserverBridge::TabInsertedAt(TabContents* contents, | 23 void TabStripModelObserverBridge::TabInsertedAt(TabContentsWrapper* contents, |
24 int index, | 24 int index, |
25 bool foreground) { | 25 bool foreground) { |
26 if ([controller_ respondsToSelector: | 26 if ([controller_ respondsToSelector: |
27 @selector(insertTabWithContents:atIndex:inForeground:)]) { | 27 @selector(insertTabWithContents:atIndex:inForeground:)]) { |
28 [controller_ insertTabWithContents:contents | 28 [controller_ insertTabWithContents:contents |
29 atIndex:index | 29 atIndex:index |
30 inForeground:foreground]; | 30 inForeground:foreground]; |
31 } | 31 } |
32 } | 32 } |
33 | 33 |
34 void TabStripModelObserverBridge::TabClosingAt(TabStripModel* tab_strip_model, | 34 void TabStripModelObserverBridge::TabClosingAt(TabStripModel* tab_strip_model, |
35 TabContents* contents, | 35 TabContentsWrapper* contents, |
36 int index) { | 36 int index) { |
37 if ([controller_ respondsToSelector: | 37 if ([controller_ respondsToSelector: |
38 @selector(tabClosingWithContents:atIndex:)]) { | 38 @selector(tabClosingWithContents:atIndex:)]) { |
39 [controller_ tabClosingWithContents:contents atIndex:index]; | 39 [controller_ tabClosingWithContents:contents atIndex:index]; |
40 } | 40 } |
41 } | 41 } |
42 | 42 |
43 void TabStripModelObserverBridge::TabDetachedAt(TabContents* contents, | 43 void TabStripModelObserverBridge::TabDetachedAt(TabContentsWrapper* contents, |
44 int index) { | 44 int index) { |
45 if ([controller_ respondsToSelector: | 45 if ([controller_ respondsToSelector: |
46 @selector(tabDetachedWithContents:atIndex:)]) { | 46 @selector(tabDetachedWithContents:atIndex:)]) { |
47 [controller_ tabDetachedWithContents:contents atIndex:index]; | 47 [controller_ tabDetachedWithContents:contents atIndex:index]; |
48 } | 48 } |
49 } | 49 } |
50 | 50 |
51 void TabStripModelObserverBridge::TabSelectedAt(TabContents* old_contents, | 51 void TabStripModelObserverBridge::TabSelectedAt( |
52 TabContents* new_contents, | 52 TabContentsWrapper* old_contents, |
53 int index, | 53 TabContentsWrapper* new_contents, |
54 bool user_gesture) { | 54 int index, |
| 55 bool user_gesture) { |
55 if ([controller_ respondsToSelector: | 56 if ([controller_ respondsToSelector: |
56 @selector(selectTabWithContents:previousContents:atIndex: | 57 @selector(selectTabWithContents:previousContents:atIndex: |
57 userGesture:)]) { | 58 userGesture:)]) { |
58 [controller_ selectTabWithContents:new_contents | 59 [controller_ selectTabWithContents:new_contents |
59 previousContents:old_contents | 60 previousContents:old_contents |
60 atIndex:index | 61 atIndex:index |
61 userGesture:user_gesture]; | 62 userGesture:user_gesture]; |
62 } | 63 } |
63 } | 64 } |
64 | 65 |
65 void TabStripModelObserverBridge::TabMoved(TabContents* contents, | 66 void TabStripModelObserverBridge::TabMoved(TabContentsWrapper* contents, |
66 int from_index, | 67 int from_index, |
67 int to_index) { | 68 int to_index) { |
68 if ([controller_ respondsToSelector: | 69 if ([controller_ respondsToSelector: |
69 @selector(tabMovedWithContents:fromIndex:toIndex:)]) { | 70 @selector(tabMovedWithContents:fromIndex:toIndex:)]) { |
70 [controller_ tabMovedWithContents:contents | 71 [controller_ tabMovedWithContents:contents |
71 fromIndex:from_index | 72 fromIndex:from_index |
72 toIndex:to_index]; | 73 toIndex:to_index]; |
73 } | 74 } |
74 } | 75 } |
75 | 76 |
76 void TabStripModelObserverBridge::TabChangedAt(TabContents* contents, | 77 void TabStripModelObserverBridge::TabChangedAt(TabContentsWrapper* contents, |
77 int index, | 78 int index, |
78 TabChangeType change_type) { | 79 TabChangeType change_type) { |
79 if ([controller_ respondsToSelector: | 80 if ([controller_ respondsToSelector: |
80 @selector(tabChangedWithContents:atIndex:changeType:)]) { | 81 @selector(tabChangedWithContents:atIndex:changeType:)]) { |
81 [controller_ tabChangedWithContents:contents | 82 [controller_ tabChangedWithContents:contents |
82 atIndex:index | 83 atIndex:index |
83 changeType:change_type]; | 84 changeType:change_type]; |
84 } | 85 } |
85 } | 86 } |
86 | 87 |
87 void TabStripModelObserverBridge::TabReplacedAt(TabContents* old_contents, | 88 void TabStripModelObserverBridge::TabReplacedAt( |
88 TabContents* new_contents, | 89 TabContentsWrapper* old_contents, |
89 int index) { | 90 TabContentsWrapper* new_contents, |
| 91 int index) { |
90 if ([controller_ respondsToSelector: | 92 if ([controller_ respondsToSelector: |
91 @selector(tabReplacedWithContents:previousContents:atIndex:)]) { | 93 @selector(tabReplacedWithContents:previousContents:atIndex:)]) { |
92 [controller_ tabReplacedWithContents:new_contents | 94 [controller_ tabReplacedWithContents:new_contents |
93 previousContents:old_contents | 95 previousContents:old_contents |
94 atIndex:index]; | 96 atIndex:index]; |
95 } else { | 97 } else { |
96 TabChangedAt(new_contents, index, ALL); | 98 TabChangedAt(new_contents, index, ALL); |
97 } | 99 } |
98 } | 100 } |
99 | 101 |
100 void TabStripModelObserverBridge::TabMiniStateChanged(TabContents* contents, | 102 void TabStripModelObserverBridge::TabMiniStateChanged( |
101 int index) { | 103 TabContentsWrapper* contents, int index) { |
102 if ([controller_ respondsToSelector: | 104 if ([controller_ respondsToSelector: |
103 @selector(tabMiniStateChangedWithContents:atIndex:)]) { | 105 @selector(tabMiniStateChangedWithContents:atIndex:)]) { |
104 [controller_ tabMiniStateChangedWithContents:contents atIndex:index]; | 106 [controller_ tabMiniStateChangedWithContents:contents atIndex:index]; |
105 } | 107 } |
106 } | 108 } |
107 | 109 |
108 void TabStripModelObserverBridge::TabStripEmpty() { | 110 void TabStripModelObserverBridge::TabStripEmpty() { |
109 if ([controller_ respondsToSelector:@selector(tabStripEmpty)]) | 111 if ([controller_ respondsToSelector:@selector(tabStripEmpty)]) |
110 [controller_ tabStripEmpty]; | 112 [controller_ tabStripEmpty]; |
111 } | 113 } |
112 | 114 |
113 void TabStripModelObserverBridge::TabStripModelDeleted() { | 115 void TabStripModelObserverBridge::TabStripModelDeleted() { |
114 if ([controller_ respondsToSelector:@selector(tabStripModelDeleted)]) | 116 if ([controller_ respondsToSelector:@selector(tabStripModelDeleted)]) |
115 [controller_ tabStripModelDeleted]; | 117 [controller_ tabStripModelDeleted]; |
116 } | 118 } |
OLD | NEW |