void DIALOG_PRINT_USING_PRINTER::SetPrintParameters() { s_Parameters.m_PrintMirror = m_Print_Mirror->GetValue(); s_Parameters.m_Print_Black_and_White = m_ModeColorOption->GetSelection() != 0; // Due to negative objects in gerber objects, always use one page per image, // because these objects create artefact when they are printed on an existing image. s_Parameters.m_OptionPrintPage = false; SetLayerSetFromListSelection(); int idx = m_ScaleOption->GetSelection(); s_Parameters.m_PrintScale = s_ScaleList[idx]; // Test for a reasonnable scale value bool ok = true; double scaleX; m_FineAdjustXscaleOpt->GetValue().ToDouble( &scaleX ); double scaleY; m_FineAdjustYscaleOpt->GetValue().ToDouble( &scaleY ); if( scaleX > MAX_SCALE || scaleY > MAX_SCALE ) { DisplayInfoMessage( NULL, _( "Warning: Scale option set to a very large value" ) ); ok = false; } if( scaleX < MIN_SCALE || scaleY < MIN_SCALE ) { DisplayInfoMessage( NULL, _( "Warning: Scale option set to a very small value" ) ); ok = false; } if( ok ) { s_Parameters.m_XScaleAdjust = scaleX; s_Parameters.m_YScaleAdjust = scaleY; } else { // Update actual fine scale value m_FineAdjustXscaleOpt->SetValue( wxString::Format( "%f", s_Parameters.m_XScaleAdjust ) ); m_FineAdjustYscaleOpt->SetValue( wxString::Format( "%f", s_Parameters.m_YScaleAdjust ) ); } }
void DIALOG_PRINT_USING_PRINTER::SetPrintParameters( ) { PCB_PLOT_PARAMS plot_opts = m_parent->GetPlotSettings(); s_Parameters.m_PrintMirror = m_Print_Mirror->GetValue(); s_Parameters.m_Print_Sheet_Ref = m_Print_Sheet_Ref->GetValue(); s_Parameters.m_Print_Black_and_White = m_ModeColorOption->GetSelection() != 0; s_Parameters.m_DrillShapeOpt = (PRINT_PARAMETERS::DrillShapeOptT) m_Drill_Shape_Opt->GetSelection(); if( m_PagesOption ) s_Parameters.m_OptionPrintPage = m_PagesOption->GetSelection() != 0; SetLayerSetFromListSelection(); int idx = m_ScaleOption->GetSelection(); s_Parameters.m_PrintScale = s_ScaleList[idx]; plot_opts.SetScale( s_Parameters.m_PrintScale ); if( m_FineAdjustXscaleOpt ) { if( s_Parameters.m_XScaleAdjust > MAX_SCALE || s_Parameters.m_YScaleAdjust > MAX_SCALE ) DisplayInfoMessage( NULL, _( "Warning: Scale option set to a very large value" ) ); m_FineAdjustXscaleOpt->GetValue().ToDouble( &s_Parameters.m_XScaleAdjust ); } if( m_FineAdjustYscaleOpt ) { // Test for a reasonnable scale value if( s_Parameters.m_XScaleAdjust < MIN_SCALE || s_Parameters.m_YScaleAdjust < MIN_SCALE ) DisplayInfoMessage( NULL, _( "Warning: Scale option set to a very small value" ) ); m_FineAdjustYscaleOpt->GetValue().ToDouble( &s_Parameters.m_YScaleAdjust ); } plot_opts.SetFineScaleAdjustX( s_Parameters.m_XScaleAdjust ); plot_opts.SetFineScaleAdjustY( s_Parameters.m_YScaleAdjust ); m_parent->SetPlotSettings( plot_opts ); SetPenWidth(); }