// Copyright 2016 The Chromium Authors // 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_INTENT_PICKER_BUBBLE_VIEW_H_ #define CHROME_BROWSER_UI_VIEWS_INTENT_PICKER_BUBBLE_VIEW_H_ #include <memory> #include <optional> #include <string> #include <vector> #include "base/auto_reset.h" #include "base/gtest_prod_util.h" #include "base/memory/raw_ptr.h" #include "chrome/browser/apps/link_capturing/intent_picker_info.h" #include "chrome/browser/ui/views/location_bar/location_bar_bubble_delegate_view.h" #include "ui/base/accelerators/accelerator.h" #include "ui/gfx/image/image.h" #include "ui/views/animation/ink_drop_state.h" #include "ui/views/controls/scroll_view.h" #include "url/origin.h" namespace content { class WebContents; } // namespace content namespace views { class Button; class Checkbox; class Widget; } // namespace views // A bubble that displays a list of applications (icons and names), after the // list the UI displays a checkbox to allow the user remember the selection and // after that a couple of buttons for either using the selected app or just // staying in Chrome. The top right close button and clicking somewhere else // outside of the bubble allows the user to dismiss the bubble (and stay in // Chrome) without remembering any decision. // // This class communicates the user's selection with a callback supplied by // AppsNavigationThrottle. // +--------------------------------+ // | Open with [x] | // | | // | Icon1 Name1 | // | Icon2 Name2 | // | ... | // | Icon(N) Name(N) | // | | // | [_] Remember my choice | // | | // | [Use app] [Stay in Chrome] | // +--------------------------------+ class IntentPickerBubbleView : public LocationBarBubbleDelegateView { … }; #endif // CHROME_BROWSER_UI_VIEWS_INTENT_PICKER_BUBBLE_VIEW_H_