OLD | NEW |
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/tools_menu/tools_menu_view_item.h" | 5 #import "ios/chrome/browser/ui/tools_menu/tools_menu_view_item.h" |
6 | 6 |
7 #include "base/i18n/rtl.h" | 7 #include "base/i18n/rtl.h" |
8 #include "base/mac/objc_property_releaser.h" | |
9 #import "ios/third_party/material_components_ios/src/components/Typography/src/M
aterialTypography.h" | 8 #import "ios/third_party/material_components_ios/src/components/Typography/src/M
aterialTypography.h" |
10 #include "ui/base/l10n/l10n_util.h" | 9 #include "ui/base/l10n/l10n_util.h" |
11 | 10 |
| 11 #if !defined(__has_feature) || !__has_feature(objc_arc) |
| 12 #error "This file requires ARC support." |
| 13 #endif |
| 14 |
12 namespace { | 15 namespace { |
13 const CGFloat kToolsMenuItemHorizontalMargin = 16; | 16 const CGFloat kToolsMenuItemHorizontalMargin = 16; |
14 // Increase the margin for RTL so the labels don't overlap the tools icon. | 17 // Increase the margin for RTL so the labels don't overlap the tools icon. |
15 const CGFloat kToolsMenuItemHorizontalMarginRTL = 25; | 18 const CGFloat kToolsMenuItemHorizontalMarginRTL = 25; |
16 static NSString* const kMenuItemCellID = @"MenuItemCellID"; | 19 static NSString* const kMenuItemCellID = @"MenuItemCellID"; |
17 } | 20 } |
18 | 21 |
19 @implementation ToolsMenuViewItem { | 22 @implementation ToolsMenuViewItem |
20 base::mac::ObjCPropertyReleaser _propertyReleaser_ToolsMenuViewItem; | |
21 } | |
22 | |
23 @synthesize accessibilityIdentifier = _accessibilityIdentifier; | 23 @synthesize accessibilityIdentifier = _accessibilityIdentifier; |
24 @synthesize active = _active; | 24 @synthesize active = _active; |
25 @synthesize title = _title; | 25 @synthesize title = _title; |
26 @synthesize tag = _tag; | 26 @synthesize tag = _tag; |
27 @synthesize tableViewCell = _tableViewCell; | 27 @synthesize tableViewCell = _tableViewCell; |
28 | 28 |
29 - (id)init { | 29 - (id)init { |
30 self = [super init]; | 30 self = [super init]; |
31 if (self) { | 31 if (self) { |
32 _propertyReleaser_ToolsMenuViewItem.Init(self, [ToolsMenuViewItem class]); | |
33 _active = YES; | 32 _active = YES; |
34 } | 33 } |
35 | 34 |
36 return self; | 35 return self; |
37 } | 36 } |
38 | 37 |
39 + (NSString*)cellID { | 38 + (NSString*)cellID { |
40 return kMenuItemCellID; | 39 return kMenuItemCellID; |
41 } | 40 } |
42 | 41 |
43 + (Class)cellClass { | 42 + (Class)cellClass { |
44 return [ToolsMenuViewCell class]; | 43 return [ToolsMenuViewCell class]; |
45 } | 44 } |
46 | 45 |
47 + (instancetype)menuItemWithTitle:(NSString*)title | 46 + (instancetype)menuItemWithTitle:(NSString*)title |
48 accessibilityIdentifier:(NSString*)accessibilityIdentifier | 47 accessibilityIdentifier:(NSString*)accessibilityIdentifier |
49 command:(int)commandID { | 48 command:(int)commandID { |
50 ToolsMenuViewItem* menuItem = [[[self alloc] init] autorelease]; | 49 ToolsMenuViewItem* menuItem = [[self alloc] init]; |
51 [menuItem setAccessibilityLabel:title]; | 50 [menuItem setAccessibilityLabel:title]; |
52 [menuItem setAccessibilityIdentifier:accessibilityIdentifier]; | 51 [menuItem setAccessibilityIdentifier:accessibilityIdentifier]; |
53 [menuItem setTag:commandID]; | 52 [menuItem setTag:commandID]; |
54 [menuItem setTitle:title]; | 53 [menuItem setTitle:title]; |
55 | 54 |
56 return menuItem; | 55 return menuItem; |
57 } | 56 } |
58 | 57 |
59 @end | 58 @end |
60 | 59 |
61 @implementation ToolsMenuViewCell { | 60 @implementation ToolsMenuViewCell |
62 base::mac::ObjCPropertyReleaser _propertyReleaser_ToolsMenuViewCell; | |
63 } | |
64 | |
65 @synthesize title = _title; | 61 @synthesize title = _title; |
66 @synthesize horizontalMargin = _horizontalMargin; | 62 @synthesize horizontalMargin = _horizontalMargin; |
67 | 63 |
68 - (instancetype)initWithCoder:(NSCoder*)aDecoder { | 64 - (instancetype)initWithCoder:(NSCoder*)aDecoder { |
69 self = [super initWithCoder:aDecoder]; | 65 self = [super initWithCoder:aDecoder]; |
70 if (self) | 66 if (self) |
71 [self commonInitialization]; | 67 [self commonInitialization]; |
72 | 68 |
73 return self; | 69 return self; |
74 } | 70 } |
75 | 71 |
76 - (instancetype)initWithFrame:(CGRect)frame { | 72 - (instancetype)initWithFrame:(CGRect)frame { |
77 self = [super initWithFrame:frame]; | 73 self = [super initWithFrame:frame]; |
78 if (self) | 74 if (self) |
79 [self commonInitialization]; | 75 [self commonInitialization]; |
80 | 76 |
81 return self; | 77 return self; |
82 } | 78 } |
83 | 79 |
84 - (void)commonInitialization { | 80 - (void)commonInitialization { |
85 _propertyReleaser_ToolsMenuViewCell.Init(self, [ToolsMenuViewCell class]); | |
86 _horizontalMargin = !base::i18n::IsRTL() ? kToolsMenuItemHorizontalMargin | 81 _horizontalMargin = !base::i18n::IsRTL() ? kToolsMenuItemHorizontalMargin |
87 : kToolsMenuItemHorizontalMarginRTL; | 82 : kToolsMenuItemHorizontalMarginRTL; |
88 [self setBackgroundColor:[UIColor whiteColor]]; | 83 [self setBackgroundColor:[UIColor whiteColor]]; |
89 [self setOpaque:YES]; | 84 [self setOpaque:YES]; |
90 } | 85 } |
91 | 86 |
92 - (void)prepareForReuse { | 87 - (void)prepareForReuse { |
93 [super prepareForReuse]; | 88 [super prepareForReuse]; |
94 [_title setText:nil]; | 89 [_title setText:nil]; |
95 [self setAccessibilityIdentifier:nil]; | 90 [self setAccessibilityIdentifier:nil]; |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 [_title setText:[item title]]; | 145 [_title setText:[item title]]; |
151 [self setAccessibilityIdentifier:[item accessibilityIdentifier]]; | 146 [self setAccessibilityIdentifier:[item accessibilityIdentifier]]; |
152 [self setAccessibilityLabel:[item accessibilityLabel]]; | 147 [self setAccessibilityLabel:[item accessibilityLabel]]; |
153 [self setAccessibilityTraits:traits]; | 148 [self setAccessibilityTraits:traits]; |
154 [self setIsAccessibilityElement:YES]; | 149 [self setIsAccessibilityElement:YES]; |
155 [self setTag:[item tag]]; | 150 [self setTag:[item tag]]; |
156 item.tableViewCell = self; | 151 item.tableViewCell = self; |
157 } | 152 } |
158 | 153 |
159 @end | 154 @end |
OLD | NEW |