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 )
134 if( fmt == PLOT_FORMAT::DXF || fmt == PLOT_FORMAT::HPGL )
150 path.Replace(
'/',
'\\' );
167 if(
Prj().IsNullProject() )
178 wxDirDialog dirDialog(
this,
_(
"Select Output Directory" ),
path );
180 if( dirDialog.ShowModal() == wxID_CANCEL )
183 wxFileName dirName = wxFileName::DirName( dirDialog.GetPath() );
186 wxString defaultPath = fn.GetPathWithSep();
188 wxFileName relPathTest;
190 relPathTest.Assign( dirDialog.GetPath() );
193 if( relPathTest.MakeRelativeTo( defaultPath ) )
195 msg.Printf(
_(
"Do you want to use a path relative to\n'%s'?" ), defaultPath );
197 wxMessageDialog dialog(
this, msg,
_(
"Plot Output Directory" ),
198 wxYES_NO | wxICON_QUESTION | wxYES_DEFAULT );
200 if( dialog.ShowModal() == wxID_YES )
201 dirName.MakeRelativeTo( defaultPath );
213 case 0:
return PLOT_FORMAT::POST;
214 case 1:
return PLOT_FORMAT::PDF;
215 case 2:
return PLOT_FORMAT::SVG;
216 case 3:
return PLOT_FORMAT::DXF;
217 case 4:
return PLOT_FORMAT::HPGL;
239 wxArrayString paperSizes;
240 paperSizes.push_back(
_(
"Schematic size" ) );
244 if( fmt == PLOT_FORMAT::HPGL )
246 paperSizes.push_back(
_(
"A5" ) );
247 paperSizes.push_back(
_(
"A4" ) );
248 paperSizes.push_back(
_(
"A3" ) );
249 paperSizes.push_back(
_(
"A2" ) );
250 paperSizes.push_back(
_(
"A1" ) );
251 paperSizes.push_back(
_(
"A0" ) );
252 paperSizes.push_back(
_(
"A" ) );
253 paperSizes.push_back(
_(
"B" ) );
254 paperSizes.push_back(
_(
"C" ) );
255 paperSizes.push_back(
_(
"D" ) );
256 paperSizes.push_back(
_(
"E" ) );
262 paperSizes.push_back(
_(
"A4" ) );
263 paperSizes.push_back(
_(
"A" ) );
274 fmt == PLOT_FORMAT::POST || fmt == PLOT_FORMAT::PDF || fmt == PLOT_FORMAT::SVG );
281 fmt == PLOT_FORMAT::POST || fmt == PLOT_FORMAT::PDF || fmt == PLOT_FORMAT::SVG );
325 path.Replace(
'\\',
'/' );
370 std::unique_ptr<SCH_PLOTTER> schPlotter = std::make_unique<SCH_PLOTTER>(
m_parent );
392 wxLaunchDefaultApplication( schPlotter->GetLastOutputFilePath() );
417 std::function<bool( wxString* )> textResolver =
418 [&]( wxString* token ) ->
bool
430 if( fn.IsAbsolute() )
435 if(
Prj().IsNullProject() )
442 msg.Printf(
_(
"Cannot normalize path '%s%s'." ), fn.GetPathWithSep(),
path );
443 fn.SetPath( fn.GetPathWithSep() +
path );
447 fn.SetName( wxEmptyString );
448 fn.SetExt( wxEmptyString );
456 wxMessageDialog dlg(
this, msg,
_(
"Warning" ), wxOK | wxCENTER | wxRESIZE_BORDER
457 | wxICON_EXCLAMATION | wxSTAY_ON_TOP );
459 dlg.SetExtendedMessage( extMsg );
467 msg =
_(
"No project or path defined for the current schematic." );
469 wxMessageDialog dlg(
this, msg,
_(
"Warning" ), wxOK | wxCENTER | wxRESIZE_BORDER
470 | wxICON_EXCLAMATION | wxSTAY_ON_TOP );
471 dlg.SetExtendedMessage( extMsg );
480 msg.Printf(
_(
"Cannot normalize path '%s%s'." ),
Prj().GetProjectPath(),
path );
483 fn.SetPath(
Prj().GetProjectPath() +
path );
491 wxMessageDialog dlg(
this, msg,
_(
"Warning" ),
492 wxOK | wxCENTER | wxRESIZE_BORDER | wxICON_EXCLAMATION |
495 dlg.SetExtendedMessage( extMsg );
constexpr EDA_IU_SCALE schIUScale
KIFACE_BASE & Kiface()
Global KIFACE_BASE "get" accessor.
wxBitmap KiBitmap(BITMAPS aBitmap, int aHeightTag)
Construct a wxBitmap from an image identifier Returns the image from the active theme if the image ha...
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
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
bool ResolveTextVar(wxString *token, int aDepth) const
SCHEMATIC_SETTINGS & Settings() const
SCH_SCREEN * RootScreen() const
Helper to retrieve the screen of the root sheet.
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().