#pragma once // PokemonSelectedCardPanel: typed view of the right-hand-side detail panel // for Pokemon TCG cards. Inherits from `BaseSelectedCardPanel` // and only overrides per-game hooks (detail rows now include `Set #`, // flag strip is `Holo` / `1. Ed` / `Signed` / `Altered`, preview lookup // includes the collector number). #include "ccm/domain/PokemonCard.hpp" #include "ccm/ui/BaseSelectedCardPanel.hpp" namespace ccm::ui { class PokemonSelectedCardPanel final : public BaseSelectedCardPanel { public: PokemonSelectedCardPanel(wxWindow* parent, ImageService& imageService, CardPreviewService& cardPreview); protected: [[nodiscard]] std::vector declareDetailRows() const override; [[nodiscard]] std::vector declareFlagIcons() const override; [[nodiscard]] std::string detailValueFor(const PokemonCard& card, DetailKey key) const override; [[nodiscard]] bool isFlagSet(const PokemonCard& card, DetailKey key) const override; [[nodiscard]] std::tuple previewKey(const PokemonCard& card) const override; [[nodiscard]] Game gameId() const noexcept override { return Game::Pokemon; } [[nodiscard]] Game previewGameFor(const PokemonCard& card) const noexcept override { return pokemonBackendGame(card.region); } }; } // namespace ccm::ui