#ifndef UI_OZONE_PLATFORM_DRI_CURSOR_FACTORY_EVDEV_DRI_H_
#define UI_OZONE_PLATFORM_DRI_CURSOR_FACTORY_EVDEV_DRI_H_
#include "ui/base/cursor/ozone/bitmap_cursor_factory_ozone.h"
#include "ui/events/ozone/evdev/cursor_delegate_evdev.h"
#include "ui/gfx/geometry/point.h"
#include "ui/gfx/geometry/point_f.h"
#include "ui/gfx/geometry/rect_f.h"
#include "ui/gfx/native_widget_types.h"
namespace gfx {
class DriSurfaceFactory;
}
namespace ui {
class CursorFactoryEvdevDri : public BitmapCursorFactoryOzone,
public CursorDelegateEvdev {
public:
CursorFactoryEvdevDri(gfx::DriSurfaceFactory* dri);
virtual ~CursorFactoryEvdevDri();
virtual void SetBitmapCursor(gfx::AcceleratedWidget widget,
scoped_refptr<BitmapCursorOzone> cursor)
OVERRIDE;
virtual void MoveCursorTo(gfx::AcceleratedWidget widget,
const gfx::PointF& location) OVERRIDE;
virtual void MoveCursor(const gfx::Vector2dF& delta) OVERRIDE;
virtual gfx::AcceleratedWidget window() OVERRIDE;
virtual gfx::PointF location() OVERRIDE;
private:
gfx::Point bitmap_location();
gfx::DriSurfaceFactory* dri_;
scoped_refptr<BitmapCursorOzone> cursor_;
gfx::AcceleratedWidget cursor_window_;
gfx::RectF cursor_bounds_;
gfx::PointF cursor_location_;
};
}
#endif