Cockatrice 2026-10-19-Development-3.1.2-beta.2
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 "../card_dimensions.h"
11#include "graphics_item_type.h"
12
13#include <QGraphicsItem>
14#include <QList>
15#include <QObject>
16#include <QPointF>
17#include <QRectF>
18#include <qtmetamacros.h>
19
21
22class AbstractCardDragItem : public QObject, public QGraphicsItem
23{
24 Q_OBJECT
25 Q_INTERFACES(QGraphicsItem)
26protected:
28 QPointF hotSpot;
30
31public:
32 enum
33 {
35 };
36 [[nodiscard]] int type() const override
37 {
38 return Type;
39 }
40 AbstractCardDragItem(AbstractCardItem *_item, const QPointF &_hotSpot, AbstractCardDragItem *parentDrag = 0);
41 [[nodiscard]] QRectF boundingRect() const override
42 {
44 }
45 [[nodiscard]] QPainterPath shape() const override;
46 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
47 [[nodiscard]] AbstractCardItem *getItem() const
48 {
49 return item;
50 }
51 [[nodiscard]] QPointF getHotSpot() const
52 {
53 return hotSpot;
54 }
56 virtual void updatePosition(const QPointF &cursorScenePos) = 0;
57
58protected:
59 void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
60};
61
62#endif
Canonical card dimension constants for layout and Z-value calculations.
Definition abstract_card_drag_item.h:23
QPointF getHotSpot() const
Definition abstract_card_drag_item.h:51
void addChildDrag(AbstractCardDragItem *child)
Definition abstract_card_drag_item.cpp:80
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
Definition abstract_card_drag_item.cpp:66
AbstractCardItem * item
Definition abstract_card_drag_item.h:27
int type() const override
Definition abstract_card_drag_item.h:36
@ Type
Definition abstract_card_drag_item.h:34
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override
Definition abstract_card_drag_item.cpp:74
virtual void updatePosition(const QPointF &cursorScenePos)=0
QPainterPath shape() const override
Definition abstract_card_drag_item.cpp:57
AbstractCardDragItem(AbstractCardItem *_item, const QPointF &_hotSpot, AbstractCardDragItem *parentDrag=0)
Definition abstract_card_drag_item.cpp:22
QList< AbstractCardDragItem * > childDrags
Definition abstract_card_drag_item.h:29
QRectF boundingRect() const override
Definition abstract_card_drag_item.h:41
QPointF hotSpot
Definition abstract_card_drag_item.h:28
AbstractCardItem * getItem() const
Definition abstract_card_drag_item.h:47
Definition abstract_card_item.h:29
Definition remote_connection_controller.h:20
@ 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