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

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

Issue 201116: Reverting 26214. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 11 years, 3 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
« no previous file with comments | « chrome/browser/cocoa/find_bar_cocoa_controller.h ('k') | chrome/browser/cocoa/focus_tracker.h » ('j') | 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) 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 #import <Cocoa/Cocoa.h> 5 #import <Cocoa/Cocoa.h>
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "base/mac_util.h" 8 #include "base/mac_util.h"
9 #include "base/sys_string_conversions.h" 9 #include "base/sys_string_conversions.h"
10 #include "grit/generated_resources.h" 10 #include "grit/generated_resources.h"
11 #include "chrome/browser/find_bar_controller.h" 11 #include "chrome/browser/find_bar_controller.h"
12 #include "chrome/browser/cocoa/browser_window_cocoa.h" 12 #include "chrome/browser/cocoa/browser_window_cocoa.h"
13 #import "chrome/browser/cocoa/find_bar_cocoa_controller.h" 13 #import "chrome/browser/cocoa/find_bar_cocoa_controller.h"
14 #import "chrome/browser/cocoa/find_bar_bridge.h" 14 #import "chrome/browser/cocoa/find_bar_bridge.h"
15 #import "chrome/browser/cocoa/focus_tracker.h"
16 #import "chrome/browser/cocoa/tab_strip_controller.h" 15 #import "chrome/browser/cocoa/tab_strip_controller.h"
17 #include "chrome/browser/tab_contents/tab_contents.h" 16 #include "chrome/browser/tab_contents/tab_contents.h"
18 17
19 @implementation FindBarCocoaController 18 @implementation FindBarCocoaController
20 19
21 - (id)init { 20 - (id)init {
22 if ((self = [super initWithNibName:@"FindBar" 21 if ((self = [super initWithNibName:@"FindBar"
23 bundle:mac_util::MainAppBundle()])) { 22 bundle:mac_util::MainAppBundle()])) {
24 } 23 }
25 return self; 24 return self;
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 113
115 return YES; 114 return YES;
116 } 115 }
117 116
118 return NO; 117 return NO;
119 } 118 }
120 119
121 // Methods from FindBar 120 // Methods from FindBar
122 - (void)showFindBar { 121 - (void)showFindBar {
123 [[self view] setHidden:NO]; 122 [[self view] setHidden:NO];
124
125 // Save the currently-focused view. |[self view]| is in the view
126 // hierarchy by now. showFindBar can be called even when the
127 // findbar is already open, so do not overwrite an already saved
128 // view.
129 if (!focusTracker_.get())
130 focusTracker_.reset(
131 [[FocusTracker alloc] initWithWindow:[[self view] window]]);
132 } 123 }
133 124
134 - (void)hideFindBar { 125 - (void)hideFindBar {
135 [[self view] setHidden:YES]; 126 [[self view] setHidden:YES];
136 } 127 }
137 128
138 - (void)setFocusAndSelection { 129 - (void)setFocusAndSelection {
139 [[findText_ window] makeFirstResponder:findText_]; 130 [[findText_ window] makeFirstResponder:findText_];
140 131
141 // Enable the buttons if the find text is non-empty. 132 // Enable the buttons if the find text is non-empty.
142 BOOL buttonsEnabled = ([[findText_ stringValue] length] > 0) ? YES : NO; 133 BOOL buttonsEnabled = ([[findText_ stringValue] length] > 0) ? YES : NO;
143 [previousButton_ setEnabled:buttonsEnabled]; 134 [previousButton_ setEnabled:buttonsEnabled];
144 [nextButton_ setEnabled:buttonsEnabled]; 135 [nextButton_ setEnabled:buttonsEnabled];
145 136
146 } 137 }
147 138
148 - (void)restoreSavedFocus {
149 if (!(focusTracker_.get() &&
150 [focusTracker_ restoreFocusInWindow:[[self view] window]])) {
151 // Fall back to giving focus to the tab contents.
152 findBarBridge_->GetFindBarController()->tab_contents()->Focus();
153 }
154 focusTracker_.reset(nil);
155 }
156
157 - (void)setFindText:(const string16&)findText { 139 - (void)setFindText:(const string16&)findText {
158 [findText_ setStringValue:base::SysUTF16ToNSString(findText)]; 140 [findText_ setStringValue:base::SysUTF16ToNSString(findText)];
159 } 141 }
160 142
161 - (void)clearResults:(const FindNotificationDetails&)results { 143 - (void)clearResults:(const FindNotificationDetails&)results {
162 // Just call updateUIForFindResult, which will take care of clearing 144 // Just call updateUIForFindResult, which will take care of clearing
163 // the search text and the results label. 145 // the search text and the results label.
164 [self updateUIForFindResult:results withText:string16()]; 146 [self updateUIForFindResult:results withText:string16()];
165 } 147 }
166 148
(...skipping 21 matching lines...) Expand all
188 [resultsLabel_ setStringValue:base::SysWideToNSString( 170 [resultsLabel_ setStringValue:base::SysWideToNSString(
189 l10n_util::GetStringF(IDS_FIND_IN_PAGE_COUNT, 171 l10n_util::GetStringF(IDS_FIND_IN_PAGE_COUNT,
190 IntToWString(result.active_match_ordinal()), 172 IntToWString(result.active_match_ordinal()),
191 IntToWString(result.number_of_matches())))]; 173 IntToWString(result.number_of_matches())))];
192 } else { 174 } else {
193 // If there was no text entered, we don't show anything in the result count 175 // If there was no text entered, we don't show anything in the result count
194 // area. 176 // area.
195 [resultsLabel_ setStringValue:@""]; 177 [resultsLabel_ setStringValue:@""];
196 } 178 }
197 179
198 // If we found any results, reset the focus tracker, so we always
199 // restore focus to the tab contents.
200 if (result.number_of_matches() > 0)
201 focusTracker_.reset(nil);
202
203 // Resize |resultsLabel_| to completely contain its string and right-justify 180 // Resize |resultsLabel_| to completely contain its string and right-justify
204 // it within |findText_|. sizeToFit may shrink the frame vertically, which we 181 // it within |findText_|. sizeToFit may shrink the frame vertically, which we
205 // don't want, so we save the original vertical positioning. 182 // don't want, so we save the original vertical positioning.
206 NSRect labelFrame = [resultsLabel_ frame]; 183 NSRect labelFrame = [resultsLabel_ frame];
207 [resultsLabel_ sizeToFit]; 184 [resultsLabel_ sizeToFit];
208 labelFrame.size.width = [resultsLabel_ frame].size.width; 185 labelFrame.size.width = [resultsLabel_ frame].size.width;
209 labelFrame.origin.x = NSMaxX([findText_ frame]) - labelFrame.size.width; 186 labelFrame.origin.x = NSMaxX([findText_ frame]) - labelFrame.size.width;
210 [resultsLabel_ setFrame:labelFrame]; 187 [resultsLabel_ setFrame:labelFrame];
211 188
212 // TODO(rohitrao): If the search string is too long, then it will overlap with 189 // TODO(rohitrao): If the search string is too long, then it will overlap with
213 // the results label. Fix. 190 // the results label. Fix.
214 } 191 }
215 192
216 - (BOOL)isFindBarVisible { 193 - (BOOL)isFindBarVisible {
217 return [[self view] isHidden] ? NO : YES; 194 return [[self view] isHidden] ? NO : YES;
218 } 195 }
219 196
220 @end 197 @end
OLDNEW
« no previous file with comments | « chrome/browser/cocoa/find_bar_cocoa_controller.h ('k') | chrome/browser/cocoa/focus_tracker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698