#pragma once // VariantImagePreviewDialog: small modeless popup that shows a single card // preview image (bytes decoded as wxImage). Used by Japanese Pokémon Add/Edit // when cycling UnnumberedPromo prints. Prev/Next fire custom events so the // edit dialog owns the variant ring. #include #include #include #include #include #include #include #include namespace ccm::ui { wxDECLARE_EVENT(EVT_VARIANT_PREVIEW_PREV, wxCommandEvent); wxDECLARE_EVENT(EVT_VARIANT_PREVIEW_NEXT, wxCommandEvent); class VariantImagePreviewDialog : public wxDialog { public: explicit VariantImagePreviewDialog(wxWindow* parent); void setCaption(const wxString& caption); void setImageBytes(std::string_view bytes); void clearImage(); void setNavigationEnabled(bool enabled); void repositionBesideParent(); private: class ImageCanvas; void onPrev(wxCommandEvent&); void onNext(wxCommandEvent&); ImageCanvas* imageHost_{nullptr}; wxStaticText* caption_{nullptr}; wxButton* prevButton_{nullptr}; wxButton* nextButton_{nullptr}; }; } // namespace ccm::ui