Cockatrice
2026-04-21-Development-2.11.0-beta.61
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
player_menu.h
Go to the documentation of this file.
1
6
7
#ifndef COCKATRICE_PLAYER_MENU_H
8
#define COCKATRICE_PLAYER_MENU_H
9
10
#include "
../../../interface/widgets/menus/tearoff_menu.h
"
11
#include "
../player.h
"
12
#include "
custom_zone_menu.h
"
13
#include "
grave_menu.h
"
14
#include "
hand_menu.h
"
15
#include "
library_menu.h
"
16
#include "
rfg_menu.h
"
17
#include "
say_menu.h
"
18
#include "
sideboard_menu.h
"
19
#include "
utility_menu.h
"
20
21
#include <QList>
22
#include <QMenu>
23
#include <QObject>
24
25
class
CardItem
;
26
class
PlayerMenu
:
public
QObject
27
{
28
Q_OBJECT
29
30
signals:
31
void
cardMenuUpdated
(QMenu *cardMenu);
32
33
public
slots:
34
void
setMenusForGraphicItems
();
35
36
private
slots:
37
void
refreshShortcuts
();
38
39
public
:
40
explicit
PlayerMenu
(
Player
*
player
);
42
void
retranslateUi
();
43
44
QMenu *
updateCardMenu
(
const
CardItem
*card);
45
46
[[nodiscard]] QMenu *
getPlayerMenu
()
const
47
{
48
return
playerMenu
;
49
}
50
51
[[nodiscard]] QMenu *
getCountersMenu
()
52
{
53
return
countersMenu
;
54
}
55
56
[[nodiscard]]
LibraryMenu
*
getLibraryMenu
()
const
57
{
58
return
libraryMenu
;
59
}
60
61
[[nodiscard]]
UtilityMenu
*
getUtilityMenu
()
const
62
{
63
return
utilityMenu
;
64
}
65
66
[[nodiscard]]
bool
getShortcutsActive
()
const
67
{
68
return
shortcutsActive
;
69
}
70
72
void
setShortcutsActive
();
74
void
setShortcutsInactive
();
75
76
private
:
77
Player
*
player
;
78
TearOffMenu
*
playerMenu
;
79
QMenu *
countersMenu
;
80
HandMenu
*
handMenu
;
81
LibraryMenu
*
libraryMenu
;
82
SideboardMenu
*
sideboardMenu
;
83
GraveyardMenu
*
graveMenu
;
84
RfgMenu
*
rfgMenu
;
85
UtilityMenu
*
utilityMenu
;
86
SayMenu
*
sayMenu
;
87
CustomZoneMenu
*
customZonesMenu
;
88
90
QList<AbstractPlayerComponent *>
managedComponents
;
91
bool
shortcutsActive
=
false
;
92
94
template
<
typename
MenuT,
typename
... Args> MenuT *
addManagedMenu
(Args &&...args)
95
{
96
auto
*menu =
new
MenuT(std::forward<Args>(args)...);
97
playerMenu
->addMenu(menu);
98
managedComponents
.append(menu);
99
return
menu;
100
}
101
103
template
<
typename
ComponentT,
typename
... Args> ComponentT *
createManagedComponent
(Args &&...args)
104
{
105
auto
*component =
new
ComponentT(std::forward<Args>(args)...);
106
managedComponents
.append(component);
107
return
component;
108
}
109
};
110
111
#endif
// COCKATRICE_PLAYER_MENU_H
CardItem
Definition
card_item.h:27
CustomZoneMenu
Definition
custom_zone_menu.h:16
GraveyardMenu
Definition
grave_menu.h:18
HandMenu
Definition
hand_menu.h:20
LibraryMenu
Definition
library_menu.h:20
PlayerMenu::PlayerMenu
PlayerMenu(Player *player)
Definition
player_menu.cpp:13
PlayerMenu::countersMenu
QMenu * countersMenu
Definition
player_menu.h:79
PlayerMenu::shortcutsActive
bool shortcutsActive
Definition
player_menu.h:91
PlayerMenu::playerMenu
TearOffMenu * playerMenu
Definition
player_menu.h:78
PlayerMenu::cardMenuUpdated
void cardMenuUpdated(QMenu *cardMenu)
PlayerMenu::customZonesMenu
CustomZoneMenu * customZonesMenu
Definition
player_menu.h:87
PlayerMenu::utilityMenu
UtilityMenu * utilityMenu
Definition
player_menu.h:85
PlayerMenu::handMenu
HandMenu * handMenu
Definition
player_menu.h:80
PlayerMenu::createManagedComponent
ComponentT * createManagedComponent(Args &&...args)
Creates component and registers in managedComponents, but does NOT add it as a submenu.
Definition
player_menu.h:103
PlayerMenu::refreshShortcuts
void refreshShortcuts()
Definition
player_menu.cpp:106
PlayerMenu::setMenusForGraphicItems
void setMenusForGraphicItems()
Definition
player_menu.cpp:56
PlayerMenu::retranslateUi
void retranslateUi()
Lifecycle methods: delegate to all managedComponents, plus counters separately via player->getCounter...
Definition
player_menu.cpp:88
PlayerMenu::updateCardMenu
QMenu * updateCardMenu(const CardItem *card)
Definition
player_menu.cpp:68
PlayerMenu::addManagedMenu
MenuT * addManagedMenu(Args &&...args)
Creates component, adds it as a submenu of playerMenu, and registers in managedComponents.
Definition
player_menu.h:94
PlayerMenu::sideboardMenu
SideboardMenu * sideboardMenu
Definition
player_menu.h:82
PlayerMenu::getCountersMenu
QMenu * getCountersMenu()
Definition
player_menu.h:51
PlayerMenu::getLibraryMenu
LibraryMenu * getLibraryMenu() const
Definition
player_menu.h:56
PlayerMenu::libraryMenu
LibraryMenu * libraryMenu
Definition
player_menu.h:81
PlayerMenu::setShortcutsInactive
void setShortcutsInactive()
Delegates to all managedComponents, plus counters separately.
Definition
player_menu.cpp:137
PlayerMenu::setShortcutsActive
void setShortcutsActive()
Delegates to all managedComponents, plus counters separately.
Definition
player_menu.cpp:120
PlayerMenu::managedComponents
QList< AbstractPlayerComponent * > managedComponents
Drives AbstractPlayerComponent lifecycle delegation. Counters are iterated separately via player->get...
Definition
player_menu.h:90
PlayerMenu::sayMenu
SayMenu * sayMenu
Definition
player_menu.h:86
PlayerMenu::getShortcutsActive
bool getShortcutsActive() const
Definition
player_menu.h:66
PlayerMenu::player
Player * player
Definition
player_menu.h:77
PlayerMenu::rfgMenu
RfgMenu * rfgMenu
Definition
player_menu.h:84
PlayerMenu::graveMenu
GraveyardMenu * graveMenu
Definition
player_menu.h:83
PlayerMenu::getUtilityMenu
UtilityMenu * getUtilityMenu() const
Definition
player_menu.h:61
PlayerMenu::getPlayerMenu
QMenu * getPlayerMenu() const
Definition
player_menu.h:46
Player
Definition
player.h:66
RfgMenu
Definition
rfg_menu.h:18
SayMenu
Definition
say_menu.h:16
SideboardMenu
Definition
sideboard_menu.h:16
TearOffMenu
Definition
tearoff_menu.h:14
UtilityMenu
Definition
utility_menu.h:16
custom_zone_menu.h
TODO: Document this.
grave_menu.h
TODO: Document this.
hand_menu.h
TODO: Document this.
library_menu.h
TODO: Document this.
player.h
TODO: Document this.
rfg_menu.h
TODO: Document this.
say_menu.h
TODO: Document this.
sideboard_menu.h
TODO: Document this.
tearoff_menu.h
TODO: Document this.
utility_menu.h
TODO: Document this.
cockatrice
src
game
player
menu
player_menu.h
Generated by
1.14.0