#ifndef UI_OZONE_COMMON_BITMAP_CURSOR_FACTORY_H_
#define UI_OZONE_COMMON_BITMAP_CURSOR_FACTORY_H_
#include <map>
#include "base/memory/scoped_refptr.h"
#include "ui/base/cursor/cursor_factory.h"
#include "ui/base/cursor/mojom/cursor_type.mojom-shared.h"
namespace ui {
class BitmapCursor;
class BitmapCursorFactory : public CursorFactory {
public:
BitmapCursorFactory();
BitmapCursorFactory(const BitmapCursorFactory&) = delete;
BitmapCursorFactory& operator=(const BitmapCursorFactory&) = delete;
~BitmapCursorFactory() override;
scoped_refptr<PlatformCursor> GetDefaultCursor(
mojom::CursorType type) override;
scoped_refptr<PlatformCursor> CreateImageCursor(mojom::CursorType type,
const SkBitmap& bitmap,
const gfx::Point& hotspot,
float scale) override;
scoped_refptr<PlatformCursor> CreateAnimatedCursor(
mojom::CursorType type,
const std::vector<SkBitmap>& bitmaps,
const gfx::Point& hotspot,
float scale,
base::TimeDelta frame_delay) override;
private:
std::map<mojom::CursorType, scoped_refptr<BitmapCursor>> default_cursors_;
};
}
#endif