Cockatrice 2026-10-19-Development-3.1.2-beta.2
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
card_zone.h
Go to the documentation of this file.
1
6
7#ifndef CARDZONE_H
8#define CARDZONE_H
9
12
13#include <QLoggingCategory>
14#include <QPointF>
15#include <qtmetamacros.h>
16
17class CardDragItem;
18class CardItem;
19class CardZoneLogic;
20class QAction;
21class QGraphicsItem;
22class QMenu;
23class QPoint;
24template <typename T> class QList;
25
26inline Q_LOGGING_CATEGORY(CardZoneLog, "card_zone");
27
35{
36 Q_OBJECT
37protected:
38 QMenu *menu;
40
41 void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override;
42 void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
43 virtual void reorganizeCards() = 0;
44 virtual QPointF closestGridPoint(const QPointF &point);
45
46 QMenu *getMenu() const
47 {
48 return menu;
49 }
50public slots:
51 bool showContextMenu(const QPoint &screenPos);
58 virtual void onCardAdded(CardItem *addedCard);
59
60public:
61 enum
62 {
64 };
65 int type() const override
66 {
67 return Type;
68 }
69 virtual void
70 handleDropEvent(const QList<CardDragItem *> &dragItem, CardZoneLogic *startZone, const QPoint &dropPoint) = 0;
71 CardZone(CardZoneLogic *logic, QGraphicsItem *parent = nullptr);
72 void retranslateUi();
73
75 {
76 return logic;
77 }
78
79 void setMenu(QMenu *_menu, QAction *_doubleClickAction = 0)
80 {
81 menu = _menu;
82 doubleClickAction = _doubleClickAction;
83 }
84
85private:
87};
88
89#endif
AbstractGraphicsItem(QGraphicsItem *parent=nullptr)
Definition abstract_graphics_item.h:28
Definition card_drag_item.h:19
Definition card_item.h:33
Definition card_zone_logic.h:27
CardZone(CardZoneLogic *logic, QGraphicsItem *parent=nullptr)
Definition card_zone.cpp:17
CardZoneLogic * logic
Definition card_zone.h:86
virtual QPointF closestGridPoint(const QPointF &point)
Definition card_zone.cpp:70
CardZoneLogic * getLogic() const
Definition card_zone.h:74
virtual void reorganizeCards()=0
QAction * doubleClickAction
Definition card_zone.h:39
void setMenu(QMenu *_menu, QAction *_doubleClickAction=0)
Definition card_zone.h:79
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override
Definition card_zone.cpp:41
bool showContextMenu(const QPoint &screenPos)
Definition card_zone.cpp:48
void mousePressEvent(QGraphicsSceneMouseEvent *event) override
Definition card_zone.cpp:57
virtual void onCardAdded(CardItem *addedCard)
Called when a card is added to this zone. Default: reparents card to this item.
Definition card_zone.cpp:27
virtual void handleDropEvent(const QList< CardDragItem * > &dragItem, CardZoneLogic *startZone, const QPoint &dropPoint)=0
@ Type
Definition card_zone.h:63
void retranslateUi()
Definition card_zone.cpp:34
QMenu * menu
Definition card_zone.h:38
int type() const override
Definition card_zone.h:65
QMenu * getMenu() const
Definition card_zone.h:46
Definition remote_connection_controller.h:20
Q_LOGGING_CATEGORY(CrashReportLog, "crash_report")
@ typeZone
Definition graphics_item_type.h:16