|  | // Copyright 2018 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. | 
|  |  | 
|  | #ifndef CHROME_BROWSER_UI_VIEWS_TOUCH_SELECTION_MENU_CHROMEOS_H_ | 
|  | #define CHROME_BROWSER_UI_VIEWS_TOUCH_SELECTION_MENU_CHROMEOS_H_ | 
|  |  | 
|  | #include <vector> | 
|  |  | 
|  | #include "components/arc/common/intent_helper.mojom.h" | 
|  | #include "ui/views/touchui/touch_selection_menu_views.h" | 
|  |  | 
|  | namespace views { | 
|  | class TouchSelectionMenuRunnerViews; | 
|  | } | 
|  |  | 
|  | // A ChromeOS specific subclass of the the bubble menu. It provides an | 
|  | // additional button for a Smart Text Selection action based on the current | 
|  | // user's text selection. | 
|  | class TouchSelectionMenuChromeOS : public views::TouchSelectionMenuViews { | 
|  | public: | 
|  | // Tag used to mark added actions/buttons as generated by the smart text | 
|  | // selection feature. | 
|  | enum { kSmartTextSelectionActionTag = -2 }; | 
|  |  | 
|  | TouchSelectionMenuChromeOS(views::TouchSelectionMenuRunnerViews* owner, | 
|  | ui::TouchSelectionMenuClient* client, | 
|  | aura::Window* context, | 
|  | arc::mojom::TextSelectionActionPtr action); | 
|  |  | 
|  | void SetActionsForTesting( | 
|  | std::vector<arc::mojom::TextSelectionActionPtr> actions); | 
|  |  | 
|  | protected: | 
|  | // views:TouchSelectionMenuViews. | 
|  | void CreateButtons() override; | 
|  | void ButtonPressed(views::Button* sender, const ui::Event& event) override; | 
|  |  | 
|  | private: | 
|  | ~TouchSelectionMenuChromeOS() override; | 
|  |  | 
|  | arc::mojom::TextSelectionActionPtr action_; | 
|  |  | 
|  | DISALLOW_COPY_AND_ASSIGN(TouchSelectionMenuChromeOS); | 
|  | }; | 
|  |  | 
|  | #endif  // CHROME_BROWSER_UI_VIEWS_TOUCH_SELECTION_MENU_CHROMEOS_H_ |