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_drag_item.h
Go to the documentation of this file.
1
6
7#ifndef ABSTRACTCARDDRAGITEM_H
8#define ABSTRACTCARDDRAGITEM_H
9
10#include "abstract_card_item.h"
11
12class QGraphicsScene;
13class CardZone;
14class CardInfo;
15
16class AbstractCardDragItem : public QObject, public QGraphicsItem
17{
18 Q_OBJECT
19 Q_INTERFACES(QGraphicsItem)
20protected:
22 QPointF hotSpot;
23 QList<AbstractCardDragItem *> childDrags;
24
25public:
26 enum
27 {
29 };
30 [[nodiscard]] int type() const override
31 {
32 return Type;
33 }
34 AbstractCardDragItem(AbstractCardItem *_item, const QPointF &_hotSpot, AbstractCardDragItem *parentDrag = 0);
35 [[nodiscard]] QRectF boundingRect() const override
36 {
37 return QRectF(0, 0, CARD_WIDTH, CARD_HEIGHT);
38 }
39 [[nodiscard]] QPainterPath shape() const override;
40 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
41 [[nodiscard]] AbstractCardItem *getItem() const
42 {
43 return item;
44 }
45 [[nodiscard]] QPointF getHotSpot() const
46 {
47 return hotSpot;
48 }
50 virtual void updatePosition(const QPointF &cursorScenePos) = 0;
51
52protected:
53 void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
54};
55
56#endif
TODO: Document this.
const int CARD_WIDTH
Definition abstract_card_item.h:18
const int CARD_HEIGHT
Definition abstract_card_item.h:19
Definition abstract_card_drag_item.h:17
@ Type
Definition abstract_card_drag_item.h:28
QPointF getHotSpot() const
Definition abstract_card_drag_item.h:45
void addChildDrag(AbstractCardDragItem *child)
Definition abstract_card_drag_item.cpp:69
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition abstract_card_drag_item.cpp:55
AbstractCardItem * item
Definition abstract_card_drag_item.h:21
int type() const override
Definition abstract_card_drag_item.h:30
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override
Definition abstract_card_drag_item.cpp:63
virtual void updatePosition(const QPointF &cursorScenePos)=0
QPainterPath shape() const override
Definition abstract_card_drag_item.cpp:47
AbstractCardDragItem(AbstractCardItem *_item, const QPointF &_hotSpot, AbstractCardDragItem *parentDrag=0)
Definition abstract_card_drag_item.cpp:14
QList< AbstractCardDragItem * > childDrags
Definition abstract_card_drag_item.h:23
QRectF boundingRect() const override
Definition abstract_card_drag_item.h:35
QPointF hotSpot
Definition abstract_card_drag_item.h:22
AbstractCardItem * getItem() const
Definition abstract_card_drag_item.h:41
Definition abstract_card_item.h:22
Represents a card and its associated metadata, properties, and relationships.
Definition card_info.h:46
Definition card_zone.h:26
@ typeCardDrag
Definition graphics_item_type.h:15