#ifndef __SCH_DRAW_PANEL_H #define __SCH_DRAW_PANEL_H #include #include #include #include #include namespace KIGFX { class SCH_VIEW; namespace PREVIEW { class SELECTION_AREA; }; }; class SCH_SHEET; class LIB_PART; class BASE_SCREEN; class SCH_SCREEN; class COLORS_DESIGN_SETTINGS; class SCH_EDIT_FRAME; class SCH_DRAW_PANEL : public EDA_DRAW_PANEL, public EDA_DRAW_PANEL_GAL { public: SCH_DRAW_PANEL( wxWindow* aParentWindow, wxWindowID aWindowId, const wxPoint& aPosition, const wxSize& aSize, KIGFX::GAL_DISPLAY_OPTIONS& aOptions, GAL_TYPE aGalType = GAL_TYPE_OPENGL ); ~SCH_DRAW_PANEL(); virtual wxWindow* GetWindow() override { return this; } void DisplayComponent( const LIB_PART *aComponent ); void DisplaySheet( const SCH_SCREEN *aScreen ); bool SwitchBackend( GAL_TYPE aGalType ) override; void OnKeyEvent( wxKeyEvent& event ); void OnCharHook( wxKeyEvent& event ); void SetEnableMousewheelPan( bool aEnable ) override; void SetEnableZoomNoCenter( bool aEnable ) override; void SetEnableAutoPan( bool aEnable ) override; void SetAutoPanRequest( bool aEnable ) override; BASE_SCREEN* GetScreen() override; virtual EDA_DRAW_FRAME* GetParent() const override; virtual void CrossHairOff( wxDC* DC=nullptr ) override; // Show the cross hair. virtual void CrossHairOn( wxDC* DC=nullptr ) override; virtual void MoveCursorToCrossHair() override; KIGFX::SCH_VIEW* GetView() const { return view(); } /// @copydoc wxWindow::Refresh() void Refresh( bool aEraseBackground = true, const wxRect* aRect = NULL ) override; protected: virtual void onPaint( wxPaintEvent& WXUNUSED( aEvent ) ) override; KIGFX::SCH_VIEW* view() const; wxWindow* m_parent; void setDefaultLayerOrder(); ///> Reassigns layer order to the initial settings. void setDefaultLayerDeps(); ///> Sets rendering targets & dependencies for layers. DECLARE_EVENT_TABLE() }; #endif