From dd5386db373883e9fb6ffe73e0aaa0b8c6fe0341 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Fri, 10 Dec 2010 21:36:39 +0100 Subject: [PATCH 1/4] minor change to match UI policy --- pcbnew/dialogs/dialog_plot_base.cpp | 4 ++-- pcbnew/dialogs/dialog_plot_base.fbp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pcbnew/dialogs/dialog_plot_base.cpp b/pcbnew/dialogs/dialog_plot_base.cpp index f5e61e33e4..b86a5845bb 100644 --- a/pcbnew/dialogs/dialog_plot_base.cpp +++ b/pcbnew/dialogs/dialog_plot_base.cpp @@ -35,7 +35,7 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr bLeftSizer->Add( sbLayersSizer, 1, wxEXPAND, 5 ); - m_Use_Gerber_Extensions = new wxCheckBox( this, ID_USE_GERBER_EXTENSIONS, _("Use Proper Gerber Extensions"), wxDefaultPosition, wxDefaultSize, 0 ); + m_Use_Gerber_Extensions = new wxCheckBox( this, ID_USE_GERBER_EXTENSIONS, _("Use proper Gerber extensions"), wxDefaultPosition, wxDefaultSize, 0 ); m_Use_Gerber_Extensions->SetToolTip( _("Use Proper Gerber Extensions - .GBL, .GTL, etc...") ); bLeftSizer->Add( m_Use_Gerber_Extensions, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); @@ -45,7 +45,7 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr bLeftSizer->Add( m_Exclude_Edges_Pcb, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - m_SubtractMaskFromSilk = new wxCheckBox( this, wxID_ANY, _("Subtract Mask from Silk"), wxDefaultPosition, wxDefaultSize, 0 ); + m_SubtractMaskFromSilk = new wxCheckBox( this, wxID_ANY, _("Subtract mask from silk"), wxDefaultPosition, wxDefaultSize, 0 ); m_SubtractMaskFromSilk->SetToolTip( _("Remove silkscreen from areas without soldermask") ); bLeftSizer->Add( m_SubtractMaskFromSilk, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); diff --git a/pcbnew/dialogs/dialog_plot_base.fbp b/pcbnew/dialogs/dialog_plot_base.fbp index b2a0757974..edb2da0709 100644 --- a/pcbnew/dialogs/dialog_plot_base.fbp +++ b/pcbnew/dialogs/dialog_plot_base.fbp @@ -158,7 +158,7 @@ 0 ID_USE_GERBER_EXTENSIONS - Use Proper Gerber Extensions + Use proper Gerber extensions m_Use_Gerber_Extensions @@ -272,7 +272,7 @@ 0 wxID_ANY - Subtract Mask from Silk + Subtract mask from silk m_SubtractMaskFromSilk From e9f557e65ab9d9141920da98c1af7e467b5ec3bd Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Sat, 11 Dec 2010 19:40:39 +0100 Subject: [PATCH 2/4] Pcbnew plot functions: code cleanup, coding policy fixes and minor enhancements --- common/build_version.cpp | 2 +- common/class_plotter.cpp | 4 +- common/common_plotDXF_functions.cpp | 7 +- common/common_plotGERBER_functions.cpp | 9 +- common/common_plotHPGL_functions.cpp | 8 +- common/common_plotPS_functions.cpp | 8 +- include/plot_common.h | 84 +++--- pcbnew/dialogs/dialog_gendrill.cpp | 8 +- pcbnew/dialogs/dialog_plot_base.cpp | 10 +- pcbnew/dialogs/dialog_plot_base.fbp | 4 +- pcbnew/dialogs/dialog_plot_base.h | 4 +- pcbnew/dialogs/dialog_print_for_modedit.cpp | 6 +- pcbnew/dialogs/dialog_print_using_printer.cpp | 6 +- pcbnew/gen_drill_report_files.cpp | 6 +- pcbnew/pcbnew_config.cpp | 39 +-- pcbnew/pcbplot.cpp | 240 +++++++++--------- pcbnew/pcbplot.h | 68 ++--- pcbnew/plot_rtn.cpp | 37 ++- pcbnew/plotdxf.cpp | 2 +- pcbnew/plotgerb.cpp | 8 +- pcbnew/plothpgl.cpp | 43 ++-- pcbnew/plotps.cpp | 26 +- version.txt | 4 +- 23 files changed, 317 insertions(+), 316 deletions(-) diff --git a/common/build_version.cpp b/common/build_version.cpp index e0118535ee..2034ead4a4 100644 --- a/common/build_version.cpp +++ b/common/build_version.cpp @@ -6,7 +6,7 @@ #endif #ifndef KICAD_BUILD_VERSION -#define KICAD_BUILD_VERSION "(2010-04-19 BZR 23xx)" +#define KICAD_BUILD_VERSION "(2010-12-10 BZR 26xx)" #endif //#define VERSION_STABILITY "stable" diff --git a/common/class_plotter.cpp b/common/class_plotter.cpp index 52480ac9fb..5b6249219b 100644 --- a/common/class_plotter.cpp +++ b/common/class_plotter.cpp @@ -28,7 +28,7 @@ PLOTTER::PLOTTER( PlotFormat aPlotType ) default_pen_width = 0; current_pen_width = -1; /* To-be-set marker */ pen_state = 'Z'; /* End-of-path idle */ - plot_orient_options = 0; /* Mirror flag */ + plotMirror = 0; /* Mirror flag */ output_file = 0; color_mode = false; /* Start as a BW plot */ negative_mode = false; @@ -43,7 +43,7 @@ void PLOTTER::user_to_device_coordinates( wxPoint& pos ) { pos.x = (int) ( (pos.x - plot_offset.x) * plot_scale * device_scale ); - if( plot_orient_options == PLOT_MIROIR ) + if( plotMirror ) pos.y = (int) ( ( pos.y - plot_offset.y ) * plot_scale * device_scale ); else pos.y = (int) ( ( paper_size.y - ( pos.y - plot_offset.y ) diff --git a/common/common_plotDXF_functions.cpp b/common/common_plotDXF_functions.cpp index b755386535..48081278f9 100644 --- a/common/common_plotDXF_functions.cpp +++ b/common/common_plotDXF_functions.cpp @@ -14,15 +14,14 @@ /* Set the plot offset for the current plotting */ -void DXF_PLOTTER::set_viewport( wxPoint offset, - double aScale, int orient ) +void DXF_PLOTTER::set_viewport( wxPoint aOffset, double aScale, bool aMirror ) { wxASSERT( !output_file ); - plot_offset = offset; + plot_offset = aOffset; plot_scale = aScale; device_scale = 1; set_default_line_width( 0 ); /* No line width on DXF */ - plot_orient_options = 0; /* No mirroring on DXF */ + plotMirror = false; /* No mirroring on DXF */ current_color = BLACK; } diff --git a/common/common_plotGERBER_functions.cpp b/common/common_plotGERBER_functions.cpp index 3e1f8b4378..a595746182 100644 --- a/common/common_plotGERBER_functions.cpp +++ b/common/common_plotGERBER_functions.cpp @@ -21,13 +21,12 @@ * @param aOffset = plot offset * @param aScale = coordinate scale (scale coefficient for coordinates) */ -void GERBER_PLOTTER::set_viewport( wxPoint offset, - double aScale, int orient ) +void GERBER_PLOTTER::set_viewport( wxPoint aOffset, double aScale, bool aMirror ) { wxASSERT( !output_file ); - wxASSERT( orient == 0 ); - plot_orient_options = 0; - plot_offset = offset; + wxASSERT( aMirror == false ); + plotMirror = false; + plot_offset = aOffset; wxASSERT( aScale == 1 ); plot_scale = 1; device_scale = 1; diff --git a/common/common_plotHPGL_functions.cpp b/common/common_plotHPGL_functions.cpp index 4214e1d276..8dc62082f0 100644 --- a/common/common_plotHPGL_functions.cpp +++ b/common/common_plotHPGL_functions.cpp @@ -17,14 +17,14 @@ const double SCALE_HPGL = 0.102041; /* Set the plot offset for the current plotting */ -void HPGL_PLOTTER::set_viewport( wxPoint offset, double aScale, int orient ) +void HPGL_PLOTTER::set_viewport( wxPoint aOffset, double aScale, bool aMirror ) { wxASSERT( !output_file ); - plot_offset = offset; + plot_offset = aOffset; plot_scale = aScale; device_scale = SCALE_HPGL; set_default_line_width( 100 ); /* default line width in 1 / 1000 inch */ - plot_orient_options = orient; + plotMirror = aMirror; } @@ -213,7 +213,7 @@ void HPGL_PLOTTER::arc( wxPoint centre, int StAngle, int EndAngle, int rayon, cpos = centre; user_to_device_coordinates( cpos ); - if( plot_orient_options == PLOT_MIROIR ) + if( plotMirror ) angle = (StAngle - EndAngle) / 10.0; else angle = (EndAngle - StAngle) / 10.0; diff --git a/common/common_plotPS_functions.cpp b/common/common_plotPS_functions.cpp index ef42e9c987..851e54a38a 100644 --- a/common/common_plotPS_functions.cpp +++ b/common/common_plotPS_functions.cpp @@ -13,11 +13,11 @@ /* Set the plot offset for the current plotting */ -void PS_PLOTTER::set_viewport( wxPoint offset, double aScale, int orient ) +void PS_PLOTTER::set_viewport( wxPoint aOffset, double aScale, bool aMirror ) { wxASSERT( !output_file ); - plot_orient_options = orient; - plot_offset = offset; + plotMirror = aMirror; + plot_offset = aOffset; plot_scale = aScale; device_scale = 1; /* PS references in decimals */ set_default_line_width( 100 ); /* default line width in 1/1000 inch */ @@ -157,7 +157,7 @@ void PS_PLOTTER::arc( wxPoint centre, int StAngle, int EndAngle, int radius, // Calculate start point. user_to_device_coordinates( centre ); radius = wxRound( user_to_device_size( radius ) ); - if( plot_orient_options == PLOT_MIROIR ) + if( plotMirror ) fprintf( output_file, "%d %d %d %g %g arc%d\n", centre.x, centre.y, radius, (double) -EndAngle / 10, (double) -StAngle / 10, fill ); diff --git a/include/plot_common.h b/include/plot_common.h index 2f68840469..c5e7a14e81 100644 --- a/include/plot_common.h +++ b/include/plot_common.h @@ -26,14 +26,11 @@ enum PlotFormat { PLOT_FORMAT_DXF }; -const int PLOT_MIROIR = 1; - class PLOTTER { public: PlotFormat m_PlotType; // type of plot -public: - PLOTTER( PlotFormat aPlotType ); +public: PLOTTER( PlotFormat aPlotType ); virtual ~PLOTTER() { @@ -91,8 +88,7 @@ public: } - virtual void set_viewport( wxPoint offset, - double scale, int orient ) = 0; + virtual void set_viewport( wxPoint aOffset, double aScale, bool aMirror ) = 0; /* Standard primitives */ virtual void rect( wxPoint p1, wxPoint p2, FILL_T fill, @@ -120,6 +116,7 @@ public: GRTraceMode trace_mode ) = 0; virtual void flash_pad_rect( wxPoint pos, wxSize size, int orient, GRTraceMode trace_mode ) = 0; + /** virtual function flash_pad_trapez * flash a trapezoidal pad * @param aPadPos = the position of the shape @@ -175,7 +172,7 @@ public: * by writing \%LPD*\% or \%LPC*\% to the Gerber file, respectively. * param @aPositive = layer polarity, true for positive */ - virtual void SetLayerPolarity( bool aPositive ) = 0; + virtual void SetLayerPolarity( bool aPositive ) = 0; protected: /* These are marker subcomponents */ @@ -206,7 +203,7 @@ protected: char pen_state; wxPoint pen_lastpos; /* Other stuff */ - int plot_orient_options; /* For now, mirror plot */ + bool plotMirror; wxString creator; wxString filename; Ki_PageDescr* sheet; @@ -215,11 +212,11 @@ protected: class HPGL_PLOTTER : public PLOTTER { -public: - HPGL_PLOTTER() : PLOTTER(PLOT_FORMAT_HPGL) +public: HPGL_PLOTTER() : PLOTTER( PLOT_FORMAT_HPGL ) { } + virtual bool start_plot( FILE* fout ); virtual bool end_plot(); @@ -261,8 +258,7 @@ public: } - virtual void set_viewport( wxPoint offset, - double scale, int orient ); + virtual void set_viewport( wxPoint aOffset, double aScale, bool aMirror ); virtual void rect( wxPoint p1, wxPoint p2, FILL_T fill, int width = -1 ); virtual void circle( wxPoint pos, int diametre, FILL_T fill, int width = -1 ); virtual void poly( int nb_segm, int* coord, FILL_T fill, int width = -1 ); @@ -277,13 +273,14 @@ public: GRTraceMode trace_mode ); virtual void flash_pad_rect( wxPoint pos, wxSize size, int orient, GRTraceMode trace_mode ); + virtual void flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4], int aPadOrient, GRTraceMode aTrace_Mode ); virtual void SetLayerPolarity( bool aPositive ) {}; protected: - void pen_control( int plume ); + void pen_control( int plume ); int pen_speed; int pen_number; @@ -293,13 +290,13 @@ protected: class PS_PLOTTER : public PLOTTER { -public: - PS_PLOTTER() : PLOTTER(PLOT_FORMAT_POST) +public: PS_PLOTTER() : PLOTTER( PLOT_FORMAT_POST ) { plot_scale_adjX = 1; plot_scale_adjY = 1; } + virtual bool start_plot( FILE* fout ); virtual bool end_plot(); virtual void set_current_line_width( int width ); @@ -314,8 +311,7 @@ public: } - virtual void set_viewport( wxPoint offset, - double scale, int orient ); + virtual void set_viewport( wxPoint aOffset, double aScale, bool aMirror ); virtual void rect( wxPoint p1, wxPoint p2, FILL_T fill, int width = -1 ); virtual void circle( wxPoint pos, int diametre, FILL_T fill, int width = -1 ); virtual void arc( wxPoint centre, int StAngle, int EndAngle, int rayon, @@ -328,6 +324,7 @@ public: GRTraceMode trace_mode ); virtual void flash_pad_rect( wxPoint pos, wxSize size, int orient, GRTraceMode trace_mode ); + virtual void flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4], int aPadOrient, GRTraceMode aTrace_Mode ); @@ -359,8 +356,7 @@ struct APERTURE class GERBER_PLOTTER : public PLOTTER { -public: - GERBER_PLOTTER() : PLOTTER(PLOT_FORMAT_GERBER) +public: GERBER_PLOTTER() : PLOTTER( PLOT_FORMAT_GERBER ) { work_file = 0; final_file = 0; @@ -368,28 +364,28 @@ public: } - virtual bool start_plot( FILE* fout ); - virtual bool end_plot(); - virtual void set_current_line_width( int width ); - virtual void set_default_line_width( int width ); + virtual bool start_plot( FILE* fout ); + virtual bool end_plot(); + virtual void set_current_line_width( int width ); + virtual void set_default_line_width( int width ); /* RS274X has no dashing, nor colours */ virtual void set_dash( bool dashed ) {}; virtual void set_color( int color ) {}; - virtual void set_viewport( wxPoint offset, - double scale, int orient ); - virtual void rect( wxPoint p1, wxPoint p2, FILL_T fill, int width = -1 ); - virtual void circle( wxPoint pos, int diametre, FILL_T fill, int width = -1 ); - virtual void poly( int nb_segm, int* coord, FILL_T fill, int width = -1 ); - virtual void pen_to( wxPoint pos, char plume ); - virtual void flash_pad_circle( wxPoint pos, int diametre, - GRTraceMode trace_mode ); - virtual void flash_pad_oval( wxPoint pos, wxSize size, int orient, - GRTraceMode trace_mode ); - virtual void flash_pad_rect( wxPoint pos, wxSize size, - int orient, GRTraceMode trace_mode ); - virtual void flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4], - int aPadOrient, GRTraceMode aTrace_Mode ); + virtual void set_viewport( wxPoint aOffset, double aScale, bool aMirror ); + virtual void rect( wxPoint p1, wxPoint p2, FILL_T fill, int width = -1 ); + virtual void circle( wxPoint pos, int diametre, FILL_T fill, int width = -1 ); + virtual void poly( int nb_segm, int* coord, FILL_T fill, int width = -1 ); + virtual void pen_to( wxPoint pos, char plume ); + virtual void flash_pad_circle( wxPoint pos, int diametre, + GRTraceMode trace_mode ); + virtual void flash_pad_oval( wxPoint pos, wxSize size, int orient, + GRTraceMode trace_mode ); + virtual void flash_pad_rect( wxPoint pos, wxSize size, + int orient, GRTraceMode trace_mode ); + + virtual void flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4], + int aPadOrient, GRTraceMode aTrace_Mode ); virtual void SetLayerPolarity( bool aPositive ); @@ -400,10 +396,10 @@ protected: std::vector::iterator get_aperture( const wxSize& size, APERTURE::Aperture_Type type ); - FILE* work_file, * final_file; - wxString m_workFilename; + FILE* work_file, * final_file; + wxString m_workFilename; - void write_aperture_list(); + void write_aperture_list(); std::vector apertures; std::vector::iterator current_aperture; @@ -411,11 +407,11 @@ protected: class DXF_PLOTTER : public PLOTTER { -public: - DXF_PLOTTER() : PLOTTER(PLOT_FORMAT_DXF) +public: DXF_PLOTTER() : PLOTTER( PLOT_FORMAT_DXF ) { } + virtual bool start_plot( FILE* fout ); virtual bool end_plot(); @@ -434,8 +430,7 @@ public: virtual void set_color( int color ); - virtual void set_viewport( wxPoint offset, - double scale, int orient ); + virtual void set_viewport( wxPoint aOffset, double aScale, bool aMirror ); virtual void rect( wxPoint p1, wxPoint p2, FILL_T fill, int width = -1 ); virtual void circle( wxPoint pos, int diametre, FILL_T fill, int width = -1 ); virtual void poly( int nb_segm, int* coord, FILL_T fill, int width = -1 ); @@ -450,6 +445,7 @@ public: GRTraceMode trace_mode ); virtual void flash_pad_rect( wxPoint pos, wxSize size, int orient, GRTraceMode trace_mode ); + virtual void flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4], int aPadOrient, GRTraceMode aTrace_Mode ); diff --git a/pcbnew/dialogs/dialog_gendrill.cpp b/pcbnew/dialogs/dialog_gendrill.cpp index a5ebe76c26..5b74bb330c 100644 --- a/pcbnew/dialogs/dialog_gendrill.cpp +++ b/pcbnew/dialogs/dialog_gendrill.cpp @@ -133,11 +133,11 @@ void DIALOG_GENDRILL::InitDisplayParams( void ) m_MicroViaDrillValue->SetLabel( _( "Use Netclasses values" ) ); msg.Empty(); - msg << g_pcb_plot_options.HPGL_Pen_Num; + msg << g_PcbPlotOptions.m_HPGLPenNum; m_PenNum->SetValue( msg ); msg.Empty(); - msg << g_pcb_plot_options.HPGL_Pen_Speed; + msg << g_PcbPlotOptions.m_HPGLPenSpeed; m_PenSpeed->SetValue( msg ); // See if we have some buried vias or/and microvias, and display @@ -290,11 +290,11 @@ void DIALOG_GENDRILL::SetParams( void ) msg = m_PenSpeed->GetValue(); if( msg.ToLong( <mp ) ) - g_pcb_plot_options.HPGL_Pen_Speed = ltmp; + g_PcbPlotOptions.m_HPGLPenSpeed = ltmp; msg = m_PenNum->GetValue(); if( msg.ToLong( <mp ) ) - g_pcb_plot_options.HPGL_Pen_Num = ltmp; + g_PcbPlotOptions.m_HPGLPenNum = ltmp; if( m_Choice_Drill_Offset->GetSelection() == 0 ) m_FileDrillOffset = wxPoint( 0, 0 ); else diff --git a/pcbnew/dialogs/dialog_plot_base.cpp b/pcbnew/dialogs/dialog_plot_base.cpp index b86a5845bb..a129c9c2ad 100644 --- a/pcbnew/dialogs/dialog_plot_base.cpp +++ b/pcbnew/dialogs/dialog_plot_base.cpp @@ -40,10 +40,10 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr bLeftSizer->Add( m_Use_Gerber_Extensions, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - m_Exclude_Edges_Pcb = new wxCheckBox( this, wxID_ANY, _("Exclude pcb edge layer"), wxDefaultPosition, wxDefaultSize, 0 ); - m_Exclude_Edges_Pcb->SetToolTip( _("Exclude contents of the pcb edge layer from all other layers") ); + m_excludeEdgeLayerOpt = new wxCheckBox( this, wxID_ANY, _("Exclude pcb edge layer"), wxDefaultPosition, wxDefaultSize, 0 ); + m_excludeEdgeLayerOpt->SetToolTip( _("Exclude contents of the pcb edge layer from all other layers") ); - bLeftSizer->Add( m_Exclude_Edges_Pcb, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + bLeftSizer->Add( m_excludeEdgeLayerOpt, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); m_SubtractMaskFromSilk = new wxCheckBox( this, wxID_ANY, _("Subtract mask from silk"), wxDefaultPosition, wxDefaultSize, 0 ); m_SubtractMaskFromSilk->SetToolTip( _("Remove silkscreen from areas without soldermask") ); @@ -147,8 +147,8 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr wxStaticBoxSizer* sbSizerPSOpt; sbSizerPSOpt = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("PS Options:") ), wxVERTICAL ); - m_Plot_PS_Negative = new wxCheckBox( this, wxID_ANY, _("Plot negative"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerPSOpt->Add( m_Plot_PS_Negative, 0, wxALL, 5 ); + m_plotPSNegativeOpt = new wxCheckBox( this, wxID_ANY, _("Plot negative"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerPSOpt->Add( m_plotPSNegativeOpt, 0, wxALL, 5 ); bSizerFmtPlot->Add( sbSizerPSOpt, 0, wxEXPAND, 5 ); diff --git a/pcbnew/dialogs/dialog_plot_base.fbp b/pcbnew/dialogs/dialog_plot_base.fbp index edb2da0709..5b2f67c500 100644 --- a/pcbnew/dialogs/dialog_plot_base.fbp +++ b/pcbnew/dialogs/dialog_plot_base.fbp @@ -218,7 +218,7 @@ Exclude pcb edge layer - m_Exclude_Edges_Pcb + m_excludeEdgeLayerOpt protected @@ -1365,7 +1365,7 @@ Plot negative - m_Plot_PS_Negative + m_plotPSNegativeOpt protected diff --git a/pcbnew/dialogs/dialog_plot_base.h b/pcbnew/dialogs/dialog_plot_base.h index 6200ed31f4..c2f23ba6a9 100644 --- a/pcbnew/dialogs/dialog_plot_base.h +++ b/pcbnew/dialogs/dialog_plot_base.h @@ -54,7 +54,7 @@ class DIALOG_PLOT_BASE : public wxDialog wxStaticBoxSizer* m_CopperLayersBoxSizer; wxStaticBoxSizer* m_TechnicalLayersBoxSizer; wxCheckBox* m_Use_Gerber_Extensions; - wxCheckBox* m_Exclude_Edges_Pcb; + wxCheckBox* m_excludeEdgeLayerOpt; wxCheckBox* m_SubtractMaskFromSilk; wxCheckBox* m_Plot_Sheet_Ref; wxCheckBox* m_Plot_Pads_on_Silkscreen; @@ -73,7 +73,7 @@ class DIALOG_PLOT_BASE : public wxDialog wxTextCtrl* m_HPGLPenSpeedOpt; wxStaticText* m_textPenOvr; wxTextCtrl* m_HPGLPenOverlayOpt; - wxCheckBox* m_Plot_PS_Negative; + wxCheckBox* m_plotPSNegativeOpt; wxTextCtrl* m_OutputDirectory; wxButton* m_BrowseButton; wxCheckBox* m_PlotMirorOpt; diff --git a/pcbnew/dialogs/dialog_print_for_modedit.cpp b/pcbnew/dialogs/dialog_print_for_modedit.cpp index ae0d1619e6..b65b172d24 100644 --- a/pcbnew/dialogs/dialog_print_for_modedit.cpp +++ b/pcbnew/dialogs/dialog_print_for_modedit.cpp @@ -194,9 +194,9 @@ void DIALOG_PRINT_FOR_MODEDIT::OnPrintButtonClick( wxCommandEvent& event ) s_Parameters.m_Print_Black_and_White = m_ModeColorOption->GetSelection(); s_Parameters.m_PrintScale = s_ScaleList[m_ScaleOption->GetSelection()]; - g_pcb_plot_options.ScaleAdjX = s_Parameters.m_XScaleAdjust; - g_pcb_plot_options.ScaleAdjX = s_Parameters.m_YScaleAdjust; - g_pcb_plot_options.Scale = s_Parameters.m_PrintScale; + g_PcbPlotOptions.m_FineScaleAdjustX = s_Parameters.m_XScaleAdjust; + g_PcbPlotOptions.m_FineScaleAdjustY = s_Parameters.m_YScaleAdjust; + g_PcbPlotOptions.m_PlotScale = s_Parameters.m_PrintScale; wxPrintDialogData printDialogData( *g_PrintData ); wxPrinter printer( &printDialogData ); diff --git a/pcbnew/dialogs/dialog_print_using_printer.cpp b/pcbnew/dialogs/dialog_print_using_printer.cpp index 876fd5211a..24dce243bd 100644 --- a/pcbnew/dialogs/dialog_print_using_printer.cpp +++ b/pcbnew/dialogs/dialog_print_using_printer.cpp @@ -383,7 +383,7 @@ void DIALOG_PRINT_USING_PRINTER::SetPrintParameters( ) int idx = m_ScaleOption->GetSelection(); s_Parameters.m_PrintScale = s_ScaleList[idx]; - g_pcb_plot_options.Scale = s_Parameters.m_PrintScale; + g_PcbPlotOptions.m_PlotScale = s_Parameters.m_PrintScale; if( m_FineAdjustXscaleOpt ) { @@ -400,8 +400,8 @@ void DIALOG_PRINT_USING_PRINTER::SetPrintParameters( ) DisplayInfoMessage( NULL, _( "Warning: Scale option set to a very small value" ) ); m_FineAdjustYscaleOpt->GetValue().ToDouble( &s_Parameters.m_YScaleAdjust ); } - g_pcb_plot_options.ScaleAdjX = s_Parameters.m_XScaleAdjust; - g_pcb_plot_options.ScaleAdjX = s_Parameters.m_YScaleAdjust; + g_PcbPlotOptions.m_FineScaleAdjustX = s_Parameters.m_XScaleAdjust; + g_PcbPlotOptions.m_FineScaleAdjustY = s_Parameters.m_YScaleAdjust; SetPenWidth(); } diff --git a/pcbnew/gen_drill_report_files.cpp b/pcbnew/gen_drill_report_files.cpp index 8a304150b5..e5a65084f2 100644 --- a/pcbnew/gen_drill_report_files.cpp +++ b/pcbnew/gen_drill_report_files.cpp @@ -4,8 +4,6 @@ #include "fctsys.h" -using namespace std; - #include #include "common.h" @@ -67,8 +65,8 @@ void GenDrillMapFile( BOARD* aPcb, FILE* aFile, const wxString& aFullFileName, scale = 1; HPGL_PLOTTER* hpgl_plotter = new HPGL_PLOTTER; plotter = hpgl_plotter; - hpgl_plotter->set_pen_number( g_pcb_plot_options.HPGL_Pen_Num ); - hpgl_plotter->set_pen_speed( g_pcb_plot_options.HPGL_Pen_Speed ); + hpgl_plotter->set_pen_number( g_PcbPlotOptions.m_HPGLPenNum ); + hpgl_plotter->set_pen_speed( g_PcbPlotOptions.m_HPGLPenSpeed ); hpgl_plotter->set_pen_overlap( 0 ); plotter->set_paper_size( aSheet ); plotter->set_viewport( offset, scale, 0 ); diff --git a/pcbnew/pcbnew_config.cpp b/pcbnew/pcbnew_config.cpp index 51afb9c5c9..b2bb48d74c 100644 --- a/pcbnew/pcbnew_config.cpp +++ b/pcbnew/pcbnew_config.cpp @@ -388,18 +388,6 @@ PARAM_CFG_ARRAY& WinEDA_PcbFrame::GetConfigurationSettings() m_configSettings.push_back( new PARAM_CFG_SETCOLOR( true, wxT( "CoRatsN" ), ITEM_COLOR( RATSNEST_VISIBLE ), WHITE ) ); - m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "HPGLnum" ), - &g_pcb_plot_options.HPGL_Pen_Num, - 1, 1, 16 ) ); - m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "HPGdiam" ), - &g_pcb_plot_options.HPGL_Pen_Diam, - 15, 0, 100 ) ); - m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "HPGLSpd" ), - &g_pcb_plot_options.HPGL_Pen_Speed, - 20, 0, 1000 ) ); - m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "HPGLrec" ), - &g_pcb_plot_options.HPGL_Pen_Recouvrement, - 2, 0, 0x100 ) ); m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "TimeOut" ), &g_TimeOut, 600, 0, 60000 ) ); m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "DPolair" ), @@ -411,14 +399,33 @@ PARAM_CFG_ARRAY& WinEDA_PcbFrame::GetConfigurationSettings() m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "TwoSegT" ), &g_TwoSegmentTrackBuild, TRUE ) ); // Plot options: + m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "HPGLnum" ), + &g_PcbPlotOptions.m_HPGLPenNum, + 1, 1, 16 ) ); + m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "HPGdiam" ), + &g_PcbPlotOptions.m_HPGLPenDiam, + 15, 0, 100 ) ); + m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "HPGLSpd" ), + &g_PcbPlotOptions.m_HPGLPenSpeed, + 20, 0, 1000 ) ); + m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "HPGLrec" ), + &g_PcbPlotOptions.m_HPGLPenOvr, + 2, 0, 0x100 ) ); m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "PlotOutputFormat" ), - &g_pcb_plot_options.PlotFormat, PLOT_FORMAT_GERBER ) ); + &g_PcbPlotOptions.m_PlotFormat, PLOT_FORMAT_GERBER ) ); m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "EdgeLayerGerberOpt" ), - &g_pcb_plot_options.Exclude_Edges_Pcb, true ) ); + &g_PcbPlotOptions.m_ExcludeEdgeLayer, true ) ); m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "SubstractMasktoSilk" ), - &g_pcb_plot_options.m_SubtractMaskFromSilk, false ) ); + &g_PcbPlotOptions.m_SubtractMaskFromSilk, false ) ); m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "PlotPadsOnSilkscreen" ), - &g_pcb_plot_options.PlotPadsOnSilkLayer, false ) ); + &g_PcbPlotOptions.m_PlotPadsOnSilkLayer, false ) ); + m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "PlotFrameRef" ), + &g_PcbPlotOptions.m_PlotFrameRef, false ) ); + m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "PlotViasOnMask" ), + &g_PcbPlotOptions.m_PlotViaOnMaskLayer, false ) ); + m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "PlotHolesOpt" ), + (int*)&g_PcbPlotOptions.m_DrillShapeOpt, + PCB_PLOT_PARAMS::SMALL_DRILL_SHAPE ) ); return m_configSettings; } diff --git a/pcbnew/pcbplot.cpp b/pcbnew/pcbplot.cpp index 1846a1f720..145a76f23d 100644 --- a/pcbnew/pcbplot.cpp +++ b/pcbnew/pcbplot.cpp @@ -21,28 +21,28 @@ #define PLOT_DEFAULT_MARGE 300 // mils /* Keywords to r/w options in m_Config */ -#define OPTKEY_GERBER_EXTENSIONS wxT( "GerberOptUseLayersExt" ) -#define OPTKEY_XFINESCALE_ADJ wxT( "PlotXFineScaleAdj" ) -#define OPTKEY_YFINESCALE_ADJ wxT( "PlotYFineScaleAdj" ) +#define OPTKEY_GERBER_EXTENSIONS wxT( "GerberOptUseLayersExt" ) +#define OPTKEY_XFINESCALE_ADJ wxT( "PlotXFineScaleAdj" ) +#define OPTKEY_YFINESCALE_ADJ wxT( "PlotYFineScaleAdj" ) // Define min and max reasonable values for print scale #define MIN_SCALE 0.01 #define MAX_SCALE 100.0 -// PCB_Plot_Options constructor: set the default values for plot options: -PCB_Plot_Options::PCB_Plot_Options() +// PCB_PLOT_PARAMS constructor: set the default values for plot options: +PCB_PLOT_PARAMS::PCB_PLOT_PARAMS() { m_SubtractMaskFromSilk = false; - Sel_Texte_Reference = true; - Sel_Texte_Valeur = true; - Sel_Texte_Divers = true; - DrillShapeOpt = PCB_Plot_Options::SMALL_DRILL_SHAPE; - Trace_Mode = FILLED; - Scale = 1.0; - ScaleAdjX = 1.0; - ScaleAdjY = 1.0; - PlotScaleOpt = 1; - outputDirectory = wxT( "" ); + m_PlotReference = true; + m_PlotValue = true; + m_PlotTextOther = true; + m_DrillShapeOpt = PCB_PLOT_PARAMS::SMALL_DRILL_SHAPE; + Trace_Mode = FILLED; + m_PlotScale = 1.0; + m_AutoScale = false; + m_FineScaleAdjustX = 1.0; + m_FineScaleAdjustY = 1.0; + outputDirectory = wxT( "" ); } @@ -53,8 +53,8 @@ static bool s_PlotOriginIsAuxAxis = FALSE; /* The group of plot options - sadly global XXX */ -PCB_Plot_Options g_pcb_plot_options; -extern int g_DrawDefaultLineThickness; +PCB_PLOT_PARAMS g_PcbPlotOptions; +extern int g_DrawDefaultLineThickness; /*******************************/ @@ -69,6 +69,7 @@ public: wxCheckBox* m_BoxSelectLayer[LAYER_COUNT]; // wxCheckBox list to select/deselec layers to plot double m_XScaleAdjust; double m_YScaleAdjust; + static int m_dlgPlotScaleOpt; // Static to remember last selection bool useA4() @@ -79,7 +80,7 @@ public: /** * Function getFormat - * returns one of the values from the PlotFormat enum. If the 4th + * returns one of the values from the m_PlotFormat enum. If the 4th * radio button is selected, map this back to postscript. */ PlotFormat getFormat() @@ -87,7 +88,7 @@ public: int radioNdx = m_PlotFormatOpt->GetSelection(); // change the A4 to the simple postscript, according to the - // PlotFormat enum + // m_PlotFormat enum switch( radioNdx ) { case 3: @@ -103,8 +104,7 @@ public: } -public: - DIALOG_PLOT( WinEDA_PcbFrame* parent ); +public: DIALOG_PLOT( WinEDA_PcbFrame* parent ); private: void Init_Dialog(); void Plot( wxCommandEvent& event ); @@ -117,6 +117,7 @@ private: void CreateDrillFile( wxCommandEvent& event ); }; +int DIALOG_PLOT::m_dlgPlotScaleOpt = 1; const int UNITS_MILS = 1000; @@ -137,36 +138,36 @@ DIALOG_PLOT::DIALOG_PLOT( WinEDA_PcbFrame* parent ) : void DIALOG_PLOT::Init_Dialog() { - wxString msg; + wxString msg; wxFileName fileName; - BOARD* board = m_Parent->GetBoard(); + BOARD* board = m_Parent->GetBoard(); m_Config->Read( OPTKEY_XFINESCALE_ADJ, &m_XScaleAdjust ); m_Config->Read( OPTKEY_YFINESCALE_ADJ, &m_YScaleAdjust ); - m_PlotFormatOpt->SetSelection( g_pcb_plot_options.PlotFormat ); - g_pcb_plot_options.PlotLine_Width = g_DrawDefaultLineThickness; + m_PlotFormatOpt->SetSelection( g_PcbPlotOptions.m_PlotFormat ); + g_PcbPlotOptions.m_PlotLineWidth = g_DrawDefaultLineThickness; // Set units and value for HPGL pen speed. AddUnitSymbol( *m_textPenSize, g_UserUnit ); - msg = ReturnStringFromValue( g_UserUnit, g_pcb_plot_options.HPGL_Pen_Diam, UNITS_MILS ); + msg = ReturnStringFromValue( g_UserUnit, g_PcbPlotOptions.m_HPGLPenDiam, UNITS_MILS ); m_HPGLPenSizeOpt->AppendText( msg ); // Set units to cm for standard HPGL pen speed. - msg = ReturnStringFromValue( UNSCALED_UNITS, g_pcb_plot_options.HPGL_Pen_Speed, 1 ); + msg = ReturnStringFromValue( UNSCALED_UNITS, g_PcbPlotOptions.m_HPGLPenSpeed, 1 ); m_HPGLPenSpeedOpt->AppendText( msg ); // Set units and value for HPGL pen overlay. AddUnitSymbol( *m_textPenOvr, g_UserUnit ); msg = ReturnStringFromValue( g_UserUnit, - g_pcb_plot_options.HPGL_Pen_Recouvrement, + g_PcbPlotOptions.m_HPGLPenOvr, UNITS_MILS ); m_HPGLPenOverlayOpt->AppendText( msg ); msg = ReturnStringFromValue( g_UserUnit, - g_pcb_plot_options.PlotLine_Width, + g_PcbPlotOptions.m_PlotLineWidth, PCB_INTERNAL_UNIT ); m_LinesWidth->AppendText( msg ); @@ -187,7 +188,7 @@ void DIALOG_PLOT::Init_Dialog() msg.Printf( wxT( "%f" ), m_YScaleAdjust ); m_FineAdjustYscaleOpt->AppendText( msg ); - m_Plot_PS_Negative->SetValue( g_pcb_plot_options.Plot_PS_Negative ); + m_plotPSNegativeOpt->SetValue( g_PcbPlotOptions.m_PlotPSNegative ); // Create layer list. @@ -198,29 +199,29 @@ void DIALOG_PLOT::Init_Dialog() if( !board->IsLayerEnabled( layer ) ) m_BoxSelectLayer[layer] = NULL; else - m_BoxSelectLayer[layer] = - new wxCheckBox( this, -1, board->GetLayerName( layer ) ); + m_BoxSelectLayer[layer] = + new wxCheckBox( this, -1, board->GetLayerName( layer ) ); } // Add wxCheckBoxes in layers lists dialog // List layers in same order than in setup layers dialog // (Front or Top to Back or Bottom) - DECLARE_LAYERS_ORDER_LIST(layersOrder); + DECLARE_LAYERS_ORDER_LIST( layersOrder ); for( int layer_idx = 0; layer_idx < NB_LAYERS; ++layer_idx ) { layer = layersOrder[layer_idx]; - wxASSERT(layer < NB_LAYERS); + wxASSERT( layer < NB_LAYERS ); if( m_BoxSelectLayer[layer] == NULL ) continue; if( layer < NB_COPPER_LAYERS ) m_CopperLayersBoxSizer->Add( m_BoxSelectLayer[layer], - 0, wxGROW | wxALL, 1 ); + 0, wxGROW | wxALL, 1 ); else m_TechnicalLayersBoxSizer->Add( m_BoxSelectLayer[layer], - 0, wxGROW | wxALL, 1 ); + 0, wxGROW | wxALL, 1 ); layerKey.Printf( OPTKEY_LAYERBASE, layer ); @@ -242,54 +243,54 @@ void DIALOG_PLOT::Init_Dialog() m_Use_Gerber_Extensions->SetValue( ltmp ); // Option for excluding contents of "Edges Pcb" layer - m_Exclude_Edges_Pcb->SetValue( g_pcb_plot_options.Exclude_Edges_Pcb ); + m_excludeEdgeLayerOpt->SetValue( g_PcbPlotOptions.m_ExcludeEdgeLayer ); - m_SubtractMaskFromSilk->SetValue( g_pcb_plot_options.GetSubtractMaskFromSilk() ); + m_SubtractMaskFromSilk->SetValue( g_PcbPlotOptions.GetSubtractMaskFromSilk() ); // Option to plot page references: if( m_Parent->m_Print_Sheet_Ref ) { - m_Plot_Sheet_Ref->SetValue( g_pcb_plot_options.Plot_Frame_Ref ); + m_Plot_Sheet_Ref->SetValue( g_PcbPlotOptions.m_PlotFrameRef ); } else { m_Plot_Sheet_Ref->Enable( false ); - g_pcb_plot_options.Plot_Frame_Ref = false; + g_PcbPlotOptions.m_PlotFrameRef = false; } // Option to plot pads on silkscreen layers or all layers - m_Plot_Pads_on_Silkscreen->SetValue( g_pcb_plot_options.PlotPadsOnSilkLayer ); + m_Plot_Pads_on_Silkscreen->SetValue( g_PcbPlotOptions.m_PlotPadsOnSilkLayer ); // Options to plot texts on footprints - m_Plot_Text_Value->SetValue( g_pcb_plot_options.Sel_Texte_Valeur ); - m_Plot_Text_Ref->SetValue( g_pcb_plot_options.Sel_Texte_Reference ); - m_Plot_Text_Div->SetValue( g_pcb_plot_options.Sel_Texte_Divers ); - m_Plot_Invisible_Text->SetValue( g_pcb_plot_options.Sel_Texte_Invisible ); + m_Plot_Text_Value->SetValue( g_PcbPlotOptions.m_PlotValue ); + m_Plot_Text_Ref->SetValue( g_PcbPlotOptions.m_PlotReference ); + m_Plot_Text_Div->SetValue( g_PcbPlotOptions.m_PlotTextOther ); + m_Plot_Invisible_Text->SetValue( g_PcbPlotOptions.m_PlotInvisibleTexts ); // Options to plot pads and vias holes - m_Drill_Shape_Opt->SetSelection( g_pcb_plot_options.DrillShapeOpt ); + m_Drill_Shape_Opt->SetSelection( g_PcbPlotOptions.m_DrillShapeOpt ); // Scale option - m_Scale_Opt->SetSelection( g_pcb_plot_options.PlotScaleOpt ); + m_Scale_Opt->SetSelection( m_dlgPlotScaleOpt ); // Plot mode - m_PlotModeOpt->SetSelection( g_pcb_plot_options.Trace_Mode ); + m_PlotModeOpt->SetSelection( g_PcbPlotOptions.Trace_Mode ); // Plot mirror option - m_PlotMirorOpt->SetValue( g_pcb_plot_options.Plot_Set_MIROIR ); + m_PlotMirorOpt->SetValue( g_PcbPlotOptions.m_PlotMirror ); // Put vias on mask layer - m_PlotNoViaOnMaskOpt->SetValue( g_pcb_plot_options.DrawViaOnMaskLayer ); + m_PlotNoViaOnMaskOpt->SetValue( g_PcbPlotOptions.m_PlotViaOnMaskLayer ); // Output directory - if( g_pcb_plot_options.GetOutputDirectory().IsEmpty() ) + if( g_PcbPlotOptions.GetOutputDirectory().IsEmpty() ) { fileName = m_Parent->GetScreen()->m_FileName; m_OutputDirectory->SetValue( fileName.GetPath() ); } else { - m_OutputDirectory->SetValue( g_pcb_plot_options.GetOutputDirectory() ); + m_OutputDirectory->SetValue( g_PcbPlotOptions.GetOutputDirectory() ); } // Update options values: @@ -302,7 +303,7 @@ void DIALOG_PLOT::Init_Dialog() } -void DIALOG_PLOT::OnQuit( wxCommandEvent& WXUNUSED(event) ) +void DIALOG_PLOT::OnQuit( wxCommandEvent& WXUNUSED( event ) ) { Close( true ); // true is to force the frame to close } @@ -331,9 +332,11 @@ void DIALOG_PLOT::OnSetScaleOpt( wxCommandEvent& event ) m_Plot_Sheet_Ref->SetValue( false ); } + void DIALOG_PLOT::OnOutputDirectoryBrowseClicked( wxCommandEvent& event ) { - wxString currentDir; + wxString currentDir; + currentDir = m_OutputDirectory->GetValue(); wxDirDialog dirDialog( this, _( "Select Output Directory" ), currentDir ); if( dirDialog.ShowModal() == wxID_CANCEL ) @@ -341,6 +344,7 @@ void DIALOG_PLOT::OnOutputDirectoryBrowseClicked( wxCommandEvent& event ) m_OutputDirectory->SetValue( dirDialog.GetPath() ); } + void DIALOG_PLOT::SetPlotFormat( wxCommandEvent& event ) { int format = getFormat(); @@ -357,14 +361,14 @@ void DIALOG_PLOT::SetPlotFormat( wxCommandEvent& event ) m_HPGLPenSizeOpt->Enable( false ); m_HPGLPenSpeedOpt->Enable( false ); m_HPGLPenOverlayOpt->Enable( false ); - m_Exclude_Edges_Pcb->SetValue( false ); - m_Exclude_Edges_Pcb->Enable( false ); + m_excludeEdgeLayerOpt->SetValue( false ); + m_excludeEdgeLayerOpt->Enable( false ); m_SubtractMaskFromSilk->Enable( false ); m_Use_Gerber_Extensions->Enable( false ); m_Scale_Opt->Enable( true ); m_FineAdjustXscaleOpt->Enable( true ); m_FineAdjustYscaleOpt->Enable( true ); - m_Plot_PS_Negative->Enable( true ); + m_plotPSNegativeOpt->Enable( true ); break; case PLOT_FORMAT_GERBER: @@ -378,15 +382,15 @@ void DIALOG_PLOT::SetPlotFormat( wxCommandEvent& event ) m_HPGLPenSizeOpt->Enable( false ); m_HPGLPenSpeedOpt->Enable( false ); m_HPGLPenOverlayOpt->Enable( false ); - m_Exclude_Edges_Pcb->Enable( true ); + m_excludeEdgeLayerOpt->Enable( true ); m_SubtractMaskFromSilk->Enable( true ); m_Use_Gerber_Extensions->Enable( true ); m_Scale_Opt->SetSelection( 1 ); m_Scale_Opt->Enable( false ); m_FineAdjustXscaleOpt->Enable( false ); m_FineAdjustYscaleOpt->Enable( false ); - m_Plot_PS_Negative->SetValue( false ); - m_Plot_PS_Negative->Enable( false ); + m_plotPSNegativeOpt->SetValue( false ); + m_plotPSNegativeOpt->Enable( false ); break; case PLOT_FORMAT_HPGL: @@ -398,15 +402,15 @@ void DIALOG_PLOT::SetPlotFormat( wxCommandEvent& event ) m_HPGLPenSizeOpt->Enable( true ); m_HPGLPenSpeedOpt->Enable( true ); m_HPGLPenOverlayOpt->Enable( true ); - m_Exclude_Edges_Pcb->SetValue( false ); - m_Exclude_Edges_Pcb->Enable( false ); + m_excludeEdgeLayerOpt->SetValue( false ); + m_excludeEdgeLayerOpt->Enable( false ); m_SubtractMaskFromSilk->Enable( false ); m_Use_Gerber_Extensions->Enable( false ); m_Scale_Opt->Enable( true ); m_FineAdjustXscaleOpt->Enable( false ); m_FineAdjustYscaleOpt->Enable( false ); - m_Plot_PS_Negative->SetValue( false ); - m_Plot_PS_Negative->Enable( false ); + m_plotPSNegativeOpt->SetValue( false ); + m_plotPSNegativeOpt->Enable( false ); break; case PLOT_FORMAT_DXF: @@ -419,70 +423,65 @@ void DIALOG_PLOT::SetPlotFormat( wxCommandEvent& event ) m_HPGLPenSizeOpt->Enable( false ); m_HPGLPenSpeedOpt->Enable( false ); m_HPGLPenOverlayOpt->Enable( false ); - m_Exclude_Edges_Pcb->SetValue( false ); - m_Exclude_Edges_Pcb->Enable( false ); + m_excludeEdgeLayerOpt->SetValue( false ); + m_excludeEdgeLayerOpt->Enable( false ); m_SubtractMaskFromSilk->Enable( false ); m_Use_Gerber_Extensions->Enable( false ); m_Scale_Opt->Enable( false ); m_Scale_Opt->SetSelection( 1 ); m_FineAdjustXscaleOpt->Enable( false ); m_FineAdjustYscaleOpt->Enable( false ); - m_Plot_PS_Negative->SetValue( false ); - m_Plot_PS_Negative->Enable( false ); + m_plotPSNegativeOpt->SetValue( false ); + m_plotPSNegativeOpt->Enable( false ); break; } - g_pcb_plot_options.PlotFormat = format; + g_PcbPlotOptions.m_PlotFormat = format; } void DIALOG_PLOT::SaveOptPlot( wxCommandEvent& event ) { - g_pcb_plot_options.Exclude_Edges_Pcb = m_Exclude_Edges_Pcb->GetValue(); + g_PcbPlotOptions.m_ExcludeEdgeLayer = m_excludeEdgeLayerOpt->GetValue(); - g_pcb_plot_options.SetSubtractMaskFromSilk( m_SubtractMaskFromSilk->GetValue() ); + g_PcbPlotOptions.SetSubtractMaskFromSilk( m_SubtractMaskFromSilk->GetValue() ); if( m_Plot_Sheet_Ref ) - g_pcb_plot_options.Plot_Frame_Ref = m_Plot_Sheet_Ref->GetValue(); + g_PcbPlotOptions.m_PlotFrameRef = m_Plot_Sheet_Ref->GetValue(); - g_pcb_plot_options.PlotPadsOnSilkLayer = m_Plot_Pads_on_Silkscreen->GetValue(); + g_PcbPlotOptions.m_PlotPadsOnSilkLayer = m_Plot_Pads_on_Silkscreen->GetValue(); s_PlotOriginIsAuxAxis = (m_Choice_Plot_Offset->GetSelection() == 0) ? FALSE : TRUE; - g_pcb_plot_options.Sel_Texte_Valeur = m_Plot_Text_Value->GetValue(); - g_pcb_plot_options.Sel_Texte_Reference = m_Plot_Text_Ref->GetValue(); - g_pcb_plot_options.Sel_Texte_Divers = m_Plot_Text_Div->GetValue(); - g_pcb_plot_options.Sel_Texte_Invisible = m_Plot_Invisible_Text->GetValue(); + g_PcbPlotOptions.m_PlotValue = m_Plot_Text_Value->GetValue(); + g_PcbPlotOptions.m_PlotReference = m_Plot_Text_Ref->GetValue(); + g_PcbPlotOptions.m_PlotTextOther = m_Plot_Text_Div->GetValue(); + g_PcbPlotOptions.m_PlotInvisibleTexts = m_Plot_Invisible_Text->GetValue(); - g_pcb_plot_options.PlotScaleOpt = m_Scale_Opt->GetSelection(); - g_pcb_plot_options.DrillShapeOpt = - (PCB_Plot_Options::DrillShapeOptT) m_Drill_Shape_Opt->GetSelection(); - g_pcb_plot_options.Plot_Set_MIROIR = m_PlotMirorOpt->GetValue(); - if( g_pcb_plot_options.Plot_Set_MIROIR ) - g_pcb_plot_options.PlotOrient = PLOT_MIROIR; - else - g_pcb_plot_options.PlotOrient = 0; - g_pcb_plot_options.Trace_Mode = (GRTraceMode) m_PlotModeOpt->GetSelection(); - g_pcb_plot_options.DrawViaOnMaskLayer = m_PlotNoViaOnMaskOpt->GetValue(); + m_dlgPlotScaleOpt = m_Scale_Opt->GetSelection(); + g_PcbPlotOptions.m_DrillShapeOpt = + (PCB_PLOT_PARAMS::DrillShapeOptT) m_Drill_Shape_Opt->GetSelection(); + g_PcbPlotOptions.m_PlotMirror = m_PlotMirorOpt->GetValue(); + g_PcbPlotOptions.Trace_Mode = (GRTraceMode) m_PlotModeOpt->GetSelection(); + g_PcbPlotOptions.m_PlotViaOnMaskLayer = m_PlotNoViaOnMaskOpt->GetValue(); wxString msg = m_HPGLPenSizeOpt->GetValue(); int tmp = ReturnValueFromString( g_UserUnit, msg, UNITS_MILS ); - g_pcb_plot_options.HPGL_Pen_Diam = tmp; + g_PcbPlotOptions.m_HPGLPenDiam = tmp; msg = m_HPGLPenSpeedOpt->GetValue(); tmp = ReturnValueFromString( MILLIMETRES, msg, 1 ); - g_pcb_plot_options.HPGL_Pen_Speed = tmp; + g_PcbPlotOptions.m_HPGLPenSpeed = tmp; msg = m_HPGLPenOverlayOpt->GetValue(); tmp = ReturnValueFromString( g_UserUnit, msg, UNITS_MILS ); - g_pcb_plot_options.HPGL_Pen_Recouvrement = tmp; + g_PcbPlotOptions.m_HPGLPenOvr = tmp; msg = m_LinesWidth->GetValue(); tmp = ReturnValueFromString( g_UserUnit, msg, PCB_INTERNAL_UNIT ); - g_pcb_plot_options.PlotLine_Width = tmp; - g_DrawDefaultLineThickness = g_pcb_plot_options.PlotLine_Width; - + g_PcbPlotOptions.m_PlotLineWidth = tmp; + g_DrawDefaultLineThickness = g_PcbPlotOptions.m_PlotLineWidth; msg = m_FineAdjustXscaleOpt->GetValue(); msg.ToDouble( &m_XScaleAdjust ); @@ -494,10 +493,10 @@ void DIALOG_PLOT::SaveOptPlot( wxCommandEvent& event ) m_Config->Write( OPTKEY_XFINESCALE_ADJ, m_XScaleAdjust ); m_Config->Write( OPTKEY_YFINESCALE_ADJ, m_YScaleAdjust ); - g_pcb_plot_options.PlotFormat = m_PlotFormatOpt->GetSelection(); + g_PcbPlotOptions.m_PlotFormat = m_PlotFormatOpt->GetSelection(); wxString layerKey; - for( int layer = 0; layerWrite( layerKey, m_BoxSelectLayer[layer]->IsChecked() ); } - g_pcb_plot_options.Plot_PS_Negative = m_Plot_PS_Negative->GetValue(); + g_PcbPlotOptions.m_PlotPSNegative = m_plotPSNegativeOpt->GetValue(); - g_pcb_plot_options.SetOutputDirectory( m_OutputDirectory->GetValue() ); + g_PcbPlotOptions.SetOutputDirectory( m_OutputDirectory->GetValue() ); } @@ -537,22 +536,27 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event ) } } - switch( g_pcb_plot_options.PlotScaleOpt ) + g_PcbPlotOptions.m_AutoScale = false; + g_PcbPlotOptions.m_PlotScale = 1; + switch( m_dlgPlotScaleOpt ) { default: - g_pcb_plot_options.Scale = 1; + break; + + case 0: + g_PcbPlotOptions.m_AutoScale = true; break; case 2: - g_pcb_plot_options.Scale = 1.5; + g_PcbPlotOptions.m_PlotScale = 1.5; break; case 3: - g_pcb_plot_options.Scale = 2; + g_PcbPlotOptions.m_PlotScale = 2; break; case 4: - g_pcb_plot_options.Scale = 3; + g_PcbPlotOptions.m_PlotScale = 3; break; } @@ -561,12 +565,10 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event ) * the default scale adjust is initialized to 0 and saved in program * settings resulting in a divide by zero fault. */ - if( m_FineAdjustXscaleOpt - IsEnabled() - && m_XScaleAdjust != 0.0 ) - g_pcb_plot_options.ScaleAdjX = m_XScaleAdjust; - if( m_FineAdjustYscaleOpt->IsEnabled() - && m_YScaleAdjust != 0.0 ) - g_pcb_plot_options.ScaleAdjY = m_YScaleAdjust; + if( m_FineAdjustXscaleOpt->IsEnabled() && m_XScaleAdjust != 0.0 ) + g_PcbPlotOptions.m_FineScaleAdjustX = m_XScaleAdjust; + if( m_FineAdjustYscaleOpt->IsEnabled() && m_YScaleAdjust != 0.0 ) + g_PcbPlotOptions.m_FineScaleAdjustY = m_YScaleAdjust; int format = getFormat(); @@ -577,7 +579,7 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event ) break; case PLOT_FORMAT_GERBER: - g_pcb_plot_options.Scale = 1.0; // No scale option allowed in gerber format + g_PcbPlotOptions.m_PlotScale = 1.0; // No scale option allowed in gerber format ext = wxT( "pho" ); break; @@ -586,16 +588,16 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event ) break; case PLOT_FORMAT_DXF: - g_pcb_plot_options.Scale = 1.0; + g_PcbPlotOptions.m_PlotScale = 1.0; ext = wxT( "dxf" ); break; } // Test for a reasonable scale value - if( g_pcb_plot_options.Scale < MIN_SCALE ) + if( g_PcbPlotOptions.m_PlotScale < MIN_SCALE ) DisplayInfoMessage( this, _( "Warning: Scale option set to a very small value" ) ); - if( g_pcb_plot_options.Scale > MAX_SCALE ) + if( g_PcbPlotOptions.m_PlotScale > MAX_SCALE ) DisplayInfoMessage( this, _( "Warning: Scale option set to a very large value" ) ); @@ -704,23 +706,23 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event ) { case PLOT_FORMAT_POST: success = m_Parent->Genere_PS( fn.GetFullPath(), layer, useA4(), - g_pcb_plot_options.Trace_Mode ); + g_PcbPlotOptions.Trace_Mode ); break; case PLOT_FORMAT_GERBER: success = m_Parent->Genere_GERBER( fn.GetFullPath(), layer, s_PlotOriginIsAuxAxis, - g_pcb_plot_options.Trace_Mode ); + g_PcbPlotOptions.Trace_Mode ); break; case PLOT_FORMAT_HPGL: success = m_Parent->Genere_HPGL( fn.GetFullPath(), layer, - g_pcb_plot_options.Trace_Mode ); + g_PcbPlotOptions.Trace_Mode ); break; case PLOT_FORMAT_DXF: success = m_Parent->Genere_DXF( fn.GetFullPath(), layer, - g_pcb_plot_options.Trace_Mode ); + g_PcbPlotOptions.Trace_Mode ); break; } @@ -745,8 +747,6 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event ) void WinEDA_PcbFrame::ToPlotter( wxCommandEvent& event ) { - DIALOG_PLOT* frame = new DIALOG_PLOT( this ); - - frame->ShowModal(); - frame->Destroy(); + DIALOG_PLOT dlg( this ); + dlg.ShowModal(); } diff --git a/pcbnew/pcbplot.h b/pcbnew/pcbplot.h index 168364a167..75f218328e 100644 --- a/pcbnew/pcbplot.h +++ b/pcbnew/pcbplot.h @@ -25,58 +25,64 @@ // Small drill marks diameter value (in internal value = 1/10000 inch) #define SMALL_DRILL 150 -/* Plot Options : */ -class PCB_Plot_Options +/* a helper class to handle plot parameters and options when plotting/printing a board +*/ +class PCB_PLOT_PARAMS { public: - bool Exclude_Edges_Pcb; - int PlotLine_Width; - bool Plot_Frame_Ref; // True to plot/print frame references - bool DrawViaOnMaskLayer; // True if vias are drawn on Mask layer - // (ie protected by mask) + bool m_ExcludeEdgeLayer; // True: do not plot edge layer when plotting other layers + // False: Edge layer always plotted (merged) when plotting other layers + int m_PlotLineWidth; + bool m_PlotFrameRef; // True to plot/print frame references + bool m_PlotViaOnMaskLayer; // True if vias are drawn on Mask layer + // (ie protected by mask) GRTraceMode Trace_Mode; - bool Plot_Set_MIROIR; - int HPGL_Pen_Num; - int HPGL_Pen_Speed; - int HPGL_Pen_Diam; - int HPGL_Pen_Recouvrement; - int PlotPSColorOpt; // True for color Postscript output - bool Plot_PS_Negative; // True to create a negative board ps plot + int m_HPGLPenNum; + int m_HPGLPenSpeed; + int m_HPGLPenDiam; + int m_HPGLPenOvr; + int m_PlotPSColorOpt; // True for color Postscript output + bool m_PlotPSNegative; // True to create a negative board ps plot /* Flags to enable or disable ploting of various PCB elements. */ - bool Sel_Texte_Reference; - bool Sel_Texte_Valeur; - bool Sel_Texte_Divers; - bool Sel_Texte_Invisible; - bool PlotPadsOnSilkLayer; /* allows pads on silkscreen */ + bool m_PlotReference; + bool m_PlotValue; + bool m_PlotTextOther; + bool m_PlotInvisibleTexts; + bool m_PlotPadsOnSilkLayer; // allows pads outlines on silkscreen layer (when pads are also o, silk screen bool m_SubtractMaskFromSilk; /* id for plot format (see enum PlotFormat in plot_common.h) */ - int PlotFormat; - int PlotOrient; - int PlotScaleOpt; + int m_PlotFormat; // Gerber, HPGL ... + bool m_PlotMirror; + enum DrillShapeOptT { NO_DRILL_SHAPE = 0, SMALL_DRILL_SHAPE = 1, FULL_DRILL_SHAPE = 2 }; - DrillShapeOptT DrillShapeOpt; - double Scale; - double ScaleAdjX; - double ScaleAdjY; + DrillShapeOptT m_DrillShapeOpt; // For postscript output: holes can be not plotted, + // or have a small size or plotted with their actual size + bool m_AutoScale; // If true, use the better scale to fit in page + double m_PlotScale; // The global scale factor. a 1.0 scale factor plot a board + // with its actual size. + // These next two scale factors are intended to compensable plotters (and mainly printers) X and Y scale error. + // Therefore they are expected very near 1.0 + // Only X and Y dimensions are adjusted: circles are plotted as circle, even if X and Y fine scale differ. + double m_FineScaleAdjustX; // fine scale adjust X axis + double m_FineScaleAdjustY; // dine scale adjust Y axis private: - wxString outputDirectory; + wxString outputDirectory; -public: - PCB_Plot_Options(); +public: PCB_PLOT_PARAMS(); void SetOutputDirectory( wxString aDir ) { outputDirectory = aDir; }; wxString GetOutputDirectory() { return outputDirectory; }; void SetSubtractMaskFromSilk( bool aSubtract ) { m_SubtractMaskFromSilk = aSubtract; }; bool GetSubtractMaskFromSilk() { return m_SubtractMaskFromSilk; }; }; -extern PCB_Plot_Options g_pcb_plot_options; +extern PCB_PLOT_PARAMS g_PcbPlotOptions; void PlotTextePcb( PLOTTER* plotter, TEXTE_PCB* pt_texte, int masque_layer, @@ -88,7 +94,7 @@ void PlotDrawSegment( PLOTTER* plotter, DRAWSEGMENT* PtSegm, int masque_layer, GRTraceMode trace_mode ); void PlotDimension( PLOTTER* plotter, DIMENSION* Dimension, int masque_layer, - GRTraceMode trace_mode ); + GRTraceMode trace_mode ); void PlotMirePcb( PLOTTER* plotter, MIREPCB* PtMire, int masque_layer, GRTraceMode trace_mode ); diff --git a/pcbnew/plot_rtn.cpp b/pcbnew/plot_rtn.cpp index 2553653385..2effb57483 100644 --- a/pcbnew/plot_rtn.cpp +++ b/pcbnew/plot_rtn.cpp @@ -67,7 +67,7 @@ void WinEDA_BasePcbFrame::Plot_Serigraphie( PLOTTER* plotter, /* Plot pads (creates pads outlines, for pads on silkscreen layers) */ int layersmask_plotpads = masque_layer; // Calculate the mask layers of allowed layers for pads - if( !g_pcb_plot_options.PlotPadsOnSilkLayer ) // Do not plot pads on silk screen layers + if( !g_PcbPlotOptions.m_PlotPadsOnSilkLayer ) // Do not plot pads on silk screen layers layersmask_plotpads &= ~(SILKSCREEN_LAYER_BACK | SILKSCREEN_LAYER_FRONT ); if( layersmask_plotpads ) { @@ -112,8 +112,8 @@ void WinEDA_BasePcbFrame::Plot_Serigraphie( PLOTTER* plotter, for( MODULE* Module = m_Pcb->m_Modules; Module; Module = Module->Next() ) { /* see if we want to plot VALUE and REF fields */ - trace_val = g_pcb_plot_options.Sel_Texte_Valeur; - trace_ref = g_pcb_plot_options.Sel_Texte_Reference; + trace_val = g_PcbPlotOptions.m_PlotValue; + trace_ref = g_PcbPlotOptions.m_PlotReference; TEXTE_MODULE* text = Module->m_Reference; unsigned textLayer = text->GetLayer(); @@ -132,7 +132,7 @@ module\n %s's \"reference\" text." ), if( ( ( 1 << textLayer ) & masque_layer ) == 0 ) trace_ref = FALSE; - if( text->m_NoShow && !g_pcb_plot_options.Sel_Texte_Invisible ) + if( text->m_NoShow && !g_PcbPlotOptions.m_PlotInvisibleTexts ) trace_ref = FALSE; text = Module->m_Value; @@ -152,7 +152,7 @@ module\n %s's \"value\" text." ), if( ( (1 << textLayer) & masque_layer ) == 0 ) trace_val = FALSE; - if( text->m_NoShow && !g_pcb_plot_options.Sel_Texte_Invisible ) + if( text->m_NoShow && !g_PcbPlotOptions.m_PlotInvisibleTexts ) trace_val = FALSE; /* Plot text fields, if allowed */ @@ -169,10 +169,10 @@ module\n %s's \"value\" text." ), if( pt_texte->Type() != TYPE_TEXTE_MODULE ) continue; - if( !g_pcb_plot_options.Sel_Texte_Divers ) + if( !g_PcbPlotOptions.m_PlotTextOther ) continue; if( (pt_texte->m_NoShow) - && !g_pcb_plot_options.Sel_Texte_Invisible ) + && !g_PcbPlotOptions.m_PlotInvisibleTexts ) continue; textLayer = pt_texte->GetLayer(); @@ -644,7 +644,7 @@ void PlotDrawSegment( PLOTTER* plotter, DRAWSEGMENT* pt_segm, int masque_layer, return; if( trace_mode == FILAIRE ) - thickness = g_pcb_plot_options.PlotLine_Width; + thickness = g_PcbPlotOptions.m_PlotLineWidth; else thickness = pt_segm->m_Width; @@ -697,7 +697,7 @@ void WinEDA_BasePcbFrame::Plot_Layer( PLOTTER* plotter, int Layer, // in addition to the contents of the currently specified layer. int layer_mask = g_TabOneLayerMask[Layer]; - if( !g_pcb_plot_options.Exclude_Edges_Pcb ) + if( !g_PcbPlotOptions.m_ExcludeEdgeLayer ) layer_mask |= EDGE_LAYER; switch( Layer ) @@ -722,21 +722,19 @@ void WinEDA_BasePcbFrame::Plot_Layer( PLOTTER* plotter, int Layer, // Adding drill marks, if required and if the plotter is able to plot // them: - if( g_pcb_plot_options.DrillShapeOpt != - PCB_Plot_Options::NO_DRILL_SHAPE ) + if( g_PcbPlotOptions.m_DrillShapeOpt != PCB_PLOT_PARAMS::NO_DRILL_SHAPE ) { if( plotter->GetPlotterType() == PLOT_FORMAT_POST ) - PlotDrillMark( plotter, - trace_mode, - g_pcb_plot_options.DrillShapeOpt == - PCB_Plot_Options::SMALL_DRILL_SHAPE ); + PlotDrillMark( plotter, trace_mode, + g_PcbPlotOptions.m_DrillShapeOpt == + PCB_PLOT_PARAMS::SMALL_DRILL_SHAPE ); } break; case SOLDERMASK_N_BACK: case SOLDERMASK_N_FRONT: Plot_Standard_Layer( plotter, layer_mask, - g_pcb_plot_options.DrawViaOnMaskLayer, trace_mode ); + g_PcbPlotOptions.m_PlotViaOnMaskLayer, trace_mode ); break; case SOLDERPASTE_N_BACK: @@ -749,7 +747,7 @@ void WinEDA_BasePcbFrame::Plot_Layer( PLOTTER* plotter, int Layer, // Gerber: Subtract soldermask from silkscreen if enabled if( plotter->GetPlotterType() == PLOT_FORMAT_GERBER - && g_pcb_plot_options.GetSubtractMaskFromSilk() ) + && g_PcbPlotOptions.GetSubtractMaskFromSilk() ) { if( Layer == SILKSCREEN_N_FRONT ) { @@ -763,7 +761,7 @@ void WinEDA_BasePcbFrame::Plot_Layer( PLOTTER* plotter, int Layer, // Set layer polarity to negative plotter->SetLayerPolarity( false ); Plot_Standard_Layer( plotter, layer_mask, - g_pcb_plot_options.DrawViaOnMaskLayer, + g_PcbPlotOptions.m_PlotViaOnMaskLayer, trace_mode ); } break; @@ -1013,8 +1011,7 @@ void WinEDA_BasePcbFrame::PlotDrillMark( PLOTTER* aPlotter, if( pts->Type() != TYPE_VIA ) continue; pos = pts->m_Start; - if( g_pcb_plot_options.DrillShapeOpt == - PCB_Plot_Options::SMALL_DRILL_SHAPE ) + if( g_PcbPlotOptions.m_DrillShapeOpt == PCB_PLOT_PARAMS::SMALL_DRILL_SHAPE ) diam.x = diam.y = SMALL_DRILL; else diam.x = diam.y = pts->GetDrillValue(); diff --git a/pcbnew/plotdxf.cpp b/pcbnew/plotdxf.cpp index d09430cf1e..b855d30f9a 100644 --- a/pcbnew/plotdxf.cpp +++ b/pcbnew/plotdxf.cpp @@ -32,7 +32,7 @@ bool WinEDA_BasePcbFrame::Genere_DXF( const wxString& FullFileName, int Layer, plotter->set_filename( FullFileName ); plotter->start_plot( output_file ); - if( g_pcb_plot_options.Plot_Frame_Ref ) + if( g_PcbPlotOptions.m_PlotFrameRef ) PlotWorkSheet( plotter, GetScreen() ); Plot_Layer( plotter, Layer, trace_mode ); diff --git a/pcbnew/plotgerb.cpp b/pcbnew/plotgerb.cpp index 7d490a16db..1691c4643d 100644 --- a/pcbnew/plotgerb.cpp +++ b/pcbnew/plotgerb.cpp @@ -42,7 +42,7 @@ bool WinEDA_BasePcbFrame::Genere_GERBER( const wxString& FullFileName, int Layer wxPoint offset; /* Calculate scaling from pcbnew units (in 0.1 mil or 0.0001 inch) to gerber units */ - double scale = g_pcb_plot_options.Scale; + double scale = g_PcbPlotOptions.m_PlotScale; if( PlotOriginIsAuxAxis ) offset = m_Auxiliary_Axis_Position; @@ -56,17 +56,17 @@ bool WinEDA_BasePcbFrame::Genere_GERBER( const wxString& FullFileName, int Layer PLOTTER* plotter = new GERBER_PLOTTER(); /* No mirror and scaling for gerbers! */ plotter->set_viewport( offset, scale, 0 ); - plotter->set_default_line_width( g_pcb_plot_options.PlotLine_Width ); + plotter->set_default_line_width( g_PcbPlotOptions.m_PlotLineWidth ); plotter->set_creator( wxT( "PCBNEW-RS274X" ) ); plotter->set_filename( FullFileName ); if( plotter->start_plot( output_file ) ) { // Sheet refs on gerber CAN be useful... and they're always 1:1 - if( g_pcb_plot_options.Plot_Frame_Ref ) + if( g_PcbPlotOptions.m_PlotFrameRef ) PlotWorkSheet( plotter, GetScreen() ); - Plot_Layer( plotter, Layer, trace_mode ); + Plot_Layer( plotter, Layer, trace_mode ); plotter->end_plot(); } diff --git a/pcbnew/plothpgl.cpp b/pcbnew/plothpgl.cpp index b6186163c9..b5215a525c 100644 --- a/pcbnew/plothpgl.cpp +++ b/pcbnew/plothpgl.cpp @@ -29,26 +29,26 @@ bool WinEDA_BasePcbFrame::Genere_HPGL( const wxString& FullFileName, int Layer, { return false; } - // Compute pen_dim (from g_HPGL_Pen_Diam in mils) in pcb units, - // with plot scale (if Scale is 2, pen diameter is always g_HPGL_Pen_Diam + // Compute pen_dim (from g_m_HPGLPenDiam in mils) in pcb units, + // with plot scale (if Scale is 2, pen diameter is always g_m_HPGLPenDiam // so apparent pen diam is real pen diam / Scale - int pen_diam = wxRound( (g_pcb_plot_options.HPGL_Pen_Diam * U_PCB) / g_pcb_plot_options.Scale ); + int pen_diam = wxRound( (g_PcbPlotOptions.m_HPGLPenDiam * U_PCB) / g_PcbPlotOptions.m_PlotScale ); - // compute pen_recouvrement (from g_HPGL_Pen_Recouvrement in mils) + // compute pen_overlay (from g_m_HPGLPenOvr in mils) // with plot scale - if( g_pcb_plot_options.HPGL_Pen_Recouvrement < 0 ) - g_pcb_plot_options.HPGL_Pen_Recouvrement = 0; - if( g_pcb_plot_options.HPGL_Pen_Recouvrement >= g_pcb_plot_options.HPGL_Pen_Diam ) - g_pcb_plot_options.HPGL_Pen_Recouvrement = g_pcb_plot_options.HPGL_Pen_Diam - 1; - int pen_recouvrement = wxRound( - g_pcb_plot_options.HPGL_Pen_Recouvrement * 10.0 / g_pcb_plot_options.Scale ); + if( g_PcbPlotOptions.m_HPGLPenOvr < 0 ) + g_PcbPlotOptions.m_HPGLPenOvr = 0; + if( g_PcbPlotOptions.m_HPGLPenOvr >= g_PcbPlotOptions.m_HPGLPenDiam ) + g_PcbPlotOptions.m_HPGLPenOvr = g_PcbPlotOptions.m_HPGLPenDiam - 1; + int pen_overlay = wxRound( + g_PcbPlotOptions.m_HPGLPenOvr * 10.0 / g_PcbPlotOptions.m_PlotScale ); SetLocaleTo_C_standard(); - if( g_pcb_plot_options.PlotScaleOpt != 1 ) - Center = TRUE; // Scale != 1 so center PCB plot. - + if( g_PcbPlotOptions.m_PlotScale != 1.0 || g_PcbPlotOptions.m_AutoScale ) + Center = true; // when scale != 1.0 we must calculate the position in page + // because actual position has no meaning // Scale units from 0.0001" to HPGL plot units. SheetSize.x = currentsheet->m_Size.x * U_PCB; @@ -59,7 +59,7 @@ bool WinEDA_BasePcbFrame::Genere_HPGL( const wxString& FullFileName, int Layer, BoardSize = m_Pcb->m_BoundaryBox.GetSize(); BoardCenter = m_Pcb->m_BoundaryBox.Centre(); - if( g_pcb_plot_options.PlotScaleOpt == 0 ) // Optimum scale + if( g_PcbPlotOptions.m_AutoScale ) // Optimum scale { double Xscale, Yscale; @@ -69,7 +69,7 @@ bool WinEDA_BasePcbFrame::Genere_HPGL( const wxString& FullFileName, int Layer, scale = MIN( Xscale, Yscale ); } else - scale = g_pcb_plot_options.Scale; + scale = g_PcbPlotOptions.m_PlotScale; // Calculate the page size offset. if( Center ) @@ -87,20 +87,19 @@ bool WinEDA_BasePcbFrame::Genere_HPGL( const wxString& FullFileName, int Layer, HPGL_PLOTTER* plotter = new HPGL_PLOTTER(); plotter->set_paper_size( currentsheet ); - plotter->set_viewport( offset, scale, - g_pcb_plot_options.PlotOrient ); - plotter->set_default_line_width( g_pcb_plot_options.PlotLine_Width ); + plotter->set_viewport( offset, scale, g_PcbPlotOptions.m_PlotMirror ); + plotter->set_default_line_width( g_PcbPlotOptions.m_PlotLineWidth ); plotter->set_creator( wxT( "PCBNEW-HPGL" ) ); plotter->set_filename( FullFileName ); - plotter->set_pen_speed( g_pcb_plot_options.HPGL_Pen_Speed ); - plotter->set_pen_number( g_pcb_plot_options.HPGL_Pen_Num ); - plotter->set_pen_overlap( pen_recouvrement ); + plotter->set_pen_speed( g_PcbPlotOptions.m_HPGLPenSpeed ); + plotter->set_pen_number( g_PcbPlotOptions.m_HPGLPenNum ); + plotter->set_pen_overlap( pen_overlay ); plotter->set_pen_diameter( pen_diam ); plotter->start_plot( output_file ); /* The worksheet is not significant with scale!=1... It is with * paperscale!=1, anyway */ - if( g_pcb_plot_options.Plot_Frame_Ref && !Center ) + if( g_PcbPlotOptions.m_PlotFrameRef && !Center ) PlotWorkSheet( plotter, GetScreen() ); Plot_Layer( plotter, Layer, trace_mode ); diff --git a/pcbnew/plotps.cpp b/pcbnew/plotps.cpp index 34e515980c..adb823273e 100644 --- a/pcbnew/plotps.cpp +++ b/pcbnew/plotps.cpp @@ -37,12 +37,13 @@ bool WinEDA_BasePcbFrame::Genere_PS( const wxString& FullFileName, int Layer, SetLocaleTo_C_standard(); - if( g_pcb_plot_options.PlotScaleOpt != 1 ) - Center = TRUE; // Scale != 1 so center plot. + if( g_PcbPlotOptions.m_PlotScale != 1.0 || g_PcbPlotOptions.m_AutoScale ) + Center = true; // when scale != 1.0 we must calculate the position in page + // because actual position has no meaning // Set default line width - if( g_pcb_plot_options.PlotLine_Width < 1 ) - g_pcb_plot_options.PlotLine_Width = 1; + if( g_PcbPlotOptions.m_PlotLineWidth < 1 ) + g_PcbPlotOptions.m_PlotLineWidth = 1; SheetSize.x = currentsheet->m_Size.x * U_PCB; SheetSize.y = currentsheet->m_Size.y * U_PCB; @@ -65,7 +66,7 @@ bool WinEDA_BasePcbFrame::Genere_PS( const wxString& FullFileName, int Layer, BoardSize = m_Pcb->m_BoundaryBox.GetSize(); BoardCenter = m_Pcb->m_BoundaryBox.Centre(); - if( g_pcb_plot_options.PlotScaleOpt == 0 ) // Optimum scale + if( g_PcbPlotOptions.m_AutoScale ) // Optimum scale { double Xscale, Yscale; @@ -75,7 +76,7 @@ bool WinEDA_BasePcbFrame::Genere_PS( const wxString& FullFileName, int Layer, scale = MIN( Xscale, Yscale ); } else - scale = g_pcb_plot_options.Scale * paperscale; + scale = g_PcbPlotOptions.m_PlotScale * paperscale; if( Center ) { @@ -92,24 +93,23 @@ bool WinEDA_BasePcbFrame::Genere_PS( const wxString& FullFileName, int Layer, PS_PLOTTER* plotter = new PS_PLOTTER(); plotter->set_paper_size( SheetPS ); - plotter->set_scale_adjust( g_pcb_plot_options.ScaleAdjX, - g_pcb_plot_options.ScaleAdjY ); - plotter->set_viewport( offset, scale, - g_pcb_plot_options.PlotOrient ); - plotter->set_default_line_width( g_pcb_plot_options.PlotLine_Width ); + plotter->set_scale_adjust( g_PcbPlotOptions.m_FineScaleAdjustX, + g_PcbPlotOptions.m_FineScaleAdjustX ); + plotter->set_viewport( offset, scale, g_PcbPlotOptions.m_PlotMirror ); + plotter->set_default_line_width( g_PcbPlotOptions.m_PlotLineWidth ); plotter->set_creator( wxT( "PCBNEW-PS" ) ); plotter->set_filename( FullFileName ); plotter->start_plot( output_file ); /* The worksheet is not significant with scale!=1... It is with * paperscale!=1, anyway */ - if( g_pcb_plot_options.Plot_Frame_Ref && !Center ) + if( g_PcbPlotOptions.m_PlotFrameRef && !Center ) PlotWorkSheet( plotter, GetScreen() ); // If plot a negative board: // Draw a black rectangle (background for plot board in white) // and switch the current color to WHITE - if( g_pcb_plot_options.Plot_PS_Negative ) + if( g_PcbPlotOptions.m_PlotPSNegative ) { int margin = 500; // Add a 0.5 inch margin around the board plotter->set_negative( true ); diff --git a/version.txt b/version.txt index 74cadcd138..f8c2cde1fa 100644 --- a/version.txt +++ b/version.txt @@ -1,4 +1,4 @@ release version: -2010 dec 06 (BZR testing 2644) +2010 dec 10 (BZR testing 26xx) files (.zip,.tgz): -kicad-2010-12-06-testing +kicad-2010-12-10-testing From 99ee5507db89b1f15b74b4281a090f0295aabeb2 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Sat, 11 Dec 2010 20:33:21 +0100 Subject: [PATCH 3/4] coding policy fixes --- pcbnew/dialogs/dialog_plot_base.cpp | 195 ++++++------ pcbnew/dialogs/dialog_plot_base.fbp | 470 ++++++++++++++++------------ pcbnew/dialogs/dialog_plot_base.h | 59 ++-- pcbnew/pcbplot.cpp | 220 ++++++------- pcbnew/pcbplot.h | 3 +- 5 files changed, 507 insertions(+), 440 deletions(-) diff --git a/pcbnew/dialogs/dialog_plot_base.cpp b/pcbnew/dialogs/dialog_plot_base.cpp index a129c9c2ad..95ebfa6688 100644 --- a/pcbnew/dialogs/dialog_plot_base.cpp +++ b/pcbnew/dialogs/dialog_plot_base.cpp @@ -35,84 +35,84 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr bLeftSizer->Add( sbLayersSizer, 1, wxEXPAND, 5 ); - m_Use_Gerber_Extensions = new wxCheckBox( this, ID_USE_GERBER_EXTENSIONS, _("Use proper Gerber extensions"), wxDefaultPosition, wxDefaultSize, 0 ); - m_Use_Gerber_Extensions->SetToolTip( _("Use Proper Gerber Extensions - .GBL, .GTL, etc...") ); + m_useGerberExtensions = new wxCheckBox( this, wxID_ANY, _("Use proper Gerber extensions"), wxDefaultPosition, wxDefaultSize, 0 ); + m_useGerberExtensions->SetToolTip( _("Use Proper Gerber Extensions - .GBL, .GTL, etc...") ); - bLeftSizer->Add( m_Use_Gerber_Extensions, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + bLeftSizer->Add( m_useGerberExtensions, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); m_excludeEdgeLayerOpt = new wxCheckBox( this, wxID_ANY, _("Exclude pcb edge layer"), wxDefaultPosition, wxDefaultSize, 0 ); m_excludeEdgeLayerOpt->SetToolTip( _("Exclude contents of the pcb edge layer from all other layers") ); bLeftSizer->Add( m_excludeEdgeLayerOpt, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - m_SubtractMaskFromSilk = new wxCheckBox( this, wxID_ANY, _("Subtract mask from silk"), wxDefaultPosition, wxDefaultSize, 0 ); - m_SubtractMaskFromSilk->SetToolTip( _("Remove silkscreen from areas without soldermask") ); + m_subtractMaskFromSilk = new wxCheckBox( this, wxID_ANY, _("Subtract mask from silk"), wxDefaultPosition, wxDefaultSize, 0 ); + m_subtractMaskFromSilk->SetToolTip( _("Remove silkscreen from areas without soldermask") ); - bLeftSizer->Add( m_SubtractMaskFromSilk, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + bLeftSizer->Add( m_subtractMaskFromSilk, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - m_Plot_Sheet_Ref = new wxCheckBox( this, wxID_ANY, _("Print sheet reference"), wxDefaultPosition, wxDefaultSize, 0 ); - bLeftSizer->Add( m_Plot_Sheet_Ref, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + m_plotSheetRef = new wxCheckBox( this, wxID_ANY, _("Plot sheet reference"), wxDefaultPosition, wxDefaultSize, 0 ); + bLeftSizer->Add( m_plotSheetRef, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - m_Plot_Pads_on_Silkscreen = new wxCheckBox( this, ID_ALLOW_PRINT_PAD_ON_SILKSCREEN, _("Print pads on silkscreen"), wxDefaultPosition, wxDefaultSize, 0 ); - m_Plot_Pads_on_Silkscreen->SetToolTip( _("Enable/disable print/plot pads on silkscreen layers\nWhen disable, pads are never potted on silkscreen layers\nWhen enable, pads are potted only if they appear on silkscreen layers") ); + m_plotPads_on_Silkscreen = new wxCheckBox( this, ID_ALLOW_PRINT_PAD_ON_SILKSCREEN, _("Plot pads on silkscreen"), wxDefaultPosition, wxDefaultSize, 0 ); + m_plotPads_on_Silkscreen->SetToolTip( _("Enable/disable print/plot pads on silkscreen layers\nWhen disable, pads are never potted on silkscreen layers\nWhen enable, pads are potted only if they appear on silkscreen layers") ); - bLeftSizer->Add( m_Plot_Pads_on_Silkscreen, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + bLeftSizer->Add( m_plotPads_on_Silkscreen, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - m_Plot_Text_Value = new wxCheckBox( this, ID_PRINT_VALUE, _("Print module value"), wxDefaultPosition, wxDefaultSize, 0 ); - bLeftSizer->Add( m_Plot_Text_Value, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + m_plotModuleValueOpt = new wxCheckBox( this, wxID_ANY, _("Plot module value"), wxDefaultPosition, wxDefaultSize, 0 ); + bLeftSizer->Add( m_plotModuleValueOpt, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - m_Plot_Text_Ref = new wxCheckBox( this, ID_PRINT_REF, _("Print module reference"), wxDefaultPosition, wxDefaultSize, 0 ); - bLeftSizer->Add( m_Plot_Text_Ref, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + m_plotModuleRefOpt = new wxCheckBox( this, ID_PRINT_REF, _("Plot module reference"), wxDefaultPosition, wxDefaultSize, 0 ); + bLeftSizer->Add( m_plotModuleRefOpt, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - m_Plot_Text_Div = new wxCheckBox( this, ID_PRINT_MODULE_TEXTS, _("Print other module texts"), wxDefaultPosition, wxDefaultSize, 0 ); - m_Plot_Text_Div->SetToolTip( _("Enable/disable print/plot module field texts on silkscreen layers") ); + m_plotTextOther = new wxCheckBox( this, wxID_ANY, _("Plot other module texts"), wxDefaultPosition, wxDefaultSize, 0 ); + m_plotTextOther->SetToolTip( _("Enable/disable print/plot module field texts on silkscreen layers") ); - bLeftSizer->Add( m_Plot_Text_Div, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + bLeftSizer->Add( m_plotTextOther, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - m_Plot_Invisible_Text = new wxCheckBox( this, ID_FORCE_PRINT_INVISIBLE_TEXT, _("Force print invisible texts"), wxDefaultPosition, wxDefaultSize, 0 ); - m_Plot_Invisible_Text->SetToolTip( _("Force print/plot module invisible texts on silkscreen layers") ); + m_plotInvisibleText = new wxCheckBox( this, wxID_ANY, _("Force plot invisible texts"), wxDefaultPosition, wxDefaultSize, 0 ); + m_plotInvisibleText->SetToolTip( _("Force print/plot module invisible texts on silkscreen layers") ); - bLeftSizer->Add( m_Plot_Invisible_Text, 0, wxALL, 5 ); + bLeftSizer->Add( m_plotInvisibleText, 0, wxALL, 5 ); bUpperSizer->Add( bLeftSizer, 2, wxEXPAND, 5 ); wxBoxSizer* bPlotOptionsSizer; bPlotOptionsSizer = new wxBoxSizer( wxVERTICAL ); - wxString m_Drill_Shape_OptChoices[] = { _("No drill mark"), _("Small mark"), _("Real drill") }; - int m_Drill_Shape_OptNChoices = sizeof( m_Drill_Shape_OptChoices ) / sizeof( wxString ); - m_Drill_Shape_Opt = new wxRadioBox( this, ID_DRILL_SHAPE_OPT, _("Pads Drill Opt"), wxDefaultPosition, wxDefaultSize, m_Drill_Shape_OptNChoices, m_Drill_Shape_OptChoices, 1, wxRA_SPECIFY_COLS ); - m_Drill_Shape_Opt->SetSelection( 1 ); - bPlotOptionsSizer->Add( m_Drill_Shape_Opt, 0, wxALL|wxEXPAND, 5 ); + wxString m_drillShapeOptChoices[] = { _("No drill mark"), _("Small mark"), _("Real drill") }; + int m_drillShapeOptNChoices = sizeof( m_drillShapeOptChoices ) / sizeof( wxString ); + m_drillShapeOpt = new wxRadioBox( this, wxID_ANY, _("Pads Drill Opt"), wxDefaultPosition, wxDefaultSize, m_drillShapeOptNChoices, m_drillShapeOptChoices, 1, wxRA_SPECIFY_COLS ); + m_drillShapeOpt->SetSelection( 1 ); + bPlotOptionsSizer->Add( m_drillShapeOpt, 0, wxEXPAND|wxALL, 5 ); - wxString m_Scale_OptChoices[] = { _("Auto scale"), _("Scale 1"), _("Scale 1.5"), _("Scale 2"), _("Scale 3") }; - int m_Scale_OptNChoices = sizeof( m_Scale_OptChoices ) / sizeof( wxString ); - m_Scale_Opt = new wxRadioBox( this, wxID_ANY, _("Scale Opt"), wxDefaultPosition, wxDefaultSize, m_Scale_OptNChoices, m_Scale_OptChoices, 1, wxRA_SPECIFY_COLS ); - m_Scale_Opt->SetSelection( 0 ); - bPlotOptionsSizer->Add( m_Scale_Opt, 0, wxALL|wxEXPAND, 5 ); + wxString m_scaleOptChoices[] = { _("Auto scale"), _("Scale 1"), _("Scale 1.5"), _("Scale 2"), _("Scale 3") }; + int m_scaleOptNChoices = sizeof( m_scaleOptChoices ) / sizeof( wxString ); + m_scaleOpt = new wxRadioBox( this, wxID_ANY, _("Scale Opt"), wxDefaultPosition, wxDefaultSize, m_scaleOptNChoices, m_scaleOptChoices, 1, wxRA_SPECIFY_COLS ); + m_scaleOpt->SetSelection( 0 ); + bPlotOptionsSizer->Add( m_scaleOpt, 0, wxEXPAND|wxALL, 5 ); - wxString m_PlotModeOptChoices[] = { _("Line"), _("Filled"), _("Sketch") }; - int m_PlotModeOptNChoices = sizeof( m_PlotModeOptChoices ) / sizeof( wxString ); - m_PlotModeOpt = new wxRadioBox( this, wxID_ANY, _("Plot Mode"), wxDefaultPosition, wxDefaultSize, m_PlotModeOptNChoices, m_PlotModeOptChoices, 1, wxRA_SPECIFY_COLS ); - m_PlotModeOpt->SetSelection( 0 ); - bPlotOptionsSizer->Add( m_PlotModeOpt, 0, wxALL|wxEXPAND, 5 ); + wxString m_plotModeOptChoices[] = { _("Line"), _("Filled"), _("Sketch") }; + int m_plotModeOptNChoices = sizeof( m_plotModeOptChoices ) / sizeof( wxString ); + m_plotModeOpt = new wxRadioBox( this, wxID_ANY, _("Plot Mode"), wxDefaultPosition, wxDefaultSize, m_plotModeOptNChoices, m_plotModeOptChoices, 1, wxRA_SPECIFY_COLS ); + m_plotModeOpt->SetSelection( 0 ); + bPlotOptionsSizer->Add( m_plotModeOpt, 0, wxALL|wxEXPAND, 5 ); - wxString m_Choice_Plot_OffsetChoices[] = { _("Absolute"), _("Auxiliary axis") }; - int m_Choice_Plot_OffsetNChoices = sizeof( m_Choice_Plot_OffsetChoices ) / sizeof( wxString ); - m_Choice_Plot_Offset = new wxRadioBox( this, wxID_ANY, _("Plot Origin"), wxDefaultPosition, wxDefaultSize, m_Choice_Plot_OffsetNChoices, m_Choice_Plot_OffsetChoices, 1, wxRA_SPECIFY_COLS ); - m_Choice_Plot_Offset->SetSelection( 0 ); - bPlotOptionsSizer->Add( m_Choice_Plot_Offset, 0, wxALL|wxEXPAND, 5 ); + wxString m_choicePlotOffsetChoices[] = { _("Absolute"), _("Auxiliary axis") }; + int m_choicePlotOffsetNChoices = sizeof( m_choicePlotOffsetChoices ) / sizeof( wxString ); + m_choicePlotOffset = new wxRadioBox( this, wxID_ANY, _("Plot Origin"), wxDefaultPosition, wxDefaultSize, m_choicePlotOffsetNChoices, m_choicePlotOffsetChoices, 1, wxRA_SPECIFY_COLS ); + m_choicePlotOffset->SetSelection( 0 ); + bPlotOptionsSizer->Add( m_choicePlotOffset, 0, wxALL|wxEXPAND, 5 ); bUpperSizer->Add( bPlotOptionsSizer, 1, 0, 5 ); wxBoxSizer* bSizerFmtPlot; bSizerFmtPlot = new wxBoxSizer( wxVERTICAL ); - wxString m_PlotFormatOptChoices[] = { _("HPGL"), _("Gerber"), _("Postscript"), _("Postscript A4"), _("DXF Export") }; - int m_PlotFormatOptNChoices = sizeof( m_PlotFormatOptChoices ) / sizeof( wxString ); - m_PlotFormatOpt = new wxRadioBox( this, wxID_ANY, _("Plot Format"), wxDefaultPosition, wxDefaultSize, m_PlotFormatOptNChoices, m_PlotFormatOptChoices, 1, wxRA_SPECIFY_COLS ); - m_PlotFormatOpt->SetSelection( 1 ); - bSizerFmtPlot->Add( m_PlotFormatOpt, 0, wxALL|wxEXPAND, 5 ); + wxString m_plotFormatOptChoices[] = { _("HPGL"), _("Gerber"), _("Postscript"), _("Postscript A4"), _("DXF Export") }; + int m_plotFormatOptNChoices = sizeof( m_plotFormatOptChoices ) / sizeof( wxString ); + m_plotFormatOpt = new wxRadioBox( this, wxID_ANY, _("Plot Format"), wxDefaultPosition, wxDefaultSize, m_plotFormatOptNChoices, m_plotFormatOptChoices, 1, wxRA_SPECIFY_COLS ); + m_plotFormatOpt->SetSelection( 1 ); + bSizerFmtPlot->Add( m_plotFormatOpt, 0, wxALL|wxEXPAND, 5 ); wxStaticBoxSizer* m_HPGL_OptionsBox; m_HPGL_OptionsBox = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("HPGL Options:") ), wxVERTICAL ); @@ -142,39 +142,28 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr m_HPGL_OptionsBox->Add( m_HPGLPenOverlayOpt, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); - bSizerFmtPlot->Add( m_HPGL_OptionsBox, 1, wxEXPAND, 5 ); + bSizerFmtPlot->Add( m_HPGL_OptionsBox, 0, wxEXPAND, 5 ); - wxStaticBoxSizer* sbSizerPSOpt; - sbSizerPSOpt = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("PS Options:") ), wxVERTICAL ); - - m_plotPSNegativeOpt = new wxCheckBox( this, wxID_ANY, _("Plot negative"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerPSOpt->Add( m_plotPSNegativeOpt, 0, wxALL, 5 ); - - bSizerFmtPlot->Add( sbSizerPSOpt, 0, wxEXPAND, 5 ); - - wxStaticBoxSizer* sbSizerOutputDir; - sbSizerOutputDir = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Output Directory:") ), wxVERTICAL ); - - m_OutputDirectory = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerOutputDir->Add( m_OutputDirectory, 0, wxALIGN_LEFT|wxEXPAND, 5 ); - - m_BrowseButton = new wxButton( this, ID_BROWSE_OUTPUT_DIRECTORY, _("Browse..."), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerOutputDir->Add( m_BrowseButton, 0, wxALL, 5 ); - - bSizerFmtPlot->Add( sbSizerOutputDir, 0, wxEXPAND, 5 ); - - bUpperSizer->Add( bSizerFmtPlot, 1, wxEXPAND, 5 ); + bUpperSizer->Add( bSizerFmtPlot, 1, 0, 5 ); wxBoxSizer* bButtonsSizer; bButtonsSizer = new wxBoxSizer( wxVERTICAL ); - m_PlotMirorOpt = new wxCheckBox( this, ID_MIROR_OPT, _("Plot mirror"), wxDefaultPosition, wxDefaultSize, 0 ); - bButtonsSizer->Add( m_PlotMirorOpt, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + wxStaticBoxSizer* sbSizerPlotOpt; + sbSizerPlotOpt = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Plot Options:") ), wxVERTICAL ); - m_PlotNoViaOnMaskOpt = new wxCheckBox( this, ID_MASKVIA_OPT, _("Vias on mask"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PlotNoViaOnMaskOpt->SetToolTip( _("Print/plot vias on mask layers. They are in this case not protected") ); + m_plotPSNegativeOpt = new wxCheckBox( this, wxID_ANY, _("Plot negative"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerPlotOpt->Add( m_plotPSNegativeOpt, 0, wxALL, 5 ); - bButtonsSizer->Add( m_PlotNoViaOnMaskOpt, 0, wxALL, 5 ); + m_plotMirrorOpt = new wxCheckBox( this, ID_MIROR_OPT, _("Plot mirror"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerPlotOpt->Add( m_plotMirrorOpt, 0, wxALL, 5 ); + + m_plotNoViaOnMaskOpt = new wxCheckBox( this, wxID_ANY, _("Vias on mask"), wxDefaultPosition, wxDefaultSize, 0 ); + m_plotNoViaOnMaskOpt->SetToolTip( _("Print/plot vias on mask layers. They are in this case not protected") ); + + sbSizerPlotOpt->Add( m_plotNoViaOnMaskOpt, 0, wxALL, 5 ); + + bButtonsSizer->Add( sbSizerPlotOpt, 0, wxEXPAND|wxALL, 5 ); m_staticText6 = new wxStaticText( this, wxID_ANY, _("Default pen size"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText6->Wrap( -1 ); @@ -182,8 +171,8 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr bButtonsSizer->Add( m_staticText6, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - m_LinesWidth = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - bButtonsSizer->Add( m_LinesWidth, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + m_linesWidth = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + bButtonsSizer->Add( m_linesWidth, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); bButtonsSizer->Add( 0, 20, 1, wxEXPAND, 5 ); @@ -192,24 +181,24 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr m_staticText7->Wrap( -1 ); bButtonsSizer->Add( m_staticText7, 0, wxRIGHT|wxLEFT, 5 ); - m_FineAdjustXscaleOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_FineAdjustXscaleOpt->SetToolTip( _("Set X scale adjust for exact scale plotting") ); + m_fineAdjustXscaleOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_fineAdjustXscaleOpt->SetToolTip( _("Set X scale adjust for exact scale plotting") ); - bButtonsSizer->Add( m_FineAdjustXscaleOpt, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + bButtonsSizer->Add( m_fineAdjustXscaleOpt, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); m_staticText8 = new wxStaticText( this, wxID_ANY, _("Y scale adjust"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText8->Wrap( -1 ); bButtonsSizer->Add( m_staticText8, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - m_FineAdjustYscaleOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - bButtonsSizer->Add( m_FineAdjustYscaleOpt, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + m_fineAdjustYscaleOpt = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + bButtonsSizer->Add( m_fineAdjustYscaleOpt, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); bButtonsSizer->Add( 0, 20, 1, wxEXPAND, 5 ); - m_PlotButton = new wxButton( this, ID_EXEC_PLOT, _("Plot"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PlotButton->SetDefault(); - bButtonsSizer->Add( m_PlotButton, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); + m_plotButton = new wxButton( this, wxID_ANY, _("Plot"), wxDefaultPosition, wxDefaultSize, 0 ); + m_plotButton->SetDefault(); + bButtonsSizer->Add( m_plotButton, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); m_buttonSaveOpt = new wxButton( this, ID_SAVE_OPT_PLOT, _("Save Options"), wxDefaultPosition, wxDefaultSize, 0 ); bButtonsSizer->Add( m_buttonSaveOpt, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); @@ -224,14 +213,34 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr bMainSizer->Add( bUpperSizer, 0, wxEXPAND, 5 ); + wxBoxSizer* bSizerDirChoice; + bSizerDirChoice = new wxBoxSizer( wxVERTICAL ); + + m_staticTextDir = new wxStaticText( this, wxID_ANY, _("Output Directory:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextDir->Wrap( -1 ); + bSizerDirChoice->Add( m_staticTextDir, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + wxBoxSizer* bSizerDirNmae; + bSizerDirNmae = new wxBoxSizer( wxHORIZONTAL ); + + m_outputDirectoryName = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + bSizerDirNmae->Add( m_outputDirectoryName, 1, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + + m_browseButton = new wxButton( this, wxID_ANY, _("Browse..."), wxDefaultPosition, wxDefaultSize, 0 ); + bSizerDirNmae->Add( m_browseButton, 0, wxRIGHT|wxLEFT, 5 ); + + bSizerDirChoice->Add( bSizerDirNmae, 1, wxEXPAND|wxRIGHT, 5 ); + + bMainSizer->Add( bSizerDirChoice, 0, wxEXPAND, 5 ); + m_staticText2 = new wxStaticText( this, wxID_ANY, _("Messages:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText2->Wrap( -1 ); bMainSizer->Add( m_staticText2, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - m_MessagesBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE ); - m_MessagesBox->SetMinSize( wxSize( -1,120 ) ); + m_messagesBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE ); + m_messagesBox->SetMinSize( wxSize( -1,120 ) ); - bMainSizer->Add( m_MessagesBox, 1, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + bMainSizer->Add( m_messagesBox, 1, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); this->SetSizer( bMainSizer ); this->Layout(); @@ -240,12 +249,12 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr // Connect Events this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PLOT_BASE::OnCloseWindow ) ); this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_PLOT_BASE::OnInitDialog ) ); - m_PlotFormatOpt->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PLOT_BASE::SetPlotFormat ), NULL, this ); - m_BrowseButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnOutputDirectoryBrowseClicked ), NULL, this ); - m_PlotButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::Plot ), NULL, this ); - m_buttonSaveOpt->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::SaveOptPlot ), NULL, this ); + m_plotFormatOpt->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PLOT_BASE::SetPlotFormat ), NULL, this ); + m_plotButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::Plot ), NULL, this ); + m_buttonSaveOpt->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::savePlotOptions ), NULL, this ); m_buttonDrill->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::CreateDrillFile ), NULL, this ); m_buttonQuit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnQuit ), NULL, this ); + m_browseButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnOutputDirectoryBrowseClicked ), NULL, this ); } DIALOG_PLOT_BASE::~DIALOG_PLOT_BASE() @@ -253,11 +262,11 @@ DIALOG_PLOT_BASE::~DIALOG_PLOT_BASE() // Disconnect Events this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PLOT_BASE::OnCloseWindow ) ); this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_PLOT_BASE::OnInitDialog ) ); - m_PlotFormatOpt->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PLOT_BASE::SetPlotFormat ), NULL, this ); - m_BrowseButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnOutputDirectoryBrowseClicked ), NULL, this ); - m_PlotButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::Plot ), NULL, this ); - m_buttonSaveOpt->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::SaveOptPlot ), NULL, this ); + m_plotFormatOpt->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PLOT_BASE::SetPlotFormat ), NULL, this ); + m_plotButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::Plot ), NULL, this ); + m_buttonSaveOpt->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::savePlotOptions ), NULL, this ); m_buttonDrill->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::CreateDrillFile ), NULL, this ); m_buttonQuit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnQuit ), NULL, this ); + m_browseButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PLOT_BASE::OnOutputDirectoryBrowseClicked ), NULL, this ); } diff --git a/pcbnew/dialogs/dialog_plot_base.fbp b/pcbnew/dialogs/dialog_plot_base.fbp index 5b2f67c500..d7ae192a56 100644 --- a/pcbnew/dialogs/dialog_plot_base.fbp +++ b/pcbnew/dialogs/dialog_plot_base.fbp @@ -97,7 +97,7 @@ 5 wxEXPAND 2 - + bLeftSizer wxVERTICAL @@ -157,11 +157,11 @@ 0 - ID_USE_GERBER_EXTENSIONS + wxID_ANY Use proper Gerber extensions - m_Use_Gerber_Extensions + m_useGerberExtensions protected @@ -258,11 +258,11 @@ - + 5 wxTOP|wxRIGHT|wxLEFT 0 - + 0 @@ -275,7 +275,7 @@ Subtract mask from silk - m_SubtractMaskFromSilk + m_subtractMaskFromSilk protected @@ -329,10 +329,10 @@ 0 wxID_ANY - Print sheet reference + Plot sheet reference - m_Plot_Sheet_Ref + m_plotSheetRef protected @@ -386,10 +386,10 @@ 0 ID_ALLOW_PRINT_PAD_ON_SILKSCREEN - Print pads on silkscreen + Plot pads on silkscreen - m_Plot_Pads_on_Silkscreen + m_plotPads_on_Silkscreen protected @@ -442,11 +442,11 @@ 0 - ID_PRINT_VALUE - Print module value + wxID_ANY + Plot module value - m_Plot_Text_Value + m_plotModuleValueOpt protected @@ -500,10 +500,10 @@ 0 ID_PRINT_REF - Print module reference + Plot module reference - m_Plot_Text_Ref + m_plotModuleRefOpt protected @@ -556,11 +556,11 @@ 0 - ID_PRINT_MODULE_TEXTS - Print other module texts + wxID_ANY + Plot other module texts - m_Plot_Text_Div + m_plotTextOther protected @@ -613,11 +613,11 @@ 0 - ID_FORCE_PRINT_INVISIBLE_TEXT - Force print invisible texts + wxID_ANY + Force plot invisible texts - m_Plot_Invisible_Text + m_plotInvisibleText protected @@ -663,14 +663,14 @@ 5 1 - + bPlotOptionsSizer wxVERTICAL none 5 - wxALL|wxEXPAND + wxEXPAND|wxALL 0 @@ -681,12 +681,12 @@ 0 - ID_DRILL_SHAPE_OPT + wxID_ANY Pads Drill Opt 1 - m_Drill_Shape_Opt + m_drillShapeOpt protected 1 @@ -729,7 +729,7 @@ 5 - wxALL|wxEXPAND + wxEXPAND|wxALL 0 @@ -745,7 +745,7 @@ 1 - m_Scale_Opt + m_scaleOpt protected 0 @@ -804,7 +804,7 @@ 1 - m_PlotModeOpt + m_plotModeOpt protected 0 @@ -863,7 +863,7 @@ 1 - m_Choice_Plot_Offset + m_choicePlotOffset protected 0 @@ -908,7 +908,7 @@ 5 - wxEXPAND + 1 @@ -933,7 +933,7 @@ 1 - m_PlotFormatOpt + m_plotFormatOpt protected 1 @@ -974,10 +974,10 @@ - + 5 wxEXPAND - 1 + 0 wxID_ANY HPGL Options: @@ -1336,15 +1336,26 @@ - + + + + 5 + wxALIGN_CENTER_VERTICAL|wxEXPAND + 1 + + + bButtonsSizer + wxVERTICAL + none + 5 - wxEXPAND + wxEXPAND|wxALL 0 wxID_ANY - PS Options: + Plot Options: - sbSizerPSOpt + sbSizerPlotOpt wxVERTICAL none @@ -1405,37 +1416,24 @@ - - - - 5 - wxEXPAND - 0 - - wxID_ANY - Output Directory: - - sbSizerOutputDir - wxVERTICAL - none - 5 - wxALIGN_LEFT|wxEXPAND + wxALL 0 - + + 0 1 1 0 - wxID_ANY + ID_MIROR_OPT + Plot mirror - 0 - m_OutputDirectory + m_plotMirrorOpt protected @@ -1446,11 +1444,11 @@ wxFILTER_NONE wxDefaultValidator - + @@ -1472,10 +1470,6 @@ - - - - @@ -1483,26 +1477,26 @@ 5 wxALL 0 - + + 0 1 - 0 1 0 - ID_BROWSE_OUTPUT_DIRECTORY - Browse... + wxID_ANY + Vias on mask - m_BrowseButton + m_plotNoViaOnMaskOpt protected - + Print/plot vias on mask layers. They are in this case not protected wxFILTER_NONE wxDefaultValidator @@ -1510,8 +1504,8 @@ - OnOutputDirectoryBrowseClicked + @@ -1538,131 +1532,6 @@ - - - - 5 - wxALIGN_CENTER_VERTICAL|wxEXPAND - 1 - - - bButtonsSizer - wxVERTICAL - none - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - - 0 - - 1 - 1 - - - 0 - ID_MIROR_OPT - Plot mirror - - - m_PlotMirorOpt - protected - - - - - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - - 0 - - 1 - 1 - - - 0 - ID_MASKVIA_OPT - Vias on mask - - - m_PlotNoViaOnMaskOpt - protected - - - - - Print/plot vias on mask layers. They are in this case not protected - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 wxTOP|wxRIGHT|wxLEFT @@ -1735,7 +1604,7 @@ 0 - m_LinesWidth + m_linesWidth protected @@ -1861,7 +1730,7 @@ 0 - m_FineAdjustXscaleOpt + m_fineAdjustXscaleOpt protected @@ -1977,7 +1846,7 @@ 0 - m_FineAdjustYscaleOpt + m_fineAdjustYscaleOpt protected @@ -2044,11 +1913,11 @@ 0 - ID_EXEC_PLOT + wxID_ANY Plot - m_PlotButton + m_plotButton protected @@ -2119,7 +1988,7 @@ - SaveOptPlot + savePlotOptions @@ -2264,10 +2133,205 @@ + 5 + wxEXPAND + 0 + + + bSizerDirChoice + wxVERTICAL + none + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + 1 + + + 0 + wxID_ANY + Output Directory: + + + m_staticTextDir + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxRIGHT + 1 + + + bSizerDirNmae + wxHORIZONTAL + none + + 5 + wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 1 + + + + 1 + 1 + + + 0 + wxID_ANY + + 0 + + m_outputDirectoryName + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + 0 + 1 + + + 0 + wxID_ANY + Browse... + + + m_browseButton + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnOutputDirectoryBrowseClicked + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 wxTOP|wxRIGHT|wxLEFT 0 - + 1 @@ -2319,11 +2383,11 @@ - + 5 wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND 1 - + 1 @@ -2335,7 +2399,7 @@ 0 -1,120 - m_MessagesBox + m_messagesBox protected diff --git a/pcbnew/dialogs/dialog_plot_base.h b/pcbnew/dialogs/dialog_plot_base.h index c2f23ba6a9..8be7c78f79 100644 --- a/pcbnew/dialogs/dialog_plot_base.h +++ b/pcbnew/dialogs/dialog_plot_base.h @@ -36,37 +36,29 @@ class DIALOG_PLOT_BASE : public wxDialog protected: enum { - ID_USE_GERBER_EXTENSIONS = 1000, - ID_ALLOW_PRINT_PAD_ON_SILKSCREEN, - ID_PRINT_VALUE, + ID_ALLOW_PRINT_PAD_ON_SILKSCREEN = 1000, ID_PRINT_REF, - ID_PRINT_MODULE_TEXTS, - ID_FORCE_PRINT_INVISIBLE_TEXT, - ID_DRILL_SHAPE_OPT, - ID_BROWSE_OUTPUT_DIRECTORY, ID_MIROR_OPT, - ID_MASKVIA_OPT, - ID_EXEC_PLOT, ID_SAVE_OPT_PLOT, ID_CREATE_DRILL_FILE, }; wxStaticBoxSizer* m_CopperLayersBoxSizer; wxStaticBoxSizer* m_TechnicalLayersBoxSizer; - wxCheckBox* m_Use_Gerber_Extensions; + wxCheckBox* m_useGerberExtensions; wxCheckBox* m_excludeEdgeLayerOpt; - wxCheckBox* m_SubtractMaskFromSilk; - wxCheckBox* m_Plot_Sheet_Ref; - wxCheckBox* m_Plot_Pads_on_Silkscreen; - wxCheckBox* m_Plot_Text_Value; - wxCheckBox* m_Plot_Text_Ref; - wxCheckBox* m_Plot_Text_Div; - wxCheckBox* m_Plot_Invisible_Text; - wxRadioBox* m_Drill_Shape_Opt; - wxRadioBox* m_Scale_Opt; - wxRadioBox* m_PlotModeOpt; - wxRadioBox* m_Choice_Plot_Offset; - wxRadioBox* m_PlotFormatOpt; + wxCheckBox* m_subtractMaskFromSilk; + wxCheckBox* m_plotSheetRef; + wxCheckBox* m_plotPads_on_Silkscreen; + wxCheckBox* m_plotModuleValueOpt; + wxCheckBox* m_plotModuleRefOpt; + wxCheckBox* m_plotTextOther; + wxCheckBox* m_plotInvisibleText; + wxRadioBox* m_drillShapeOpt; + wxRadioBox* m_scaleOpt; + wxRadioBox* m_plotModeOpt; + wxRadioBox* m_choicePlotOffset; + wxRadioBox* m_plotFormatOpt; wxStaticText* m_textPenSize; wxTextCtrl* m_HPGLPenSizeOpt; wxStaticText* m_staticText3; @@ -74,34 +66,35 @@ class DIALOG_PLOT_BASE : public wxDialog wxStaticText* m_textPenOvr; wxTextCtrl* m_HPGLPenOverlayOpt; wxCheckBox* m_plotPSNegativeOpt; - wxTextCtrl* m_OutputDirectory; - wxButton* m_BrowseButton; - wxCheckBox* m_PlotMirorOpt; - wxCheckBox* m_PlotNoViaOnMaskOpt; + wxCheckBox* m_plotMirrorOpt; + wxCheckBox* m_plotNoViaOnMaskOpt; wxStaticText* m_staticText6; - wxTextCtrl* m_LinesWidth; + wxTextCtrl* m_linesWidth; wxStaticText* m_staticText7; - wxTextCtrl* m_FineAdjustXscaleOpt; + wxTextCtrl* m_fineAdjustXscaleOpt; wxStaticText* m_staticText8; - wxTextCtrl* m_FineAdjustYscaleOpt; + wxTextCtrl* m_fineAdjustYscaleOpt; - wxButton* m_PlotButton; + wxButton* m_plotButton; wxButton* m_buttonSaveOpt; wxButton* m_buttonDrill; wxButton* m_buttonQuit; + wxStaticText* m_staticTextDir; + wxTextCtrl* m_outputDirectoryName; + wxButton* m_browseButton; wxStaticText* m_staticText2; - wxTextCtrl* m_MessagesBox; + wxTextCtrl* m_messagesBox; // Virtual event handlers, overide them in your derived class virtual void OnCloseWindow( wxCloseEvent& event ) { event.Skip(); } virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); } virtual void SetPlotFormat( wxCommandEvent& event ) { event.Skip(); } - virtual void OnOutputDirectoryBrowseClicked( wxCommandEvent& event ) { event.Skip(); } virtual void Plot( wxCommandEvent& event ) { event.Skip(); } - virtual void SaveOptPlot( wxCommandEvent& event ) { event.Skip(); } + virtual void savePlotOptions( wxCommandEvent& event ) { event.Skip(); } virtual void CreateDrillFile( wxCommandEvent& event ) { event.Skip(); } virtual void OnQuit( wxCommandEvent& event ) { event.Skip(); } + virtual void OnOutputDirectoryBrowseClicked( wxCommandEvent& event ) { event.Skip(); } public: diff --git a/pcbnew/pcbplot.cpp b/pcbnew/pcbplot.cpp index 145a76f23d..3944c7b0fc 100644 --- a/pcbnew/pcbplot.cpp +++ b/pcbnew/pcbplot.cpp @@ -37,7 +37,7 @@ PCB_PLOT_PARAMS::PCB_PLOT_PARAMS() m_PlotValue = true; m_PlotTextOther = true; m_DrillShapeOpt = PCB_PLOT_PARAMS::SMALL_DRILL_SHAPE; - Trace_Mode = FILLED; + m_PlotMode = FILLED; m_PlotScale = 1.0; m_AutoScale = false; m_FineScaleAdjustX = 1.0; @@ -74,7 +74,7 @@ public: bool useA4() { - return m_PlotFormatOpt->GetSelection() == 3; + return m_plotFormatOpt->GetSelection() == 3; } @@ -85,7 +85,7 @@ public: */ PlotFormat getFormat() { - int radioNdx = m_PlotFormatOpt->GetSelection(); + int radioNdx = m_plotFormatOpt->GetSelection(); // change the A4 to the simple postscript, according to the // m_PlotFormat enum @@ -113,7 +113,7 @@ private: void OnOutputDirectoryBrowseClicked( wxCommandEvent& event ); void SetPlotFormat( wxCommandEvent& event ); void OnSetScaleOpt( wxCommandEvent& event ); - void SaveOptPlot( wxCommandEvent& event ); + void savePlotOptions( wxCommandEvent& event ); void CreateDrillFile( wxCommandEvent& event ); }; @@ -146,7 +146,7 @@ void DIALOG_PLOT::Init_Dialog() m_Config->Read( OPTKEY_XFINESCALE_ADJ, &m_XScaleAdjust ); m_Config->Read( OPTKEY_YFINESCALE_ADJ, &m_YScaleAdjust ); - m_PlotFormatOpt->SetSelection( g_PcbPlotOptions.m_PlotFormat ); + m_plotFormatOpt->SetSelection( g_PcbPlotOptions.m_PlotFormat ); g_PcbPlotOptions.m_PlotLineWidth = g_DrawDefaultLineThickness; @@ -169,10 +169,10 @@ void DIALOG_PLOT::Init_Dialog() msg = ReturnStringFromValue( g_UserUnit, g_PcbPlotOptions.m_PlotLineWidth, PCB_INTERNAL_UNIT ); - m_LinesWidth->AppendText( msg ); + m_linesWidth->AppendText( msg ); if( s_PlotOriginIsAuxAxis ) - m_Choice_Plot_Offset->SetSelection( 1 ); + m_choicePlotOffset->SetSelection( 1 ); // Create scale adjust option m_XScaleAdjust = m_YScaleAdjust = 1.0; @@ -183,10 +183,10 @@ void DIALOG_PLOT::Init_Dialog() m_XScaleAdjust = m_YScaleAdjust = 1.0; msg.Printf( wxT( "%f" ), m_XScaleAdjust ); - m_FineAdjustXscaleOpt->AppendText( msg ); + m_fineAdjustXscaleOpt->AppendText( msg ); msg.Printf( wxT( "%f" ), m_YScaleAdjust ); - m_FineAdjustYscaleOpt->AppendText( msg ); + m_fineAdjustYscaleOpt->AppendText( msg ); m_plotPSNegativeOpt->SetValue( g_PcbPlotOptions.m_PlotPSNegative ); @@ -240,57 +240,57 @@ void DIALOG_PLOT::Init_Dialog() // Option for using proper Gerber extensions long ltmp; m_Config->Read( OPTKEY_GERBER_EXTENSIONS, <mp ); - m_Use_Gerber_Extensions->SetValue( ltmp ); + m_useGerberExtensions->SetValue( ltmp ); // Option for excluding contents of "Edges Pcb" layer m_excludeEdgeLayerOpt->SetValue( g_PcbPlotOptions.m_ExcludeEdgeLayer ); - m_SubtractMaskFromSilk->SetValue( g_PcbPlotOptions.GetSubtractMaskFromSilk() ); + m_subtractMaskFromSilk->SetValue( g_PcbPlotOptions.GetSubtractMaskFromSilk() ); // Option to plot page references: if( m_Parent->m_Print_Sheet_Ref ) { - m_Plot_Sheet_Ref->SetValue( g_PcbPlotOptions.m_PlotFrameRef ); + m_plotSheetRef->SetValue( g_PcbPlotOptions.m_PlotFrameRef ); } else { - m_Plot_Sheet_Ref->Enable( false ); + m_plotSheetRef->Enable( false ); g_PcbPlotOptions.m_PlotFrameRef = false; } // Option to plot pads on silkscreen layers or all layers - m_Plot_Pads_on_Silkscreen->SetValue( g_PcbPlotOptions.m_PlotPadsOnSilkLayer ); + m_plotPads_on_Silkscreen->SetValue( g_PcbPlotOptions.m_PlotPadsOnSilkLayer ); // Options to plot texts on footprints - m_Plot_Text_Value->SetValue( g_PcbPlotOptions.m_PlotValue ); - m_Plot_Text_Ref->SetValue( g_PcbPlotOptions.m_PlotReference ); - m_Plot_Text_Div->SetValue( g_PcbPlotOptions.m_PlotTextOther ); - m_Plot_Invisible_Text->SetValue( g_PcbPlotOptions.m_PlotInvisibleTexts ); + m_plotModuleValueOpt->SetValue( g_PcbPlotOptions.m_PlotValue ); + m_plotModuleRefOpt->SetValue( g_PcbPlotOptions.m_PlotReference ); + m_plotTextOther->SetValue( g_PcbPlotOptions.m_PlotTextOther ); + m_plotInvisibleText->SetValue( g_PcbPlotOptions.m_PlotInvisibleTexts ); // Options to plot pads and vias holes - m_Drill_Shape_Opt->SetSelection( g_PcbPlotOptions.m_DrillShapeOpt ); + m_drillShapeOpt->SetSelection( g_PcbPlotOptions.m_DrillShapeOpt ); // Scale option - m_Scale_Opt->SetSelection( m_dlgPlotScaleOpt ); + m_scaleOpt->SetSelection( m_dlgPlotScaleOpt ); // Plot mode - m_PlotModeOpt->SetSelection( g_PcbPlotOptions.Trace_Mode ); + m_plotModeOpt->SetSelection( g_PcbPlotOptions.m_PlotMode ); // Plot mirror option - m_PlotMirorOpt->SetValue( g_PcbPlotOptions.m_PlotMirror ); + m_plotMirrorOpt->SetValue( g_PcbPlotOptions.m_PlotMirror ); // Put vias on mask layer - m_PlotNoViaOnMaskOpt->SetValue( g_PcbPlotOptions.m_PlotViaOnMaskLayer ); + m_plotNoViaOnMaskOpt->SetValue( g_PcbPlotOptions.m_PlotViaOnMaskLayer ); // Output directory if( g_PcbPlotOptions.GetOutputDirectory().IsEmpty() ) { fileName = m_Parent->GetScreen()->m_FileName; - m_OutputDirectory->SetValue( fileName.GetPath() ); + m_outputDirectoryName->SetValue( fileName.GetPath() ); } else { - m_OutputDirectory->SetValue( g_PcbPlotOptions.GetOutputDirectory() ); + m_outputDirectoryName->SetValue( g_PcbPlotOptions.GetOutputDirectory() ); } // Update options values: @@ -324,12 +324,12 @@ void DIALOG_PLOT::CreateDrillFile( wxCommandEvent& event ) void DIALOG_PLOT::OnSetScaleOpt( wxCommandEvent& event ) { /* Disable sheet reference for scale != 1:1 */ - bool scale1 = ( m_Scale_Opt->GetSelection() == 1 ); + bool scale1 = ( m_scaleOpt->GetSelection() == 1 ); - m_Plot_Sheet_Ref->Enable( scale1 ); + m_plotSheetRef->Enable( scale1 ); if( !scale1 ) - m_Plot_Sheet_Ref->SetValue( false ); + m_plotSheetRef->SetValue( false ); } @@ -337,11 +337,11 @@ void DIALOG_PLOT::OnOutputDirectoryBrowseClicked( wxCommandEvent& event ) { wxString currentDir; - currentDir = m_OutputDirectory->GetValue(); + currentDir = m_outputDirectoryName->GetValue(); wxDirDialog dirDialog( this, _( "Select Output Directory" ), currentDir ); if( dirDialog.ShowModal() == wxID_CANCEL ) return; - m_OutputDirectory->SetValue( dirDialog.GetPath() ); + m_outputDirectoryName->SetValue( dirDialog.GetPath() ); } @@ -353,84 +353,84 @@ void DIALOG_PLOT::SetPlotFormat( wxCommandEvent& event ) { case PLOT_FORMAT_POST: default: - m_Drill_Shape_Opt->Enable( true ); - m_PlotModeOpt->Enable( true ); - m_PlotMirorOpt->Enable( true ); - m_Choice_Plot_Offset->Enable( false ); - m_LinesWidth->Enable( true ); + m_drillShapeOpt->Enable( true ); + m_plotModeOpt->Enable( true ); + m_plotMirrorOpt->Enable( true ); + m_choicePlotOffset->Enable( false ); + m_linesWidth->Enable( true ); m_HPGLPenSizeOpt->Enable( false ); m_HPGLPenSpeedOpt->Enable( false ); m_HPGLPenOverlayOpt->Enable( false ); m_excludeEdgeLayerOpt->SetValue( false ); m_excludeEdgeLayerOpt->Enable( false ); - m_SubtractMaskFromSilk->Enable( false ); - m_Use_Gerber_Extensions->Enable( false ); - m_Scale_Opt->Enable( true ); - m_FineAdjustXscaleOpt->Enable( true ); - m_FineAdjustYscaleOpt->Enable( true ); + m_subtractMaskFromSilk->Enable( false ); + m_useGerberExtensions->Enable( false ); + m_scaleOpt->Enable( true ); + m_fineAdjustXscaleOpt->Enable( true ); + m_fineAdjustYscaleOpt->Enable( true ); m_plotPSNegativeOpt->Enable( true ); break; case PLOT_FORMAT_GERBER: - m_Drill_Shape_Opt->Enable( false ); - m_PlotModeOpt->SetSelection( 1 ); - m_PlotModeOpt->Enable( false ); - m_PlotMirorOpt->SetValue( false ); - m_PlotMirorOpt->Enable( false ); - m_Choice_Plot_Offset->Enable( true ); - m_LinesWidth->Enable( true ); + m_drillShapeOpt->Enable( false ); + m_plotModeOpt->SetSelection( 1 ); + m_plotModeOpt->Enable( false ); + m_plotMirrorOpt->SetValue( false ); + m_plotMirrorOpt->Enable( false ); + m_choicePlotOffset->Enable( true ); + m_linesWidth->Enable( true ); m_HPGLPenSizeOpt->Enable( false ); m_HPGLPenSpeedOpt->Enable( false ); m_HPGLPenOverlayOpt->Enable( false ); m_excludeEdgeLayerOpt->Enable( true ); - m_SubtractMaskFromSilk->Enable( true ); - m_Use_Gerber_Extensions->Enable( true ); - m_Scale_Opt->SetSelection( 1 ); - m_Scale_Opt->Enable( false ); - m_FineAdjustXscaleOpt->Enable( false ); - m_FineAdjustYscaleOpt->Enable( false ); + m_subtractMaskFromSilk->Enable( true ); + m_useGerberExtensions->Enable( true ); + m_scaleOpt->SetSelection( 1 ); + m_scaleOpt->Enable( false ); + m_fineAdjustXscaleOpt->Enable( false ); + m_fineAdjustYscaleOpt->Enable( false ); m_plotPSNegativeOpt->SetValue( false ); m_plotPSNegativeOpt->Enable( false ); break; case PLOT_FORMAT_HPGL: - m_PlotMirorOpt->Enable( true ); - m_Drill_Shape_Opt->Enable( false ); - m_PlotModeOpt->Enable( true ); - m_Choice_Plot_Offset->Enable( false ); - m_LinesWidth->Enable( false ); + m_plotMirrorOpt->Enable( true ); + m_drillShapeOpt->Enable( false ); + m_plotModeOpt->Enable( true ); + m_choicePlotOffset->Enable( false ); + m_linesWidth->Enable( false ); m_HPGLPenSizeOpt->Enable( true ); m_HPGLPenSpeedOpt->Enable( true ); m_HPGLPenOverlayOpt->Enable( true ); m_excludeEdgeLayerOpt->SetValue( false ); m_excludeEdgeLayerOpt->Enable( false ); - m_SubtractMaskFromSilk->Enable( false ); - m_Use_Gerber_Extensions->Enable( false ); - m_Scale_Opt->Enable( true ); - m_FineAdjustXscaleOpt->Enable( false ); - m_FineAdjustYscaleOpt->Enable( false ); + m_subtractMaskFromSilk->Enable( false ); + m_useGerberExtensions->Enable( false ); + m_scaleOpt->Enable( true ); + m_fineAdjustXscaleOpt->Enable( false ); + m_fineAdjustYscaleOpt->Enable( false ); m_plotPSNegativeOpt->SetValue( false ); m_plotPSNegativeOpt->Enable( false ); break; case PLOT_FORMAT_DXF: - m_PlotMirorOpt->Enable( false ); - m_PlotMirorOpt->SetValue( false ); - m_Drill_Shape_Opt->Enable( false ); - m_PlotModeOpt->Enable( true ); - m_Choice_Plot_Offset->Enable( false ); - m_LinesWidth->Enable( false ); + m_plotMirrorOpt->Enable( false ); + m_plotMirrorOpt->SetValue( false ); + m_drillShapeOpt->Enable( false ); + m_plotModeOpt->Enable( true ); + m_choicePlotOffset->Enable( false ); + m_linesWidth->Enable( false ); m_HPGLPenSizeOpt->Enable( false ); m_HPGLPenSpeedOpt->Enable( false ); m_HPGLPenOverlayOpt->Enable( false ); m_excludeEdgeLayerOpt->SetValue( false ); m_excludeEdgeLayerOpt->Enable( false ); - m_SubtractMaskFromSilk->Enable( false ); - m_Use_Gerber_Extensions->Enable( false ); - m_Scale_Opt->Enable( false ); - m_Scale_Opt->SetSelection( 1 ); - m_FineAdjustXscaleOpt->Enable( false ); - m_FineAdjustYscaleOpt->Enable( false ); + m_subtractMaskFromSilk->Enable( false ); + m_useGerberExtensions->Enable( false ); + m_scaleOpt->Enable( false ); + m_scaleOpt->SetSelection( 1 ); + m_fineAdjustXscaleOpt->Enable( false ); + m_fineAdjustYscaleOpt->Enable( false ); m_plotPSNegativeOpt->SetValue( false ); m_plotPSNegativeOpt->Enable( false ); break; @@ -440,31 +440,31 @@ void DIALOG_PLOT::SetPlotFormat( wxCommandEvent& event ) } -void DIALOG_PLOT::SaveOptPlot( wxCommandEvent& event ) +void DIALOG_PLOT::savePlotOptions( wxCommandEvent& event ) { g_PcbPlotOptions.m_ExcludeEdgeLayer = m_excludeEdgeLayerOpt->GetValue(); - g_PcbPlotOptions.SetSubtractMaskFromSilk( m_SubtractMaskFromSilk->GetValue() ); + g_PcbPlotOptions.SetSubtractMaskFromSilk( m_subtractMaskFromSilk->GetValue() ); - if( m_Plot_Sheet_Ref ) - g_PcbPlotOptions.m_PlotFrameRef = m_Plot_Sheet_Ref->GetValue(); + if( m_plotSheetRef ) + g_PcbPlotOptions.m_PlotFrameRef = m_plotSheetRef->GetValue(); - g_PcbPlotOptions.m_PlotPadsOnSilkLayer = m_Plot_Pads_on_Silkscreen->GetValue(); + g_PcbPlotOptions.m_PlotPadsOnSilkLayer = m_plotPads_on_Silkscreen->GetValue(); s_PlotOriginIsAuxAxis = - (m_Choice_Plot_Offset->GetSelection() == 0) ? FALSE : TRUE; + (m_choicePlotOffset->GetSelection() == 0) ? FALSE : TRUE; - g_PcbPlotOptions.m_PlotValue = m_Plot_Text_Value->GetValue(); - g_PcbPlotOptions.m_PlotReference = m_Plot_Text_Ref->GetValue(); - g_PcbPlotOptions.m_PlotTextOther = m_Plot_Text_Div->GetValue(); - g_PcbPlotOptions.m_PlotInvisibleTexts = m_Plot_Invisible_Text->GetValue(); + g_PcbPlotOptions.m_PlotValue = m_plotModuleValueOpt->GetValue(); + g_PcbPlotOptions.m_PlotReference = m_plotModuleRefOpt->GetValue(); + g_PcbPlotOptions.m_PlotTextOther = m_plotTextOther->GetValue(); + g_PcbPlotOptions.m_PlotInvisibleTexts = m_plotInvisibleText->GetValue(); - m_dlgPlotScaleOpt = m_Scale_Opt->GetSelection(); + m_dlgPlotScaleOpt = m_scaleOpt->GetSelection(); g_PcbPlotOptions.m_DrillShapeOpt = - (PCB_PLOT_PARAMS::DrillShapeOptT) m_Drill_Shape_Opt->GetSelection(); - g_PcbPlotOptions.m_PlotMirror = m_PlotMirorOpt->GetValue(); - g_PcbPlotOptions.Trace_Mode = (GRTraceMode) m_PlotModeOpt->GetSelection(); - g_PcbPlotOptions.m_PlotViaOnMaskLayer = m_PlotNoViaOnMaskOpt->GetValue(); + (PCB_PLOT_PARAMS::DrillShapeOptT) m_drillShapeOpt->GetSelection(); + g_PcbPlotOptions.m_PlotMirror = m_plotMirrorOpt->GetValue(); + g_PcbPlotOptions.m_PlotMode = (GRTraceMode) m_plotModeOpt->GetSelection(); + g_PcbPlotOptions.m_PlotViaOnMaskLayer = m_plotNoViaOnMaskOpt->GetValue(); wxString msg = m_HPGLPenSizeOpt->GetValue(); int tmp = ReturnValueFromString( g_UserUnit, msg, UNITS_MILS ); @@ -478,22 +478,22 @@ void DIALOG_PLOT::SaveOptPlot( wxCommandEvent& event ) tmp = ReturnValueFromString( g_UserUnit, msg, UNITS_MILS ); g_PcbPlotOptions.m_HPGLPenOvr = tmp; - msg = m_LinesWidth->GetValue(); + msg = m_linesWidth->GetValue(); tmp = ReturnValueFromString( g_UserUnit, msg, PCB_INTERNAL_UNIT ); g_PcbPlotOptions.m_PlotLineWidth = tmp; g_DrawDefaultLineThickness = g_PcbPlotOptions.m_PlotLineWidth; - msg = m_FineAdjustXscaleOpt->GetValue(); + msg = m_fineAdjustXscaleOpt->GetValue(); msg.ToDouble( &m_XScaleAdjust ); - msg = m_FineAdjustYscaleOpt->GetValue(); + msg = m_fineAdjustYscaleOpt->GetValue(); msg.ToDouble( &m_YScaleAdjust ); m_Config->Write( OPTKEY_GERBER_EXTENSIONS, - m_Use_Gerber_Extensions->GetValue() ); + m_useGerberExtensions->GetValue() ); m_Config->Write( OPTKEY_XFINESCALE_ADJ, m_XScaleAdjust ); m_Config->Write( OPTKEY_YFINESCALE_ADJ, m_YScaleAdjust ); - g_PcbPlotOptions.m_PlotFormat = m_PlotFormatOpt->GetSelection(); + g_PcbPlotOptions.m_PlotFormat = m_plotFormatOpt->GetSelection(); wxString layerKey; for( int layer = 0; layerGetValue(); - g_PcbPlotOptions.SetOutputDirectory( m_OutputDirectory->GetValue() ); + g_PcbPlotOptions.SetOutputDirectory( m_outputDirectoryName->GetValue() ); } @@ -518,16 +518,16 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event ) BOARD* board = m_Parent->GetBoard(); - SaveOptPlot( event ); + savePlotOptions( event ); // Create output directory if it does not exist - if( !wxFileName::DirExists( m_OutputDirectory->GetValue() ) ) + if( !wxFileName::DirExists( m_outputDirectoryName->GetValue() ) ) { - if( wxMkdir( m_OutputDirectory->GetValue() ) ) + if( wxMkdir( m_outputDirectoryName->GetValue() ) ) { wxString msg; - msg.Printf( _( "Directory %s created.\n" ), GetChars( m_OutputDirectory->GetValue() ) ); - m_MessagesBox->AppendText( msg ); + msg.Printf( _( "Directory %s created.\n" ), GetChars( m_outputDirectoryName->GetValue() ) ); + m_messagesBox->AppendText( msg ); } else { @@ -565,9 +565,9 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event ) * the default scale adjust is initialized to 0 and saved in program * settings resulting in a divide by zero fault. */ - if( m_FineAdjustXscaleOpt->IsEnabled() && m_XScaleAdjust != 0.0 ) + if( m_fineAdjustXscaleOpt->IsEnabled() && m_XScaleAdjust != 0.0 ) g_PcbPlotOptions.m_FineScaleAdjustX = m_XScaleAdjust; - if( m_FineAdjustYscaleOpt->IsEnabled() && m_YScaleAdjust != 0.0 ) + if( m_fineAdjustYscaleOpt->IsEnabled() && m_YScaleAdjust != 0.0 ) g_PcbPlotOptions.m_FineScaleAdjustY = m_YScaleAdjust; int format = getFormat(); @@ -613,7 +613,7 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event ) s_SelectedLayers |= mask; fn = m_Parent->GetScreen()->m_FileName; - fn.SetPath( m_OutputDirectory->GetValue() ); + fn.SetPath( m_outputDirectoryName->GetValue() ); // Create file name. wxString layername = board->GetLayerName( layer ); @@ -622,7 +622,7 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event ) // Use Gerber Extensions based on layer number // (See http://en.wikipedia.org/wiki/Gerber_File) - if( (format == PLOT_FORMAT_GERBER) && m_Use_Gerber_Extensions->GetValue() ) + if( (format == PLOT_FORMAT_GERBER) && m_useGerberExtensions->GetValue() ) { switch( layer ) { @@ -706,23 +706,23 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event ) { case PLOT_FORMAT_POST: success = m_Parent->Genere_PS( fn.GetFullPath(), layer, useA4(), - g_PcbPlotOptions.Trace_Mode ); + g_PcbPlotOptions.m_PlotMode ); break; case PLOT_FORMAT_GERBER: success = m_Parent->Genere_GERBER( fn.GetFullPath(), layer, s_PlotOriginIsAuxAxis, - g_PcbPlotOptions.Trace_Mode ); + g_PcbPlotOptions.m_PlotMode ); break; case PLOT_FORMAT_HPGL: success = m_Parent->Genere_HPGL( fn.GetFullPath(), layer, - g_PcbPlotOptions.Trace_Mode ); + g_PcbPlotOptions.m_PlotMode ); break; case PLOT_FORMAT_DXF: success = m_Parent->Genere_DXF( fn.GetFullPath(), layer, - g_PcbPlotOptions.Trace_Mode ); + g_PcbPlotOptions.m_PlotMode ); break; } @@ -733,7 +733,7 @@ void DIALOG_PLOT::Plot( wxCommandEvent& event ) else msg.Printf( _( "Unable to create <%s>" ), GetChars( fn.GetFullPath() ) ); msg << wxT( "\n" ); - m_MessagesBox->AppendText( msg ); + m_messagesBox->AppendText( msg ); } } diff --git a/pcbnew/pcbplot.h b/pcbnew/pcbplot.h index 75f218328e..42c31bf4e4 100644 --- a/pcbnew/pcbplot.h +++ b/pcbnew/pcbplot.h @@ -36,7 +36,8 @@ public: bool m_PlotFrameRef; // True to plot/print frame references bool m_PlotViaOnMaskLayer; // True if vias are drawn on Mask layer // (ie protected by mask) - GRTraceMode Trace_Mode; + GRTraceMode m_PlotMode; // = FILAIRE, FILLED or SKETCH: select how to plot filled objects. + // depending on plot format or layers, all options are not always allowed int m_HPGLPenNum; int m_HPGLPenSpeed; int m_HPGLPenDiam; From 6964a4b6df2292baf4f755b175ca17fb86b9bda5 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Sat, 11 Dec 2010 21:57:25 +0100 Subject: [PATCH 4/4] UI policy fixes --- pcbnew/dialogs/dialog_plot_base.cpp | 25 ++++++++++---------- pcbnew/dialogs/dialog_plot_base.fbp | 36 ++++++++++++++--------------- pcbnew/dialogs/dialog_plot_base.h | 2 +- 3 files changed, 31 insertions(+), 32 deletions(-) diff --git a/pcbnew/dialogs/dialog_plot_base.cpp b/pcbnew/dialogs/dialog_plot_base.cpp index 95ebfa6688..f1248fde33 100644 --- a/pcbnew/dialogs/dialog_plot_base.cpp +++ b/pcbnew/dialogs/dialog_plot_base.cpp @@ -79,11 +79,11 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr wxBoxSizer* bPlotOptionsSizer; bPlotOptionsSizer = new wxBoxSizer( wxVERTICAL ); - wxString m_drillShapeOptChoices[] = { _("No drill mark"), _("Small mark"), _("Real drill") }; + wxString m_drillShapeOptChoices[] = { _("No drill mark"), _("Small mark"), _("Actual hole") }; int m_drillShapeOptNChoices = sizeof( m_drillShapeOptChoices ) / sizeof( wxString ); - m_drillShapeOpt = new wxRadioBox( this, wxID_ANY, _("Pads Drill Opt"), wxDefaultPosition, wxDefaultSize, m_drillShapeOptNChoices, m_drillShapeOptChoices, 1, wxRA_SPECIFY_COLS ); - m_drillShapeOpt->SetSelection( 1 ); - bPlotOptionsSizer->Add( m_drillShapeOpt, 0, wxEXPAND|wxALL, 5 ); + m_drillShapeOpt = new wxRadioBox( this, wxID_ANY, _("Holes Options"), wxDefaultPosition, wxDefaultSize, m_drillShapeOptNChoices, m_drillShapeOptChoices, 1, wxRA_SPECIFY_COLS ); + m_drillShapeOpt->SetSelection( 2 ); + bPlotOptionsSizer->Add( m_drillShapeOpt, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); wxString m_scaleOptChoices[] = { _("Auto scale"), _("Scale 1"), _("Scale 1.5"), _("Scale 2"), _("Scale 3") }; int m_scaleOptNChoices = sizeof( m_scaleOptChoices ) / sizeof( wxString ); @@ -103,16 +103,16 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr m_choicePlotOffset->SetSelection( 0 ); bPlotOptionsSizer->Add( m_choicePlotOffset, 0, wxALL|wxEXPAND, 5 ); - bUpperSizer->Add( bPlotOptionsSizer, 1, 0, 5 ); + bUpperSizer->Add( bPlotOptionsSizer, 0, wxEXPAND, 5 ); wxBoxSizer* bSizerFmtPlot; bSizerFmtPlot = new wxBoxSizer( wxVERTICAL ); - wxString m_plotFormatOptChoices[] = { _("HPGL"), _("Gerber"), _("Postscript"), _("Postscript A4"), _("DXF Export") }; + wxString m_plotFormatOptChoices[] = { _("HPGL"), _("Gerber"), _("Postscript"), _("Postscript A4"), _("DXF export") }; int m_plotFormatOptNChoices = sizeof( m_plotFormatOptChoices ) / sizeof( wxString ); m_plotFormatOpt = new wxRadioBox( this, wxID_ANY, _("Plot Format"), wxDefaultPosition, wxDefaultSize, m_plotFormatOptNChoices, m_plotFormatOptChoices, 1, wxRA_SPECIFY_COLS ); - m_plotFormatOpt->SetSelection( 1 ); - bSizerFmtPlot->Add( m_plotFormatOpt, 0, wxALL|wxEXPAND, 5 ); + m_plotFormatOpt->SetSelection( 4 ); + bSizerFmtPlot->Add( m_plotFormatOpt, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); wxStaticBoxSizer* m_HPGL_OptionsBox; m_HPGL_OptionsBox = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("HPGL Options:") ), wxVERTICAL ); @@ -144,7 +144,7 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr bSizerFmtPlot->Add( m_HPGL_OptionsBox, 0, wxEXPAND, 5 ); - bUpperSizer->Add( bSizerFmtPlot, 1, 0, 5 ); + bUpperSizer->Add( bSizerFmtPlot, 0, wxEXPAND, 5 ); wxBoxSizer* bButtonsSizer; bButtonsSizer = new wxBoxSizer( wxVERTICAL ); @@ -163,7 +163,7 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr sbSizerPlotOpt->Add( m_plotNoViaOnMaskOpt, 0, wxALL, 5 ); - bButtonsSizer->Add( sbSizerPlotOpt, 0, wxEXPAND|wxALL, 5 ); + bButtonsSizer->Add( sbSizerPlotOpt, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); m_staticText6 = new wxStaticText( this, wxID_ANY, _("Default pen size"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText6->Wrap( -1 ); @@ -209,7 +209,7 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr m_buttonQuit = new wxButton( this, wxID_CANCEL, _("Quit"), wxDefaultPosition, wxDefaultSize, 0 ); bButtonsSizer->Add( m_buttonQuit, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); - bUpperSizer->Add( bButtonsSizer, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); + bUpperSizer->Add( bButtonsSizer, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); bMainSizer->Add( bUpperSizer, 0, wxEXPAND, 5 ); @@ -229,7 +229,7 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr m_browseButton = new wxButton( this, wxID_ANY, _("Browse..."), wxDefaultPosition, wxDefaultSize, 0 ); bSizerDirNmae->Add( m_browseButton, 0, wxRIGHT|wxLEFT, 5 ); - bSizerDirChoice->Add( bSizerDirNmae, 1, wxEXPAND|wxRIGHT, 5 ); + bSizerDirChoice->Add( bSizerDirNmae, 0, wxRIGHT|wxEXPAND, 5 ); bMainSizer->Add( bSizerDirChoice, 0, wxEXPAND, 5 ); @@ -244,7 +244,6 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr this->SetSizer( bMainSizer ); this->Layout(); - bMainSizer->Fit( this ); // Connect Events this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PLOT_BASE::OnCloseWindow ) ); diff --git a/pcbnew/dialogs/dialog_plot_base.fbp b/pcbnew/dialogs/dialog_plot_base.fbp index d7ae192a56..44c1c30a11 100644 --- a/pcbnew/dialogs/dialog_plot_base.fbp +++ b/pcbnew/dialogs/dialog_plot_base.fbp @@ -37,7 +37,7 @@ -1,350 DIALOG_PLOT_BASE - -1,-1 + 571,616 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER Plot @@ -661,8 +661,8 @@ 5 - - 1 + wxEXPAND + 0 bPlotOptionsSizer @@ -670,11 +670,11 @@ none 5 - wxEXPAND|wxALL + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT 0 - "No drill mark" "Small mark" "Real drill" + "No drill mark" "Small mark" "Actual hole" 1 1 @@ -682,14 +682,14 @@ 0 wxID_ANY - Pads Drill Opt + Holes Options 1 m_drillShapeOpt protected - 1 + 2 wxRA_SPECIFY_COLS @@ -908,8 +908,8 @@ 5 - - 1 + wxEXPAND + 0 bSizerFmtPlot @@ -917,11 +917,11 @@ none 5 - wxALL|wxEXPAND + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT 0 - "HPGL" "Gerber" "Postscript" "Postscript A4" "DXF Export" + "HPGL" "Gerber" "Postscript" "Postscript A4" "DXF export" 1 1 @@ -936,7 +936,7 @@ m_plotFormatOpt protected - 1 + 4 wxRA_SPECIFY_COLS @@ -1338,18 +1338,18 @@ - + 5 wxALIGN_CENTER_VERTICAL|wxEXPAND - 1 - + 0 + bButtonsSizer wxVERTICAL none 5 - wxEXPAND|wxALL + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT 0 wxID_ANY @@ -2199,8 +2199,8 @@ 5 - wxEXPAND|wxRIGHT - 1 + wxRIGHT|wxEXPAND + 0 bSizerDirNmae diff --git a/pcbnew/dialogs/dialog_plot_base.h b/pcbnew/dialogs/dialog_plot_base.h index 8be7c78f79..c30ae90bb0 100644 --- a/pcbnew/dialogs/dialog_plot_base.h +++ b/pcbnew/dialogs/dialog_plot_base.h @@ -99,7 +99,7 @@ class DIALOG_PLOT_BASE : public wxDialog public: - DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Plot"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Plot"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 571,616 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~DIALOG_PLOT_BASE(); };