Cockatrice/cockatrice/src/abstractcarditem.h
Max-Wilhelm Bruker 26a77d9e40 new zone view code
2010-03-08 15:55:35 +01:00

48 lines
1.3 KiB
C++

#ifndef ABSTRACTCARDITEM_H
#define ABSTRACTCARDITEM_H
#include "abstractgraphicsitem.h"
class CardInfo;
const int CARD_WIDTH = 72;
const int CARD_HEIGHT = 102;
enum CardItemType {
typeCard = QGraphicsItem::UserType + 1,
typeCardDrag = QGraphicsItem::UserType + 2,
typeZone = QGraphicsItem::UserType + 3,
typeZoneView = QGraphicsItem::UserType + 4,
typeOther = QGraphicsItem::UserType + 5
};
class AbstractCardItem : public QObject, public AbstractGraphicsItem {
Q_OBJECT
protected:
CardInfo *info;
QString name;
bool tapped;
private slots:
void pixmapUpdated();
signals:
void hovered(AbstractCardItem *card);
public:
enum { Type = typeCard };
int type() const { return Type; }
AbstractCardItem(const QString &_name = QString(), QGraphicsItem *parent = 0);
~AbstractCardItem();
QRectF boundingRect() const;
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
CardInfo *getInfo() const { return info; }
QString getName() const { return name; }
void setName(const QString &_name = QString());
bool getTapped() const { return tapped; }
void setTapped(bool _tapped);
void processHoverEvent();
protected:
void mousePressEvent(QGraphicsSceneMouseEvent *event);
void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value);
};
#endif