KiCad PCB EDA Suite
DIALOG_SVG_PRINT Class Reference
Inheritance diagram for DIALOG_SVG_PRINT:
DIALOG_SVG_PRINT_base DIALOG_SHIM KIWAY_HOLDER

Public Member Functions

 DIALOG_SVG_PRINT (wxTopLevelWindow *aParent, BOARD *aBoard, PCB_PLOT_PARAMS *aSettings)
 
int ShowQuasiModal ()
 
void EndQuasiModal (int retCode)
 
bool IsQuasiModal ()
 
bool Show (bool show) override
 
bool Enable (bool enable) override
 
void OnPaint (wxPaintEvent &event)
 
KIWAYKiway () const
 Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in. More...
 
PROJECTPrj () const
 Function Prj returns a reference to the PROJECT "associated with" this KIWAY. More...
 
void SetKiway (wxWindow *aDest, KIWAY *aKiway)
 Function SetKiway. More...
 

Protected Types

enum  { wxID_PRINT_BOARD = 1000 }
 

Protected Member Functions

void FinishDialogSettings ()
 In all dialogs, we must call the same functions to fix minimal dlg size, the default position and perhaps some others to fix a few issues depending on Windows Managers this helper function does these calls. More...
 
void SetSizeInDU (int x, int y)
 Set the dialog to the given dimensions in "dialog units". More...
 
int HorizPixelsFromDU (int x)
 Convert an integer number of dialog units to pixels, horizontally. More...
 
int VertPixelsFromDU (int y)
 Convert an integer number of dialog units to pixels, vertically. More...
 

Protected Attributes

wxStaticText * m_staticTextDir
 
wxTextCtrl * m_outputDirectoryName
 
wxButton * m_browseButton
 
wxStaticText * m_staticTextCopperLayers
 
wxCheckListBox * m_CopperLayersList
 
wxStaticText * m_staticTextTechLayers
 
wxCheckListBox * m_TechnicalLayersList
 
wxStaticText * m_TextPenWidth
 
wxTextCtrl * m_DialogDefaultPenSize
 
wxRadioBox * m_ModeColorOption
 
wxRadioBox * m_rbSvgPageSizeOpt
 
wxCheckBox * m_PrintBoardEdgesCtrl
 
wxCheckBox * m_printMirrorOpt
 
wxRadioBox * m_rbFileOpt
 
wxButton * m_buttonCreateFile
 
wxButton * m_buttonQuit
 
WX_HTML_REPORT_PANELm_messagesPanel
 
bool m_fixupsRun
 
std::string m_hash_key
 
EVENT_LOOPm_qmodal_loop
 
bool m_qmodal_showing
 
WDO_ENABLE_DISABLEm_qmodal_parent_disabler
 

Private Member Functions

void initDialog ()
 
void OnCloseWindow (wxCloseEvent &event) override
 
void OnButtonPlot (wxCommandEvent &event) override
 
void OnButtonCloseClick (wxCommandEvent &event) override
 
void OnOutputDirectoryBrowseClicked (wxCommandEvent &event) override
 
void SetPenWidth ()
 
void ExportSVGFile (bool aOnlyOneFile)
 
bool PageIsBoardBoundarySize ()
 
bool PrintPageRef ()
 
bool CreateSVGFile (const wxString &FullFileName, bool aOnlyOneFile)
 
LSET getCheckBoxSelectedLayers () const
 

Private Attributes

bool m_did_print
 
BOARDm_board
 
PCB_PLOT_PARAMSm_callers_params
 
wxConfigBase * m_config
 
LSET m_printMaskLayer
 
std::pair< wxCheckListBox *, int > m_boxSelectLayer [PCB_LAYER_ID_COUNT]
 
bool m_printBW
 
wxString m_outputDirectory
 
bool m_printMirror
 
bool m_oneFileOnly
 

Detailed Description

Definition at line 51 of file dialog_SVG_print.cpp.

Member Enumeration Documentation

anonymous enum
protectedinherited
Enumerator
wxID_PRINT_BOARD 

Definition at line 43 of file dialog_SVG_print_base.h.

Constructor & Destructor Documentation

DIALOG_SVG_PRINT::DIALOG_SVG_PRINT ( wxTopLevelWindow *  aParent,
BOARD aBoard,
PCB_PLOT_PARAMS aSettings 
)

Definition at line 115 of file dialog_SVG_print.cpp.

References initDialog(), Kiface(), KIFACE_I::KifaceSettings(), m_board, m_boxSelectLayer, and m_config.

