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

Side by Side Diff: ios/chrome/browser/ui/bookmarks/bookmark_menu_item.mm

Issue 2746473003: [ObjC ARC] Converts ios/chrome/browser/ui/bookmarks:bookmarks to ARC. (Closed)
Patch Set: annotate weaks Created 3 years, 9 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/bookmarks/bookmark_menu_item.h" 5 #import "ios/chrome/browser/ui/bookmarks/bookmark_menu_item.h"
6 6
7 #include "base/hash.h" 7 #include "base/hash.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/mac/objc_property_releaser.h"
10 #include "base/strings/sys_string_conversions.h" 9 #include "base/strings/sys_string_conversions.h"
11 #include "components/bookmarks/browser/bookmark_node.h" 10 #include "components/bookmarks/browser/bookmark_node.h"
12 #import "ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.h" 11 #import "ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.h"
13 #include "ios/chrome/grit/ios_strings.h" 12 #include "ios/chrome/grit/ios_strings.h"
14 #include "ui/base/l10n/l10n_util.h" 13 #include "ui/base/l10n/l10n_util.h"
15 14
15 #if !defined(__has_feature) || !__has_feature(objc_arc)
16 #error "This file requires ARC support."
17 #endif
18
16 using bookmarks::BookmarkNode; 19 using bookmarks::BookmarkNode;
17 20
18 namespace bookmarks { 21 namespace bookmarks {
19 BOOL NumberIsValidMenuItemType(int number) { 22 BOOL NumberIsValidMenuItemType(int number) {
20 // Invalid and deprecated numbers. 23 // Invalid and deprecated numbers.
21 if (number < 1 || number > MenuItemLast) 24 if (number < 1 || number > MenuItemLast)
22 return NO; 25 return NO;
23 MenuItemType type = static_cast<MenuItemType>(number); 26 MenuItemType type = static_cast<MenuItemType>(number);
24 switch (type) { 27 switch (type) {
25 case MenuItemFolder: 28 case MenuItemFolder:
26 return YES; 29 return YES;
27 30
28 case MenuItemDivider: 31 case MenuItemDivider:
29 case MenuItemSectionHeader: 32 case MenuItemSectionHeader:
30 return NO; 33 return NO;
31 } 34 }
32 } 35 }
33 } // namespace bookmarks 36 } // namespace bookmarks
34 37
35 @interface BookmarkMenuItem () { 38 @interface BookmarkMenuItem ()
36 base::mac::ObjCPropertyReleaser _propertyReleaser_BookmarkMenuItem;
37 }
38 // Redefined to be read-write. 39 // Redefined to be read-write.
39 @property(nonatomic, assign) const BookmarkNode* folder; 40 @property(nonatomic, assign) const BookmarkNode* folder;
40 @property(nonatomic, assign) const BookmarkNode* rootAncestor; 41 @property(nonatomic, assign) const BookmarkNode* rootAncestor;
41 // Redefined to be read-write. 42 // Redefined to be read-write.
42 @property(nonatomic, assign) bookmarks::MenuItemType type; 43 @property(nonatomic, assign) bookmarks::MenuItemType type;
43 // Redefined to be read-write. 44 // Redefined to be read-write.
44 @property(nonatomic, copy) NSString* sectionTitle; 45 @property(nonatomic, copy) NSString* sectionTitle;
45 @end 46 @end
46 47
47 @implementation BookmarkMenuItem 48 @implementation BookmarkMenuItem
48 @synthesize folder = _folder; 49 @synthesize folder = _folder;
49 @synthesize rootAncestor = _rootAncestor; 50 @synthesize rootAncestor = _rootAncestor;
50 @synthesize sectionTitle = _sectionTitle; 51 @synthesize sectionTitle = _sectionTitle;
51 @synthesize type = _type; 52 @synthesize type = _type;
52 53
53 - (instancetype)init {
54 self = [super init];
55 if (self) {
56 _propertyReleaser_BookmarkMenuItem.Init(self, [BookmarkMenuItem class]);
57 }
58 return self;
59 }
60
61 - (UIAccessibilityTraits)accessibilityTraits { 54 - (UIAccessibilityTraits)accessibilityTraits {
62 switch (self.type) { 55 switch (self.type) {
63 case bookmarks::MenuItemFolder: 56 case bookmarks::MenuItemFolder:
64 return super.accessibilityTraits |= UIAccessibilityTraitButton; 57 return super.accessibilityTraits |= UIAccessibilityTraitButton;
65 case bookmarks::MenuItemSectionHeader: 58 case bookmarks::MenuItemSectionHeader:
66 return super.accessibilityTraits |= UIAccessibilityTraitHeader; 59 return super.accessibilityTraits |= UIAccessibilityTraitHeader;
67 case bookmarks::MenuItemDivider: 60 case bookmarks::MenuItemDivider:
68 return UIAccessibilityTraitNone; 61 return UIAccessibilityTraitNone;
69 } 62 }
70 } 63 }
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 case bookmarks::MenuItemFolder: 161 case bookmarks::MenuItemFolder:
169 return self.folder == otherMenuItem.folder; 162 return self.folder == otherMenuItem.folder;
170 case bookmarks::MenuItemSectionHeader: 163 case bookmarks::MenuItemSectionHeader:
171 return self.sectionTitle == otherMenuItem.sectionTitle; 164 return self.sectionTitle == otherMenuItem.sectionTitle;
172 } 165 }
173 } 166 }
174 167
175 - (BookmarkMenuItem*)parentItem { 168 - (BookmarkMenuItem*)parentItem {
176 if (self.type != bookmarks::MenuItemFolder) 169 if (self.type != bookmarks::MenuItemFolder)
177 return self; 170 return self;
178 BookmarkMenuItem* item = [[[BookmarkMenuItem alloc] init] autorelease]; 171 BookmarkMenuItem* item = [[BookmarkMenuItem alloc] init];
179 item.type = self.type; 172 item.type = self.type;
180 item.folder = self.rootAncestor; 173 item.folder = self.rootAncestor;
181 item.rootAncestor = self.rootAncestor; 174 item.rootAncestor = self.rootAncestor;
182 return item; 175 return item;
183 } 176 }
184 177
185 - (NSUInteger)hash { 178 - (NSUInteger)hash {
186 switch (self.type) { 179 switch (self.type) {
187 case bookmarks::MenuItemDivider: 180 case bookmarks::MenuItemDivider:
188 return self.type; 181 return self.type;
189 case bookmarks::MenuItemFolder: 182 case bookmarks::MenuItemFolder:
190 return self.type + reinterpret_cast<NSUInteger>(self.folder); 183 return self.type + reinterpret_cast<NSUInteger>(self.folder);
191 case bookmarks::MenuItemSectionHeader: 184 case bookmarks::MenuItemSectionHeader:
192 return self.type + [self.sectionTitle hash]; 185 return self.type + [self.sectionTitle hash];
193 } 186 }
194 } 187 }
195 188
196 + (BookmarkMenuItem*)dividerMenuItem { 189 + (BookmarkMenuItem*)dividerMenuItem {
197 BookmarkMenuItem* item = [[[BookmarkMenuItem alloc] init] autorelease]; 190 BookmarkMenuItem* item = [[BookmarkMenuItem alloc] init];
198 item.type = bookmarks::MenuItemDivider; 191 item.type = bookmarks::MenuItemDivider;
199 return item; 192 return item;
200 } 193 }
201 194
202 + (BookmarkMenuItem*)folderMenuItemForNode:(const BookmarkNode*)node 195 + (BookmarkMenuItem*)folderMenuItemForNode:(const BookmarkNode*)node
203 rootAncestor:(const BookmarkNode*)ancestor { 196 rootAncestor:(const BookmarkNode*)ancestor {
204 BookmarkMenuItem* item = [[[BookmarkMenuItem alloc] init] autorelease]; 197 BookmarkMenuItem* item = [[BookmarkMenuItem alloc] init];
205 item.type = bookmarks::MenuItemFolder; 198 item.type = bookmarks::MenuItemFolder;
206 item.folder = node; 199 item.folder = node;
207 item.rootAncestor = ancestor; 200 item.rootAncestor = ancestor;
208 return item; 201 return item;
209 } 202 }
210 203
211 + (BookmarkMenuItem*)sectionMenuItemWithTitle:(NSString*)title { 204 + (BookmarkMenuItem*)sectionMenuItemWithTitle:(NSString*)title {
212 BookmarkMenuItem* item = [[[BookmarkMenuItem alloc] init] autorelease]; 205 BookmarkMenuItem* item = [[BookmarkMenuItem alloc] init];
213 item.type = bookmarks::MenuItemSectionHeader; 206 item.type = bookmarks::MenuItemSectionHeader;
214 item.sectionTitle = title; 207 item.sectionTitle = title;
215 return item; 208 return item;
216 } 209 }
217 210
218 @end 211 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698