Cockatrice 2026-04-21-Development-2.11.0-beta.61
A 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 {
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.
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:68
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition abstract_card_drag_item.cpp:54
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:62
virtual void updatePosition(const QPointF &cursorScenePos)=0
QPainterPath shape() const override
Definition abstract_card_drag_item.cpp:46
AbstractCardDragItem(AbstractCardItem *_item, const QPointF &_hotSpot, AbstractCardDragItem *parentDrag=0)
Definition abstract_card_drag_item.cpp:13
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:20
Represents a card and its associated metadata, properties, and relationships.
Definition card_info.h:49
Definition card_zone.h:26
@ typeCardDrag
Definition graphics_item_type.h:15
constexpr qreal HEIGHT_F
Definition card_dimensions.h:22
constexpr qreal WIDTH_F
Pre-converted for floating-point contexts (Z-value calculations)
Definition card_dimensions.h:21