#pragma once // ImageViewerDialog: full-size image viewer with prev/next navigation. #include #include #include #include #include #include #include #include #include namespace ccm::ui { class ImageViewerDialog : public wxDialog { public: ImageViewerDialog(wxWindow* parent, std::vector imagePaths, std::size_t startIndex); private: bool loadImageAt(std::size_t index); void prefetchNeighbors(); void show(std::size_t index); void onPrev(wxCommandEvent&); void onNext(wxCommandEvent&); std::vector paths_; std::size_t index_{0}; std::vector imageCache_; std::vector imageCacheReady_; wxPanel* imageHost_{nullptr}; wxStaticText* caption_{nullptr}; wxButton* prevButton_{nullptr}; wxButton* nextButton_{nullptr}; }; } // namespace ccm::ui