#ifndef ASH_VIRTUAL_TRACKPAD_VIRTUAL_TRACKPAD_VIEW_H_
#define ASH_VIRTUAL_TRACKPAD_VIRTUAL_TRACKPAD_VIEW_H_
#include "ash/ash_export.h"
#include "base/containers/flat_map.h"
#include "base/memory/raw_ptr.h"
#include "ui/views/layout/box_layout_view.h"
#include "ui/views/view.h"
namespace views {
class LabelButton;
class Widget;
}
namespace ash {
class BlurredBackgroundShield;
class TrackpadInternalSurfaceView;
class VirtualTrackpadView : public views::View {
METADATA_HEADER(VirtualTrackpadView, views::View)
public:
VirtualTrackpadView();
VirtualTrackpadView(const VirtualTrackpadView&) = delete;
VirtualTrackpadView& operator=(const VirtualTrackpadView&) = delete;
~VirtualTrackpadView() override;
static void Toggle();
void AddedToWidget() override;
void Layout(PassKey) override;
static ASH_EXPORT views::Widget* GetWidgetForTesting();
private:
friend class VirtualTrackpadTest;
void OnFingerButtonPressed(int num_fingers);
void UpdateFingerButtonsColors();
ASH_EXPORT views::View* GetTrackpadViewForTesting();
raw_ptr<views::BoxLayoutView> finger_buttons_panel_;
base::flat_map<int, raw_ptr<views::LabelButton, CtnExperimental>>
finger_buttons_;
raw_ptr<TrackpadInternalSurfaceView> trackpad_view_ = nullptr;
std::unique_ptr<BlurredBackgroundShield> blurred_background_;
};
}
#endif