#pragma once #include "BufferedBuildingContent.h" #include "SelectionContentFactory.h" class QPushButton; class RecipeSelectionControl; class SectionBox; class ShipLayoutPreview; // The card for a Shipyard (REQ-UI-SELECTION-CONTENT): the schematic selection, the // module layout preview and its Configure button (REQ-MOD-UI-PREVIEW), plus the buffers // and production progress every buffered building shows. // // It is the one card whose cycle is not a recipe: a shipyard's materials and production // time are its schematic's plus every placed module's (REQ-BLD-SHIPYARD). class ShipyardContent : public BufferedBuildingContent { Q_OBJECT public: ShipyardContent(const SelectionContext& context, const SelectionRequest& request, QWidget* parent = nullptr); protected: void refreshControls(const BuildingTarget& target) override; CycleInfo getCycleInfo(const BuildingTarget& target) const override; private: RecipeSelectionControl* m_schematicControl; SectionBox* m_layoutSection; ShipLayoutPreview* m_layoutPreview; QPushButton* m_configureButton; };