Cockatrice
2026-10-19-Development-3.1.2-beta.2
A virtual tabletop for multiplayer card games
Toggle main menu visibility
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
12
#include <QList>
13
#include <QObject>
14
#include <qtmetamacros.h>
15
#include <utility>
16
17
class
CardItem
;
18
class
CardMenu
;
19
class
PlayerGraphicsItem
;
20
class
AbstractPlayerComponent
;
21
class
CustomZoneMenu
;
22
class
GraveyardMenu
;
23
class
HandMenu
;
24
class
LibraryMenu
;
25
class
QMenu;
26
class
RfgMenu
;
27
class
SayMenu
;
28
class
SideboardMenu
;
29
class
TallyMenu
;
30
class
UtilityMenu
;
31
struct
CardRef
;
32
33
class
PlayerMenu
:
public
QObject
34
{
35
Q_OBJECT
36
37
signals:
38
void
cardMenuUpdated
(
CardMenu
*cardMenu);
39
void
cardInfoRequested
(
const
CardRef
&cardRef);
40
void
shortcutsActivated
();
41
void
shortcutsDeactivated
();
42
void
retranslateRequested
();
43
44
public
slots:
45
void
setMenusForGraphicItems
();
46
QMenu *
updateCardMenu
(
const
CardItem
*card);
47
48
private
slots:
49
void
refreshShortcuts
();
50
51
public
:
52
explicit
PlayerMenu
(
PlayerGraphicsItem
*
player
);
54
void
retranslateUi
();
55
56
[[nodiscard]] QMenu *
getPlayerMenu
()
const
57
{
58
return
playerMenu
;
59
}
60
61
[[nodiscard]] QMenu *
getCountersMenu
()
62
{
63
return
countersMenu
;
64
}
65
66
[[nodiscard]]
LibraryMenu
*
getLibraryMenu
()
const
67
{
68
return
libraryMenu
;
69
}
70
71
[[nodiscard]]
UtilityMenu
*
getUtilityMenu
()
const
72
{
73
return
utilityMenu
;
74
}
75
76
[[nodiscard]]
bool
getShortcutsActive
()
const
77
{
78
return
shortcutsActive
;
79
}
80
82
void
setShortcutsActive
();
84
void
setShortcutsInactive
();
85
86
private
:
87
PlayerGraphicsItem
*
player
;
88
TearOffMenu
*
playerMenu
;
89
QMenu *
countersMenu
;
90
HandMenu
*
handMenu
;
91
LibraryMenu
*
libraryMenu
;
92
SideboardMenu
*
sideboardMenu
;
93
GraveyardMenu
*
graveMenu
;
94
RfgMenu
*
rfgMenu
;
95
UtilityMenu
*
utilityMenu
;
96
TallyMenu
*
tallyMenu
;
97
SayMenu
*
sayMenu
;
98
CustomZoneMenu
*
customZonesMenu
;
99
103
QList<AbstractPlayerComponent *>
managedComponents
;
104
bool
shortcutsActive
=
false
;
105
107
template
<
typename
MenuT,
typename
... Args> MenuT *
addManagedMenu
(Args &&...args)
108
{
109
auto
*menu =
new
MenuT(std::forward<Args>(args)...);
110
playerMenu
->addMenu(menu);
111
managedComponents
.append(menu);
112
return
menu;
113
}
114
116
template
<
typename
ComponentT,
typename
... Args> ComponentT *
createManagedComponent
(Args &&...args)
117
{
118
auto
*component =
new
ComponentT(std::forward<Args>(args)...);
119
managedComponents
.append(component);
120
return
component;
121
}
122
};
123
124
#endif
// COCKATRICE_PLAYER_MENU_H
AbstractPlayerComponent
Interface for player-bound UI components that need shortcut and translation lifecycle management.
Definition
abstract_player_component.h:18
CardItem
Definition
card_item.h:33
CardMenu
Definition
card_menu.h:23
CustomZoneMenu
Definition
custom_zone_menu.h:19
GraveyardMenu
Definition
grave_menu.h:21
HandMenu
Definition
hand_menu.h:21
LibraryMenu
Definition
library_menu.h:21
PlayerGraphicsItem
Definition
player_graphics_item.h:39
PlayerMenu::countersMenu
QMenu * countersMenu
Definition
player_menu.h:89
PlayerMenu::shortcutsActive
bool shortcutsActive
Definition
player_menu.h:104
PlayerMenu::retranslateRequested
void retranslateRequested()
PlayerMenu::cardMenuUpdated
void cardMenuUpdated(CardMenu *cardMenu)
PlayerMenu::playerMenu
TearOffMenu * playerMenu
Definition
player_menu.h:88
PlayerMenu::customZonesMenu
CustomZoneMenu * customZonesMenu
Definition
player_menu.h:98
PlayerMenu::utilityMenu
UtilityMenu * utilityMenu
Definition
player_menu.h:95
PlayerMenu::handMenu
HandMenu * handMenu
Definition
player_menu.h:90
PlayerMenu::createManagedComponent
ComponentT * createManagedComponent(Args &&...args)
Creates component and registers in managedComponents, but does NOT add it as a submenu.
Definition
player_menu.h:116
PlayerMenu::refreshShortcuts
void refreshShortcuts()
Definition
player_menu.cpp:127
PlayerMenu::shortcutsDeactivated
void shortcutsDeactivated()
PlayerMenu::tallyMenu
TallyMenu * tallyMenu
Definition
player_menu.h:96
PlayerMenu::setMenusForGraphicItems
void setMenusForGraphicItems()
Definition
player_menu.cpp:78
PlayerMenu::player
PlayerGraphicsItem * player
Definition
player_menu.h:87
PlayerMenu::retranslateUi
void retranslateUi()
Retranslate all user-visible strings. Called on language change.
Definition
player_menu.cpp:112
PlayerMenu::updateCardMenu
QMenu * updateCardMenu(const CardItem *card)
Definition
player_menu.cpp:90
PlayerMenu::addManagedMenu
MenuT * addManagedMenu(Args &&...args)
Creates component, adds it as a submenu of playerMenu, and registers in managedComponents.
Definition
player_menu.h:107
PlayerMenu::sideboardMenu
SideboardMenu * sideboardMenu
Definition
player_menu.h:92
PlayerMenu::getCountersMenu
QMenu * getCountersMenu()
Definition
player_menu.h:61
PlayerMenu::shortcutsActivated
void shortcutsActivated()
PlayerMenu::getLibraryMenu
LibraryMenu * getLibraryMenu() const
Definition
player_menu.h:66
PlayerMenu::libraryMenu
LibraryMenu * libraryMenu
Definition
player_menu.h:91
PlayerMenu::setShortcutsInactive
void setShortcutsInactive()
Unbind keyboard shortcuts. Called when this player loses focus.
Definition
player_menu.cpp:151
PlayerMenu::setShortcutsActive
void setShortcutsActive()
Bind keyboard shortcuts. Called when this player gains focus.
Definition
player_menu.cpp:142
PlayerMenu::PlayerMenu
PlayerMenu(PlayerGraphicsItem *player)
Definition
player_menu.cpp:30
PlayerMenu::managedComponents
QList< AbstractPlayerComponent * > managedComponents
Drives AbstractPlayerComponent lifecycle delegation. Counters are iterated separately via player->get...
Definition
player_menu.h:103
PlayerMenu::sayMenu
SayMenu * sayMenu
Definition
player_menu.h:97
PlayerMenu::getShortcutsActive
bool getShortcutsActive() const
Definition
player_menu.h:76
PlayerMenu::cardInfoRequested
void cardInfoRequested(const CardRef &cardRef)
PlayerMenu::rfgMenu
RfgMenu * rfgMenu
Definition
player_menu.h:94
PlayerMenu::graveMenu
GraveyardMenu * graveMenu
Definition
player_menu.h:93
PlayerMenu::getUtilityMenu
UtilityMenu * getUtilityMenu() const
Definition
player_menu.h:71
PlayerMenu::getPlayerMenu
QMenu * getPlayerMenu() const
Definition
player_menu.h:56
QList
Definition
remote_connection_controller.h:20
RfgMenu
Definition
rfg_menu.h:21
SayMenu
Definition
say_menu.h:18
SideboardMenu
Definition
sideboard_menu.h:19
TallyMenu
Definition
tally_menu.h:14
TearOffMenu
Definition
tearoff_menu.h:15
UtilityMenu
Definition
utility_menu.h:23
CardRef
Definition
card_ref.h:14
tearoff_menu.h
cockatrice
src
game_graphics
player
menu
player_menu.h
Generated by
1.18.0