115  :
116  DIALOG_SVG_PRINT_base( aParent ),
117  m_did_print( false ),
118  m_callers_params( aSettings )
119 {
120  m_board = aBoard;
122 
123  memset( m_boxSelectLayer, 0, sizeof( m_boxSelectLayer ) );
124 
125  initDialog();
126 
127  GetSizer()->Fit( this );
128  GetSizer()->SetSizeHints( this );
129  Centre();
130 }
KIFACE_I & Kiface()
Global KIFACE_I "get" accessor.
Definition: kicad.cpp:52
DIALOG_SVG_PRINT_base(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("Export SVG File"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
wxConfigBase * KifaceSettings() const
Definition: kiface_i.h:103
PCB_PLOT_PARAMS * m_callers_params
wxConfigBase * m_config
std::pair< wxCheckListBox *, int > m_boxSelectLayer[PCB_LAYER_ID_COUNT]

Member Function Documentation

bool DIALOG_SVG_PRINT::CreateSVGFile ( const wxString &  FullFileName,
bool  aOnlyOneFile 
)
private

Definition at line 321 of file dialog_SVG_print.cpp.

References LSET::AllCuMask(), BOARD::ComputeBoundingBox(), SVG_PLOTTER::EndPlot(), PCB_PLOT_PARAMS::FULL_DRILL_SHAPE, BOARD::GetAuxOrigin(), EDA_RECT::GetHeight(), EDA_RECT::GetOrigin(), BOARD::GetPageSettings(), EDA_RECT::GetWidth(), m_board, m_printBW, m_printMaskLayer, m_printMirror, PCB_PLOT_PARAMS::NO_DRILL_SHAPE, PageIsBoardBoundarySize(), PLOT_FORMAT_SVG, PlotOneBoardLayer(), PlotStandardLayer(), PrintPageRef(), LSET::SeqStackupBottom2Top(), BOARD::SetAuxOrigin(), PLOTTER::SetColorMode(), PCB_PLOT_PARAMS::SetDrillMarksType(), PCB_PLOT_PARAMS::SetFormat(), PAGE_INFO::SetHeightMils(), PCB_PLOT_PARAMS::SetMirror(), BOARD::SetPageSettings(), PCB_PLOT_PARAMS::SetPlotFrameRef(), PCB_PLOT_PARAMS::SetSkipPlotNPTH_Pads(), PCB_PLOT_PARAMS::SetUseAuxOrigin(), PAGE_INFO::SetWidthMils(), StartPlotBoard(), and UNDEFINED_LAYER.

Referenced by ExportSVGFile(), and PrintPageRef().

322 {
323  PCB_PLOT_PARAMS plot_opts;
324 
325  plot_opts.SetPlotFrameRef( PrintPageRef() );
326 
327  // Adding drill marks, for copper layers
328  if( ( m_printMaskLayer & LSET::AllCuMask() ).any() )
330  else
332 
333  plot_opts.SetSkipPlotNPTH_Pads( false );
334 
335  plot_opts.SetMirror( m_printMirror );
336  plot_opts.SetFormat( PLOT_FORMAT_SVG );
337 
338  PAGE_INFO pageInfo = m_board->GetPageSettings();
339  wxPoint axisorigin = m_board->GetAuxOrigin();
340 
342  {
344  PAGE_INFO currpageInfo = m_board->GetPageSettings();
345 
346  currpageInfo.SetWidthMils( bbox.GetWidth() / IU_PER_MILS );
347  currpageInfo.SetHeightMils( bbox.GetHeight() / IU_PER_MILS );
348  m_board->SetPageSettings( currpageInfo );
349  plot_opts.SetUseAuxOrigin( true );
350  wxPoint origin = bbox.GetOrigin();
351  m_board->SetAuxOrigin( origin );
352  }
353 
354  LOCALE_IO toggle;
355 
357  &plot_opts, UNDEFINED_LAYER, aFullFileName, wxEmptyString );
358 
359  if( plotter )
360  {
361  plotter->SetColorMode( !m_printBW );
362  if( aOnlyOneFile )
363  {
364  for( LSEQ seq = m_printMaskLayer.SeqStackupBottom2Top(); seq; ++seq )
365  PlotOneBoardLayer( m_board, plotter, *seq, plot_opts );
366  }
367  else
368  {
369  PlotStandardLayer( m_board, plotter, m_printMaskLayer, plot_opts );
370  }
371  plotter->EndPlot();
372  }
373 
374  delete plotter;
375 
376  m_board->SetAuxOrigin( axisorigin ); // reset to the values saved earlier
377  m_board->SetPageSettings( pageInfo );
378 
379  return true;
380 }
static LSET AllCuMask(int aCuLayerCount=MAX_CU_LAYERS)
Function AllCuMask returns a mask holding the requested number of Cu PCB_LAYER_IDs.
Definition: lset.cpp:673
const wxPoint GetOrigin() const
Definition: eda_rect.h:112
Class LOCALE_IO is a class that can be instantiated within a scope in which you are expecting excepti...
Definition: common.h:166
void SetUseAuxOrigin(bool aAux)
EDA_RECT ComputeBoundingBox(bool aBoardEdgesOnly=false) const
Function ComputeBoundingBox calculates the bounding box containing all board items (or board edge seg...
void PlotOneBoardLayer(BOARD *aBoard, PLOTTER *aPlotter, PCB_LAYER_ID aLayer, const PCB_PLOT_PARAMS &aPlotOpt)
Function PlotOneBoardLayer main function to plot one copper or technical layer.
void SetPageSettings(const PAGE_INFO &aPageSettings)
Definition: class_board.h:548
void SetFormat(PlotFormat aFormat)
int GetHeight() const
Definition: eda_rect.h:118
void SetMirror(bool aFlag)
void SetDrillMarksType(DrillMarksType aVal)
void SetAuxOrigin(const wxPoint &aPoint)
Function SetAuxOrigin sets the origin point used for plotting.
Definition: class_board.h:342
LSEQ SeqStackupBottom2Top() const
Function SeqStackBottom2Top returns the sequence that is typical for a bottom-to-top stack-up...
Definition: lset.cpp:412
virtual bool EndPlot() override
void SetPlotFrameRef(bool aFlag)
Class PAGE_INFO describes the page size and margins of a paper page on which to eventually print or p...
Definition: page_info.h:49
void PlotStandardLayer(BOARD *aBoard, PLOTTER *aPlotter, LSET aLayerMask, const PCB_PLOT_PARAMS &aPlotOpt)
Function PlotStandardLayer plot copper or technical layers.
void SetSkipPlotNPTH_Pads(bool aSkip)
Class PCB_PLOT_PARAMS handles plot parameters and options when plotting/printing a board...
void SetHeightMils(int aHeightInMils)
Definition: page_info.cpp:253
Class LSEQ is a sequence (and therefore also a set) of PCB_LAYER_IDs.
const PAGE_INFO & GetPageSettings() const
Definition: class_board.h:547
const wxPoint & GetAuxOrigin() const
Definition: class_board.h:343
void SetWidthMils(int aWidthInMils)
Definition: page_info.cpp:239
Class EDA_RECT handles the component boundary box.
Definition: eda_rect.h:44
int GetWidth() const
Definition: eda_rect.h:117
PLOTTER * StartPlotBoard(BOARD *aBoard, PCB_PLOT_PARAMS *aPlotOpts, int aLayer, const wxString &aFullFileName, const wxString &aSheetDesc)
Open a new plotfile using the options (and especially the format) specified in the options and prepar...
virtual void SetColorMode(bool _color_mode)
Definition: plotter.h:125
bool DIALOG_SHIM::Enable ( bool  enable)
overrideinherited

Definition at line 205 of file dialog_shim.cpp.

Referenced by DIALOG_PRINT_USING_PRINTER::InitValues(), and DIALOG_SHIM::IsQuasiModal().

206 {
207  // so we can do logging of this state change:
208 
209 #if defined(DEBUG)
210  const char* type_id = typeid( *this ).name();
211  printf( "wxDialog %s: %s\n", type_id, enable ? "enabled" : "disabled" );
212 #endif
213 
214  return wxDialog::Enable( enable );
215 }
void DIALOG_SHIM::EndQuasiModal ( int  retCode)
inherited

Definition at line 610 of file dialog_shim.cpp.

References DIALOG_SHIM::IsQuasiModal(), DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, DIALOG_SHIM::m_qmodal_showing, and DIALOG_SHIM::Show().

Referenced by DIALOG_SHIM::OnButton(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnCancelButtonClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnCancelButtonClick(), DIALOG_EDIT_ONE_FIELD::OnCancelClick(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnCloseDialog(), DIALOG_EDIT_ONE_FIELD::OnCloseDialog(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnCloseDialog(), DIALOG_CHOOSE_COMPONENT::OnCloseTimer(), DIALOG_SHIM::OnCloseWindow(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnOKButtonClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnOKButtonClick(), DIALOG_EDIT_ONE_FIELD::OnOkClick(), DIALOG_EXCHANGE_FOOTPRINTS::OnQuit(), DIALOG_CHOOSE_COMPONENT::OnSchViewDClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::SetInitCmp(), and DIALOG_SHIM::~DIALOG_SHIM().

611 {
612  // Hook up validator and transfer data from controls handling so quasi-modal dialogs
613  // handle validation in the same way as other dialogs.
614  if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
615  return;
616 
617  SetReturnCode( retCode );
618 
619  if( !IsQuasiModal() )
620  {
621  wxFAIL_MSG( wxT( "either DIALOG_SHIM::EndQuasiModal called twice or ShowQuasiModal wasn't called" ) );
622  return;
623  }
624 
625  m_qmodal_showing = false;
626 
627  if( m_qmodal_loop )
628  {
629  if( m_qmodal_loop->IsRunning() )
630  m_qmodal_loop->Exit( 0 );
631  else
632  m_qmodal_loop->ScheduleExit( 0 );
633 
634  m_qmodal_loop = NULL;
635  }
636 
639 
640  Show( false );
641 }
bool m_qmodal_showing
Definition: dialog_shim.h:155
EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:154
bool IsQuasiModal()
Definition: dialog_shim.h:103
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:156
void DIALOG_SVG_PRINT::ExportSVGFile ( bool  aOnlyOneFile)
private

Definition at line 259 of file dialog_SVG_print.cpp.

References BuildPlotFileName(), CreateSVGFile(), DisplayError(), Edge_Cuts, EnsureFileDirectoryExists(), Format(), GetChars(), getCheckBoxSelectedLayers(), BOARD::GetFileName(), BOARD::GetStandardLayerName(), m_board, DIALOG_SVG_PRINT_base::m_messagesPanel, DIALOG_SVG_PRINT_base::m_ModeColorOption, m_outputDirectory, DIALOG_SVG_PRINT_base::m_outputDirectoryName, DIALOG_SVG_PRINT_base::m_PrintBoardEdgesCtrl, m_printBW, m_printMaskLayer, m_printMirror, DIALOG_SVG_PRINT_base::m_printMirrorOpt, REPORTER::Report(), WX_HTML_REPORT_PANEL::Reporter(), REPORTER::RPT_ACTION, REPORTER::RPT_ERROR, LSET::Seq(), SetPenWidth(), and SVGFileExtension.

Referenced by OnButtonPlot().

260 {
262 
263  // Create output directory if it does not exist (also transform it in
264  // absolute form). Bail if it fails
265  wxFileName outputDir = wxFileName::DirName( m_outputDirectory );
266  wxString boardFilename = m_board->GetFileName();
267 
268  REPORTER& reporter = m_messagesPanel->Reporter();
269 
270  if( !EnsureFileDirectoryExists( &outputDir, boardFilename, &reporter ) )
271  {
272  wxString msg = wxString::Format(
273  _( "Could not write plot files to folder \"%s\"." ),
274  GetChars( outputDir.GetPath() )
275  );
276  DisplayError( this, msg );
277  return;
278  }
279 
280  m_printMirror = m_printMirrorOpt->GetValue();
281  m_printBW = m_ModeColorOption->GetSelection();
282  SetPenWidth();
283 
284  LSET all_selected = getCheckBoxSelectedLayers();
285 
286  for( LSEQ seq = all_selected.Seq(); seq; ++seq )
287  {
288  PCB_LAYER_ID layer = *seq;
289 
290  wxFileName fn( boardFilename );
291 
292  wxString suffix = aOnlyOneFile ? wxT( "brd" ) : m_board->GetStandardLayerName( layer );
293 
294  BuildPlotFileName( &fn, outputDir.GetPath(), suffix, SVGFileExtension );
295 
296  m_printMaskLayer = aOnlyOneFile ? all_selected : LSET( layer );
297 
298  if( m_PrintBoardEdgesCtrl->IsChecked() )
299  m_printMaskLayer.set( Edge_Cuts );
300 
301  if( CreateSVGFile( fn.GetFullPath(), aOnlyOneFile ) )
302  {
303  reporter.Report (
304  wxString::Format( _( "Plot: \"%s\" OK." ), GetChars( fn.GetFullPath() ) ),
306  }
307  else // Error
308  {
309  reporter.Report (
310  wxString::Format( _( "Unable to create file \"%s\"." ), GetChars( fn.GetFullPath() ) ),
312  }
313 
314  if( aOnlyOneFile )
315  break;
316  }
317 }
const wxString SVGFileExtension
Class REPORTER is a pure virtual class used to derive REPORTER objects from.
Definition: reporter.h:61
LSEQ Seq(const PCB_LAYER_ID *aWishListSequence, unsigned aCount) const
Function Seq returns an LSEQ from the union of this LSET and a desired sequence.
Definition: lset.cpp:364
LSET getCheckBoxSelectedLayers() const
PCB_LAYER_ID
A quick note on layer IDs:
Class LSET is a set of PCB_LAYER_IDs.
const wxString & GetFileName() const
Definition: class_board.h:234
bool EnsureFileDirectoryExists(wxFileName *aTargetFullFileName, const wxString &aBaseFilename, REPORTER *aReporter)
Helper function EnsureFileDirectoryExists make aTargetFullFileName absolute and creates the path of t...
Definition: common.cpp:282
REPORTER & Reporter()
returns the reporter object that reports to this panel
WX_HTML_REPORT_PANEL * m_messagesPanel
Class LSEQ is a sequence (and therefore also a set) of PCB_LAYER_IDs.
void BuildPlotFileName(wxFileName *aFilename, const wxString &aOutputDir, const wxString &aSuffix, const wxString &aExtension)
Function BuildPlotFileName (helper function) Complete a plot filename: forces the output directory...
Definition: pcbplot.cpp:484
static const wxChar * GetChars(const wxString &s)
Function GetChars returns a wxChar* to the actual wxChar* data within a wxString, and is helpful for ...
Definition: macros.h:92
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205
virtual REPORTER & Report(const wxString &aText, SEVERITY aSeverity=RPT_UNDEFINED)=0
Function Report is a pure virtual function to override in the derived object.
void DisplayError(wxWindow *parent, const wxString &text, int displaytime)
Function DisplayError displays an error or warning message box with aMessage.
Definition: confirm.cpp:185
bool CreateSVGFile(const wxString &FullFileName, bool aOnlyOneFile)
void DIALOG_SHIM::FinishDialogSettings ( )
protectedinherited

In all dialogs, we must call the same functions to fix minimal dlg size, the default position and perhaps some others to fix a few issues depending on Windows Managers this helper function does these calls.

FinishDialogSettings must be called from derived classes, when all widgets are initialized, and therefore their size fixed. If TransferDataToWindow() is used to initialize widgets, at end of TransferDataToWindow, or better at end of a wxInitDialogEvent handler

In any case, the best way is to call it in a wxInitDialogEvent handler after calling TransfertDataToWindow(), which is the default wxInitDialogEvent handler wxDialog

Definition at line 104 of file dialog_shim.cpp.

References PCAD2KICAD::Center.

Referenced by COLOR4D_PICKER_DLG::COLOR4D_PICKER_DLG(), DIALOG_3D_VIEW_OPTIONS::DIALOG_3D_VIEW_OPTIONS(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_BOM::DIALOG_BOM(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_DESIGN_RULES::DIALOG_DESIGN_RULES(), DIALOG_DIMENSION_EDITOR::DIALOG_DIMENSION_EDITOR(), DIALOG_DISPLAY_OPTIONS::DIALOG_DISPLAY_OPTIONS(), DIALOG_DRC_CONTROL::DIALOG_DRC_CONTROL(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_EESCHEMA_OPTIONS::DIALOG_EESCHEMA_OPTIONS(), DIALOG_ENUM_PADS::DIALOG_ENUM_PADS(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), DIALOG_EXPORT_3DFILE::DIALOG_EXPORT_3DFILE(), DIALOG_EXPORT_IDF3::DIALOG_EXPORT_IDF3(), DIALOG_EXPORT_STEP::DIALOG_EXPORT_STEP(), DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(), DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST(), DIALOG_GLOBAL_SYM_LIB_TABLE_CONFIG::DIALOG_GLOBAL_SYM_LIB_TABLE_CONFIG(), DIALOG_KEEPOUT_AREA_PROPERTIES::DIALOG_KEEPOUT_AREA_PROPERTIES(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_LIB_NEW_COMPONENT::DIALOG_LIB_NEW_COMPONENT(), DIALOG_LIBEDIT_OPTIONS::DIALOG_LIBEDIT_OPTIONS(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PADS_MASK_CLEARANCE::DIALOG_PADS_MASK_CLEARANCE(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_SCH_EDIT_SHEET_PIN::DIALOG_SCH_EDIT_SHEET_PIN(), DIALOG_SCH_SHEET_PROPS::DIALOG_SCH_SHEET_PROPS(), DIALOG_SELECT_PRETTY_LIB::DIALOG_SELECT_PRETTY_LIB(), DIALOG_TRACK_VIA_SIZE::DIALOG_TRACK_VIA_SIZE(), DIALOG_EDIT_ONE_FIELD::init(), DIALOG_SHIM::IsQuasiModal(), NETLIST_DIALOG::NETLIST_DIALOG(), DIALOG_LIB_EDIT_PIN::OnInitDialog(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnInitDialog(), DIALOG_TRACK_VIA_PROPERTIES::OnInitDlg(), DIALOG_GRAPHIC_ITEMS_OPTIONS::OnInitDlg(), DIALOG_EDIT_FPTEXT::OnInitDlg(), DIALOG_SET_GRID::OnInitDlg(), DIALOG_PCB_TEXT_PROPERTIES::OnInitDlg(), DIALOG_PRINT_FOR_MODEDIT::OnInitDlg(), DIALOG_FOOTPRINT_FP_EDITOR::OnInitDlg(), DIALOG_GRAPHIC_ITEM_PROPERTIES::OnInitDlg(), DIALOG_SIM_SETTINGS::onInitDlg(), DIALOG_SPICE_MODEL::onInitDlg(), DIALOG_FOOTPRINT_BOARD_EDITOR::OnInitDlg(), DIALOG_PRINT_USING_PRINTER::OnInitDlg(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnInitDlg(), TARGET_PROPERTIES_DIALOG_EDITOR::TARGET_PROPERTIES_DIALOG_EDITOR(), DIALOG_SIGNAL_LIST::TransferDataToWindow(), and DIALOG_UPDATE_FIELDS::TransferDataToWindow().

105 {
106  // must be called from the constructor of derived classes,
107  // when all widgets are initialized, and therefore their size fixed
108 
109  // SetSizeHints fixes the minimal size of sizers in the dialog
110  // (SetSizeHints calls Fit(), so no need to call it)
111  GetSizer()->SetSizeHints( this );
112 
113  // the default position, when calling the first time the dlg
114  Center();
115 }
LSET DIALOG_SVG_PRINT::getCheckBoxSelectedLayers ( ) const
private

Definition at line 189 of file dialog_SVG_print.cpp.

References DIM, and m_boxSelectLayer.

Referenced by ExportSVGFile(), and PrintPageRef().

190 {
191  LSET ret;
192 
193  for( unsigned layer = 0; layer < DIM(m_boxSelectLayer); ++layer )
194  {
195  if( !m_boxSelectLayer[layer].first )
196  continue;
197 
198  if( m_boxSelectLayer[layer].first->IsChecked( m_boxSelectLayer[layer].second ) )
199  ret.set( layer );
200  }
201 
202  return ret;
203 }
#define DIM(x)
of elements in an array
Definition: macros.h:98
Class LSET is a set of PCB_LAYER_IDs.
std::pair< wxCheckListBox *, int > m_boxSelectLayer[PCB_LAYER_ID_COUNT]
int DIALOG_SHIM::HorizPixelsFromDU ( int  x)
protectedinherited

Convert an integer number of dialog units to pixels, horizontally.

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 125 of file dialog_shim.cpp.

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), and DIALOG_SHIM::IsQuasiModal().

126 {
127  wxSize sz( x, 0 );
128  return ConvertDialogToPixels( sz ).x;
129 }
void DIALOG_SVG_PRINT::initDialog ( )
private

Definition at line 133 of file dialog_SVG_print.cpp.

References AddUnitSymbol(), g_DrawDefaultLineThickness, g_UserUnit, BOARD::GetEnabledLayers(), BOARD::GetLayerName(), PCB_PLOT_PARAMS::GetOutputDirectory(), IsCopperLayer(), m_board, m_boxSelectLayer, m_callers_params, m_config, DIALOG_SVG_PRINT_base::m_CopperLayersList, DIALOG_SVG_PRINT_base::m_DialogDefaultPenSize, DIALOG_SVG_PRINT_base::m_ModeColorOption, m_oneFileOnly, m_outputDirectory, DIALOG_SVG_PRINT_base::m_outputDirectoryName, DIALOG_SVG_PRINT_base::m_PrintBoardEdgesCtrl, m_printBW, m_printMirror, DIALOG_SVG_PRINT_base::m_printMirrorOpt, DIALOG_SVG_PRINT_base::m_rbFileOpt, DIALOG_SVG_PRINT_base::m_rbSvgPageSizeOpt, DIALOG_SVG_PRINT_base::m_TechnicalLayersList, DIALOG_SVG_PRINT_base::m_TextPenWidth, OPTKEY_LAYERBASE, PLOTSVGMODECOLOR_KEY, PLOTSVGMODEMIRROR_KEY, PLOTSVGMODEONEFILE_KEY, PLOTSVGPAGESIZEOPT_KEY, PLOTSVGPLOT_BRD_EDGE_KEY, StringFromValue(), and LSET::UIOrder().

Referenced by DIALOG_SVG_PRINT().

134 {
135  if( m_config )
136  {
137  m_config->Read( PLOTSVGMODECOLOR_KEY, &m_printBW, false );
138  long ltmp;
139  m_config->Read( PLOTSVGPAGESIZEOPT_KEY, &ltmp, 0 );
140  m_config->Read( PLOTSVGMODEMIRROR_KEY, &m_printMirror, false );
142  m_rbSvgPageSizeOpt->SetSelection( ltmp );
143  m_config->Read( PLOTSVGPLOT_BRD_EDGE_KEY, &ltmp, 1 );
144  m_PrintBoardEdgesCtrl->SetValue( ltmp );
145  }
146 
149 
150  m_ModeColorOption->SetSelection( m_printBW ? 1 : 0 );
151  m_printMirrorOpt->SetValue( m_printMirror );
152  m_rbFileOpt->SetSelection( m_oneFileOnly ? 1 : 0 );
153 
155 
157 
159 
160  for( ; seq; ++seq )
161  {
162  PCB_LAYER_ID layer = *seq;
163  int checkIndex;
164 
165  if( IsCopperLayer( layer ) )
166  {
167  checkIndex = m_CopperLayersList->Append( m_board->GetLayerName( layer ) );
168  m_boxSelectLayer[layer] = std::make_pair( m_CopperLayersList, checkIndex );
169  }
170  else
171  {
172  checkIndex = m_TechnicalLayersList->Append( m_board->GetLayerName( layer ) );
173  m_boxSelectLayer[layer] = std::make_pair( m_TechnicalLayersList, checkIndex );
174  }
175 
176  if( m_config )
177  {
178  wxString layerKey;
179  layerKey.Printf( OPTKEY_LAYERBASE, layer );
180  bool option;
181 
182  if( m_config && m_config->Read( layerKey, &option ) )
183  m_boxSelectLayer[layer].first->Check( checkIndex, option );
184  }
185  }
186 }
#define OPTKEY_LAYERBASE
Definition: pcbplot.h:52
wxString StringFromValue(EDA_UNITS_T aUnit, int aValue, bool aAddUnitSymbol)
Function StringFromValue returns the string from aValue according to units (inch, mm ...
Definition: base_units.cpp:205
LSET GetEnabledLayers() const
Function GetEnabledLayers is a proxy function that calls the corresponding function in m_BoardSetting...
#define PLOTSVGPAGESIZEOPT_KEY
wxString GetOutputDirectory() const
PCB_LAYER_ID
A quick note on layer IDs:
wxCheckListBox * m_CopperLayersList
wxCheckListBox * m_TechnicalLayersList
const wxString GetLayerName(PCB_LAYER_ID aLayer) const
Function GetLayerName returns the name of a layer given by aLayer.
int g_DrawDefaultLineThickness
Default line thickness in internal units used to draw or plot items using a default thickness line va...
Class LSEQ is a sequence (and therefore also a set) of PCB_LAYER_IDs.
PCB_PLOT_PARAMS * m_callers_params
EDA_UNITS_T g_UserUnit
Global variables definitions.
Definition: common.cpp:57
void AddUnitSymbol(wxStaticText &Stext, EDA_UNITS_T aUnit)
Definition: base_units.cpp:515
#define PLOTSVGMODEONEFILE_KEY
bool IsCopperLayer(LAYER_NUM aLayerId)
Function IsCopperLayer tests whether a layer is a copper layer.
#define PLOTSVGPLOT_BRD_EDGE_KEY
wxConfigBase * m_config
#define PLOTSVGMODECOLOR_KEY
std::pair< wxCheckListBox *, int > m_boxSelectLayer[PCB_LAYER_ID_COUNT]
LSEQ UIOrder() const
Definition: lset.cpp:786
#define PLOTSVGMODEMIRROR_KEY
KIWAY& KIWAY_HOLDER::Kiway ( ) const
inlineinherited

Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in.

A KIWAY_HOLDER is not necessarily a KIWAY_PLAYER.

Definition at line 60 of file kiway_player.h.

References KIWAY_HOLDER::m_kiway, KIWAY_HOLDER::Prj(), and KIWAY_HOLDER::SetKiway().

Referenced by SCH_EDIT_FRAME::AppendSchematic(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_CHOOSE_COMPONENT::ConstructRightPanel(), CVPCB_MAINFRAME::CreateScreenCmp(), CVPCB_MAINFRAME::CVPCB_MAINFRAME(), DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_SHIM::DIALOG_SHIM(), EDIT_TOOL::editFootprintInFpEditor(), SCH_EDIT_FRAME::EditSheet(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), LIB_MANAGER::GetBufferedPart(), FOOTPRINT_EDIT_FRAME::GetIconScale(), LIB_MANAGER::getLibraryBuffer(), FOOTPRINT_EDIT_FRAME::GetPlotSettings(), PCB_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::importFile(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::initBuffers(), SCH_EDIT_FRAME::KiwayMailIn(), KIWAY_PLAYER::language_change(), CVPCB_MAINFRAME::LoadFootprintFiles(), KIWAY_PLAYER::OnChangeIconsOptions(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), SCH_BASE_FRAME::OnEditSymbolLibTable(), DIALOG_CHOOSE_COMPONENT::OnIdle(), KICAD_MANAGER_FRAME::OnImportEagleFiles(), SCH_EDIT_FRAME::OnLeftClick(), SCH_BASE_FRAME::OnOpenLibraryViewer(), SCH_EDIT_FRAME::OnSimulate(), DIALOG_EDIT_ONE_FIELD::OnTextValueSelectButtonClick(), FOOTPRINT_EDIT_FRAME::OnUpdateInsertModuleInBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadModuleFromBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateReplaceModuleInBoard(), SCH_EDIT_FRAME::OpenProjectFiles(), KIWAY_HOLDER::Prj(), PCB_EDIT_FRAME::Process_Config(), PCB_EDIT_FRAME::Process_Special_Functions(), FOOTPRINT_EDIT_FRAME::ProcessPreferences(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), FOOTPRINT_WIZARD_FRAME::ReCreateVToolbar(), LIB_EDIT_FRAME::refreshSchematic(), SCH_EDIT_FRAME::SaveEEFile(), CVPCB_MAINFRAME::SaveFootprintAssociation(), SCH_BASE_FRAME::SelectComponentFromLibBrowser(), SCH_EDIT_FRAME::SendCrossProbeNetName(), PCB_EDIT_FRAME::SendCrossProbeNetName(), CVPCB_MAINFRAME::SendMessageToEESCHEMA(), PCB_EDIT_FRAME::SendMessageToEESCHEMA(), SCH_EDIT_FRAME::SendMessageToPCBNEW(), SCH_EDIT_FRAME::sendNetlist(), FOOTPRINT_EDIT_FRAME::SetPlotSettings(), DISPLAY_FOOTPRINTS_FRAME::Show3D_Frame(), FOOTPRINT_EDIT_FRAME::Show3D_Frame(), FOOTPRINT_VIEWER_FRAME::Show3D_Frame(), FOOTPRINT_WIZARD_FRAME::Show3D_Frame(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::showButtonHandler(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::showButtonHandler(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::UpdatePart(), and DIALOG_EXCHANGE_FOOTPRINTS::ViewAndSelectFootprint().

61  {
62  wxASSERT( m_kiway ); // smoke out bugs in Debug build, then Release runs fine.
63  return *m_kiway;
64  }
KIWAY * m_kiway
Definition: kiway_player.h:85
void DIALOG_SVG_PRINT::OnButtonCloseClick ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_SVG_PRINT_base.

Definition at line 392 of file dialog_SVG_print.cpp.

393 {
394  Close();
395 }
void DIALOG_SVG_PRINT::OnButtonPlot ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_SVG_PRINT_base.

Definition at line 383 of file dialog_SVG_print.cpp.

References ExportSVGFile(), m_did_print, m_oneFileOnly, and DIALOG_SVG_PRINT_base::m_rbFileOpt.

384 {
385  m_oneFileOnly = m_rbFileOpt->GetSelection() == 1;
387 
388  m_did_print = true;
389 }
void ExportSVGFile(bool aOnlyOneFile)
void DIALOG_SVG_PRINT::OnCloseWindow ( wxCloseEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_SVG_PRINT_base.

Definition at line 398 of file dialog_SVG_print.cpp.

References DIM, m_boxSelectLayer, m_callers_params, m_config, m_did_print, DIALOG_SVG_PRINT_base::m_ModeColorOption, m_oneFileOnly, DIALOG_SVG_PRINT_base::m_outputDirectoryName, DIALOG_SVG_PRINT_base::m_PrintBoardEdgesCtrl, m_printBW, m_printMirror, DIALOG_SVG_PRINT_base::m_rbFileOpt, DIALOG_SVG_PRINT_base::m_rbSvgPageSizeOpt, OPTKEY_LAYERBASE, PLOTSVGMODECOLOR_KEY, PLOTSVGMODEMIRROR_KEY, PLOTSVGMODEONEFILE_KEY, PLOTSVGPAGESIZEOPT_KEY, PLOTSVGPLOT_BRD_EDGE_KEY, PCB_PLOT_PARAMS::SetOutputDirectory(), and SetPenWidth().

399 {
400  if( m_did_print ) // unless output was created, this is tantamount to a cancel.
401  {
402  SetPenWidth();
403  m_printBW = m_ModeColorOption->GetSelection();
404  m_oneFileOnly = m_rbFileOpt->GetSelection() == 1;
405 
406  // Why are SVG layer choices co-mingled with other plot layer choices in the config file?
407  // The string OPTKEY_LAYERBASE is used in multiple places.
408  // fix this.
409 
410  wxString dirStr = m_outputDirectoryName->GetValue();
411  dirStr.Replace( wxT( "\\" ), wxT( "/" ) );
412 
414 
415  if( m_config )
416  {
420  m_config->Write( PLOTSVGPAGESIZEOPT_KEY, m_rbSvgPageSizeOpt->GetSelection() );
422 
423  wxString layerKey;
424 
425  for( unsigned layer = 0; layer < DIM(m_boxSelectLayer); ++layer )
426  {
427  if( !m_boxSelectLayer[layer].first )
428  continue;
429 
430  layerKey.Printf( OPTKEY_LAYERBASE, layer );
431  m_config->Write( layerKey,
432  m_boxSelectLayer[layer].first->IsChecked( m_boxSelectLayer[layer].second ) );
433  }
434  }
435  }
436 
437  EndModal( m_did_print ? wxID_OK : wxID_CANCEL );
438 }
#define DIM(x)
of elements in an array
Definition: macros.h:98
#define OPTKEY_LAYERBASE
Definition: pcbplot.h:52
#define PLOTSVGPAGESIZEOPT_KEY
void SetOutputDirectory(wxString aDir)
PCB_PLOT_PARAMS * m_callers_params
#define PLOTSVGMODEONEFILE_KEY
#define PLOTSVGPLOT_BRD_EDGE_KEY
wxConfigBase * m_config
#define PLOTSVGMODECOLOR_KEY
std::pair< wxCheckListBox *, int > m_boxSelectLayer[PCB_LAYER_ID_COUNT]
#define PLOTSVGMODEMIRROR_KEY
void DIALOG_SVG_PRINT::OnOutputDirectoryBrowseClicked ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_SVG_PRINT_base.

Definition at line 206 of file dialog_SVG_print.cpp.

References PROJECT::AbsolutePath(), BOARD::GetFileName(), m_board, m_outputDirectory, DIALOG_SVG_PRINT_base::m_outputDirectoryName, and KIWAY_HOLDER::Prj().

207 {
208  // Build the absolute path of current output plot directory
209  // to preselect it when opening the dialog.
210  wxFileName fn( m_outputDirectoryName->GetValue() );
211  wxString path = Prj().AbsolutePath( m_outputDirectoryName->GetValue() );
212 
213  wxDirDialog dirDialog( this, _( "Select Output Directory" ), path );
214 
215  if( dirDialog.ShowModal() == wxID_CANCEL )
216  return;
217 
218  wxFileName dirName = wxFileName::DirName( dirDialog.GetPath() );
219 
220  wxMessageDialog dialog( this, _( "Use a relative path?" ),
221  _( "Plot Output Directory" ),
222  wxYES_NO | wxICON_QUESTION | wxYES_DEFAULT );
223 
224  if( dialog.ShowModal() == wxID_YES )
225  {
226  wxString boardFilePath = Prj().AbsolutePath( m_board->GetFileName() );
227 
228  boardFilePath = wxPathOnly( boardFilePath );
229 
230  if( !dirName.MakeRelativeTo( boardFilePath ) )
231  wxMessageBox( _( "Cannot make path relative (target volume different from board file volume)!" ),
232  _( "Plot Output Directory" ), wxOK | wxICON_ERROR );
233  }
234 
235  m_outputDirectoryName->SetValue( dirName.GetFullPath() );
237 }
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
const wxString & GetFileName() const
Definition: class_board.h:234
VTBL_ENTRY const wxString AbsolutePath(const wxString &aFileName) const
Function AbsolutePath fixes up aFileName if it is relative to the project&#39;s directory to be an absolu...
Definition: project.cpp:380
void DIALOG_SHIM::OnPaint ( wxPaintEvent &  event)
inherited

Definition at line 271 of file dialog_shim.cpp.

References DIALOG_SHIM::m_fixupsRun, and recursiveDescent().

Referenced by DIALOG_SHIM::DIALOG_SHIM(), and DIALOG_SHIM::IsQuasiModal().

272 {
273  if( !m_fixupsRun )
274  {
275 #if DLGSHIM_SELECT_ALL_IN_TEXT_CONTROLS
276  const bool selectAllInTextCtrls = true;
277 #else
278  const bool selectAllInTextCtrls = false;
279 #endif
280  wxWindow* firstTextCtrl = NULL;
281  wxWindow* windowWithFocus = NULL;
282 
283  recursiveDescent( GetChildren(), selectAllInTextCtrls, firstTextCtrl,
284  windowWithFocus );
285 
286 #if DLGSHIM_USE_SETFOCUS
287  // While it would be nice to honour any focus already set (which was
288  // recorded in windowWithFocus), the reality is that it's currently wrong
289  // far more often than it's right.
290  // So just focus on the first text control if we have one; otherwise the
291  // focus on the dialog itself, which will at least allow esc, return, etc.
292  // to function.
293  if( firstTextCtrl )
294  firstTextCtrl->SetFocus();
295  else
296  SetFocus();
297 #endif
298 
299 #ifdef __WXMAC__
300  fixOSXCancelButtonIssue( this );
301 #endif
302 
303  m_fixupsRun = true;
304  }
305 
306  event.Skip();
307 }
static void recursiveDescent(wxWindowList &children, const bool selectTextInTextCtrls, wxWindow *&firstTextCtrl, wxWindow *&windowWithFocus)
bool m_fixupsRun
Definition: dialog_shim.h:149
bool DIALOG_SVG_PRINT::PageIsBoardBoundarySize ( )
inlineprivate

Definition at line 81 of file dialog_SVG_print.cpp.

References DIALOG_SVG_PRINT_base::m_rbSvgPageSizeOpt.

Referenced by CreateSVGFile().

82  {
83  return m_rbSvgPageSizeOpt->GetSelection() == 2;
84  }
bool DIALOG_SVG_PRINT::PrintPageRef ( )
inlineprivate

Definition at line 86 of file dialog_SVG_print.cpp.

References CreateSVGFile(), getCheckBoxSelectedLayers(), and DIALOG_SVG_PRINT_base::m_rbSvgPageSizeOpt.

Referenced by CreateSVGFile().

87  {
88  return m_rbSvgPageSizeOpt->GetSelection() == 0;
89  }
PROJECT & KIWAY_HOLDER::Prj ( ) const
inherited

Function Prj returns a reference to the PROJECT "associated with" this KIWAY.

Definition at line 34 of file kiway_holder.cpp.

References KIWAY_HOLDER::Kiway(), and KIWAY::Prj().

Referenced by SCH_EDIT_FRAME::AppendSchematic(), PCB_EDIT_FRAME::ArchiveModulesOnBoard(), DIALOG_SYMBOL_REMAP::backupProject(), LIB_VIEW_FRAME::BestZoom(), DIALOG_FOOTPRINT_FP_EDITOR::BrowseAndAdd3DShapeFile(), DIALOG_FOOTPRINT_BOARD_EDITOR::BrowseAndAdd3DShapeFile(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::BrowseAndSelectDocFile(), DIALOG_SYMBOL_LIB_TABLE::browseLibrariesHandler(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_FOOTPRINT_FP_EDITOR::Cfg3DPath(), DIALOG_FOOTPRINT_BOARD_EDITOR::Cfg3DPath(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::checkNewAlias(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copyPanelToOptions(), PCB_BASE_EDIT_FRAME::CreateNewLibrary(), DIALOG_PLOT_SCHEMATIC::createPlotFileName(), DIALOG_SYMBOL_REMAP::createProjectSymbolLibTable(), FOOTPRINT_EDIT_FRAME::DeleteModuleFromCurrentLibrary(), DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES(), DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), DIALOG_SYMBOL_LIB_TABLE::DIALOG_SYMBOL_LIB_TABLE(), DIALOG_SYMBOL_REMAP::DIALOG_SYMBOL_REMAP(), LIB_VIEW_FRAME::DisplayLibInfos(), LIB_EDIT_FRAME::DisplayLibInfos(), SCH_BASE_FRAME::DisplayListComponentsInLib(), PCB_EDIT_FRAME::doAutoSave(), DIALOG_FOOTPRINT_FP_EDITOR::Edit3DShapeFileName(), DIALOG_FOOTPRINT_BOARD_EDITOR::Edit3DShapeFileName(), SCH_EDIT_FRAME::EditSheet(), PCB_EDIT_FRAME::Export_IDF3(), PCB_EDIT_FRAME::Files_io_from_id(), NETLIST_DIALOG::GenNetlist(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), FOOTPRINT_VIEWER_FRAME::getCurFootprintName(), LIB_EDIT_FRAME::GetCurLib(), FOOTPRINT_VIEWER_FRAME::getCurNickname(), FOOTPRINT_EDIT_FRAME::GetCurrentLib(), SCH_BASE_FRAME::GetLibAlias(), SCH_BASE_FRAME::GetLibPart(), FOOTPRINT_EDIT_FRAME::getLibPath(), LIB_EDIT_FRAME::getLibraryFileName(), DIALOG_SYMBOL_REMAP::getLibsNotInGlobalSymbolLibTable(), DIALOG_BOM::getPluginFileName(), LIB_VIEW_FRAME::getSelectedAlias(), FP_THREAD_IFACE::GetTable(), PCB_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::importFile(), DIALOG_FOOTPRINT_FP_EDITOR::initModeditProperties(), DIALOG_FOOTPRINT_BOARD_EDITOR::InitModeditProperties(), PCB_EDIT_FRAME::InstallNetlistFrame(), SCH_EDIT_FRAME::IsSearchCacheObsolete(), KIWAY_HOLDER::Kiway(), SCH_EDIT_FRAME::Load_Component(), SCH_EDIT_FRAME::LoadCmpToFootprintLinkFile(), LIB_EDIT_FRAME::LoadComponentFromCurrentLib(), CVPCB_MAINFRAME::LoadFootprintFiles(), DIALOG_SPICE_MODEL::loadLibrary(), LIB_EDIT_FRAME::LoadOneSymbol(), CVPCB_MAINFRAME::LoadProjectFile(), SCH_EDIT_FRAME::LoadProjectFile(), PCB_EDIT_FRAME::LoadProjectSettings(), DIALOG_DRC_CONTROL::makeValidFileNameReport(), FOOTPRINT_VIEWER_FRAME::OnActivate(), DIALOG_GENCAD_EXPORT_OPTIONS::onBrowse(), DIALOG_DRC_CONTROL::OnButtonBrowseRptFileClick(), DIALOG_EDIT_COMPONENTS_LIBID::onClickOrphansButton(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), SCH_BASE_FRAME::OnEditSymbolLibTable(), DIALOG_GENDRILL::OnGenReportFile(), DIALOG_CHOOSE_COMPONENT::OnIdle(), SCH_EDIT_FRAME::OnImportProject(), PCB_EDIT_FRAME::OnLeftClick(), DIALOG_NETLIST::OnOpenNetlistClick(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), LIB_EDIT_FRAME::OnPlotCurrentComponent(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), SCH_EDIT_FRAME::OnRightClick(), DIALOG_BOM::OnRunPlugin(), SCH_EDIT_FRAME::OnSaveProject(), DIALOG_CHOOSE_COMPONENT::OnSchViewPaint(), DIALOG_SPICE_MODEL::onSelectLibrary(), LIB_VIEW_FRAME::OnSelectSymbol(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnTestChipName(), FOOTPRINT_EDIT_FRAME::OnUpdateSelectCurrentLib(), LIB_EDIT_FRAME::OnViewEntryDoc(), LIB_VIEW_FRAME::onViewSymbolDocument(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_FRAME::PasteListOfItems(), DIALOG_CHOOSE_COMPONENT::PopulateFootprintSelector(), SCH_EDIT_FRAME::Process_Config(), PCB_EDIT_FRAME::Process_Config(), FOOTPRINT_EDIT_FRAME::ProcessPreferences(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), LIB_VIEW_FRAME::ReCreateHToolbar(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), LIB_VIEW_FRAME::ReCreateListCmp(), LIB_VIEW_FRAME::ReCreateListLib(), LIB_VIEW_FRAME::RedrawActiveWindow(), EDA_3D_VIEWER::ReloadRequest(), DIALOG_SYMBOL_REMAP::remapSymbolToLibTable(), FOOTPRINT_EDIT_FRAME::restoreLastFootprint(), FOOTPRINT_EDIT_FRAME::retainLastFootprint(), SCH_EDIT_FRAME::SaveEEFile(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), LIB_EDIT_FRAME::saveLibrary(), LIB_EDIT_FRAME::SaveOneSymbol(), CVPCB_MAINFRAME::SaveProjectFile(), SCH_EDIT_FRAME::SaveProjectSettings(), PCB_EDIT_FRAME::SaveProjectSettings(), SCH_BASE_FRAME::saveSymbolLibTables(), FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint(), SCH_BASE_FRAME::SelectComponentFromLibrary(), PCB_BASE_FRAME::SelectLibrary(), SCH_BASE_FRAME::SelectLibraryFromList(), LIB_EDIT_FRAME::selectSymLibTable(), SCH_EDIT_FRAME::sendNetlist(), FOOTPRINT_VIEWER_FRAME::setCurFootprintName(), LIB_EDIT_FRAME::SetCurLib(), FOOTPRINT_VIEWER_FRAME::setCurNickname(), LIB_EDIT_FRAME::SetCurPart(), DIALOG_CHOOSE_COMPONENT::ShowFootprintFor(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::symTable(), EDA_3D_VIEWER::takeScreenshot(), SIM_PLOT_FRAME::updateNetlistExporter(), SCH_SCREEN::UpdateSymbolLinks(), FOOTPRINT_VIEWER_FRAME::UpdateTitle(), FOOTPRINT_EDIT_FRAME::updateTitle(), SCH_EDIT_FRAME::WriteNetListFile(), DIALOG_FOOTPRINT_BOARD_EDITOR::~DIALOG_FOOTPRINT_BOARD_EDITOR(), and DIALOG_FOOTPRINT_FP_EDITOR::~DIALOG_FOOTPRINT_FP_EDITOR().

35 {
36  return Kiway().Prj();
37 }
KIWAY & Kiway() const
Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in...
Definition: kiway_player.h:60
VTBL_ENTRY PROJECT & Prj() const
Function Prj returns the PROJECT associated with this KIWAY.
Definition: kiway.cpp:142
void KIWAY_HOLDER::SetKiway ( wxWindow *  aDest,
KIWAY aKiway 
)
inherited

Function SetKiway.

Parameters
aDestis the recipient of aKiway pointer. It is only used for debugging, since "this" is not a wxWindow*. "this" is a KIWAY_HOLDER mix-in.
aKiwayis often from a parent window, or from KIFACE::CreateWindow().

Definition at line 41 of file kiway_holder.cpp.

References KIWAY_HOLDER::m_kiway, and name.

Referenced by DIALOG_SHIM::DIALOG_SHIM(), KIWAY_HOLDER::Kiway(), and SIM_PLOT_FRAME::SIM_PLOT_FRAME().

42 {
43 #if defined(DEBUG)
44  // offer a trap point for debugging most any window
45  wxASSERT( aDest );
46  if( !strcmp( typeid(aDest).name(), "DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB" ) )
47  {
48  int breakhere=1;
49  (void) breakhere;
50  }
51 #endif
52 
53  (void) aDest;
54 
55  m_kiway = aKiway;
56 }
KIWAY * m_kiway
Definition: kiway_player.h:85
const char * name
Definition: DXF_plotter.cpp:61
void DIALOG_SVG_PRINT::SetPenWidth ( )
private

Definition at line 240 of file dialog_SVG_print.cpp.

References g_DrawDefaultLineThickness, g_UserUnit, DIALOG_SVG_PRINT_base::m_DialogDefaultPenSize, StringFromValue(), ValueFromTextCtrl(), WIDTH_MAX_VALUE, and WIDTH_MIN_VALUE.

Referenced by ExportSVGFile(), and OnCloseWindow().

241 {
242  int pensize = ValueFromTextCtrl( *m_DialogDefaultPenSize );
243 
244  if( pensize > WIDTH_MAX_VALUE )
245  {
246  pensize = WIDTH_MAX_VALUE;
247  }
248 
249  if( pensize < WIDTH_MIN_VALUE )
250  {
251  pensize = WIDTH_MIN_VALUE;
252  }
253 
254  g_DrawDefaultLineThickness = pensize;
255  m_DialogDefaultPenSize->SetValue( StringFromValue( g_UserUnit, pensize ) );
256 }
wxString StringFromValue(EDA_UNITS_T aUnit, int aValue, bool aAddUnitSymbol)
Function StringFromValue returns the string from aValue according to units (inch, mm ...
Definition: base_units.cpp:205
int g_DrawDefaultLineThickness
Default line thickness in internal units used to draw or plot items using a default thickness line va...
int ValueFromTextCtrl(const wxTextCtrl &aTextCtr)
Convert the number Value in a string according to the internal units and the selected unit (g_UserUni...
Definition: base_units.cpp:386
EDA_UNITS_T g_UserUnit
Global variables definitions.
Definition: common.cpp:57
#define WIDTH_MIN_VALUE
#define WIDTH_MAX_VALUE
void DIALOG_SHIM::SetSizeInDU ( int  x,
int  y 
)
protectedinherited

Set the dialog to the given dimensions in "dialog units".

These are units equivalent to 4* the average character width and 8* the average character height, allowing a dialog to be sized in a way that scales it with the system font.

Definition at line 118 of file dialog_shim.cpp.

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_EDIT_COMPONENTS_LIBID::DIALOG_EDIT_COMPONENTS_LIBID(), DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(), DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), DIALOG_SYMBOL_LIB_TABLE::DIALOG_SYMBOL_LIB_TABLE(), HOTKEYS_EDITOR_DIALOG::HOTKEYS_EDITOR_DIALOG(), HTML_MESSAGE_BOX::HTML_MESSAGE_BOX(), DIALOG_SHIM::IsQuasiModal(), DIALOG_LAYERS_SETUP::OnInitDialog(), and HTML_MESSAGE_BOX::SetDialogSizeInDU().

119 {
120  wxSize sz( x, y );
121  SetSize( ConvertDialogToPixels( sz ) );
122 }
bool DIALOG_SHIM::Show ( bool  show)
overrideinherited

Definition at line 146 of file dialog_shim.cpp.

References class_map, EDA_RECT::GetPosition(), EDA_RECT::GetSize(), DIALOG_SHIM::m_hash_key, max, wxPoint::x, and wxPoint::y.

Referenced by DisplayHotkeyList(), DIALOG_SHIM::EndQuasiModal(), InvokeDialogERC(), DIALOG_SHIM::IsQuasiModal(), DIALOG_SCH_FIND::OnCancel(), DIALOG_DRC_CONTROL::OnLeftDClickClearance(), DIALOG_DRC_CONTROL::OnLeftDClickUnconnected(), DIALOG_DRC_CONTROL::OnPopupMenu(), DIALOG_EXCHANGE_FOOTPRINTS::OnQuit(), POSITION_RELATIVE_TOOL::PositionRelative(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), SCH_COMPONENT::SetPosition(), DRC::ShowDRCDialog(), and DIALOG_SHIM::ShowQuasiModal().

147 {
148  bool ret;
149  const char* hash_key;
150 
151  if( m_hash_key.size() )
152  {
153  // a special case like EDA_LIST_DIALOG, which has multiple uses.
154  hash_key = m_hash_key.c_str();
155  }
156  else
157  {
158  hash_key = typeid(*this).name();
159  }
160 
161  // Show or hide the window. If hiding, save current position and size.
162  // If showing, use previous position and size.
163  if( show )
164  {
165 #ifndef __WINDOWS__
166  wxDialog::Raise(); // Needed on OS X and some other window managers (i.e. Unity)
167 #endif
168  ret = wxDialog::Show( show );
169 
170  // classname is key, returns a zeroed out default EDA_RECT if none existed before.
171  EDA_RECT savedDialogRect = class_map[ hash_key ];
172 
173  if( savedDialogRect.GetSize().x != 0 && savedDialogRect.GetSize().y != 0 )
174  {
175  SetSize( savedDialogRect.GetPosition().x,
176  savedDialogRect.GetPosition().y,
177  std::max( wxDialog::GetSize().x, savedDialogRect.GetSize().x ),
178  std::max( wxDialog::GetSize().y, savedDialogRect.GetSize().y ),
179  0 );
180  }
181 
182  // Be sure that the dialog appears in a visible area
183  // (the dialog position might have been stored at the time when it was
184  // shown on another display)
185  if( wxDisplay::GetFromWindow( this ) == wxNOT_FOUND )
186  Centre();
187  }
188  else
189  {
190  // Save the dialog's position & size before hiding, using classname as key
191  class_map[ hash_key ] = EDA_RECT( wxDialog::GetPosition(), wxDialog::GetSize() );
192 
193 #ifdef __WXMAC__
194  if ( m_eventLoop )
195  m_eventLoop->Exit( GetReturnCode() ); // Needed for APP-MODAL dlgs on OSX
196 #endif
197 
198  ret = wxDialog::Show( show );
199  }
200 
201  return ret;
202 }
const wxSize GetSize() const
Definition: eda_rect.h:101
std::string m_hash_key
Definition: dialog_shim.h:151
static RECT_MAP class_map
const wxPoint GetPosition() const
Definition: eda_rect.h:113
#define max(a, b)
Definition: auxiliary.h:86
Class EDA_RECT handles the component boundary box.
Definition: eda_rect.h:44
int DIALOG_SHIM::ShowQuasiModal ( )
inherited

Definition at line 558 of file dialog_shim.cpp.

References DBG, DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, DIALOG_SHIM::m_qmodal_showing, and DIALOG_SHIM::Show().

Referenced by SCH_EDIT_FRAME::EditComponent(), SCH_EDIT_FRAME::EditComponentFieldText(), LIB_EDIT_FRAME::EditField(), EDIT_TOOL::ExchangeFootprints(), PCB_EDIT_FRAME::InstallExchangeModuleFrame(), LIB_EDIT_FRAME::InstallFieldsEditorDialog(), SCH_EDIT_FRAME::InstallHierarchyFrame(), InvokeDialogCreateBOMEditor(), InvokeDialogEditComponentsLibId(), InvokeDialogUpdateFields(), SCH_EDIT_FRAME::OnRemapSymbols(), LIB_VIEW_FRAME::OnSelectSymbol(), SCH_EDIT_FRAME::OpenProjectFiles(), and SCH_BASE_FRAME::SelectComponentFromLibrary().

559 {
560  // This is an exception safe way to zero a pointer before returning.
561  // Yes, even though DismissModal() clears this first normally, this is
562  // here in case there's an exception before the dialog is dismissed.
563  struct NULLER
564  {
565  void*& m_what;
566  NULLER( void*& aPtr ) : m_what( aPtr ) {}
567  ~NULLER() { m_what = 0; } // indeed, set it to NULL on destruction
568  } clear_this( (void*&) m_qmodal_loop );
569 
570  // release the mouse if it's currently captured as the window having it
571  // will be disabled when this dialog is shown -- but will still keep the
572  // capture making it impossible to do anything in the modal dialog itself
573  wxWindow* win = wxWindow::GetCapture();
574  if( win )
575  win->ReleaseMouse();
576 
577  // Get the optimal parent
578  wxWindow* parent = GetParentForModalDialog( GetParent(), GetWindowStyle() );
579 
580  // Show the optimal parent
581  DBG( if( parent ) printf( "%s: optimal parent: %s\n", __func__, typeid(*parent).name() );)
582 
583  wxASSERT_MSG( !m_qmodal_parent_disabler,
584  wxT( "Caller using ShowQuasiModal() twice on same window?" ) );
585 
586  // quasi-modal: disable only my "optimal" parent
588 
589 #ifdef __WXMAC__
590  // Apple in its infinite wisdom will raise a disabled window before even passing
591  // us the event, so we have no way to stop it. Instead, we must set an order on
592  // the windows so that the quasi-modal will be pushed in front of the disabled
593  // window when it is raised.
594  ReparentQuasiModal();
595 #endif
596  Show( true );
597 
598  m_qmodal_showing = true;
599 
600  EVENT_LOOP event_loop;
601 
602  m_qmodal_loop = &event_loop;
603 
604  event_loop.Run();
605 
606  return GetReturnCode();
607 }
bool m_qmodal_showing
Definition: dialog_shim.h:155
EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:154
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:156
Toggle a window&#39;s "enable" status to disabled, then enabled on destruction.
Definition: dialog_shim.cpp:33
#define DBG(x)
Definition: fctsys.h:33
int DIALOG_SHIM::VertPixelsFromDU ( int  y)
protectedinherited

Convert an integer number of dialog units to pixels, vertically.

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 132 of file dialog_shim.cpp.

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_EDIT_COMPONENTS_LIBID::DIALOG_EDIT_COMPONENTS_LIBID(), DIALOG_SHIM::IsQuasiModal(), and DIALOG_LAYERS_SETUP::OnInitDialog().

133 {
134  wxSize sz( 0, y );
135  return ConvertDialogToPixels( sz ).y;
136 }

Member Data Documentation

BOARD* DIALOG_SVG_PRINT::m_board
private
std::pair<wxCheckListBox*, int> DIALOG_SVG_PRINT::m_boxSelectLayer[PCB_LAYER_ID_COUNT]
private
wxButton* DIALOG_SVG_PRINT_base::m_browseButton
protectedinherited
wxButton* DIALOG_SVG_PRINT_base::m_buttonCreateFile
protectedinherited
wxButton* DIALOG_SVG_PRINT_base::m_buttonQuit
protectedinherited
PCB_PLOT_PARAMS* DIALOG_SVG_PRINT::m_callers_params
private

Definition at line 59 of file dialog_SVG_print.cpp.

Referenced by initDialog(), and OnCloseWindow().

wxConfigBase* DIALOG_SVG_PRINT::m_config
private

Definition at line 60 of file dialog_SVG_print.cpp.

Referenced by DIALOG_SVG_PRINT(), initDialog(), and OnCloseWindow().

wxCheckListBox* DIALOG_SVG_PRINT_base::m_CopperLayersList
protectedinherited
wxTextCtrl* DIALOG_SVG_PRINT_base::m_DialogDefaultPenSize
protectedinherited
bool DIALOG_SVG_PRINT::m_did_print
private

Definition at line 57 of file dialog_SVG_print.cpp.

Referenced by OnButtonPlot(), and OnCloseWindow().

bool DIALOG_SHIM::m_fixupsRun
protectedinherited

Definition at line 149 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint().

std::string DIALOG_SHIM::m_hash_key
protectedinherited
WX_HTML_REPORT_PANEL* DIALOG_SVG_PRINT_base::m_messagesPanel
protectedinherited
wxRadioBox* DIALOG_SVG_PRINT_base::m_ModeColorOption
protectedinherited
bool DIALOG_SVG_PRINT::m_oneFileOnly
private

Definition at line 68 of file dialog_SVG_print.cpp.

Referenced by initDialog(), OnButtonPlot(), and OnCloseWindow().

wxString DIALOG_SVG_PRINT::m_outputDirectory
private

Definition at line 66 of file dialog_SVG_print.cpp.

Referenced by ExportSVGFile(), initDialog(), and OnOutputDirectoryBrowseClicked().

wxTextCtrl* DIALOG_SVG_PRINT_base::m_outputDirectoryName
protectedinherited
wxCheckBox* DIALOG_SVG_PRINT_base::m_PrintBoardEdgesCtrl
protectedinherited
bool DIALOG_SVG_PRINT::m_printBW
private

Definition at line 65 of file dialog_SVG_print.cpp.

Referenced by CreateSVGFile(), ExportSVGFile(), initDialog(), and OnCloseWindow().

LSET DIALOG_SVG_PRINT::m_printMaskLayer
private

Definition at line 61 of file dialog_SVG_print.cpp.

Referenced by CreateSVGFile(), and ExportSVGFile().

bool DIALOG_SVG_PRINT::m_printMirror
private

Definition at line 67 of file dialog_SVG_print.cpp.

Referenced by CreateSVGFile(), ExportSVGFile(), initDialog(), and OnCloseWindow().

wxCheckBox* DIALOG_SVG_PRINT_base::m_printMirrorOpt
protectedinherited
EVENT_LOOP* DIALOG_SHIM::m_qmodal_loop
protectedinherited

Definition at line 154 of file dialog_shim.h.

Referenced by DIALOG_SHIM::EndQuasiModal(), and DIALOG_SHIM::ShowQuasiModal().

WDO_ENABLE_DISABLE* DIALOG_SHIM::m_qmodal_parent_disabler
protectedinherited
bool DIALOG_SHIM::m_qmodal_showing
protectedinherited
wxRadioBox* DIALOG_SVG_PRINT_base::m_rbFileOpt
protectedinherited
wxRadioBox* DIALOG_SVG_PRINT_base::m_rbSvgPageSizeOpt
protectedinherited
wxStaticText* DIALOG_SVG_PRINT_base::m_staticTextCopperLayers
protectedinherited
wxStaticText* DIALOG_SVG_PRINT_base::m_staticTextDir
protectedinherited
wxStaticText* DIALOG_SVG_PRINT_base::m_staticTextTechLayers
protectedinherited
wxCheckListBox* DIALOG_SVG_PRINT_base::m_TechnicalLayersList
protectedinherited
wxStaticText* DIALOG_SVG_PRINT_base::m_TextPenWidth
protectedinherited

The documentation for this class was generated from the following file: