mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-25 16:13:54 -07:00
32 lines
1.1 KiB
C++
32 lines
1.1 KiB
C++
/**
|
|
* @file abstract_player_component.h
|
|
* @ingroup GameMenusPlayers
|
|
* @brief Polymorphic interface for player-bound UI components managed by PlayerMenu.
|
|
*/
|
|
|
|
#ifndef COCKATRICE_ABSTRACT_PLAYER_COMPONENT_H
|
|
#define COCKATRICE_ABSTRACT_PLAYER_COMPONENT_H
|
|
|
|
/**
|
|
* @brief Interface for player-bound UI components that need shortcut and translation lifecycle management.
|
|
*
|
|
* Not a QObject — avoids diamond inheritance with Qt's MOC. Each concrete component
|
|
* inherits QObject through its Qt base class (QMenu, TearOffMenu, QGraphicsItem, etc.)
|
|
* and this interface through regular multiple inheritance.
|
|
*/
|
|
class AbstractPlayerComponent
|
|
{
|
|
public:
|
|
virtual ~AbstractPlayerComponent() = default;
|
|
|
|
/** @brief Bind keyboard shortcuts. Called when this player gains focus. */
|
|
virtual void setShortcutsActive() = 0;
|
|
|
|
/** @brief Unbind keyboard shortcuts. Called when this player loses focus. */
|
|
virtual void setShortcutsInactive() = 0;
|
|
|
|
/** @brief Retranslate all user-visible strings. Called on language change. */
|
|
virtual void retranslateUi() = 0;
|
|
};
|
|
|
|
#endif // COCKATRICE_ABSTRACT_PLAYER_COMPONENT_H
|