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

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

Issue 2662473003: Removing "All Bookmarks" (Closed)
Patch Set: feedback Created 3 years, 10 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" 9 #include "base/mac/objc_property_releaser.h"
10 #include "base/strings/sys_string_conversions.h" 10 #include "base/strings/sys_string_conversions.h"
11 #include "components/bookmarks/browser/bookmark_node.h" 11 #include "components/bookmarks/browser/bookmark_node.h"
12 #import "ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.h" 12 #import "ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.h"
13 #include "ios/chrome/grit/ios_strings.h" 13 #include "ios/chrome/grit/ios_strings.h"
14 #include "ui/base/l10n/l10n_util.h" 14 #include "ui/base/l10n/l10n_util.h"
15 15
16 using bookmarks::BookmarkNode; 16 using bookmarks::BookmarkNode;
17 17
18 namespace bookmarks { 18 namespace bookmarks {
19 BOOL NumberIsValidMenuItemType(int number) { 19 BOOL NumberIsValidMenuItemType(int number) {
20 // Invalid and deprecated numbers. 20 // Invalid and deprecated numbers.
21 if (number < 0 || number > MenuItemLast) 21 if (number < 1 || number > MenuItemLast)
22 return NO; 22 return NO;
23 MenuItemType type = static_cast<MenuItemType>(number); 23 MenuItemType type = static_cast<MenuItemType>(number);
24 switch (type) { 24 switch (type) {
25 case MenuItemAll:
26 case MenuItemFolder: 25 case MenuItemFolder:
27 return YES; 26 return YES;
28 27
29 case MenuItemDivider: 28 case MenuItemDivider:
30 case MenuItemSectionHeader: 29 case MenuItemSectionHeader:
31 return NO; 30 return NO;
32 } 31 }
33 } 32 }
34 } // namespace bookmarks 33 } // namespace bookmarks
35 34
(...skipping 18 matching lines...) Expand all
54 - (instancetype)init { 53 - (instancetype)init {
55 self = [super init]; 54 self = [super init];
56 if (self) { 55 if (self) {
57 _propertyReleaser_BookmarkMenuItem.Init(self, [BookmarkMenuItem class]); 56 _propertyReleaser_BookmarkMenuItem.Init(self, [BookmarkMenuItem class]);
58 } 57 }
59 return self; 58 return self;
60 } 59 }
61 60
62 - (UIAccessibilityTraits)accessibilityTraits { 61 - (UIAccessibilityTraits)accessibilityTraits {
63 switch (self.type) { 62 switch (self.type) {
64 case bookmarks::MenuItemAll:
65 case bookmarks::MenuItemFolder: 63 case bookmarks::MenuItemFolder:
66 return super.accessibilityTraits |= UIAccessibilityTraitButton; 64 return super.accessibilityTraits |= UIAccessibilityTraitButton;
67 case bookmarks::MenuItemSectionHeader: 65 case bookmarks::MenuItemSectionHeader:
68 return super.accessibilityTraits |= UIAccessibilityTraitHeader; 66 return super.accessibilityTraits |= UIAccessibilityTraitHeader;
69 case bookmarks::MenuItemDivider: 67 case bookmarks::MenuItemDivider:
70 return UIAccessibilityTraitNone; 68 return UIAccessibilityTraitNone;
71 } 69 }
72 } 70 }
73 71
74 - (NSString*)title { 72 - (NSString*)title {
75 switch (self.type) { 73 switch (self.type) {
76 case bookmarks::MenuItemAll:
77 return l10n_util::GetNSString(IDS_IOS_BOOKMARK_NEW_ALL_BOOKMARKS_LABEL);
78 case bookmarks::MenuItemDivider: 74 case bookmarks::MenuItemDivider:
79 return nil; 75 return nil;
80 case bookmarks::MenuItemFolder: 76 case bookmarks::MenuItemFolder:
81 return bookmark_utils_ios::TitleForBookmarkNode(self.folder); 77 return bookmark_utils_ios::TitleForBookmarkNode(self.folder);
82 case bookmarks::MenuItemSectionHeader: 78 case bookmarks::MenuItemSectionHeader:
83 return self.sectionTitle; 79 return self.sectionTitle;
84 } 80 }
85 } 81 }
86 82
87 - (NSString*)titleForMenu { 83 - (NSString*)titleForMenu {
88 switch (self.type) { 84 switch (self.type) {
89 case bookmarks::MenuItemAll:
90 return l10n_util::GetNSString(IDS_IOS_BOOKMARK_NEW_ALL_BOOKMARKS_LABEL);
91 case bookmarks::MenuItemDivider: 85 case bookmarks::MenuItemDivider:
92 case bookmarks::MenuItemFolder: 86 case bookmarks::MenuItemFolder:
93 case bookmarks::MenuItemSectionHeader: 87 case bookmarks::MenuItemSectionHeader:
94 return [self title]; 88 return [self title];
95 } 89 }
96 } 90 }
97 91
98 - (NSString*)titleForNavigationBar { 92 - (NSString*)titleForNavigationBar {
99 switch (self.type) { 93 switch (self.type) {
100 case bookmarks::MenuItemAll:
101 return l10n_util::GetNSString(IDS_IOS_BOOKMARK_NEW_BOOKMARKS_LABEL);
102 case bookmarks::MenuItemDivider: 94 case bookmarks::MenuItemDivider:
103 case bookmarks::MenuItemFolder: 95 case bookmarks::MenuItemFolder:
104 case bookmarks::MenuItemSectionHeader: 96 case bookmarks::MenuItemSectionHeader:
105 return [self title]; 97 return [self title];
106 } 98 }
107 } 99 }
108 100
109 - (NSString*)accessibilityIdentifier { 101 - (NSString*)accessibilityIdentifier {
110 switch (self.type) { 102 switch (self.type) {
111 case bookmarks::MenuItemAll:
112 return @"MenuItemAll";
113 case bookmarks::MenuItemDivider: 103 case bookmarks::MenuItemDivider:
114 return nil; 104 return nil;
115 case bookmarks::MenuItemFolder: 105 case bookmarks::MenuItemFolder:
116 return @"MenuItemFolder"; 106 return @"MenuItemFolder";
117 case bookmarks::MenuItemSectionHeader: 107 case bookmarks::MenuItemSectionHeader:
118 return @"MenuItemSectionHeader"; 108 return @"MenuItemSectionHeader";
119 } 109 }
120 } 110 }
121 111
122 - (UIImage*)imagePrimary:(BOOL)primary { 112 - (UIImage*)imagePrimary:(BOOL)primary {
123 switch (self.type) { 113 switch (self.type) {
124 case bookmarks::MenuItemAll:
125 if (primary)
126 return [UIImage imageNamed:@"bookmark_blue_star"];
127 else
128 return [UIImage imageNamed:@"bookmark_gray_star"];
129 case bookmarks::MenuItemFolder: 114 case bookmarks::MenuItemFolder:
130 if (self.folder->type() == BookmarkNode::BOOKMARK_BAR || 115 if (self.folder->type() == BookmarkNode::BOOKMARK_BAR ||
131 self.folder->type() == BookmarkNode::MOBILE || 116 self.folder->type() == BookmarkNode::MOBILE ||
132 self.folder->type() == BookmarkNode::OTHER_NODE) { 117 self.folder->type() == BookmarkNode::OTHER_NODE) {
133 if (primary) 118 if (primary)
134 return [UIImage imageNamed:@"bookmark_blue_folder"]; 119 return [UIImage imageNamed:@"bookmark_blue_folder"];
135 else 120 else
136 return [UIImage imageNamed:@"bookmark_gray_folder"]; 121 return [UIImage imageNamed:@"bookmark_gray_folder"];
137 } 122 }
138 case bookmarks::MenuItemDivider: 123 case bookmarks::MenuItemDivider:
139 case bookmarks::MenuItemSectionHeader: 124 case bookmarks::MenuItemSectionHeader:
140 return nil; 125 return nil;
141 } 126 }
142 } 127 }
143 128
144 - (CGFloat)height { 129 - (CGFloat)height {
145 if (self.type == bookmarks::MenuItemDivider) 130 if (self.type == bookmarks::MenuItemDivider)
146 return 1; 131 return 1;
147 return 48; 132 return 48;
148 } 133 }
149 134
150 - (BOOL)canBeSelected { 135 - (BOOL)canBeSelected {
151 switch (self.type) { 136 switch (self.type) {
152 case bookmarks::MenuItemDivider: 137 case bookmarks::MenuItemDivider:
153 case bookmarks::MenuItemSectionHeader: 138 case bookmarks::MenuItemSectionHeader:
154 return NO; 139 return NO;
155 case bookmarks::MenuItemAll:
156 case bookmarks::MenuItemFolder: 140 case bookmarks::MenuItemFolder:
157 return YES; 141 return YES;
158 } 142 }
159 } 143 }
160 144
161 - (BOOL)supportsEditing { 145 - (BOOL)supportsEditing {
162 switch (self.type) { 146 switch (self.type) {
163 case bookmarks::MenuItemAll:
164 case bookmarks::MenuItemFolder: 147 case bookmarks::MenuItemFolder:
165 return YES; 148 return YES;
166 case bookmarks::MenuItemDivider: 149 case bookmarks::MenuItemDivider:
167 case bookmarks::MenuItemSectionHeader: 150 case bookmarks::MenuItemSectionHeader:
168 NOTREACHED(); 151 NOTREACHED();
169 return NO; 152 return NO;
170 } 153 }
171 } 154 }
172 155
173 - (BOOL)isEqual:(id)other { 156 - (BOOL)isEqual:(id)other {
174 if (other == self) 157 if (other == self)
175 return YES; 158 return YES;
176 if (!other || ![other isKindOfClass:[self class]]) 159 if (!other || ![other isKindOfClass:[self class]])
177 return NO; 160 return NO;
178 BookmarkMenuItem* otherMenuItem = static_cast<BookmarkMenuItem*>(other); 161 BookmarkMenuItem* otherMenuItem = static_cast<BookmarkMenuItem*>(other);
179 if (self.type != otherMenuItem.type) 162 if (self.type != otherMenuItem.type)
180 return NO; 163 return NO;
181 164
182 switch (self.type) { 165 switch (self.type) {
183 case bookmarks::MenuItemDivider: 166 case bookmarks::MenuItemDivider:
184 case bookmarks::MenuItemAll:
185 return YES; 167 return YES;
186 case bookmarks::MenuItemFolder: 168 case bookmarks::MenuItemFolder:
187 return self.folder == otherMenuItem.folder; 169 return self.folder == otherMenuItem.folder;
188 case bookmarks::MenuItemSectionHeader: 170 case bookmarks::MenuItemSectionHeader:
189 return self.sectionTitle == otherMenuItem.sectionTitle; 171 return self.sectionTitle == otherMenuItem.sectionTitle;
190 } 172 }
191 } 173 }
192 174
193 - (BookmarkMenuItem*)parentItem { 175 - (BookmarkMenuItem*)parentItem {
194 if (self.type != bookmarks::MenuItemFolder) 176 if (self.type != bookmarks::MenuItemFolder)
195 return self; 177 return self;
196 BookmarkMenuItem* item = [[[BookmarkMenuItem alloc] init] autorelease]; 178 BookmarkMenuItem* item = [[[BookmarkMenuItem alloc] init] autorelease];
197 item.type = self.type; 179 item.type = self.type;
198 item.folder = self.rootAncestor; 180 item.folder = self.rootAncestor;
199 item.rootAncestor = self.rootAncestor; 181 item.rootAncestor = self.rootAncestor;
200 return item; 182 return item;
201 } 183 }
202 184
203 - (NSUInteger)hash { 185 - (NSUInteger)hash {
204 switch (self.type) { 186 switch (self.type) {
205 case bookmarks::MenuItemDivider: 187 case bookmarks::MenuItemDivider:
206 case bookmarks::MenuItemAll:
207 return self.type; 188 return self.type;
208 case bookmarks::MenuItemFolder: 189 case bookmarks::MenuItemFolder:
209 return self.type + reinterpret_cast<NSUInteger>(self.folder); 190 return self.type + reinterpret_cast<NSUInteger>(self.folder);
210 case bookmarks::MenuItemSectionHeader: 191 case bookmarks::MenuItemSectionHeader:
211 return self.type + [self.sectionTitle hash]; 192 return self.type + [self.sectionTitle hash];
212 } 193 }
213 } 194 }
214 195
215 + (BookmarkMenuItem*)allMenuItem {
216 BookmarkMenuItem* item = [[[BookmarkMenuItem alloc] init] autorelease];
217 item.type = bookmarks::MenuItemAll;
218 return item;
219 }
220
221 + (BookmarkMenuItem*)dividerMenuItem { 196 + (BookmarkMenuItem*)dividerMenuItem {
222 BookmarkMenuItem* item = [[[BookmarkMenuItem alloc] init] autorelease]; 197 BookmarkMenuItem* item = [[[BookmarkMenuItem alloc] init] autorelease];
223 item.type = bookmarks::MenuItemDivider; 198 item.type = bookmarks::MenuItemDivider;
224 return item; 199 return item;
225 } 200 }
226 201
227 + (BookmarkMenuItem*)folderMenuItemForNode:(const BookmarkNode*)node 202 + (BookmarkMenuItem*)folderMenuItemForNode:(const BookmarkNode*)node
228 rootAncestor:(const BookmarkNode*)ancestor { 203 rootAncestor:(const BookmarkNode*)ancestor {
229 BookmarkMenuItem* item = [[[BookmarkMenuItem alloc] init] autorelease]; 204 BookmarkMenuItem* item = [[[BookmarkMenuItem alloc] init] autorelease];
230 item.type = bookmarks::MenuItemFolder; 205 item.type = bookmarks::MenuItemFolder;
231 item.folder = node; 206 item.folder = node;
232 item.rootAncestor = ancestor; 207 item.rootAncestor = ancestor;
233 return item; 208 return item;
234 } 209 }
235 210
236 + (BookmarkMenuItem*)sectionMenuItemWithTitle:(NSString*)title { 211 + (BookmarkMenuItem*)sectionMenuItemWithTitle:(NSString*)title {
237 BookmarkMenuItem* item = [[[BookmarkMenuItem alloc] init] autorelease]; 212 BookmarkMenuItem* item = [[[BookmarkMenuItem alloc] init] autorelease];
238 item.type = bookmarks::MenuItemSectionHeader; 213 item.type = bookmarks::MenuItemSectionHeader;
239 item.sectionTitle = title; 214 item.sectionTitle = title;
240 return item; 215 return item;
241 } 216 }
242 217
243 @end 218 @end
OLDNEW
« no previous file with comments | « ios/chrome/browser/ui/bookmarks/bookmark_menu_item.h ('k') | ios/chrome/browser/ui/bookmarks/bookmark_menu_view.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698