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

Side by Side Diff: ios/chrome/browser/ui/history/tab_history_cell.mm

Issue 2624963003: [ObjC ARC] Converts ios/chrome/browser/ui/history:history to ARC. (Closed)
Patch Set: Removes the rest of weak and scoped nsobjects. Created 3 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "ios/chrome/browser/ui/history/tab_history_cell.h" 5 #import "ios/chrome/browser/ui/history/tab_history_cell.h"
6 6
7 #include "base/mac/scoped_nsobject.h"
8 #include "base/strings/sys_string_conversions.h" 7 #include "base/strings/sys_string_conversions.h"
9 #include "ios/chrome/browser/ui/ui_util.h" 8 #include "ios/chrome/browser/ui/ui_util.h"
10 #import "ios/chrome/browser/ui/uikit_ui_util.h" 9 #import "ios/chrome/browser/ui/uikit_ui_util.h"
11 #import "ios/third_party/material_roboto_font_loader_ios/src/src/MaterialRobotoF ontLoader.h" 10 #import "ios/third_party/material_roboto_font_loader_ios/src/src/MaterialRobotoF ontLoader.h"
12 #import "ios/web/navigation/crw_session_entry.h" 11 #import "ios/web/navigation/crw_session_entry.h"
13 #include "ios/web/public/navigation_item.h" 12 #include "ios/web/public/navigation_item.h"
14 13
14 #if !defined(__has_feature) || !__has_feature(objc_arc)
15 #error "This file requires ARC support."
16 #endif
17
15 namespace { 18 namespace {
16 // Header horizontal layout inset. 19 // Header horizontal layout inset.
17 const CGFloat kHeaderHorizontalInset = 16; 20 const CGFloat kHeaderHorizontalInset = 16;
18 // Header vertical layout inset. 21 // Header vertical layout inset.
19 const CGFloat kHeaderVerticalInset = 16; 22 const CGFloat kHeaderVerticalInset = 16;
20 // Width and Height for the site icon view. 23 // Width and Height for the site icon view.
21 const CGFloat kSiteIconViewWidth = 16; 24 const CGFloat kSiteIconViewWidth = 16;
22 // Height adjustment for the line view. The design calls for some overlap. 25 // Height adjustment for the line view. The design calls for some overlap.
23 const CGFloat kHeaderHeightAdjustment = 6; 26 const CGFloat kHeaderHeightAdjustment = 6;
24 // Margin between the icon and the line view in the header. 27 // Margin between the icon and the line view in the header.
25 const CGFloat kLineViewTopMargin = 3; 28 const CGFloat kLineViewTopMargin = 3;
26 // Color for the line with in the header section. 29 // Color for the line with in the header section.
27 const int kHeaderLineRGB = 0xE5E5E5; 30 const int kHeaderLineRGB = 0xE5E5E5;
28 // Color for the footer line. 31 // Color for the footer line.
29 const int kFooterRGB = 0xD2D2D2; 32 const int kFooterRGB = 0xD2D2D2;
30 // Color for the text in the title label. 33 // Color for the text in the title label.
31 const int kTitleTextRGB = 0x333333; 34 const int kTitleTextRGB = 0x333333;
32 // Width for the header line view. 35 // Width for the header line view.
33 NS_INLINE CGFloat HeaderLineWidth() { 36 NS_INLINE CGFloat HeaderLineWidth() {
34 return IsHighResScreen() ? 1.5 : 2; 37 return IsHighResScreen() ? 1.5 : 2;
35 } 38 }
36 // Corner radius for the header line view. 39 // Corner radius for the header line view.
37 NS_INLINE CGFloat HeaderLineRadius() { 40 NS_INLINE CGFloat HeaderLineRadius() {
38 return HeaderLineWidth() / 2.0; 41 return HeaderLineWidth() / 2.0;
39 } 42 }
40 } 43 }
41 44
42 @implementation TabHistoryCell { 45 @implementation TabHistoryCell {
43 base::scoped_nsobject<CRWSessionEntry> _entry; 46 CRWSessionEntry* _entry;
44 base::scoped_nsobject<UILabel> _titleLabel; 47 UILabel* _titleLabel;
45 } 48 }
46 49
47 - (instancetype)initWithFrame:(CGRect)frame { 50 - (instancetype)initWithFrame:(CGRect)frame {
48 self = [super initWithFrame:frame]; 51 self = [super initWithFrame:frame];
49 if (self) 52 if (self)
50 [self commonInitialization]; 53 [self commonInitialization];
51 54
52 return self; 55 return self;
53 } 56 }
54 57
55 - (instancetype)initWithCoder:(NSCoder*)coder { 58 - (instancetype)initWithCoder:(NSCoder*)coder {
56 self = [super initWithCoder:coder]; 59 self = [super initWithCoder:coder];
57 if (self) 60 if (self)
58 [self commonInitialization]; 61 [self commonInitialization];
59 62
60 return self; 63 return self;
61 } 64 }
62 65
63 - (void)commonInitialization { 66 - (void)commonInitialization {
64 _titleLabel.reset([[UILabel alloc] initWithFrame:CGRectZero]); 67 _titleLabel = [[UILabel alloc] initWithFrame:CGRectZero];
65 [_titleLabel setTextColor:UIColorFromRGB(kTitleTextRGB)]; 68 [_titleLabel setTextColor:UIColorFromRGB(kTitleTextRGB)];
66 [_titleLabel 69 [_titleLabel
67 setFont:[[MDFRobotoFontLoader sharedInstance] regularFontOfSize:16]]; 70 setFont:[[MDFRobotoFontLoader sharedInstance] regularFontOfSize:16]];
68 [[self contentView] addSubview:_titleLabel]; 71 [[self contentView] addSubview:_titleLabel];
69 } 72 }
70 73
71 - (void)layoutSubviews { 74 - (void)layoutSubviews {
72 [super layoutSubviews]; 75 [super layoutSubviews];
73 76
74 CGRect bounds = [[self contentView] bounds]; 77 CGRect bounds = [[self contentView] bounds];
75 CGRect frame = AlignRectOriginAndSizeToPixels(bounds); 78 CGRect frame = AlignRectOriginAndSizeToPixels(bounds);
76 [_titleLabel setFrame:frame]; 79 [_titleLabel setFrame:frame];
77 } 80 }
78 81
79 - (CRWSessionEntry*)entry { 82 - (CRWSessionEntry*)entry {
80 return [[_entry retain] autorelease]; 83 return _entry;
81 } 84 }
82 85
83 - (void)setEntry:(CRWSessionEntry*)entry { 86 - (void)setEntry:(CRWSessionEntry*)entry {
84 _entry.reset([entry retain]); 87 _entry = entry;
85 88
86 NSString* title = nil; 89 NSString* title = nil;
87 web::NavigationItem* navigationItem = [_entry navigationItem]; 90 web::NavigationItem* navigationItem = [_entry navigationItem];
88 if (navigationItem) { 91 if (navigationItem) {
89 // TODO(rohitrao): Can this use GetTitleForDisplay() instead? 92 // TODO(rohitrao): Can this use GetTitleForDisplay() instead?
90 if (navigationItem->GetTitle().empty()) 93 if (navigationItem->GetTitle().empty())
91 title = base::SysUTF8ToNSString(navigationItem->GetURL().spec()); 94 title = base::SysUTF8ToNSString(navigationItem->GetURL().spec());
92 else 95 else
93 title = base::SysUTF16ToNSString(navigationItem->GetTitle()); 96 title = base::SysUTF16ToNSString(navigationItem->GetTitle());
94 } 97 }
95 98
96 [_titleLabel setText:title]; 99 [_titleLabel setText:title];
97 [self setAccessibilityLabel:title]; 100 [self setAccessibilityLabel:title];
98 [self setNeedsLayout]; 101 [self setNeedsLayout];
99 } 102 }
100 103
101 - (UILabel*)titleLabel { 104 - (UILabel*)titleLabel {
102 return [[_titleLabel retain] autorelease]; 105 return _titleLabel;
103 } 106 }
104 107
105 - (void)prepareForReuse { 108 - (void)prepareForReuse {
106 [super prepareForReuse]; 109 [super prepareForReuse];
107 _entry.reset(nil); 110 _entry = nil;
108 [_titleLabel setText:nil]; 111 [_titleLabel setText:nil];
109 [self setAccessibilityLabel:nil]; 112 [self setAccessibilityLabel:nil];
110 } 113 }
111 114
112 @end 115 @end
113 116
114 @implementation TabHistorySectionHeader { 117 @implementation TabHistorySectionHeader {
115 base::scoped_nsobject<UIImageView> _iconView; 118 UIImageView* _iconView;
116 base::scoped_nsobject<UIView> _lineView; 119 UIView* _lineView;
117 } 120 }
118 121
119 - (UIImageView*)iconView { 122 - (UIImageView*)iconView {
120 return [[_iconView retain] autorelease]; 123 return _iconView;
121 } 124 }
122 125
123 - (UIView*)lineView { 126 - (UIView*)lineView {
124 return [[_lineView retain] autorelease]; 127 return _lineView;
125 } 128 }
126 129
127 - (instancetype)initWithFrame:(CGRect)frame { 130 - (instancetype)initWithFrame:(CGRect)frame {
128 self = [super initWithFrame:frame]; 131 self = [super initWithFrame:frame];
129 if (self) { 132 if (self) {
130 CGRect iconFrame = CGRectMake(0, 0, kSiteIconViewWidth, kSiteIconViewWidth); 133 CGRect iconFrame = CGRectMake(0, 0, kSiteIconViewWidth, kSiteIconViewWidth);
131 _iconView.reset([[UIImageView alloc] initWithFrame:iconFrame]); 134 _iconView = [[UIImageView alloc] initWithFrame:iconFrame];
132 [self addSubview:_iconView]; 135 [self addSubview:_iconView];
133 136
134 UIColor* lineColor = UIColorFromRGB(kHeaderLineRGB); 137 UIColor* lineColor = UIColorFromRGB(kHeaderLineRGB);
135 138
136 _lineView.reset([[UIView alloc] initWithFrame:CGRectZero]); 139 _lineView = [[UIView alloc] initWithFrame:CGRectZero];
137 [[_lineView layer] setCornerRadius:HeaderLineRadius()]; 140 [[_lineView layer] setCornerRadius:HeaderLineRadius()];
138 [_lineView setBackgroundColor:lineColor]; 141 [_lineView setBackgroundColor:lineColor];
139 [self addSubview:_lineView]; 142 [self addSubview:_lineView];
140 } 143 }
141 144
142 return self; 145 return self;
143 } 146 }
144 147
145 - (void)layoutSubviews { 148 - (void)layoutSubviews {
146 [super layoutSubviews]; 149 [super layoutSubviews];
(...skipping 27 matching lines...) Expand all
174 177
175 - (instancetype)initWithFrame:(CGRect)frame { 178 - (instancetype)initWithFrame:(CGRect)frame {
176 self = [super initWithFrame:frame]; 179 self = [super initWithFrame:frame];
177 if (self) 180 if (self)
178 [self setBackgroundColor:UIColorFromRGB(kFooterRGB)]; 181 [self setBackgroundColor:UIColorFromRGB(kFooterRGB)];
179 182
180 return self; 183 return self;
181 } 184 }
182 185
183 @end 186 @end
OLDNEW
« no previous file with comments | « ios/chrome/browser/ui/history/tab_history_cell.h ('k') | ios/chrome/browser/ui/history/tab_history_popup_controller.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698