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 )
137 if( fmt == PLOT_FORMAT::DXF || fmt == PLOT_FORMAT::HPGL )
153 path.Replace(
'/',
'\\' );
170 if(
Prj().IsNullProject() )
181 wxDirDialog dirDialog(
this,
_(
"Select Output Directory" ),
path );
183 if( dirDialog.ShowModal() == wxID_CANCEL )
186 wxFileName dirName = wxFileName::DirName( dirDialog.GetPath() );
189 wxString defaultPath = fn.GetPathWithSep();
191 wxFileName relPathTest;
193 relPathTest.Assign( dirDialog.GetPath() );
196 if( relPathTest.MakeRelativeTo( defaultPath ) )
198 msg.Printf(
_(
"Do you want to use a path relative to\n'%s'?" ), defaultPath );
200 wxMessageDialog dialog(
this, msg,
_(
"Plot Output Directory" ),
201 wxYES_NO | wxICON_QUESTION | wxYES_DEFAULT );
203 if( dialog.ShowModal() == wxID_YES )
204 dirName.MakeRelativeTo( defaultPath );
216 case 0:
return PLOT_FORMAT::POST;
217 case 1:
return PLOT_FORMAT::PDF;
218 case 2:
return PLOT_FORMAT::SVG;
219 case 3:
return PLOT_FORMAT::DXF;
220 case 4:
return PLOT_FORMAT::HPGL;
242 wxArrayString paperSizes;
243 paperSizes.push_back(
_(
"Schematic size" ) );
247 if( fmt == PLOT_FORMAT::HPGL )
249 paperSizes.push_back(
_(
"A5" ) );
250 paperSizes.push_back(
_(
"A4" ) );
251 paperSizes.push_back(
_(
"A3" ) );
252 paperSizes.push_back(
_(
"A2" ) );
253 paperSizes.push_back(
_(
"A1" ) );
254 paperSizes.push_back(
_(
"A0" ) );
255 paperSizes.push_back(
_(
"A" ) );
256 paperSizes.push_back(
_(
"B" ) );
257 paperSizes.push_back(
_(
"C" ) );
258 paperSizes.push_back(
_(
"D" ) );
259 paperSizes.push_back(
_(
"E" ) );
265 paperSizes.push_back(
_(
"A4" ) );
266 paperSizes.push_back(
_(
"A" ) );
279 fmt == PLOT_FORMAT::POST || fmt == PLOT_FORMAT::PDF || fmt == PLOT_FORMAT::SVG );
286 fmt == PLOT_FORMAT::POST || fmt == PLOT_FORMAT::PDF || fmt == PLOT_FORMAT::SVG );
332 path.Replace(
'\\',
'/' );
377 std::unique_ptr<SCH_PLOTTER> schPlotter = std::make_unique<SCH_PLOTTER>(
m_parent );
401 wxLaunchDefaultApplication( schPlotter->GetLastOutputFilePath() );
426 std::function<bool( wxString* )> textResolver =
427 [&]( wxString* token ) ->
bool
440 if( fn.IsAbsolute() )
445 if(
Prj().IsNullProject() )
452 msg.Printf(
_(
"Cannot normalize path '%s%s'." ), fn.GetPathWithSep(),
path );
453 fn.SetPath( fn.GetPathWithSep() +
path );
457 fn.SetName( wxEmptyString );
458 fn.SetExt( wxEmptyString );
466 wxMessageDialog dlg(
this, msg,
_(
"Warning" ), wxOK | wxCENTER | wxRESIZE_BORDER
467 | wxICON_EXCLAMATION | wxSTAY_ON_TOP );
469 dlg.SetExtendedMessage( extMsg );
477 msg =
_(
"No project or path defined for the current schematic." );
479 wxMessageDialog dlg(
this, msg,
_(
"Warning" ), wxOK | wxCENTER | wxRESIZE_BORDER
480 | wxICON_EXCLAMATION | wxSTAY_ON_TOP );
481 dlg.SetExtendedMessage( extMsg );
490 msg.Printf(
_(
"Cannot normalize path '%s%s'." ),
Prj().GetProjectPath(),
path );
493 fn.SetPath(
Prj().GetProjectPath() +
path );
501 wxMessageDialog dlg(
this, msg,
_(
"Warning" ),
502 wxOK | wxCENTER | wxRESIZE_BORDER | wxICON_EXCLAMATION |
505 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
wxCheckBox * m_plotPDFMetadata
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().