KiCad PCB EDA Suite
Loading...
Searching...
No Matches
pcb_draw_panel_gal.h
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright (C) 2014 CERN
5 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
6 *
7 * @author Maciej Suminski <[email protected]>
8 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * as published by the Free Software Foundation; either version 2
12 * of the License, or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program. If not, see <https://www.gnu.org/licenses/>.
21 */
22
23#ifndef PCB_DRAW_PANEL_GAL_H_
24#define PCB_DRAW_PANEL_GAL_H_
25
27#include <layer_ids.h>
28#include <pcb_view.h>
29
33
37
39{
40public:
41 PCB_DRAW_PANEL_GAL( wxWindow* aParentWindow, wxWindowID aWindowId, const wxPoint& aPosition,
42 const wxSize& aSize, KIGFX::GAL_DISPLAY_OPTIONS& aOptions,
43 GAL_TYPE aGalType = GAL_TYPE_OPENGL );
44
45 virtual ~PCB_DRAW_PANEL_GAL();
46
53 void DisplayBoard( BOARD* aBoard, PROGRESS_REPORTER* aReporter = nullptr );
54
61 void SetDrawingSheet( DS_PROXY_VIEW_ITEM* aDrawingSheet );
62
64
65 // TODO(JE) Look at optimizing this out
69 void UpdateColors();
70
74 void prepareGridSources() override;
75
77 virtual void SetHighContrastLayer( int aLayer ) override
78 {
79 SetHighContrastLayer( static_cast< PCB_LAYER_ID >( aLayer ) );
80 }
81
84
86 virtual void SetTopLayer( int aLayer ) override
87 {
88 SetTopLayer( static_cast< PCB_LAYER_ID >( aLayer ) );
89 }
90
92 void SetTopLayer( PCB_LAYER_ID aLayer );
93
99 void SyncLayersVisibility( const BOARD* aBoard );
100
102 void GetMsgPanelInfo( EDA_DRAW_FRAME* aFrame, std::vector<MSG_PANEL_ITEM>& aList ) override;
103
105 void OnShow() override;
106
107 bool SwitchBackend( GAL_TYPE aGalType ) override;
108
110 void RedrawRatsnest();
111
113 BOX2I GetDefaultViewBBox() const override;
114
115 virtual KIGFX::PCB_VIEW* GetView() const override;
116
117protected:
120
122 void setDefaultLayerDeps();
123
124protected:
125 std::unique_ptr<DS_PROXY_VIEW_ITEM> m_drawingSheet;
126 std::unique_ptr<RATSNEST_VIEW_ITEM> m_ratsnest;
127};
128
129#endif /* PCB_DRAW_PANEL_GAL_H_ */
BOX2< VECTOR2I > BOX2I
Definition box2.h:914
Information pertinent to a Pcbnew printed circuit board.
Definition board.h:410
The base class for create windows for drawing purpose.
EDA_DRAW_PANEL_GAL(wxWindow *aParentWindow, wxWindowID aWindowId, const wxPoint &aPosition, const wxSize &aSize, KIGFX::GAL_DISPLAY_OPTIONS &aOptions, GAL_TYPE aGalType=GAL_TYPE_OPENGL)
Create a drawing panel that is contained inside aParentWindow.
@ GAL_TYPE_OPENGL
OpenGL implementation.
Hold a (potentially large) number of VIEW_ITEMs and renders them on a graphics device provided by the...
Definition view.h:63
void UpdateColors()
Update the color settings in the painter and GAL.
PCB_DRAW_PANEL_GAL(wxWindow *aParentWindow, wxWindowID aWindowId, const wxPoint &aPosition, const wxSize &aSize, KIGFX::GAL_DISPLAY_OPTIONS &aOptions, GAL_TYPE aGalType=GAL_TYPE_OPENGL)
BOX2I GetDefaultViewBBox() const override
Return the bounding box of the view that should be used if model is not valid.
virtual void SetTopLayer(int aLayer) override
Move the selected layer to the top, so it is displayed above all others.
void GetMsgPanelInfo(EDA_DRAW_FRAME *aFrame, std::vector< MSG_PANEL_ITEM > &aList) override
std::unique_ptr< RATSNEST_VIEW_ITEM > m_ratsnest
Ratsnest view item.
DS_PROXY_VIEW_ITEM * GetDrawingSheet() const
void SetDrawingSheet(DS_PROXY_VIEW_ITEM *aDrawingSheet)
Set or update drawing-sheet used by the draw panel.
void setDefaultLayerDeps()
Set rendering targets & dependencies for layers.
virtual KIGFX::PCB_VIEW * GetView() const override
Return a pointer to the KIGFX::VIEW instance used in the panel.
void OnShow() override
Called when the window is shown for the first time.
void DisplayBoard(BOARD *aBoard, PROGRESS_REPORTER *aReporter=nullptr)
Add all items from the current board to the VIEW, so they can be displayed by GAL.
void SyncLayersVisibility(const BOARD *aBoard)
Update "visibility" property of each layer of a given BOARD.
void setDefaultLayerOrder()
Reassign layer order to the initial settings.
virtual void SetHighContrastLayer(int aLayer) override
Take care of display settings for the given layer to be displayed in high contrast mode.
std::unique_ptr< DS_PROXY_VIEW_ITEM > m_drawingSheet
Currently used drawing-sheet.
bool SwitchBackend(GAL_TYPE aGalType) override
Switch method of rendering graphics.
void RedrawRatsnest()
Force refresh of the ratsnest visual representation.
void prepareGridSources() override
Push a GRID_SOURCE for every PCB_GRIDITEM on the board to the GAL.
A progress reporter interface for use in multi-threaded environments.
PCB_LAYER_ID
A quick note on layer IDs:
Definition layer_ids.h:56
void ApplyPcbGalLayerOrder(KIGFX::VIEW *aView)
Apply pcbnew's canonical GAL layer order (copper and zones below silk, fab and courtyard) to any view...