| // Copyright 2022 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef IOS_CHROME_BROWSER_OMNIBOX_MODEL_OMNIBOX_PEDAL_ANNOTATOR_H_ |
| #define IOS_CHROME_BROWSER_OMNIBOX_MODEL_OMNIBOX_PEDAL_ANNOTATOR_H_ |
| |
| #import <UIKit/UIKit.h> |
| |
| @protocol ApplicationCommands; |
| struct AutocompleteMatch; |
| @protocol OmniboxCommands; |
| @class OmniboxPedalData; |
| @protocol QuickDeleteCommands; |
| @protocol SettingsCommands; |
| |
| /// A class to add pedal data to a given autocomplete match object |
| @interface OmniboxPedalAnnotator : NSObject |
| |
| /// The endpoint that handles Actions and Pedals application commands. |
| @property(nonatomic, weak) id<ApplicationCommands> applicationHandler; |
| |
| /// The endpoint that handles Actions and Pedals settings commands. |
| @property(nonatomic, weak) id<SettingsCommands> settingsHandler; |
| |
| /// The endpoint that handles Omnibox commands. |
| @property(nonatomic, weak) id<OmniboxCommands> omniboxHandler; |
| |
| /// The endpoint that handles QuickDelete commands. |
| @property(nonatomic, weak) id<QuickDeleteCommands> quickDeleteHandler; |
| |
| /// Creates a new pedal for the provided match. |
| - (OmniboxPedalData*)pedalForMatch:(const AutocompleteMatch&)match; |
| |
| @end |
| |
| #endif // IOS_CHROME_BROWSER_OMNIBOX_MODEL_OMNIBOX_PEDAL_ANNOTATOR_H_ |