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

Side by Side Diff: ios/chrome/browser/ui/ntp/recent_tabs/recent_tabs_panel_view_controller.mm

Issue 2791393003: [ObjC ARC] Converts ios/chrome/browser/ui/ntp/recent_tabs:recent_tabs to ARC. (Closed)
Patch Set: weak Created 3 years, 8 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/ntp/recent_tabs/recent_tabs_panel_view_controller .h" 5 #import "ios/chrome/browser/ui/ntp/recent_tabs/recent_tabs_panel_view_controller .h"
6 6
7 #import "base/mac/scoped_nsobject.h" 7 #include "base/logging.h"
8 #import "ios/chrome/browser/ui/ntp/recent_tabs/recent_tabs_panel_controller.h" 8 #import "ios/chrome/browser/ui/ntp/recent_tabs/recent_tabs_panel_controller.h"
9 #import "ios/chrome/browser/ui/ntp/recent_tabs/views/panel_bar_view.h" 9 #import "ios/chrome/browser/ui/ntp/recent_tabs/views/panel_bar_view.h"
10 #import "ios/chrome/browser/ui/uikit_ui_util.h" 10 #import "ios/chrome/browser/ui/uikit_ui_util.h"
11 #include "ios/chrome/grit/ios_theme_resources.h" 11 #include "ios/chrome/grit/ios_theme_resources.h"
12 #include "ui/base/l10n/l10n_util.h" 12 #include "ui/base/l10n/l10n_util.h"
13 #include "ui/base/l10n/l10n_util_mac.h" 13 #include "ui/base/l10n/l10n_util_mac.h"
14 14
15 #if !defined(__has_feature) || !__has_feature(objc_arc)
16 #error "This file requires ARC support."
17 #endif
18
15 // A UIViewController that forces the status bar to be visible. 19 // A UIViewController that forces the status bar to be visible.
16 @interface RecentTabsWrapperViewController : UIViewController 20 @interface RecentTabsWrapperViewController : UIViewController
17 @end 21 @end
18 22
19 @implementation RecentTabsWrapperViewController 23 @implementation RecentTabsWrapperViewController
20 24
21 - (BOOL)prefersStatusBarHidden { 25 - (BOOL)prefersStatusBarHidden {
22 return NO; 26 return NO;
23 } 27 }
24 28
25 @end 29 @end
26 30
27 @implementation RecentTabsPanelViewController { 31 @implementation RecentTabsPanelViewController {
28 base::scoped_nsobject<RecentTabsPanelController> _recentTabsController; 32 RecentTabsPanelController* _recentTabsController;
29 base::scoped_nsobject<PanelBarView> _panelBarView; 33 PanelBarView* _panelBarView;
30 } 34 }
31 35
32 + (UIViewController*)controllerToPresentForBrowserState: 36 + (UIViewController*)controllerToPresentForBrowserState:
33 (ios::ChromeBrowserState*)browserState 37 (ios::ChromeBrowserState*)browserState
34 loader:(id<UrlLoader>)loader { 38 loader:(id<UrlLoader>)loader {
35 UIViewController* controller = 39 UIViewController* controller = [[RecentTabsWrapperViewController alloc] init];
36 [[[RecentTabsWrapperViewController alloc] init] autorelease]; 40 RecentTabsPanelViewController* rtpvc =
37 RecentTabsPanelViewController* rtpvc = [[[RecentTabsPanelViewController alloc] 41 [[RecentTabsPanelViewController alloc] initWithLoader:loader
38 initWithLoader:loader 42 browserState:browserState];
39 browserState:browserState] autorelease];
40 [controller addChildViewController:rtpvc]; 43 [controller addChildViewController:rtpvc];
41 44
42 PanelBarView* panelBarView = [[[PanelBarView alloc] init] autorelease]; 45 PanelBarView* panelBarView = [[PanelBarView alloc] init];
43 rtpvc->_panelBarView.reset([panelBarView retain]); 46 rtpvc->_panelBarView = panelBarView;
44 [panelBarView setCloseTarget:rtpvc action:@selector(didFinish)]; 47 [panelBarView setCloseTarget:rtpvc action:@selector(didFinish)];
45 base::scoped_nsobject<UIImageView> shadow( 48 UIImageView* shadow =
46 [[UIImageView alloc] initWithImage:NativeImage(IDR_IOS_TOOLBAR_SHADOW)]); 49 [[UIImageView alloc] initWithImage:NativeImage(IDR_IOS_TOOLBAR_SHADOW)];
47 50
48 [panelBarView setTranslatesAutoresizingMaskIntoConstraints:NO]; 51 [panelBarView setTranslatesAutoresizingMaskIntoConstraints:NO];
49 [rtpvc.view setTranslatesAutoresizingMaskIntoConstraints:NO]; 52 [rtpvc.view setTranslatesAutoresizingMaskIntoConstraints:NO];
50 [shadow setTranslatesAutoresizingMaskIntoConstraints:NO]; 53 [shadow setTranslatesAutoresizingMaskIntoConstraints:NO];
51 54
52 [controller.view addSubview:panelBarView]; 55 [controller.view addSubview:panelBarView];
53 [controller.view addSubview:rtpvc.view]; 56 [controller.view addSubview:rtpvc.view];
54 [controller.view addSubview:shadow]; 57 [controller.view addSubview:shadow];
55 58
56 NSDictionary* viewsDictionary = 59 NSDictionary* viewsDictionary =
57 @{ @"bar" : panelBarView, 60 @{ @"bar" : panelBarView,
58 @"table" : rtpvc.view, 61 @"table" : rtpvc.view,
59 @"shadow" : shadow }; 62 @"shadow" : shadow };
60 // clang-format off 63 // clang-format off
61 NSArray* constraints = @[ 64 NSArray* constraints = @[
62 @"V:|-0-[bar]-0-[table]-0-|", 65 @"V:|-0-[bar]-0-[table]-0-|",
63 @"V:[bar]-0-[shadow]", 66 @"V:[bar]-0-[shadow]",
64 @"H:|-0-[bar]-0-|", 67 @"H:|-0-[bar]-0-|",
65 @"H:|-0-[table]-0-|", 68 @"H:|-0-[table]-0-|",
66 @"H:|-0-[shadow]-0-|" 69 @"H:|-0-[shadow]-0-|"
67 ]; 70 ];
68 // clang-format on 71 // clang-format on
69 ApplyVisualConstraints(constraints, viewsDictionary, controller.view); 72 ApplyVisualConstraints(constraints, viewsDictionary, controller.view);
70 return controller; 73 return controller;
71 } 74 }
72 75
73 - (void)dealloc { 76 - (void)dealloc {
74 [_recentTabsController dismissKeyboard]; 77 [_recentTabsController dismissKeyboard];
75 [_recentTabsController dismissModals]; 78 [_recentTabsController dismissModals];
76 [super dealloc];
77 } 79 }
78 80
79 - (instancetype)initWithLoader:(id<UrlLoader>)loader 81 - (instancetype)initWithLoader:(id<UrlLoader>)loader
80 browserState:(ios::ChromeBrowserState*)browserState { 82 browserState:(ios::ChromeBrowserState*)browserState {
81 self = [super initWithNibName:nil bundle:nil]; 83 self = [super initWithNibName:nil bundle:nil];
82 if (self) { 84 if (self) {
83 _recentTabsController.reset([[RecentTabsPanelController alloc] 85 _recentTabsController =
84 initWithLoader:loader 86 [[RecentTabsPanelController alloc] initWithLoader:loader
85 browserState:browserState]); 87 browserState:browserState];
86 if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) 88 if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
87 self.edgesForExtendedLayout = UIRectEdgeNone; 89 self.edgesForExtendedLayout = UIRectEdgeNone;
88 } 90 }
89 return self; 91 return self;
90 } 92 }
91 93
92 - (instancetype)initWithNibName:(NSString*)nibNameOrNil 94 - (instancetype)initWithNibName:(NSString*)nibNameOrNil
93 bundle:(NSBundle*)nibBundleOrNil { 95 bundle:(NSBundle*)nibBundleOrNil {
94 NOTREACHED(); 96 NOTREACHED();
95 return nil; 97 return nil;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 129
128 #pragma mark Actions 130 #pragma mark Actions
129 131
130 - (void)didFinish { 132 - (void)didFinish {
131 [self dismissViewControllerAnimated:YES 133 [self dismissViewControllerAnimated:YES
132 completion:^{ 134 completion:^{
133 }]; 135 }];
134 } 136 }
135 137
136 @end 138 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698