kicad/eeschema/sch_view.h

76 lines
1.7 KiB
C++

#ifndef SCH_VIEW_H_
#define SCH_VIEW_H_
#include <memory>
#include <view/view.h>
#include <math/box2.h>
#include <view/wx_view_controls.h>
#include <worksheet_viewitem.h>
#include <layers_id_colors_and_visibility.h>
class SCH_SHEET;
class SCH_SCREEN;
class LIB_PART;
static const LAYER_NUM SCH_LAYER_ORDER[] =
{
LAYER_GP_OVERLAY, LAYER_SELECT_OVERLAY,
LAYER_ERC_ERR, LAYER_ERC_WARN,
LAYER_REFERENCEPART, LAYER_VALUEPART, LAYER_FIELDS,
LAYER_JUNCTION,
LAYER_WIRE, LAYER_BUS,
LAYER_DEVICE,
LAYER_DEVICE_BACKGROUND,
LAYER_NOTES,
LAYER_SHEET,
LAYER_SHEET_BACKGROUND,
LAYER_WORKSHEET
};
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();
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 takeOwnership = true );
void ShowSelectionArea( bool aShow = true );
void ShowPreview( bool aShow = true );
void ClearHiddenFlags();
void HideWorksheet();
private:
std::unique_ptr<WORKSHEET_VIEWITEM> m_worksheet;
std::unique_ptr<KIGFX::PREVIEW::SELECTION_AREA> m_selectionArea;
std::unique_ptr<KIGFX::VIEW_GROUP> m_preview;
std::vector<EDA_ITEM *> m_ownedItems;
};
}; // namespace
#endif