KiCad PCB EDA Suite
pcbnew/dialogs/dialog_display_options.cpp
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) 2015 Jean-Pierre Charras, jean-pierre.charras at wanadoo.fr
5  * Copyright (C) 1992-2018 KiCad Developers, see AUTHORS.txt for contributors.
6  *
7  * This program is free software: you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License as published by the
9  * Free Software Foundation, either version 3 of the License, or (at your
10  * option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License along
18  * with this program. If not, see <http://www.gnu.org/licenses/>.
19  */
20 
21 /* functions relatives to the dialog opened from the main menu :
22  Preferences/display
23 */
24 
25 #include <fctsys.h>
26 #include <class_drawpanel.h>
27 #include <confirm.h>
28 #include <pcbnew.h>
29 #include <pcb_edit_frame.h>
30 #include <pcb_display_options.h>
31 #include <config_map.h>
32 
33 #include <pcbnew_id.h>
34 
35 #include <dialog_display_options.h>
37 
38 #include <class_draw_panel_gal.h>
39 #include <pcb_view.h>
40 #include <pcb_painter.h>
41 
43 
44 
46 {
52 };
53 
54 
55 void PCB_EDIT_FRAME::InstallDisplayOptionsDialog( wxCommandEvent& aEvent )
56 {
57  DIALOG_DISPLAY_OPTIONS dlg( this );
58  dlg.ShowModal();
59 }
60 
61 
64  m_parent( parent )
65 {
67  m_galOptsPanel = new GAL_OPTIONS_PANEL( this, galOptions );
68 
69  sLeftSizer->Add( m_galOptsPanel, 1, wxEXPAND, 0 );
70 
71  SetFocus();
72 
73  m_sdbSizerOK->SetDefault();
74 
75  // Now all widgets have the size fixed, call FinishDialogSettings
77 }
78 
79 
81 {
83 
86 
87  m_OptDisplayPadClearence->SetValue( displ_opts->m_DisplayPadIsol );
88  m_OptDisplayPadNumber->SetValue( displ_opts->m_DisplayPadNum );
90  m_ShowNetNamesOption->SetSelection( displ_opts->m_DisplayNetNamesMode );
91 
93 
94  return true;
95 }
96 
97 
98 /*
99  * Update variables with new options
100  */
102 {
104 
107 
108  displ_opts->m_DisplayPadIsol = m_OptDisplayPadClearence->GetValue();
109 
110  displ_opts->m_DisplayPadNum = m_OptDisplayPadNumber->GetValue();
111 
113  m_OptDisplayPadNoConn->GetValue() );
114 
115  displ_opts->m_DisplayNetNamesMode = m_ShowNetNamesOption->GetSelection();
116 
118 
119  // Apply changes to the GAL
121  KIGFX::PCB_PAINTER* painter = static_cast<KIGFX::PCB_PAINTER*>( view->GetPainter() );
122  KIGFX::PCB_RENDER_SETTINGS* settings =
123  static_cast<KIGFX::PCB_RENDER_SETTINGS*>( painter->GetSettings() );
124  settings->LoadDisplayOptions( displ_opts );
125  view->RecacheAllItems();
127 
128  m_parent->GetCanvas()->Refresh();
129 
130  return true;
131 }
132 
133 
void InstallDisplayOptionsDialog(wxCommandEvent &aEvent)
show a marker on pads with no nets
void SetElementVisibility(GAL_LAYER_ID aElement, bool aNewState)
Function SetElementVisibility changes the visibility of an element category.
KIGFX::GAL_DISPLAY_OPTIONS & GetGalDisplayOptions()
Function GetGalDisplayOptions Returns a reference to the gal rendering options used by GAL for render...
Definition: draw_frame.h:924
virtual void Refresh(bool eraseBackground=true, const wxRect *rect=NULL) override
Update the board display after modifying it bu a python script (note: it is automatically called by a...
Definition: draw_panel.cpp:338
This file is part of the common library.
EDA_DRAW_PANEL * GetCanvas()
Definition: draw_frame.h:359
static const UTIL::CFG_MAP< PCB_DISPLAY_OPTIONS::TRACE_CLEARANCE_DISPLAY_MODE_T > traceClearanceSelectMap
void RecacheAllItems()
Function RecacheAllItems() Rebuilds GAL display lists.
Definition: view.cpp:1335
void FinishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...
KIGFX::VIEW * GetView() const
Function GetView() Returns a pointer to the VIEW instance used in the panel.
Class PCB_PAINTER Contains methods for drawing PCB-specific items.
Definition: pcb_painter.h:186
void * GetDisplayOptions() override
Function GetDisplayOptions returns the display options current in use Display options are relative to...
TRACE_CLEARANCE_DISPLAY_MODE_T m_ShowTrackClearanceMode
How trace clearances are displayed.
Auxiliary rendering target (noncached)
Definition: definitions.h:42
Class PCB_RENDER_SETTINGS Stores PCB specific render settings.
Definition: pcb_painter.h:62
bool IsElementVisible(GAL_LAYER_ID aElement) const
Function IsElementVisible tests whether a given element category is visible.
Class PCB_DISPLAY_OPTIONS handles display options like enable/disable some optional drawings...
virtual PCB_RENDER_SETTINGS * GetSettings() override
Function GetSettings Returns pointer to current settings that are going to be used when drawing items...
Definition: pcb_painter.h:198
bool TransferDataToWindow() override
Load the panel controls from the given opt.
void MarkTargetDirty(int aTarget)
Function MarkTargetDirty() Sets or clears target &#39;dirty&#39; flag.
Definition: view.h:577
PAINTER * GetPainter() const
Function GetPainter() Returns the painter object used by the view for drawing VIEW_ITEMS.
Definition: view.h:196
static CFG_NATIVE_VAL< MAP > GetValFromConfig(const MAP &aMap, long aConf)
Get the native value corresponding to the config value (read from file or UI, probably) and find it i...
Definition: config_map.h:96
void LoadDisplayOptions(const PCB_DISPLAY_OPTIONS *aOptions)
Function LoadDisplayOptions Loads settings related to display options (high-contrast mode...
Class PCB_EDIT_FRAME is the main frame for Pcbnew.
EDA_DRAW_PANEL_GAL * GetGalCanvas() const
Function GetGalCanvas returns a pointer to GAL-based canvas of given EDA draw frame.
Definition: draw_frame.h:903
std::vector< std::pair< T, long > > CFG_MAP
A config value table is a list of native values (usually enums) to a different set of values...
Definition: config_map.h:49
Class VIEW.
Definition: view.h:58
Definition of PCB_DISPLAY_OPTIONS class.
static long GetConfigForVal(const MAP &aMap, CFG_NATIVE_VAL< MAP > aVal)
Get the mapped config value (the one to write to file, or use in an index) from the given native (pro...
Definition: config_map.h:69
bool TransferDataFromWindow() override
Read the options set in the UI into the given options object.