Index: ios/web_view/shell/shell_view_controller.mm |
diff --git a/ios/web_view/shell/shell_view_controller.mm b/ios/web_view/shell/shell_view_controller.mm |
deleted file mode 100644 |
index ed95efaa9b332fa023891b7f42627f415fc12d8a..0000000000000000000000000000000000000000 |
--- a/ios/web_view/shell/shell_view_controller.mm |
+++ /dev/null |
@@ -1,206 +0,0 @@ |
-// 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/web_view/shell/shell_view_controller.h" |
- |
-#import "ios/web_view/public/criwv.h" |
-#import "ios/web_view/public/criwv_web_view.h" |
-#import "ios/web_view/shell/translate_controller.h" |
- |
-#if !defined(__has_feature) || !__has_feature(objc_arc) |
-#error "This file requires ARC support." |
-#endif |
- |
-namespace { |
-const CGFloat kButtonSize = 44; |
-} |
- |
-@interface ShellViewController () |
-// Container for |webView|. |
-@property (nonatomic, strong) UIView* containerView; |
-// Text field used for navigating to URLs. |
-@property (nonatomic, strong) UITextField* field; |
-// Toolbar containing navigation buttons and |field|. |
-@property (nonatomic, strong) UIToolbar* toolbar; |
-// CRIWV view which renders the web page. |
-@property (nonatomic, strong) id<CRIWVWebView> webView; |
-// Handles the translation of the content displayed in |webView|. |
-@property (nonatomic, strong) TranslateController* translateController; |
- |
-- (void)back; |
-- (void)forward; |
-- (void)stopLoading; |
-@end |
- |
-@implementation ShellViewController |
- |
-@synthesize containerView = _containerView; |
-@synthesize field = _field; |
-@synthesize toolbar = _toolbar; |
-@synthesize webView = _webView; |
-@synthesize translateController = _translateController; |
- |
-- (void)viewDidLoad { |
- [super viewDidLoad]; |
- |
- CGRect bounds = self.view.bounds; |
- |
- // Set up the toolbar. |
- self.toolbar = [[UIToolbar alloc] init]; |
- [_toolbar setBarTintColor:[UIColor colorWithRed:0.337 |
- green:0.467 |
- blue:0.988 |
- alpha:1.0]]; |
- [_toolbar setFrame:CGRectMake(0, 20, CGRectGetWidth(bounds), 44)]; |
- [_toolbar setAutoresizingMask:UIViewAutoresizingFlexibleWidth | |
- UIViewAutoresizingFlexibleBottomMargin]; |
- [self.view addSubview:_toolbar]; |
- |
- // Set up the container view. |
- self.containerView = [[UIView alloc] init]; |
- [_containerView setFrame:CGRectMake(0, 64, CGRectGetWidth(bounds), |
- CGRectGetHeight(bounds) - 64)]; |
- [_containerView setBackgroundColor:[UIColor lightGrayColor]]; |
- [_containerView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | |
- UIViewAutoresizingFlexibleHeight]; |
- [self.view addSubview:_containerView]; |
- |
- // Text field. |
- const int kButtonCount = 3; |
- self.field = [[UITextField alloc] |
- initWithFrame:CGRectMake(kButtonCount * kButtonSize, 6, |
- CGRectGetWidth([_toolbar frame]) - |
- kButtonCount * kButtonSize - 10, |
- 31)]; |
- [_field setDelegate:self]; |
- [_field setBackground:[[UIImage imageNamed:@"textfield_background"] |
- resizableImageWithCapInsets:UIEdgeInsetsMake( |
- 12, 12, 12, 12)]]; |
- [_field setAutoresizingMask:UIViewAutoresizingFlexibleWidth]; |
- [_field setKeyboardType:UIKeyboardTypeWebSearch]; |
- [_field setAutocorrectionType:UITextAutocorrectionTypeNo]; |
- [_field setClearButtonMode:UITextFieldViewModeWhileEditing]; |
- |
- // Set up the toolbar buttons. |
- // Back. |
- UIButton* back = [UIButton buttonWithType:UIButtonTypeCustom]; |
- [back setImage:[UIImage imageNamed:@"toolbar_back"] |
- forState:UIControlStateNormal]; |
- [back setFrame:CGRectMake(0, 0, kButtonSize, kButtonSize)]; |
- UIEdgeInsets insets = UIEdgeInsetsMake(5, 5, 4, 4); |
- [back setImageEdgeInsets:insets]; |
- [back setAutoresizingMask:UIViewAutoresizingFlexibleRightMargin]; |
- [back addTarget:self |
- action:@selector(back) |
- forControlEvents:UIControlEventTouchUpInside]; |
- |
- // Forward. |
- UIButton* forward = [UIButton buttonWithType:UIButtonTypeCustom]; |
- [forward setImage:[UIImage imageNamed:@"toolbar_forward"] |
- forState:UIControlStateNormal]; |
- [forward setFrame:CGRectMake(kButtonSize, 0, kButtonSize, kButtonSize)]; |
- [forward setImageEdgeInsets:insets]; |
- [forward setAutoresizingMask:UIViewAutoresizingFlexibleRightMargin]; |
- [forward addTarget:self |
- action:@selector(forward) |
- forControlEvents:UIControlEventTouchUpInside]; |
- |
- // Stop. |
- UIButton* stop = [UIButton buttonWithType:UIButtonTypeCustom]; |
- [stop setImage:[UIImage imageNamed:@"toolbar_stop"] |
- forState:UIControlStateNormal]; |
- [stop setFrame:CGRectMake(2 * kButtonSize, 0, kButtonSize, kButtonSize)]; |
- [stop setImageEdgeInsets:insets]; |
- [stop setAutoresizingMask:UIViewAutoresizingFlexibleRightMargin]; |
- [stop addTarget:self |
- action:@selector(stopLoading) |
- forControlEvents:UIControlEventTouchUpInside]; |
- |
- [_toolbar addSubview:back]; |
- [_toolbar addSubview:forward]; |
- [_toolbar addSubview:stop]; |
- [_toolbar addSubview:_field]; |
- |
- self.webView = [CRIWV webView]; |
- [_webView setDelegate:self]; |
- UIView* view = [_webView view]; |
- [_containerView addSubview:view]; |
- [view setFrame:[_containerView bounds]]; |
- [view setAutoresizingMask:UIViewAutoresizingFlexibleWidth | |
- UIViewAutoresizingFlexibleHeight]; |
- |
- [_webView loadURL:[NSURL URLWithString:@"https://www.google.com/"]]; |
-} |
- |
-- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar { |
- if (bar == _toolbar) { |
- return UIBarPositionTopAttached; |
- } |
- return UIBarPositionAny; |
-} |
- |
-- (void)back { |
- if ([_webView canGoBack]) { |
- [_webView goBack]; |
- } |
-} |
- |
-- (void)forward { |
- if ([_webView canGoForward]) { |
- [_webView goForward]; |
- } |
-} |
- |
-- (void)stopLoading { |
- [_webView stopLoading]; |
-} |
- |
-- (BOOL)textFieldShouldReturn:(UITextField*)field { |
- [_webView loadURL:[NSURL URLWithString:[field text]]]; |
- [field resignFirstResponder]; |
- [self updateToolbar]; |
- return YES; |
-} |
- |
-- (void)updateToolbar { |
- // Do not update the URL if the text field is currently being edited. |
- if ([_field isFirstResponder]) { |
- return; |
- } |
- |
- [_field setText:[[_webView visibleURL] absoluteString]]; |
-} |
- |
-#pragma mark CRIWVWebViewDelegate methods |
- |
-- (void)webView:(id<CRIWVWebView>)webView |
- didFinishLoadingWithURL:(NSURL*)url |
- loadSuccess:(BOOL)loadSuccess { |
- // TODO(crbug.com/679895): Add some visual indication that the page load has |
- // finished. |
- [self updateToolbar]; |
-} |
- |
-- (void)webView:(id<CRIWVWebView>)webView |
- didUpdateWithChanges:(CRIWVWebViewUpdateType)changes { |
- if (changes & CRIWVWebViewUpdateTypeProgress) { |
- // TODO(crbug.com/679895): Add a progress indicator. |
- } |
- |
- if (changes & CRIWVWebViewUpdateTypeTitle) { |
- // TODO(crbug.com/679895): Add a title display. |
- } |
- |
- if (changes & CRIWVWebViewUpdateTypeURL) { |
- [self updateToolbar]; |
- } |
-} |
- |
-- (id<CRIWVTranslateDelegate>)translateDelegate { |
- if (!_translateController) |
- self.translateController = [[TranslateController alloc] init]; |
- return _translateController; |
-} |
- |
-@end |