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 #ifndef IOS_CHROME_SEARCH_WIDGET_EXTENSION_SEARCH_WIDGET_VIEW_H_ | 5 #ifndef IOS_CHROME_SEARCH_WIDGET_EXTENSION_SEARCH_WIDGET_VIEW_H_ |
6 #define IOS_CHROME_SEARCH_WIDGET_EXTENSION_SEARCH_WIDGET_VIEW_H_ | 6 #define IOS_CHROME_SEARCH_WIDGET_EXTENSION_SEARCH_WIDGET_VIEW_H_ |
7 | 7 |
8 #import <UIKit/UIKit.h> | 8 #import <UIKit/UIKit.h> |
9 | 9 |
10 // Protocol to be implemented by targets for user actions coming from the search | 10 // Protocol to be implemented by targets for user actions coming from the search |
11 // widget view. | 11 // widget view. |
12 @protocol SearchWidgetViewActionTarget | 12 @protocol SearchWidgetViewActionTarget |
13 | 13 |
14 // Called when the user taps the Search button. | 14 // Called when the user taps the Search button. |
15 - (void)openSearch:(id)sender; | 15 - (void)openSearch:(id)sender; |
16 // Called when the user taps the Incognito Search button. | 16 // Called when the user taps the Incognito Search button. |
17 - (void)openIncognito:(id)sender; | 17 - (void)openIncognito:(id)sender; |
18 // Called when the user taps the Voice Search button. | 18 // Called when the user taps the Voice Search button. |
19 - (void)openVoice:(id)sender; | 19 - (void)openVoice:(id)sender; |
20 // Called when the user taps the QR Code button. | 20 // Called when the user taps the QR Code button. |
21 - (void)openQRCode:(id)sender; | 21 - (void)openQRCode:(id)sender; |
22 // Called when the user taps the Open Copied URL section. | 22 // Called when the user taps the Open Copied URL section. |
23 - (void)openCopiedURL:(id)sender; | 23 - (void)openCopiedURL:(id)sender; |
24 | 24 |
25 @end | 25 @end |
26 | 26 |
27 // View for the search widget. Shows a blinking cursor for a fake omnibox and | 27 // View for the search widget. Shows two sections. The first section is a row of |
28 // calls the target when tapped. | 28 // actions to launch the app represented as a circular icon and a label. When |
| 29 // tapped, they call the callbacks in the SearchWidgetViewActionTarget protocol. |
| 30 // The second section shows a button with the |copiedURLString| if it has been |
| 31 // set. When tapped, the openCopiedURL callback in SearchWidgetViewActionTarget |
| 32 // is called. If no |copiedURLString| was set, the button is replaced by a |
| 33 // hairline separation and placeholder text. This section can be hidden with the |
| 34 // |copiedURLVisible| variable. |
29 @interface SearchWidgetView : UIView | 35 @interface SearchWidgetView : UIView |
30 | 36 |
| 37 // Set this property to show/hide the copied URL section. |
| 38 @property(nonatomic, assign) BOOL copiedURLVisible; |
| 39 |
| 40 // The copied URL string to be shown in the copied URL section. |
| 41 @property(nonatomic, copy) NSString* copiedURLString; |
| 42 |
31 // Designated initializer, creates the widget view with a |target| for user | 43 // Designated initializer, creates the widget view with a |target| for user |
32 // actions. | 44 // actions. View elements will be added to the |primaryVibrancyEffect| and |
| 45 // |secondaryVibrancyEffect| views. |
33 - (instancetype)initWithActionTarget:(id<SearchWidgetViewActionTarget>)target | 46 - (instancetype)initWithActionTarget:(id<SearchWidgetViewActionTarget>)target |
| 47 primaryVibrancyEffect:(UIVibrancyEffect*)primaryVibrancyEffect |
| 48 secondaryVibrancyEffect:(UIVibrancyEffect*)secondaryVibrancyEffect |
34 NS_DESIGNATED_INITIALIZER; | 49 NS_DESIGNATED_INITIALIZER; |
35 - (instancetype)initWithFrame:(CGRect)frame NS_UNAVAILABLE; | 50 - (instancetype)initWithFrame:(CGRect)frame NS_UNAVAILABLE; |
36 - (instancetype)initWithCoder:(NSCoder*)aDecoder NS_UNAVAILABLE; | 51 - (instancetype)initWithCoder:(NSCoder*)aDecoder NS_UNAVAILABLE; |
37 | 52 |
38 // Updates the copied URL. | |
39 - (void)updateCopiedURL:(NSString*)copiedURL; | |
40 | |
41 @end | 53 @end |
42 | 54 |
43 #endif // IOS_CHROME_SEARCH_WIDGET_EXTENSION_SEARCH_WIDGET_VIEW_H_ | 55 #endif // IOS_CHROME_SEARCH_WIDGET_EXTENSION_SEARCH_WIDGET_VIEW_H_ |
OLD | NEW |