#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 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();
KeyComboView* GetKeyComboView();
int GetCurrentModifiersFlags();
ui::KeyboardCode GetLastNonModifierKey();
std::vector<ui::KeyboardCode> GetShownModifiersKeyCodes();
ui::KeyboardCode GetShownNonModifierKeyCode();
base::OneShotTimer* GetRefreshKeyComboTimer();
views::ImageView* GetNonModifierKeyItemIcon();
void SetOnMouseHighlightAnimationEndedCallback(base::OnceClosure callback);
const MouseHighlightLayers& GetMouseHighlightLayers() const;
const TouchHighlightLayersMap& GetTouchIdToHighlightLayerMap() const;
private:
const raw_ptr<CaptureModeDemoToolsController, DanglingUntriaged>
demo_tools_controller_;
};
}
#endif