OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/google_landing_view_controller.h" | 5 #import "ios/chrome/browser/ui/ntp/google_landing_view_controller.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/mac/foundation_util.h" | 9 #include "base/mac/foundation_util.h" |
10 #include "base/metrics/user_metrics.h" | 10 #include "base/metrics/user_metrics.h" |
(...skipping 28 matching lines...) Expand all Loading... |
39 using base::UserMetricsAction; | 39 using base::UserMetricsAction; |
40 | 40 |
41 namespace { | 41 namespace { |
42 | 42 |
43 enum { | 43 enum { |
44 SectionWithOmnibox, | 44 SectionWithOmnibox, |
45 SectionWithMostVisited, | 45 SectionWithMostVisited, |
46 NumberOfCollectionViewSections, | 46 NumberOfCollectionViewSections, |
47 }; | 47 }; |
48 | 48 |
49 const CGFloat kVoiceSearchButtonWidth = 48; | |
50 const UIEdgeInsets kSearchBoxStretchInsets = {3, 3, 3, 3}; | 49 const UIEdgeInsets kSearchBoxStretchInsets = {3, 3, 3, 3}; |
51 | 50 |
52 const CGFloat kHintLabelSidePadding = 12; | 51 const CGFloat kHintLabelSidePadding = 12; |
53 const CGFloat kWhatsNewHeaderHiddenHeight = 8; | 52 const CGFloat kWhatsNewHeaderHiddenHeight = 8; |
54 const NSInteger kMaxNumMostVisitedFaviconRows = 2; | 53 const NSInteger kMaxNumMostVisitedFaviconRows = 2; |
55 const CGFloat kShiftTilesDownAnimationDuration = 0.2; | 54 const CGFloat kShiftTilesDownAnimationDuration = 0.2; |
56 | 55 |
57 } // namespace | 56 } // namespace |
58 | 57 |
59 @interface GoogleLandingViewController (UsedByGoogleLandingView) | 58 @interface GoogleLandingViewController (UsedByGoogleLandingView) |
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
410 [_searchTapTarget setAdjustsImageWhenHighlighted:NO]; | 409 [_searchTapTarget setAdjustsImageWhenHighlighted:NO]; |
411 [_searchTapTarget addTarget:self | 410 [_searchTapTarget addTarget:self |
412 action:@selector(searchFieldTapped:) | 411 action:@selector(searchFieldTapped:) |
413 forControlEvents:UIControlEventTouchUpInside]; | 412 forControlEvents:UIControlEventTouchUpInside]; |
414 [_searchTapTarget | 413 [_searchTapTarget |
415 setAccessibilityLabel:l10n_util::GetNSString(IDS_OMNIBOX_EMPTY_HINT)]; | 414 setAccessibilityLabel:l10n_util::GetNSString(IDS_OMNIBOX_EMPTY_HINT)]; |
416 // Set isAccessibilityElement to NO so that Voice Search button is accessible. | 415 // Set isAccessibilityElement to NO so that Voice Search button is accessible. |
417 [_searchTapTarget setIsAccessibilityElement:NO]; | 416 [_searchTapTarget setIsAccessibilityElement:NO]; |
418 | 417 |
419 // Set up fakebox hint label. | 418 // Set up fakebox hint label. |
420 CGRect hintFrame = CGRectInset([_searchTapTarget bounds], 12, 3); | 419 UILabel* searchHintLabel = content_suggestions::configuredSearchHintLabel( |
421 const CGFloat kVoiceSearchOffset = 48; | 420 _searchTapTarget.get(), searchFieldFrame.size.width); |
422 hintFrame.size.width = searchFieldFrame.size.width - kVoiceSearchOffset; | 421 |
423 UILabel* searchHintLabel = | |
424 [[[UILabel alloc] initWithFrame:hintFrame] autorelease]; | |
425 [_searchTapTarget addSubview:searchHintLabel]; | |
426 [searchHintLabel setTranslatesAutoresizingMaskIntoConstraints:NO]; | |
427 _hintLabelLeadingConstraint.reset([[searchHintLabel.leadingAnchor | 422 _hintLabelLeadingConstraint.reset([[searchHintLabel.leadingAnchor |
428 constraintEqualToAnchor:[_searchTapTarget leadingAnchor] | 423 constraintEqualToAnchor:[_searchTapTarget leadingAnchor] |
429 constant:kHintLabelSidePadding] retain]); | 424 constant:kHintLabelSidePadding] retain]); |
430 | 425 [_hintLabelLeadingConstraint setActive:YES]; |
431 [NSLayoutConstraint activateConstraints:@[ | |
432 [searchHintLabel.heightAnchor | |
433 constraintEqualToConstant:hintFrame.size.height], | |
434 [searchHintLabel.centerYAnchor | |
435 constraintEqualToAnchor:[_searchTapTarget centerYAnchor]], | |
436 _hintLabelLeadingConstraint | |
437 ]]; | |
438 | |
439 [searchHintLabel setText:l10n_util::GetNSString(IDS_OMNIBOX_EMPTY_HINT)]; | |
440 if (base::i18n::IsRTL()) { | |
441 [searchHintLabel setTextAlignment:NSTextAlignmentRight]; | |
442 } | |
443 [searchHintLabel | |
444 setTextColor:[UIColor | |
445 colorWithWhite:kiPhoneOmniboxPlaceholderColorBrightness | |
446 alpha:1.0]]; | |
447 [searchHintLabel setFont:[MDCTypography subheadFont]]; | |
448 | 426 |
449 // Add a voice search button. | 427 // Add a voice search button. |
450 UIImage* micImage = [UIImage imageNamed:@"voice_icon"]; | |
451 UIButton* voiceTapTarget = | 428 UIButton* voiceTapTarget = |
452 [[[UIButton alloc] initWithFrame:CGRectZero] autorelease]; | 429 content_suggestions::configuredVoiceTapTarget(_searchTapTarget.get()); |
453 [_searchTapTarget addSubview:voiceTapTarget]; | |
454 | 430 |
455 [voiceTapTarget setTranslatesAutoresizingMaskIntoConstraints:NO]; | |
456 _voiceTapTrailingConstraint.reset([[voiceTapTarget.trailingAnchor | 431 _voiceTapTrailingConstraint.reset([[voiceTapTarget.trailingAnchor |
457 constraintEqualToAnchor:[_searchTapTarget trailingAnchor]] retain]); | 432 constraintEqualToAnchor:[_searchTapTarget trailingAnchor]] retain]); |
458 | |
459 [NSLayoutConstraint activateConstraints:@[ | 433 [NSLayoutConstraint activateConstraints:@[ |
460 [voiceTapTarget.centerYAnchor | |
461 constraintEqualToAnchor:[_searchTapTarget centerYAnchor]], | |
462 [voiceTapTarget.widthAnchor | |
463 constraintEqualToConstant:kVoiceSearchButtonWidth], | |
464 [voiceTapTarget.heightAnchor | |
465 constraintEqualToAnchor:voiceTapTarget.widthAnchor], | |
466 [searchHintLabel.trailingAnchor | 434 [searchHintLabel.trailingAnchor |
467 constraintEqualToAnchor:voiceTapTarget.leadingAnchor], | 435 constraintEqualToAnchor:voiceTapTarget.leadingAnchor], |
468 _voiceTapTrailingConstraint | 436 _voiceTapTrailingConstraint |
469 ]]; | 437 ]]; |
470 | 438 |
471 [voiceTapTarget setAdjustsImageWhenHighlighted:NO]; | |
472 [voiceTapTarget setImage:micImage forState:UIControlStateNormal]; | |
473 [voiceTapTarget setTag:IDC_VOICE_SEARCH]; | |
474 [voiceTapTarget setAccessibilityLabel:l10n_util::GetNSString( | |
475 IDS_IOS_ACCNAME_VOICE_SEARCH)]; | |
476 [voiceTapTarget setAccessibilityIdentifier:@"Voice Search"]; | |
477 | |
478 if (self.voiceSearchIsEnabled) { | 439 if (self.voiceSearchIsEnabled) { |
479 [voiceTapTarget addTarget:self | 440 [voiceTapTarget addTarget:self |
480 action:@selector(loadVoiceSearch:) | 441 action:@selector(loadVoiceSearch:) |
481 forControlEvents:UIControlEventTouchUpInside]; | 442 forControlEvents:UIControlEventTouchUpInside]; |
482 [voiceTapTarget addTarget:self | 443 [voiceTapTarget addTarget:self |
483 action:@selector(preloadVoiceSearch:) | 444 action:@selector(preloadVoiceSearch:) |
484 forControlEvents:UIControlEventTouchDown]; | 445 forControlEvents:UIControlEventTouchDown]; |
485 } else { | 446 } else { |
486 [voiceTapTarget setEnabled:NO]; | 447 [voiceTapTarget setEnabled:NO]; |
487 } | 448 } |
(...skipping 876 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1364 - (void)setCanGoForward:(BOOL)canGoForward { | 1325 - (void)setCanGoForward:(BOOL)canGoForward { |
1365 _canGoForward = canGoForward; | 1326 _canGoForward = canGoForward; |
1366 [_headerView setCanGoForward:self.canGoForward]; | 1327 [_headerView setCanGoForward:self.canGoForward]; |
1367 } | 1328 } |
1368 | 1329 |
1369 - (void)setCanGoBack:(BOOL)canGoBack { | 1330 - (void)setCanGoBack:(BOOL)canGoBack { |
1370 _canGoBack = canGoBack; | 1331 _canGoBack = canGoBack; |
1371 [_headerView setCanGoBack:self.canGoBack]; | 1332 [_headerView setCanGoBack:self.canGoBack]; |
1372 } | 1333 } |
1373 @end | 1334 @end |
OLD | NEW |