| // 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 ASH_CAPTURE_MODE_CAPTURE_MODE_DEMO_TOOLS_TEST_API_H_ |
| #define ASH_CAPTURE_MODE_CAPTURE_MODE_DEMO_TOOLS_TEST_API_H_ |
| |
| #include <vector> |
| |
| #include "base/containers/flat_map.h" |
| #include "base/functional/callback_forward.h" |
| #include "base/memory/raw_ptr.h" |
| #include "base/timer/timer.h" |
| #include "ui/events/keycodes/keyboard_codes_posix.h" |
| #include "ui/events/pointer_details.h" |
| |
| namespace views { |
| class ImageView; |
| class Widget; |
| } // namespace views |
| |
| namespace ash { |
| |
| class CaptureModeDemoToolsController; |
| class KeyComboView; |
| class PointerHighlightLayer; |
| |
| using MouseHighlightLayers = |
| std::vector<std::unique_ptr<PointerHighlightLayer>>; |
| |
| using TouchHighlightLayersMap = |
| base::flat_map<ui::PointerId, std::unique_ptr<PointerHighlightLayer>>; |
| |
| class CaptureModeDemoToolsTestApi { |
| public: |
| explicit CaptureModeDemoToolsTestApi( |
| CaptureModeDemoToolsController* demo_tools_controller); |
| CaptureModeDemoToolsTestApi(CaptureModeDemoToolsTestApi&) = delete; |
| CaptureModeDemoToolsTestApi& operator=(CaptureModeDemoToolsTestApi) = delete; |
| ~CaptureModeDemoToolsTestApi() = default; |
| |
| views::Widget* GetKeyComboWidget(); |
| |
| // Returns the contents view for the `key_combo_widget_`. |
| KeyComboView* GetKeyComboView(); |
| |
| // Returns the state of modifier keys in the `CaptureModeDemoToolsController`. |
| int GetCurrentModifiersFlags(); |
| |
| // Returns the most recently pressed non-modifier key in the |
| // `CaptureModeDemoToolsController`. |
| ui::KeyboardCode GetLastNonModifierKey(); |
| |
| // Returns the key code vector in the `ModifiersContainerView` of the |
| // `KeyComboView`. |
| std::vector<ui::KeyboardCode> GetShownModifiersKeyCodes(); |
| |
| // Returns the non-modifier key that is currently on display. |
| ui::KeyboardCode GetShownNonModifierKeyCode(); |
| |
| // Returns the timer to hide the key combo viewer on key up of the |
| // non-modifier key after the expiration. |
| base::OneShotTimer* GetRefreshKeyComboTimer(); |
| |
| // Returns the `icon_` of the non-modifier component of the key combo. |
| views::ImageView* GetNonModifierKeyItemIcon(); |
| |
| // Sets a callback that will be triggered once the mouse highlight animation |
| // ends. |
| void SetOnMouseHighlightAnimationEndedCallback(base::OnceClosure callback); |
| |
| const MouseHighlightLayers& GetMouseHighlightLayers() const; |
| |
| const TouchHighlightLayersMap& GetTouchIdToHighlightLayerMap() const; |
| |
| private: |
| const raw_ptr<CaptureModeDemoToolsController, |
| DanglingUntriaged | ExperimentalAsh> |
| demo_tools_controller_; |
| }; |
| |
| } // namespace ash |
| |
| #endif // ASH_CAPTURE_MODE_CAPTURE_MODE_DEMO_TOOLS_TEST_API_H_ |