#ifndef MOVEMENTPERMISSIONSSELECTOR_H
#define MOVEMENTPERMISSIONSSELECTOR_H

#include "selectablepixmapitem.h"

class MovementPermissionsSelector: public SelectablePixmapItem {
    Q_OBJECT
public:
    MovementPermissionsSelector(QPixmap basePixmap)
    : SelectablePixmapItem(MovementPermissionsSelector::CellWidth, MovementPermissionsSelector::CellHeight, 1, 1) {
        this->basePixmap = basePixmap;
        setAcceptHoverEvents(true);
    }
    void draw();
    uint16_t getSelectedCollision();
    uint16_t getSelectedElevation();
    void select(uint16_t collision, uint16_t elevation);
    void setBasePixmap(QPixmap pixmap);

    static const int CellWidth;
    static const int CellHeight;

protected:
    void hoverMoveEvent(QGraphicsSceneHoverEvent*);
    void hoverLeaveEvent(QGraphicsSceneHoverEvent*);

private:
    void setSelectedMovementPermissions(QPointF);
    QPixmap basePixmap;

signals:
    void hoveredMovementPermissionChanged(uint16_t, uint16_t);
    void hoveredMovementPermissionCleared();
};

#endif // MOVEMENTPERMISSIONSSELECTOR_H