| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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/clean/chrome/browser/ui/toolbar/toolbar_button+factory.h" | 5 #import "ios/clean/chrome/browser/ui/toolbar/toolbar_button+factory.h" |
| 6 | 6 |
| 7 #import "ios/chrome/browser/ui/rtl_geometry.h" | 7 #import "ios/chrome/browser/ui/rtl_geometry.h" |
| 8 #import "ios/chrome/browser/ui/uikit_ui_util.h" | 8 #import "ios/chrome/browser/ui/uikit_ui_util.h" |
| 9 #include "ios/chrome/grit/ios_theme_resources.h" | 9 #include "ios/chrome/grit/ios_theme_resources.h" |
| 10 | 10 |
| 11 #if !defined(__has_feature) || !__has_feature(objc_arc) | 11 #if !defined(__has_feature) || !__has_feature(objc_arc) |
| 12 #error "This file requires ARC support." | 12 #error "This file requires ARC support." |
| 13 #endif | 13 #endif |
| 14 | 14 |
| 15 namespace { | |
| 16 // ToolbarButton fixed width. | |
| 17 CGFloat kToolbarButtonWidth = 42.0f; | |
| 18 } // namespace | |
| 19 | |
| 20 @implementation ToolbarButton (Factory) | 15 @implementation ToolbarButton (Factory) |
| 21 | 16 |
| 22 #pragma mark - ToolbarButton Setup | 17 #pragma mark - ToolbarButton Setup |
| 23 | 18 |
| 24 + (instancetype)backToolbarButton { | 19 + (instancetype)backToolbarButton { |
| 25 ToolbarButton* backButton = [self | 20 ToolbarButton* backButton = [self |
| 26 toolbarButtonWithImageForNormalState:NativeReversableImage( | 21 toolbarButtonWithImageForNormalState:NativeReversableImage( |
| 27 IDR_IOS_TOOLBAR_LIGHT_BACK, YES) | 22 IDR_IOS_TOOLBAR_LIGHT_BACK, YES) |
| 28 imageForHighlightedState: | 23 imageForHighlightedState: |
| 29 NativeReversableImage(IDR_IOS_TOOLBAR_LIGHT_BACK_PRESSED, | 24 NativeReversableImage(IDR_IOS_TOOLBAR_LIGHT_BACK_PRESSED, |
| 30 YES) | 25 YES) |
| 31 imageForDisabledState: | 26 imageForDisabledState: |
| 32 NativeReversableImage( | 27 NativeReversableImage( |
| 33 IDR_IOS_TOOLBAR_LIGHT_BACK_DISABLED, YES)]; | 28 IDR_IOS_TOOLBAR_LIGHT_BACK_DISABLED, YES)]; |
| 34 [backButton.widthAnchor constraintEqualToConstant:kToolbarButtonWidth] | |
| 35 .active = YES; | |
| 36 return backButton; | 29 return backButton; |
| 37 } | 30 } |
| 38 | 31 |
| 39 + (instancetype)forwardToolbarButton { | 32 + (instancetype)forwardToolbarButton { |
| 40 ToolbarButton* forwardButton = [self | 33 ToolbarButton* forwardButton = [self |
| 41 toolbarButtonWithImageForNormalState:NativeReversableImage( | 34 toolbarButtonWithImageForNormalState:NativeReversableImage( |
| 42 IDR_IOS_TOOLBAR_LIGHT_FORWARD, | 35 IDR_IOS_TOOLBAR_LIGHT_FORWARD, |
| 43 YES) | 36 YES) |
| 44 imageForHighlightedState: | 37 imageForHighlightedState: |
| 45 NativeReversableImage( | 38 NativeReversableImage( |
| 46 IDR_IOS_TOOLBAR_LIGHT_FORWARD_PRESSED, YES) | 39 IDR_IOS_TOOLBAR_LIGHT_FORWARD_PRESSED, YES) |
| 47 imageForDisabledState: | 40 imageForDisabledState: |
| 48 NativeReversableImage( | 41 NativeReversableImage( |
| 49 IDR_IOS_TOOLBAR_LIGHT_FORWARD_DISABLED, YES)]; | 42 IDR_IOS_TOOLBAR_LIGHT_FORWARD_DISABLED, YES)]; |
| 50 [forwardButton.widthAnchor constraintEqualToConstant:kToolbarButtonWidth] | |
| 51 .active = YES; | |
| 52 return forwardButton; | 43 return forwardButton; |
| 53 } | 44 } |
| 54 | 45 |
| 55 + (instancetype)tabSwitcherStripToolbarButton { | 46 + (instancetype)tabSwitcherStripToolbarButton { |
| 56 ToolbarButton* tabSwitcherStripButton = | 47 ToolbarButton* tabSwitcherStripButton = |
| 57 [self toolbarButtonWithImageForNormalState: | 48 [self toolbarButtonWithImageForNormalState: |
| 58 [UIImage imageNamed:@"tabswitcher_open_tabs"] | 49 [UIImage imageNamed:@"tabswitcher_open_tabs"] |
| 59 imageForHighlightedState:nil | 50 imageForHighlightedState:nil |
| 60 imageForDisabledState:nil]; | 51 imageForDisabledState:nil]; |
| 61 [tabSwitcherStripButton.widthAnchor | |
| 62 constraintEqualToConstant:kToolbarButtonWidth] | |
| 63 .active = YES; | |
| 64 return tabSwitcherStripButton; | 52 return tabSwitcherStripButton; |
| 65 } | 53 } |
| 66 | 54 |
| 67 + (instancetype)tabSwitcherGridToolbarButton { | 55 + (instancetype)tabSwitcherGridToolbarButton { |
| 68 ToolbarButton* tabSwitcherGridButton = | 56 ToolbarButton* tabSwitcherGridButton = |
| 69 [self toolbarButtonWithImageForNormalState: | 57 [self toolbarButtonWithImageForNormalState: |
| 70 [UIImage imageNamed:@"tabswitcher_tab_switcher_button"] | 58 [UIImage imageNamed:@"tabswitcher_tab_switcher_button"] |
| 71 imageForHighlightedState:nil | 59 imageForHighlightedState:nil |
| 72 imageForDisabledState:nil]; | 60 imageForDisabledState:nil]; |
| 73 [tabSwitcherGridButton.widthAnchor | |
| 74 constraintEqualToConstant:kToolbarButtonWidth] | |
| 75 .active = YES; | |
| 76 return tabSwitcherGridButton; | 61 return tabSwitcherGridButton; |
| 77 } | 62 } |
| 78 | 63 |
| 79 + (instancetype)toolsMenuToolbarButton { | 64 + (instancetype)toolsMenuToolbarButton { |
| 80 ToolbarButton* toolsMenuButton = [self | 65 ToolbarButton* toolsMenuButton = [self |
| 81 toolbarButtonWithImageForNormalState:[UIImage | 66 toolbarButtonWithImageForNormalState:[UIImage |
| 82 imageNamed:@"tabswitcher_menu"] | 67 imageNamed:@"tabswitcher_menu"] |
| 83 imageForHighlightedState:nil | 68 imageForHighlightedState:nil |
| 84 imageForDisabledState:nil]; | 69 imageForDisabledState:nil]; |
| 85 [toolsMenuButton setImageEdgeInsets:UIEdgeInsetsMakeDirected(0, -3, 0, 0)]; | 70 [toolsMenuButton setImageEdgeInsets:UIEdgeInsetsMakeDirected(0, -3, 0, 0)]; |
| 86 [toolsMenuButton.widthAnchor constraintEqualToConstant:kToolbarButtonWidth] | |
| 87 .active = YES; | |
| 88 return toolsMenuButton; | 71 return toolsMenuButton; |
| 89 } | 72 } |
| 90 | 73 |
| 91 + (instancetype)shareToolbarButton { | 74 + (instancetype)shareToolbarButton { |
| 92 ToolbarButton* shareButton = [self | 75 ToolbarButton* shareButton = [self |
| 93 toolbarButtonWithImageForNormalState:NativeImage( | 76 toolbarButtonWithImageForNormalState:NativeImage( |
| 94 IDR_IOS_TOOLBAR_LIGHT_SHARE) | 77 IDR_IOS_TOOLBAR_LIGHT_SHARE) |
| 95 imageForHighlightedState: | 78 imageForHighlightedState: |
| 96 NativeImage(IDR_IOS_TOOLBAR_LIGHT_SHARE_PRESSED) | 79 NativeImage(IDR_IOS_TOOLBAR_LIGHT_SHARE_PRESSED) |
| 97 imageForDisabledState: | 80 imageForDisabledState: |
| 98 NativeImage(IDR_IOS_TOOLBAR_LIGHT_SHARE_DISABLED)]; | 81 NativeImage(IDR_IOS_TOOLBAR_LIGHT_SHARE_DISABLED)]; |
| 99 [shareButton.widthAnchor constraintEqualToConstant:kToolbarButtonWidth] | |
| 100 .active = YES; | |
| 101 return shareButton; | 82 return shareButton; |
| 102 } | 83 } |
| 103 | 84 |
| 104 + (instancetype)reloadToolbarButton { | 85 + (instancetype)reloadToolbarButton { |
| 105 ToolbarButton* reloadButton = [self | 86 ToolbarButton* reloadButton = [self |
| 106 toolbarButtonWithImageForNormalState:NativeReversableImage( | 87 toolbarButtonWithImageForNormalState:NativeReversableImage( |
| 107 IDR_IOS_TOOLBAR_LIGHT_RELOAD, | 88 IDR_IOS_TOOLBAR_LIGHT_RELOAD, |
| 108 YES) | 89 YES) |
| 109 imageForHighlightedState: | 90 imageForHighlightedState: |
| 110 NativeReversableImage( | 91 NativeReversableImage( |
| 111 IDR_IOS_TOOLBAR_LIGHT_RELOAD_PRESSED, YES) | 92 IDR_IOS_TOOLBAR_LIGHT_RELOAD_PRESSED, YES) |
| 112 imageForDisabledState: | 93 imageForDisabledState: |
| 113 NativeReversableImage( | 94 NativeReversableImage( |
| 114 IDR_IOS_TOOLBAR_LIGHT_RELOAD_DISABLED, YES)]; | 95 IDR_IOS_TOOLBAR_LIGHT_RELOAD_DISABLED, YES)]; |
| 115 [reloadButton.widthAnchor constraintEqualToConstant:kToolbarButtonWidth] | |
| 116 .active = YES; | |
| 117 return reloadButton; | 96 return reloadButton; |
| 118 } | 97 } |
| 119 | 98 |
| 120 + (instancetype)stopToolbarButton { | 99 + (instancetype)stopToolbarButton { |
| 121 ToolbarButton* stopButton = [self | 100 ToolbarButton* stopButton = [self |
| 122 toolbarButtonWithImageForNormalState:NativeImage( | 101 toolbarButtonWithImageForNormalState:NativeImage( |
| 123 IDR_IOS_TOOLBAR_LIGHT_STOP) | 102 IDR_IOS_TOOLBAR_LIGHT_STOP) |
| 124 imageForHighlightedState: | 103 imageForHighlightedState: |
| 125 NativeImage(IDR_IOS_TOOLBAR_LIGHT_STOP_PRESSED) | 104 NativeImage(IDR_IOS_TOOLBAR_LIGHT_STOP_PRESSED) |
| 126 imageForDisabledState: | 105 imageForDisabledState: |
| 127 NativeImage(IDR_IOS_TOOLBAR_LIGHT_STOP_DISABLED)]; | 106 NativeImage(IDR_IOS_TOOLBAR_LIGHT_STOP_DISABLED)]; |
| 128 [stopButton.widthAnchor constraintEqualToConstant:kToolbarButtonWidth] | |
| 129 .active = YES; | |
| 130 return stopButton; | 107 return stopButton; |
| 131 } | 108 } |
| 132 | 109 |
| 133 @end | 110 @end |
| OLD | NEW |