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

Unified Diff: ios/chrome/browser/ui/tools_menu/tools_menu_view_item.mm

Issue 2588733002: Upstream Chrome on iOS source code [9/11]. (Closed)
Patch Set: Created 4 years 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 side-by-side diff with in-line comments
Download patch
Index: ios/chrome/browser/ui/tools_menu/tools_menu_view_item.mm
diff --git a/ios/chrome/browser/ui/tools_menu/tools_menu_view_item.mm b/ios/chrome/browser/ui/tools_menu/tools_menu_view_item.mm
new file mode 100644
index 0000000000000000000000000000000000000000..9db0a61675baa70ebb7f58b333dc722caa7d342d
--- /dev/null
+++ b/ios/chrome/browser/ui/tools_menu/tools_menu_view_item.mm
@@ -0,0 +1,159 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/browser/ui/tools_menu/tools_menu_view_item.h"
+
+#include "base/i18n/rtl.h"
+#include "base/mac/objc_property_releaser.h"
+#import "ios/third_party/material_roboto_font_loader_ios/src/src/MaterialRobotoFontLoader.h"
+#include "ui/base/l10n/l10n_util.h"
+
+namespace {
+const CGFloat kToolsMenuItemHorizontalMargin = 16;
+// Increase the margin for RTL so the labels don't overlap the tools icon.
+const CGFloat kToolsMenuItemHorizontalMarginRTL = 25;
+static NSString* const kMenuItemCellID = @"MenuItemCellID";
+}
+
+@implementation ToolsMenuViewItem {
+ base::mac::ObjCPropertyReleaser _propertyReleaser_ToolsMenuViewItem;
+}
+
+@synthesize accessibilityIdentifier = _accessibilityIdentifier;
+@synthesize active = _active;
+@synthesize title = _title;
+@synthesize tag = _tag;
+@synthesize tableViewCell = _tableViewCell;
+
+- (id)init {
+ self = [super init];
+ if (self) {
+ _propertyReleaser_ToolsMenuViewItem.Init(self, [ToolsMenuViewItem class]);
+ _active = YES;
+ }
+
+ return self;
+}
+
++ (NSString*)cellID {
+ return kMenuItemCellID;
+}
+
++ (Class)cellClass {
+ return [ToolsMenuViewCell class];
+}
+
++ (instancetype)menuItemWithTitle:(NSString*)title
+ accessibilityIdentifier:(NSString*)accessibilityIdentifier
+ command:(int)commandID {
+ ToolsMenuViewItem* menuItem = [[[self alloc] init] autorelease];
+ [menuItem setAccessibilityLabel:title];
+ [menuItem setAccessibilityIdentifier:accessibilityIdentifier];
+ [menuItem setTag:commandID];
+ [menuItem setTitle:title];
+
+ return menuItem;
+}
+
+@end
+
+@implementation ToolsMenuViewCell {
+ base::mac::ObjCPropertyReleaser _propertyReleaser_ToolsMenuViewCell;
+}
+
+@synthesize title = _title;
+@synthesize horizontalMargin = _horizontalMargin;
+
+- (instancetype)initWithCoder:(NSCoder*)aDecoder {
+ self = [super initWithCoder:aDecoder];
+ if (self)
+ [self commonInitialization];
+
+ return self;
+}
+
+- (instancetype)initWithFrame:(CGRect)frame {
+ self = [super initWithFrame:frame];
+ if (self)
+ [self commonInitialization];
+
+ return self;
+}
+
+- (void)commonInitialization {
+ _propertyReleaser_ToolsMenuViewCell.Init(self, [ToolsMenuViewCell class]);
+ _horizontalMargin = !base::i18n::IsRTL() ? kToolsMenuItemHorizontalMargin
+ : kToolsMenuItemHorizontalMarginRTL;
+ [self setBackgroundColor:[UIColor whiteColor]];
+ [self setOpaque:YES];
+}
+
+- (void)prepareForReuse {
+ [super prepareForReuse];
+ [_title setText:nil];
+ [self setAccessibilityIdentifier:nil];
+ [self setAccessibilityLabel:nil];
+}
+
+- (void)initializeTitleView {
+ _title = [[UILabel alloc] initWithFrame:self.bounds];
+ [_title setTranslatesAutoresizingMaskIntoConstraints:NO];
+ [_title setFont:[[MDFRobotoFontLoader sharedInstance] regularFontOfSize:16]];
+ [_title setBackgroundColor:[self backgroundColor]];
+ [_title setTextAlignment:(base::i18n::IsRTL() ? NSTextAlignmentRight
+ : NSTextAlignmentLeft)];
+ [_title setOpaque:YES];
+}
+
+- (void)initializeViews {
+ if (_title)
+ return;
+
+ [self initializeTitleView];
+
+ UIView* contentView = [self contentView];
+ [contentView setBackgroundColor:[self backgroundColor]];
+ [contentView setOpaque:YES];
+ [contentView addSubview:_title];
+
+ NSDictionary* view = @{ @"title" : _title };
+ NSString* vertical = @"V:|-(0)-[title]-(0)-|";
+ NSString* horizontal = @"H:|-(margin)-[title]-(25)-|";
+ NSDictionary* metrics = @{ @"margin" : @(self.horizontalMargin) };
+
+ [contentView
+ addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:vertical
+ options:0
+ metrics:nil
+ views:view]];
+ [contentView
+ addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:horizontal
+ options:0
+ metrics:metrics
+ views:view]];
+}
+
+- (void)configureForMenuItem:(ToolsMenuViewItem*)item {
+ [self initializeViews];
+
+ UIAccessibilityTraits traits = [self accessibilityTraits] |
+ UIAccessibilityTraitNotEnabled |
+ UIAccessibilityTraitButton;
+ UIColor* textColor = [UIColor lightGrayColor];
+ if ([item active]) {
+ textColor = [UIColor blackColor];
+ traits &= ~UIAccessibilityTraitNotEnabled;
+ }
+
+ [_title setTextColor:textColor];
+ [_title setText:[item title]];
+ [self setAccessibilityIdentifier:[item accessibilityIdentifier]];
+ [self setAccessibilityLabel:[item accessibilityLabel]];
+ [self setAccessibilityTraits:traits];
+ [self setIsAccessibilityElement:YES];
+ [self setTag:[item tag]];
+ item.tableViewCell = self;
+}
+
+@end

Powered by Google App Engine
This is Rietveld 408576698