65 m_defaultLineWidth( parent, m_lineWidthLabel, m_lineWidthCtrl, m_lineWidthUnits ),
66 m_penWidth( parent, m_penWidthLabel, m_penWidthCtrl, m_penWidthUnits )
75 { wxID_APPLY,
_(
"Plot Current Page" ) },
76 { wxID_CANCEL,
_(
"Close" ) } } );
94 int idx =
m_colorTheme->Append( settings->GetName(),
static_cast<void*
>( settings ) );
96 if( settings->GetFilename() == cfg->m_PlotPanel.color_theme )
136 if( fmt == PLOT_FORMAT::DXF || fmt == PLOT_FORMAT::HPGL )
152 path.Replace(
'/',
'\\' );
169 if(
Prj().IsNullProject() )
180 wxDirDialog dirDialog(
this,
_(
"Select Output Directory" ),
path );
182 if( dirDialog.ShowModal() == wxID_CANCEL )
185 wxFileName dirName = wxFileName::DirName( dirDialog.GetPath() );
188 wxString defaultPath = fn.GetPathWithSep();
190 wxFileName relPathTest;
192 relPathTest.Assign( dirDialog.GetPath() );
195 if( relPathTest.MakeRelativeTo( defaultPath ) )
197 msg.Printf(
_(
"Do you want to use a path relative to\n'%s'?" ), defaultPath );
199 wxMessageDialog dialog(
this, msg,
_(
"Plot Output Directory" ),
200 wxYES_NO | wxICON_QUESTION | wxYES_DEFAULT );
202 if( dialog.ShowModal() == wxID_YES )
203 dirName.MakeRelativeTo( defaultPath );
215 case 0:
return PLOT_FORMAT::POST;
216 case 1:
return PLOT_FORMAT::PDF;
217 case 2:
return PLOT_FORMAT::SVG;
218 case 3:
return PLOT_FORMAT::DXF;
219 case 4:
return PLOT_FORMAT::HPGL;
241 wxArrayString paperSizes;
242 paperSizes.push_back(
_(
"Schematic size" ) );
246 if( fmt == PLOT_FORMAT::HPGL )
248 paperSizes.push_back(
_(
"A5" ) );
249 paperSizes.push_back(
_(
"A4" ) );
250 paperSizes.push_back(
_(
"A3" ) );
251 paperSizes.push_back(
_(
"A2" ) );
252 paperSizes.push_back(
_(
"A1" ) );
253 paperSizes.push_back(
_(
"A0" ) );
254 paperSizes.push_back(
_(
"A" ) );
255 paperSizes.push_back(
_(
"B" ) );
256 paperSizes.push_back(
_(
"C" ) );
257 paperSizes.push_back(
_(
"D" ) );
258 paperSizes.push_back(
_(
"E" ) );
264 paperSizes.push_back(
_(
"A4" ) );
265 paperSizes.push_back(
_(
"A" ) );
277 fmt == PLOT_FORMAT::POST || fmt == PLOT_FORMAT::PDF || fmt == PLOT_FORMAT::SVG );
284 fmt == PLOT_FORMAT::POST || fmt == PLOT_FORMAT::PDF || fmt == PLOT_FORMAT::SVG );
329 path.Replace(
'\\',
'/' );
374 std::unique_ptr<SCH_PLOTTER> schPlotter = std::make_unique<SCH_PLOTTER>(
m_parent );
397 wxLaunchDefaultApplication( schPlotter->GetLastOutputFilePath() );
422 std::function<bool( wxString* )> textResolver =
423 [&]( wxString* token ) ->
bool
436 if( fn.IsAbsolute() )
441 if(
Prj().IsNullProject() )
448 msg.Printf(
_(
"Cannot normalize path '%s%s'." ), fn.GetPathWithSep(),
path );
449 fn.SetPath( fn.GetPathWithSep() +
path );
453 fn.SetName( wxEmptyString );
454 fn.SetExt( wxEmptyString );
462 wxMessageDialog dlg(
this, msg,
_(
"Warning" ), wxOK | wxCENTER | wxRESIZE_BORDER
463 | wxICON_EXCLAMATION | wxSTAY_ON_TOP );
465 dlg.SetExtendedMessage( extMsg );
473 msg =
_(
"No project or path defined for the current schematic." );
475 wxMessageDialog dlg(
this, msg,
_(
"Warning" ), wxOK | wxCENTER | wxRESIZE_BORDER
476 | wxICON_EXCLAMATION | wxSTAY_ON_TOP );
477 dlg.SetExtendedMessage( extMsg );
486 msg.Printf(
_(
"Cannot normalize path '%s%s'." ),
Prj().GetProjectPath(),
path );
489 fn.SetPath(
Prj().GetProjectPath() +
path );
497 wxMessageDialog dlg(
this, msg,
_(
"Warning" ),
498 wxOK | wxCENTER | wxRESIZE_BORDER | wxICON_EXCLAMATION |
501 dlg.SetExtendedMessage( extMsg );
constexpr EDA_IU_SCALE schIUScale
KIFACE_BASE & Kiface()
Global KIFACE_BASE "get" accessor.
wxBitmapBundle KiBitmapBundle(BITMAPS aBitmap)
Color settings are a bit different than most of the settings objects in that there can be more than o...
static const wxString COLOR_BUILTIN_DEFAULT
COLOR4D GetColor(int aLayer) const
Class DIALOG_PLOT_SCHEMATIC_BASE.
wxTextCtrl * m_outputDirectoryName
wxRadioBox * m_plotFormatOpt
wxChoice * m_ModeColorOption
wxStaticText * m_plotOriginTitle
STD_BITMAP_BUTTON * m_browseButton
wxCheckBox * m_plotPDFPropertyPopups
WX_HTML_REPORT_PANEL * m_MessagesBox
wxChoice * m_paperSizeOption
wxChoice * m_plotOriginOpt
wxCheckBox * m_openFileAfterPlot
wxCheckBox * m_plotBackgroundColor
UNIT_BINDER m_defaultLineWidth
DIALOG_PLOT_SCHEMATIC(SCH_EDIT_FRAME *parent)
void OnPageSizeSelected(wxCommandEvent &event) override
void OnPlotAll(wxCommandEvent &event) override
bool getOpenFileAfterPlot()
static HPGL_PAGE_SIZE m_HPGLPaperSizeSelect
SCH_EDIT_FRAME * m_parent
void OnOutputDirectoryBrowseClicked(wxCommandEvent &event) override
Set the m_outputDirectoryName variable to the selected directory from directory dialog.
PLOT_FORMAT GetPlotFileFormat()
static int m_pageSizeSelect
void OnPlotCurrent(wxCommandEvent &event) override
void setModeColor(bool aColor)
bool getPlotDrawingSheet()
void setPlotDrawingSheet(bool aPlot)
void setOpenFileAfterPlot(bool aOpenFileAfterPlot)
void getPlotOptions(RENDER_SETTINGS *aSettings)
COLOR_SETTINGS * getColorSettings()
void plotSchematic(bool aPlotAll)
void OnUpdateUI(wxUpdateUIEvent &event) override
wxString getOutputPath()
Determine the best absolute path to plot files given the contents of the path edit control.
void SetupStandardButtons(std::map< int, wxString > aLabels={})
void finishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...
SETTINGS_MANAGER * GetSettingsManager() const
wxString GetFilename() const
APP_SETTINGS_BASE * KifaceSettings() const
Container for all the knowledge about how graphical objects are drawn on any output surface/device.
virtual void LoadColors(const COLOR_SETTINGS *aSettings)
void SetDefaultFont(const wxString &aFont)
virtual void SetBackgroundColor(const COLOR4D &aColor)=0
Set the background color.
void SetMinPenWidth(int aWidth)
Store schematic specific render settings.
PROJECT & Prj() const
Return a reference to the PROJECT associated with this KIWAY.
virtual const wxString AbsolutePath(const wxString &aFileName) const
Fix up aFileName if it is relative to the project's directory to be an absolute path and filename.
These settings were stored in SCH_BASE_FRAME previously.
wxString m_PlotDirectoryName
Holds all the data relating to one schematic.
SCH_SHEET_PATH & CurrentSheet() const override
SCHEMATIC_SETTINGS & Settings() const
SCH_SCREEN * RootScreen() const
Helper to retrieve the screen of the root sheet.
bool ResolveTextVar(const SCH_SHEET_PATH *aSheetPath, wxString *token, int aDepth) const
KIGFX::SCH_RENDER_SETTINGS * GetRenderSettings()
Schematic editor (Eeschema) main window.
SCHEMATIC & Schematic() const
const wxString & GetFileName() const
wxString GetFileName() const
Return the filename corresponding to this sheet.
COLOR_SETTINGS * GetColorSettings(const wxString &aName="user")
Retrieves a color settings object that applications can read colors from.
std::vector< COLOR_SETTINGS * > GetColorSettingsList()
virtual long long int GetValue()
Return the current value in Internal Units.
void Enable(bool aEnable)
Enable/disable the label, widget and units label.
virtual void SetValue(long long int aValue)
Set new value (in Internal Units) for the text field, taking care of units conversion.
void SetFileName(const wxString &aReportFileName)
const wxString ExpandEnvVarSubstitutions(const wxString &aString, const PROJECT *aProject)
Replace any environment variable & text variable references with their values.
wxString ExpandTextVars(const wxString &aSource, const PROJECT *aProject)
@ LAYER_SCHEMATIC_BACKGROUND
PLOT_FORMAT
The set of supported output plot formats.
Plotting engines similar to ps (PostScript, Gerber, svg)
HPGL_PLOT_ORIGIN_AND_UNITS
std::vector< FAB_LAYER_COLOR > dummy
constexpr int MilsToIU(int mils) const
constexpr int mmToIU(double mm) const
bool open_file_after_plot
HPGL_PAGE_SIZE m_HPGLPaperSizeSelect
HPGL_PLOT_ORIGIN_AND_UNITS m_HPGLPlotOrigin
bool m_useBackgroundColor
wxString m_outputDirectory
wxLogTrace helper definitions.
#define FN_NORMALIZE_FLAGS
Default flags to pass to wxFileName::Normalize().