#ifndef ASH_TOUCH_TOUCH_HUD_RENDERER_H_
#define ASH_TOUCH_TOUCH_HUD_RENDERER_H_
#include <map>
#include "ash/ash_export.h"
#include "base/memory/raw_ptr.h"
#include "ui/views/widget/widget_observer.h"
namespace ui {
class TouchEvent;
}
namespace views {
class Widget;
}
namespace ash {
class TouchPointView;
class ASH_EXPORT TouchHudRenderer : public views::WidgetObserver {
public:
explicit TouchHudRenderer(views::Widget* parent_widget);
TouchHudRenderer(const TouchHudRenderer&) = delete;
TouchHudRenderer& operator=(const TouchHudRenderer&) = delete;
~TouchHudRenderer() override;
void Clear();
void HandleTouchEvent(const ui::TouchEvent& event);
void OnWidgetDestroying(views::Widget* widget) override;
private:
friend class TouchHudProjectionTest;
raw_ptr<views::Widget, ExperimentalAsh> parent_widget_;
std::map<int, TouchPointView*> points_;
};
}
#endif