#ifndef SCH_VIEW_H_ #define SCH_VIEW_H_ #include #include #include #include #include #include class SCH_SHEET; class SCH_SCREEN; class LIB_PART; namespace KIGFX { class VIEW_GROUP; class WORKSHEET_VIEWITEM; namespace PREVIEW { class SELECTION_AREA; }; class SCH_VIEW : public KIGFX::VIEW { public: SCH_VIEW( bool aIsDynamic ); ~SCH_VIEW(); virtual void Add( VIEW_ITEM* aItem, int aDrawPriority = -1 ) override; virtual void Remove( VIEW_ITEM* aItem ) override; void DisplaySheet( SCH_SHEET *aSheet ); void DisplaySheet( SCH_SCREEN *aSheet ); void DisplayComponent( LIB_PART *aPart ); KIGFX::PREVIEW::SELECTION_AREA* GetSelectionArea() const { return m_selectionArea.get(); } KIGFX::VIEW_GROUP* GetPreview() const { return m_preview.get(); } void ClearPreview(); void AddToPreview( EDA_ITEM *aItem, bool makeCopy = true ); void ShowSelectionArea( bool aShow = true ); void ShowPreview( bool aShow = true ); void ClearHiddenFlags(); void HideWorksheet(); virtual void Redraw() override; private: std::unique_ptr m_worksheet; std::unique_ptr m_selectionArea; std::unique_ptr m_preview; std::vector m_previewItems; std::unordered_map m_cachedBBoxes; }; }; // namespace #endif