KiCad PCB EDA Suite
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
pcbnew_settings.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) 2020 Jon Evans <jon@craftyjon.com>
5 * Copyright The 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#ifndef PCBNEW_SETTINGS_H_
22#define PCBNEW_SETTINGS_H_
23
24#include <core/mirror.h> // for FLIP_DIRECTION
25#include <geometry/eda_angle.h>
27#include <pcb_display_options.h>
28
29namespace PNS
30{
31 class ROUTING_SETTINGS;
32}
33
34
35// Settings for the CONVERT_TOOL.
37{
41};
42
43
45{
47 int m_Gap;
50};
51
52
53
55{
56 NO_EFFECT = 0,
59};
60
61
63{
68
72 graphics( false ),
73 allLayers( false )
74 { }
75};
76
77
79{
80 MOVE,
81 DRAG,
83};
84
85
87{
93};
94
95
97{
101};
102
103
104typedef std::vector<std::pair<wxString, bool>> ACTION_PLUGIN_SETTINGS_LIST;
105
106
107// base class to handle Pcbnew SETTINGS also used in Cvpcb
109{
110public:
112 {
117 };
118
121
123
124 PCB_VIEWERS_SETTINGS_BASE( const std::string& aFilename, int aSchemaVersion ):
125 APP_SETTINGS_BASE( aFilename, aSchemaVersion ),
128 {
133 }
134
136};
137
138
140{
141public:
143 {
162 };
163
165 {
173 };
174
176 {
181 };
182
184 {
187 double ref_x;
188 double ref_y;
191 bool no_dnp;
192 };
193
195 {
198 double origin_x;
199 double origin_y;
201 bool no_dnp;
204 };
205
207 {
209 int units;
212 };
213
215 {
217 int units;
219 };
220
222 {
223 int units;
225 bool no_dnp;
229 double ref_x;
230 double ref_y;
232 };
233
235 {
236 int width;
238 };
239
241 {
244 bool mirror;
252 };
253
255 {
256 int layer;
261 double tolerance;
262 wxString last_file;
266 double origin_x;
267 double origin_y;
269 };
270
272 {
278 };
279
281 {
282 wxString output_directory; // only used at run-time; actual data in project settings
283 int units;
291 };
292
294 {
302 bool mirror;
304 };
305
307 {
318 wxString front_prefix;
319 wxString back_prefix;
320 wxString exclude_list;
322 };
323
325 {
326 int width;
333 };
334
335 struct ZONES
336 {
338 };
339
341 {
342 // Note: Display options common to Cvpcb and Pcbnew are stored in
343 // VIEWERS_DISPLAY_OPTIONS m_ViewersDisplay, because the section DISPLAY_OPTIONS
344 // exists only for Pcbnew
347
350
352
354
360
364
367 };
368
370 {
371 // Skip lock prompts for the current session
373 };
374
376
378
379 virtual bool MigrateFromLegacy( wxConfigBase* aLegacyConfig ) override;
380
382
384
386
388
390
392
394
396
398
400
402
404
406
408
410
412
414
416
418
420
422
424
426
428
429 bool m_Use45DegreeLimit; // True to constrain tool actions to horizontal,
430 // vertical and 45deg
432
434
436
438
440
442
444 bool m_AutoRefillZones; // Fill zones after editing the zone using the Zone Properties dialog
445
446 bool m_AllowFreePads; // True: unlocked pads can be moved freely with respect to the footprint.
447 // False (default): all pads are treated as locked for the purposes of
448 // movement and any attempt to move them will move the footprint instead.
449
451
452 std::unique_ptr<PNS::ROUTING_SETTINGS> m_PnsSettings;
453
456
458
460
462
464
465protected:
466
467 virtual std::string getLegacyFrameName() const override { return "PcbFrame"; }
468
469};
470
471#endif
ARC_EDIT_MODE
Settings for arc editing.
Definition: app_settings.h:52
APP_SETTINGS_BASE is a settings class that should be derived for each standalone KiCad application.
Definition: app_settings.h:92
DIALOG_EXPORT_2581 m_Export2581
DISPLAY_OPTIONS m_Display
DIALOG_NETLIST m_NetlistDialog
DIALOG_CLEANUP m_Cleanup
EDA_ANGLE m_RotationAngle
DIALOG_PLACE_FILE m_PlaceFile
DIALOG_FOOTPRINT_WIZARD_LIST m_FootprintWizardList
ARC_EDIT_MODE m_ArcEditMode
FOOTPRINT_CHOOSER m_FootprintChooser
virtual ~PCBNEW_SETTINGS()
DIALOG_EXPORT_VRML m_ExportVrml
DIALOG_EXPORT_IDF m_ExportIdf
TRACK_DRAG_ACTION m_TrackDragAction
LOCKING_OPTIONS m_LockingOptions
wxString m_lastFootprintLibDir
virtual std::string getLegacyFrameName() const override
virtual bool MigrateFromLegacy(wxConfigBase *aLegacyConfig) override
Migrates from wxConfig to JSON-based configuration.
DIALOG_PLOT m_Plot
WINDOW_SETTINGS m_FootprintWizard
ACTION_PLUGIN_SETTINGS_LIST m_VisibleActionPlugins
DIALOG_IMPORT_GRAPHICS m_ImportGraphics
DIALOG_DRC m_DrcDialog
AUI_PANELS m_AuiPanels
DIALOG_EXPORT_STEP m_ExportStep
WINDOW_SETTINGS m_FootprintViewer
wxString m_lastFootprint3dDir
bool m_ShowCourtyardCollisions
DIALOG_GENERATE_DRILL m_GenDrill
MAGNETIC_SETTINGS m_MagneticItems
FLIP_DIRECTION m_FlipDirection
DIALOG_REANNOTATE m_Reannotate
int m_FootprintViewerFPListWidth
DIALOG_EXPORT_ODBPP m_ExportODBPP
std::unique_ptr< PNS::ROUTING_SETTINGS > m_PnsSettings
wxString m_FootprintTextShownColumns
int m_FootprintViewerLibListWidth
bool m_FootprintViewerAutoZoomOnSelect
true to use automatic zoom on fp selection
PCB_VIEWERS_SETTINGS_BASE(const std::string &aFilename, int aSchemaVersion)
VIEWERS_DISPLAY_OPTIONS m_ViewersDisplay
double m_FootprintViewerZoom
The last zoom level used (0 for auto)
FLIP_DIRECTION
Definition: mirror.h:27
Push and Shove diff pair dimensions (gap) settings dialog.
MAGNETIC_OPTIONS
TRACK_CLEARANCE_MODE
@ SHOW_WITH_VIA_WHILE_ROUTING_OR_DRAGGING
@ DO_NOT_SHOW_CLEARANCE
@ SHOW_WHILE_ROUTING
@ SHOW_WITH_VIA_ALWAYS
@ SHOW_WITH_VIA_WHILE_ROUTING
PCB_DISPLAY_ORIGIN
@ PCB_ORIGIN_AUX
@ PCB_ORIGIN_GRID
@ PCB_ORIGIN_PAGE
CONVERT_STRATEGY
@ COPY_LINEWIDTH
@ CENTERLINE
@ BOUNDING_HULL
TRACK_DRAG_ACTION
std::vector< std::pair< wxString, bool > > ACTION_PLUGIN_SETTINGS_LIST
CONVERT_STRATEGY m_Strategy
MAGNETIC_OPTIONS tracks
MAGNETIC_OPTIONS pads
TRACK_CLEARANCE_MODE m_TrackClearance
Store the common settings that are saved and loaded for each window / frame.
Definition: app_settings.h:74