Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
abstract_card_item.h
Go to the documentation of this file.
1
6
7#ifndef ABSTRACTCARDITEM_H
8#define ABSTRACTCARDITEM_H
9
11#include "arrow_target.h"
12
15
16class Player;
17
18const int CARD_WIDTH = 72;
19const int CARD_HEIGHT = 102;
20
22{
23 Q_OBJECT
24protected:
26 int id;
28 bool tapped;
31 QString color;
32 QColor bgColor;
33
34private:
37private slots:
38 void pixmapUpdated();
39
40public slots:
41 void refreshCardInfo();
42
43signals:
45 void showCardInfoPopup(const QPoint &pos, const CardRef &cardRef);
46 void deleteCardInfoPopup(QString cardName);
48 void cardShiftClicked(QString cardName);
49
50public:
51 enum
52 {
54 };
55 int type() const override
56 {
57 return Type;
58 }
59 explicit AbstractCardItem(QGraphicsItem *parent = nullptr,
60 const CardRef &cardRef = {},
61 Player *_owner = nullptr,
62 int _id = -1);
63 ~AbstractCardItem() override;
64 QRectF boundingRect() const override;
65 QPainterPath shape() const override;
66 QSizeF getTranslatedSize(QPainter *painter) const;
67 void paintPicture(QPainter *painter, const QSizeF &translatedSize, int angle);
68 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
70 {
71 return exactCard;
72 }
73 const CardInfo &getCardInfo() const;
74 int getId() const
75 {
76 return id;
77 }
78 void setId(int _id)
79 {
80 id = _id;
81 }
82 QString getName() const
83 {
84 return cardRef.name;
85 }
86 QString getProviderId() const
87 {
88 return cardRef.providerId;
89 }
90 void setCardRef(const CardRef &_cardRef);
92 {
93 return cardRef;
94 }
95 qreal getRealZValue() const
96 {
97 return realZValue;
98 }
99 void setRealZValue(qreal _zValue);
100 void setHovered(bool _hovered);
101 QString getColor() const
102 {
103 return color;
104 }
105 void setColor(const QString &_color);
106 bool getTapped() const
107 {
108 return tapped;
109 }
110 void setTapped(bool _tapped, bool canAnimate = false);
111 bool getFaceDown() const
112 {
113 return facedown;
114 }
115 void setFaceDown(bool _facedown);
116 void processHoverEvent();
118 {
119 emit deleteCardInfoPopup(cardRef.name);
120 }
121
122protected:
123 void transformPainter(QPainter *painter, const QSizeF &translatedSize, int angle);
124 void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
125 void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
126 QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value) override;
127 void cacheBgColor();
128};
129
130#endif
const int CARD_WIDTH
Definition abstract_card_item.h:18
const int CARD_HEIGHT
Definition abstract_card_item.h:19
TODO: Document this.
qreal realZValue
Definition abstract_card_item.h:36
~AbstractCardItem() override
Definition abstract_card_item.cpp:34
void setFaceDown(bool _facedown)
Definition abstract_card_item.cpp:283
QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value) override
Definition abstract_card_item.cpp:320
bool tapped
Definition abstract_card_item.h:28
CardRef cardRef
Definition abstract_card_item.h:27
qreal getRealZValue() const
Definition abstract_card_item.h:95
void setId(int _id)
Definition abstract_card_item.h:78
int type() const override
Definition abstract_card_item.h:55
QPainterPath shape() const override
Definition abstract_card_item.cpp:44
void refreshCardInfo()
Definition abstract_card_item.cpp:58
void deleteCardInfoPopup(QString cardName)
void setTapped(bool _tapped, bool canAnimate=false)
Definition abstract_card_item.cpp:265
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override
Definition abstract_card_item.cpp:306
void cardShiftClicked(QString cardName)
QSizeF getTranslatedSize(QPainter *painter) const
Definition abstract_card_item.cpp:90
QRectF boundingRect() const override
Definition abstract_card_item.cpp:39
AbstractCardItem(QGraphicsItem *parent=nullptr, const CardRef &cardRef={}, Player *_owner=nullptr, int _id=-1)
Definition abstract_card_item.cpp:15
bool getFaceDown() const
Definition abstract_card_item.h:111
void mousePressEvent(QGraphicsSceneMouseEvent *event) override
Definition abstract_card_item.cpp:289
int id
Definition abstract_card_item.h:26
void transformPainter(QPainter *painter, const QSizeF &translatedSize, int angle)
Definition abstract_card_item.cpp:96
void pixmapUpdated()
Definition abstract_card_item.cpp:52
void hovered(AbstractCardItem *card)
void setRealZValue(qreal _zValue)
Definition abstract_card_item.cpp:84
void deleteCardInfoPopup()
Definition abstract_card_item.h:117
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition abstract_card_item.cpp:172
void cacheBgColor()
Definition abstract_card_item.cpp:231
void sigPixmapUpdated()
void paintPicture(QPainter *painter, const QSizeF &translatedSize, int angle)
Definition abstract_card_item.cpp:115
QString getColor() const
Definition abstract_card_item.h:101
CardRef getCardRef() const
Definition abstract_card_item.h:91
bool facedown
Definition abstract_card_item.h:29
void setColor(const QString &_color)
Definition abstract_card_item.cpp:224
QString getName() const
Definition abstract_card_item.h:82
ExactCard getCard() const
Definition abstract_card_item.h:69
QString getProviderId() const
Definition abstract_card_item.h:86
void showCardInfoPopup(const QPoint &pos, const CardRef &cardRef)
QString color
Definition abstract_card_item.h:31
@ Type
Definition abstract_card_item.h:53
void processHoverEvent()
Definition abstract_card_item.cpp:315
QColor bgColor
Definition abstract_card_item.h:32
bool getTapped() const
Definition abstract_card_item.h:106
void setCardRef(const CardRef &_cardRef)
Definition abstract_card_item.cpp:195
bool isHovered
Definition abstract_card_item.h:35
const CardInfo & getCardInfo() const
Definition abstract_card_item.cpp:79
ExactCard exactCard
Definition abstract_card_item.h:25
void setHovered(bool _hovered)
Definition abstract_card_item.cpp:210
int getId() const
Definition abstract_card_item.h:74
int tapAngle
Definition abstract_card_item.h:30
ArrowTarget(Player *_owner, QGraphicsItem *parent=nullptr)
Definition arrow_target.cpp:6
Represents a card and its associated metadata, properties, and relationships.
Definition card_info.h:46
Represents a specific card instance, defined by its CardInfo and a particular printing.
Definition exact_card.h:19
Definition player.h:65
TODO: Document this.
@ typeCard
Definition graphics_item_type.h:14
Definition card_ref.h:14