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

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

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