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

Side by Side Diff: ios/chrome/browser/ui/tab_switcher/tab_switcher_header_cell.mm

Issue 2810193002: [ObjC ARC] Converts ios/chrome/browser/ui/tab_switcher:tab_switcher to ARC. (Closed)
Patch Set: comment Created 3 years, 7 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/tab_switcher/tab_switcher_header_cell.h" 5 #import "ios/chrome/browser/ui/tab_switcher/tab_switcher_header_cell.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/mac/scoped_nsobject.h"
9 #import "ios/chrome/browser/ui/tab_switcher/tab_switcher_session_cell_data.h" 8 #import "ios/chrome/browser/ui/tab_switcher/tab_switcher_session_cell_data.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_components_ios/src/components/Palettes/src/Mat erialPalettes.h" 10 #import "ios/third_party/material_components_ios/src/components/Palettes/src/Mat erialPalettes.h"
12 #import "ios/third_party/material_components_ios/src/components/Typography/src/M aterialTypography.h" 11 #import "ios/third_party/material_components_ios/src/components/Typography/src/M aterialTypography.h"
13 12
13 #if !defined(__has_feature) || !__has_feature(objc_arc)
14 #error "This file requires ARC support."
15 #endif
16
14 namespace { 17 namespace {
15 // View alpha value used when the header cell is not selected. 18 // View alpha value used when the header cell is not selected.
16 const CGFloat kInactiveAlpha = 0.54; 19 const CGFloat kInactiveAlpha = 0.54;
17 const CGFloat kImageViewWidth = 24; 20 const CGFloat kImageViewWidth = 24;
18 } 21 }
19 22
20 @interface TabSwitcherHeaderCell () { 23 @interface TabSwitcherHeaderCell () {
21 base::scoped_nsobject<UIImageView> _imageView; 24 UIImageView* _imageView;
22 base::scoped_nsobject<UILabel> _label; 25 UILabel* _label;
23 } 26 }
24 @end 27 @end
25 28
26 @implementation TabSwitcherHeaderCell 29 @implementation TabSwitcherHeaderCell
27 30
28 - (instancetype)initWithFrame:(CGRect)frame { 31 - (instancetype)initWithFrame:(CGRect)frame {
29 self = [super initWithFrame:frame]; 32 self = [super initWithFrame:frame];
30 if (self) { 33 if (self) {
31 self.backgroundColor = [[MDCPalette greyPalette] tint900]; 34 self.backgroundColor = [[MDCPalette greyPalette] tint900];
32 [self loadSubviews]; 35 [self loadSubviews];
(...skipping 19 matching lines...) Expand all
52 - (void)setSelected:(BOOL)selected { 55 - (void)setSelected:(BOOL)selected {
53 [super setSelected:selected]; 56 [super setSelected:selected];
54 [_imageView setAlpha:selected ? 1. : kInactiveAlpha]; 57 [_imageView setAlpha:selected ? 1. : kInactiveAlpha];
55 [_label setAlpha:selected ? 1. : kInactiveAlpha]; 58 [_label setAlpha:selected ? 1. : kInactiveAlpha];
56 [self setNeedsLayout]; 59 [self setNeedsLayout];
57 } 60 }
58 61
59 #pragma mark - Private 62 #pragma mark - Private
60 63
61 - (void)loadSubviews { 64 - (void)loadSubviews {
62 _imageView.reset([[UIImageView alloc] initWithFrame:CGRectZero]); 65 _imageView = [[UIImageView alloc] initWithFrame:CGRectZero];
63 [_imageView setContentMode:UIViewContentModeCenter]; 66 [_imageView setContentMode:UIViewContentModeCenter];
64 [_imageView setTranslatesAutoresizingMaskIntoConstraints:NO]; 67 [_imageView setTranslatesAutoresizingMaskIntoConstraints:NO];
65 [_imageView setTintColor:[UIColor whiteColor]]; 68 [_imageView setTintColor:[UIColor whiteColor]];
66 _label.reset([[UILabel alloc] initWithFrame:CGRectZero]); 69 _label = [[UILabel alloc] initWithFrame:CGRectZero];
67 [_label setBackgroundColor:[UIColor clearColor]]; 70 [_label setBackgroundColor:[UIColor clearColor]];
68 [_label setTranslatesAutoresizingMaskIntoConstraints:NO]; 71 [_label setTranslatesAutoresizingMaskIntoConstraints:NO];
69 [_label setTextColor:[UIColor whiteColor]]; 72 [_label setTextColor:[UIColor whiteColor]];
70 [_label setFont:[MDCTypography body2Font]]; 73 [_label setFont:[MDCTypography body2Font]];
71 74
72 // Configure layout. 75 // Configure layout.
73 // The icon and the title are centered within |contentView|, have a spacing of 76 // The icon and the title are centered within |contentView|, have a spacing of
74 // one-third of icon width and the icon is on the leading side of title. 77 // one-third of icon width and the icon is on the leading side of title.
75 base::scoped_nsobject<UIStackView> stackView( 78 UIStackView* stackView =
76 [[UIStackView alloc] initWithArrangedSubviews:@[ _imageView, _label ]]); 79 [[UIStackView alloc] initWithArrangedSubviews:@[ _imageView, _label ]];
77 [stackView setSpacing:kImageViewWidth / 3]; 80 [stackView setSpacing:kImageViewWidth / 3];
78 [self.contentView addSubview:stackView]; 81 [self.contentView addSubview:stackView];
79 82
80 [stackView setTranslatesAutoresizingMaskIntoConstraints:NO]; 83 [stackView setTranslatesAutoresizingMaskIntoConstraints:NO];
81 [NSLayoutConstraint activateConstraints:@[ 84 [NSLayoutConstraint activateConstraints:@[
82 [self.contentView.centerYAnchor 85 [self.contentView.centerYAnchor
83 constraintEqualToAnchor:[stackView centerYAnchor]], 86 constraintEqualToAnchor:[stackView centerYAnchor]],
84 [self.contentView.centerXAnchor 87 [self.contentView.centerXAnchor
85 constraintEqualToAnchor:[stackView centerXAnchor]] 88 constraintEqualToAnchor:[stackView centerXAnchor]]
86 ]]; 89 ]];
87 } 90 }
88 91
89 @end 92 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698