Cockatrice 2026-10-19-Development-3.1.2-beta.2
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
phases_toolbar.h
Go to the documentation of this file.
1
7
8#ifndef PHASESTOOLBAR_H
9#define PHASESTOOLBAR_H
10
11#include <QGraphicsItem>
12#include <QList>
13#include <QObject>
14#include <QString>
15#include <qtmetamacros.h>
16
17class QAction;
18class QTimer;
19
20namespace google
21{
22namespace protobuf
23{
24class Message;
25}
26} // namespace google
27
28class PhaseButton : public QObject, public QGraphicsItem
29{
30 Q_OBJECT
31 Q_INTERFACES(QGraphicsItem)
32private:
33 QString name;
38 double width;
39
40 // void updatePixmap(QPixmap &pixmap);
41private slots:
42 void updateAnimation();
43
44public:
45 explicit PhaseButton(const QString &_name,
46 QGraphicsItem *parent = nullptr,
47 QAction *_doubleClickAction = nullptr,
48 bool _highlightable = true);
49 [[nodiscard]] QRectF boundingRect() const override;
50 void setWidth(double _width);
51 void setActive(bool _active);
52 [[nodiscard]] bool getActive() const
53 {
54 return active;
55 }
57signals:
58 void clicked();
59
60protected:
61 void paint(QPainter *painter, const QStyleOptionGraphicsItem * /*option*/, QWidget * /*widget*/) override;
62 void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
63 void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override;
64};
65
66class PhasesToolbar : public QObject, public QGraphicsItem
67{
68 Q_OBJECT
69 Q_INTERFACES(QGraphicsItem)
70private:
74 static const int buttonCount = 12;
75 static const int spaceCount = 6;
76 static const double marginSize;
77 void rearrangeButtons();
78
79public:
80 explicit PhasesToolbar(QGraphicsItem *parent = nullptr);
81 [[nodiscard]] QRectF boundingRect() const override;
82 void retranslateUi();
83 void setHeight(double _height);
84 [[nodiscard]] double getWidth() const
85 {
86 return width;
87 }
88 [[nodiscard]] int phaseCount() const
89 {
90 return buttonList.size();
91 }
92 [[nodiscard]] QString getLongPhaseName(int phase) const;
93public slots:
94 void setActivePhase(int phase);
95 void triggerPhaseAction(int phase);
96private slots:
97 void phaseButtonClicked();
98 void actNextTurn();
99 void actUntapAll();
100 void actDrawCard();
101signals:
102 void sendGameCommand(const ::google::protobuf::Message &command, int playerId);
103
104protected:
105 void paint(QPainter *painter, const QStyleOptionGraphicsItem * /*option*/, QWidget * /*widget*/) override;
106};
107
108#endif
Definition phases_toolbar.h:29
void mousePressEvent(QGraphicsSceneMouseEvent *event) override
Definition phases_toolbar.cpp:102
bool getActive() const
Definition phases_toolbar.h:52
QRectF boundingRect() const override
Definition phases_toolbar.cpp:40
void triggerDoubleClickAction()
Definition phases_toolbar.cpp:112
void clicked()
void setActive(bool _active)
Definition phases_toolbar.cpp:74
void paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) override
Definition phases_toolbar.cpp:45
bool active
Definition phases_toolbar.h:34
PhaseButton(const QString &_name, QGraphicsItem *parent=nullptr, QAction *_doubleClickAction=nullptr, bool _highlightable=true)
Definition phases_toolbar.cpp:25
bool highlightable
Definition phases_toolbar.h:34
double width
Definition phases_toolbar.h:38
void setWidth(double _width)
Definition phases_toolbar.cpp:68
QAction * doubleClickAction
Definition phases_toolbar.h:37
QTimer * activeAnimationTimer
Definition phases_toolbar.h:36
QString name
Definition phases_toolbar.h:33
int activeAnimationCounter
Definition phases_toolbar.h:35
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override
Definition phases_toolbar.cpp:107
void updateAnimation()
Definition phases_toolbar.cpp:84
double ySpacing
Definition phases_toolbar.h:73
static const double marginSize
Definition phases_toolbar.h:76
double symbolSize
Definition phases_toolbar.h:73
void setHeight(double _height)
Definition phases_toolbar.cpp:231
void triggerPhaseAction(int phase)
Definition phases_toolbar.cpp:254
void retranslateUi()
Definition phases_toolbar.cpp:159
QString getLongPhaseName(int phase) const
Definition phases_toolbar.cpp:166
void rearrangeButtons()
Definition phases_toolbar.cpp:203
int phaseCount() const
Definition phases_toolbar.h:88
double getWidth() const
Definition phases_toolbar.h:84
double height
Definition phases_toolbar.h:73
void actDrawCard()
Definition phases_toolbar.cpp:289
void actNextTurn()
Definition phases_toolbar.cpp:274
static const int spaceCount
Definition phases_toolbar.h:75
void sendGameCommand(const ::google::protobuf::Message &command, int playerId)
PhaseButton * nextTurnButton
Definition phases_toolbar.h:72
static const int buttonCount
Definition phases_toolbar.h:74
void setActivePhase(int phase)
Definition phases_toolbar.cpp:243
void phaseButtonClicked()
Definition phases_toolbar.cpp:261
void paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) override
Definition phases_toolbar.cpp:196
QList< PhaseButton * > buttonList
Definition phases_toolbar.h:71
PhasesToolbar(QGraphicsItem *parent=nullptr)
Definition phases_toolbar.cpp:119
void actUntapAll()
Definition phases_toolbar.cpp:279
QRectF boundingRect() const override
Definition phases_toolbar.cpp:154
double width
Definition phases_toolbar.h:73
Definition remote_connection_controller.h:20
Definition game_event_handler.h:57
Definition game_event_handler.h:55