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

Side by Side Diff: ios/chrome/widget_extension/widget_view.mm

Issue 2814783003: Rename widget to search widget and use new bundleid to always build. (Closed)
Patch Set: seems I didn't actually delete widget_view_controller... 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #import "ios/chrome/widget_extension/widget_view.h"
6
7 #include "base/logging.h"
8
9 #if !defined(__has_feature) || !__has_feature(objc_arc)
10 #error "This file requires ARC support."
11 #endif
12
13 namespace {
14
15 const CGFloat kCursorHeight = 40;
16 const CGFloat kCursorWidth = 2;
17 const CGFloat kCursorHorizontalPadding = 10;
18 const CGFloat kCursorVerticalPadding = 10;
19 const CGFloat kFakeboxHorizontalPadding = 40;
20 const CGFloat kFakeboxVerticalPadding = 40;
21
22 } // namespace
23
24 @interface WidgetView () {
25 __weak id<WidgetViewActionTarget> _target;
26 }
27
28 @property(nonatomic, copy) NSString* copiedURL;
29 @property(nonatomic, strong) UILabel* copiedURLLabel;
30 @property(nonatomic, weak) UIView* cursor;
31
32 // Creates and adds a fake omnibox with blinking cursor to the view and sets the
33 // class cursor property.
34 - (void)addFakebox;
35
36 @end
37
38 @implementation WidgetView
39
40 @synthesize copiedURL = _copiedURL;
41 @synthesize copiedURLLabel = _copiedURLLabel;
42
43 @synthesize cursor = _cursor;
44
45 - (instancetype)initWithActionTarget:(id<WidgetViewActionTarget>)target {
46 self = [super initWithFrame:CGRectZero];
47 if (self) {
48 DCHECK(target);
49 _target = target;
50 [self addFakebox];
51 }
52 return self;
53 }
54
55 - (void)addFakebox {
56 UIView* fakebox = [[UIView alloc] initWithFrame:CGRectZero];
57
58 UIGestureRecognizer* tapRecognizer =
59 [[UITapGestureRecognizer alloc] initWithTarget:_target
60 action:@selector(openSearch:)];
61
62 [fakebox addGestureRecognizer:tapRecognizer];
63 [self addSubview:fakebox];
64
65 UIView* cursor = [[UIView alloc] initWithFrame:CGRectZero];
66 self.cursor = cursor;
67 self.cursor.backgroundColor = [UIColor blueColor];
68 [fakebox addSubview:self.cursor];
69
70 [fakebox setTranslatesAutoresizingMaskIntoConstraints:NO];
71 [self.cursor setTranslatesAutoresizingMaskIntoConstraints:NO];
72 [NSLayoutConstraint activateConstraints:@[
73 [[fakebox leadingAnchor] constraintEqualToAnchor:self.leadingAnchor
74 constant:kFakeboxHorizontalPadding],
75 [[fakebox trailingAnchor]
76 constraintEqualToAnchor:self.trailingAnchor
77 constant:-kFakeboxHorizontalPadding],
78 [[fakebox topAnchor] constraintEqualToAnchor:self.topAnchor
79 constant:kFakeboxVerticalPadding],
80 [[fakebox heightAnchor]
81 constraintEqualToConstant:kCursorHeight + 2 * kCursorVerticalPadding],
82
83 [[self.cursor widthAnchor] constraintEqualToConstant:kCursorWidth],
84 [[self.cursor leadingAnchor]
85 constraintEqualToAnchor:fakebox.leadingAnchor
86 constant:kCursorHorizontalPadding],
87 [[self.cursor heightAnchor] constraintEqualToConstant:kCursorHeight],
88 [[self.cursor centerYAnchor] constraintEqualToAnchor:fakebox.centerYAnchor]
89 ]];
90
91 [UIView animateWithDuration:0.3
92 delay:0.0
93 options:UIViewAnimationOptionRepeat |
94 UIViewAnimationOptionAutoreverse
95 animations:^{
96 self.cursor.alpha = 0.0f;
97 }
98 completion:nil];
99 }
100
101 - (void)updateCopiedURL:(NSString*)copiedURL {
102 self.copiedURL = copiedURL;
103 self.copiedURLLabel.text = copiedURL;
104 }
105
106 @end
OLDNEW
« no previous file with comments | « ios/chrome/widget_extension/widget_view.h ('k') | ios/chrome/widget_extension/widget_view_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698