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

Side by Side Diff: chrome/browser/ui/cocoa/find_bar_text_field_cell.mm

Issue 6366001: [Mac] Move the associated find bar files into a subdir of c/b/ui/cocoa/... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 11 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #import "chrome/browser/ui/cocoa/find_bar_text_field_cell.h"
6
7 #include "app/l10n_util.h"
8 #include "base/logging.h"
9 #include "base/string_number_conversions.h"
10 #include "base/string_util.h"
11 #include "base/sys_string_conversions.h"
12 #include "grit/generated_resources.h"
13
14 namespace {
15
16 const CGFloat kBaselineAdjust = 1.0;
17
18 // How far to offset the keyword token into the field.
19 const NSInteger kResultsXOffset = 3;
20
21 // How much width (beyond text) to add to the keyword token on each
22 // side.
23 const NSInteger kResultsTokenInset = 3;
24
25 // How far to shift bounding box of hint down from top of field.
26 // Assumes -setFlipped:YES.
27 const NSInteger kResultsYOffset = 4;
28
29 // How far the editor insets itself, for purposes of determining if
30 // decorations need to be trimmed.
31 const CGFloat kEditorHorizontalInset = 3.0;
32
33 // Conveniences to centralize width+offset calculations.
34 CGFloat WidthForResults(NSAttributedString* resultsString) {
35 return kResultsXOffset + ceil([resultsString size].width) +
36 2 * kResultsTokenInset;
37 }
38
39 } // namespace
40
41 @implementation FindBarTextFieldCell
42
43 - (CGFloat)baselineAdjust {
44 return kBaselineAdjust;
45 }
46
47 - (CGFloat)cornerRadius {
48 return 4.0;
49 }
50
51 - (StyledTextFieldCellRoundedFlags)roundedFlags {
52 return StyledTextFieldCellRoundedLeft;
53 }
54
55 // @synthesize doesn't seem to compile for this transition.
56 - (NSAttributedString*)resultsString {
57 return resultsString_.get();
58 }
59
60 // Convenience for the attributes used in the right-justified info
61 // cells. Sets the background color to red if |foundMatches| is YES.
62 - (NSDictionary*)resultsAttributes:(BOOL)foundMatches {
63 scoped_nsobject<NSMutableParagraphStyle> style(
64 [[NSMutableParagraphStyle alloc] init]);
65 [style setAlignment:NSRightTextAlignment];
66
67 return [NSDictionary dictionaryWithObjectsAndKeys:
68 [self font], NSFontAttributeName,
69 [NSColor lightGrayColor], NSForegroundColorAttributeName,
70 [NSColor whiteColor], NSBackgroundColorAttributeName,
71 style.get(), NSParagraphStyleAttributeName,
72 nil];
73 }
74
75 - (void)setActiveMatch:(NSInteger)current of:(NSInteger)total {
76 NSString* results =
77 base::SysUTF16ToNSString(l10n_util::GetStringFUTF16(
78 IDS_FIND_IN_PAGE_COUNT,
79 base::IntToString16(current),
80 base::IntToString16(total)));
81 resultsString_.reset([[NSAttributedString alloc]
82 initWithString:results
83 attributes:[self resultsAttributes:(total > 0)]]);
84 }
85
86 - (void)clearResults {
87 resultsString_.reset(nil);
88 }
89
90 - (NSRect)textFrameForFrame:(NSRect)cellFrame {
91 NSRect textFrame([super textFrameForFrame:cellFrame]);
92 if (resultsString_)
93 textFrame.size.width -= WidthForResults(resultsString_);
94 return textFrame;
95 }
96
97 // Do not show the I-beam cursor over the results label.
98 - (NSRect)textCursorFrameForFrame:(NSRect)cellFrame {
99 return [self textFrameForFrame:cellFrame];
100 }
101
102 - (void)drawResultsWithFrame:(NSRect)cellFrame inView:(NSView*)controlView {
103 DCHECK(resultsString_);
104
105 NSRect textFrame = [self textFrameForFrame:cellFrame];
106 NSRect infoFrame(NSMakeRect(NSMaxX(textFrame),
107 cellFrame.origin.y + kResultsYOffset,
108 ceil([resultsString_ size].width),
109 cellFrame.size.height - kResultsYOffset));
110 [resultsString_.get() drawInRect:infoFrame];
111 }
112
113 - (void)drawInteriorWithFrame:(NSRect)cellFrame inView:(NSView*)controlView {
114 if (resultsString_)
115 [self drawResultsWithFrame:cellFrame inView:controlView];
116 [super drawInteriorWithFrame:cellFrame inView:controlView];
117 }
118
119 @end
OLDNEW
« no previous file with comments | « chrome/browser/ui/cocoa/find_bar_text_field_cell.h ('k') | chrome/browser/ui/cocoa/find_bar_text_field_cell_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698