diff --git a/eeschema/plotps.cpp b/eeschema/plotps.cpp index c2e462d35c..4eca946017 100644 --- a/eeschema/plotps.cpp +++ b/eeschema/plotps.cpp @@ -1,4 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// + // Name: plotps.cpp // Purpose: // Author: jean-pierre Charras @@ -11,7 +12,7 @@ // Generated by DialogBlocks (unregistered), 01/02/2006 08:37:24 -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) +#if defined (__GNUG__) && !defined (NO_GCC_PRAGMA) #pragma implementation "plotps.h" #endif @@ -52,9 +53,9 @@ enum PageFormatReq { /* Variables locales : */ -static int PS_SizeSelect = PAGE_SIZE_AUTO; -extern FILE * PlotOutput; -static bool Plot_Sheet_Ref = TRUE; +static int PS_SizeSelect = PAGE_SIZE_AUTO; +extern FILE* PlotOutput; +static bool Plot_Sheet_Ref = TRUE; ////@begin includes @@ -67,19 +68,24 @@ static bool Plot_Sheet_Ref = TRUE; /***********************************************************/ -void WinEDA_SchematicFrame::ToPlot_PS(wxCommandEvent& event) +void WinEDA_SchematicFrame::ToPlot_PS( wxCommandEvent& event ) /***********************************************************/ + /* fonction relai de creation de la frame de dialogue pour trace Postscript -*/ + */ { -wxPoint pos; + wxPoint pos; pos = GetPosition(); - pos.x += 10; pos.y += 20; - WinEDA_PlotPSFrame * Ps_frame = new WinEDA_PlotPSFrame(this); - Ps_frame->ShowModal(); Ps_frame->Destroy(); -} + pos.x += 10; + pos.y += 20; + + WinEDA_PlotPSFrame* Ps_frame = new WinEDA_PlotPSFrame( this ); + + Ps_frame->ShowModal(); + Ps_frame->Destroy(); +} /*! @@ -95,13 +101,13 @@ IMPLEMENT_DYNAMIC_CLASS( WinEDA_PlotPSFrame, wxDialog ) BEGIN_EVENT_TABLE( WinEDA_PlotPSFrame, wxDialog ) ////@begin WinEDA_PlotPSFrame event table entries - EVT_INIT_DIALOG( WinEDA_PlotPSFrame::OnInitDialog ) +EVT_INIT_DIALOG( WinEDA_PlotPSFrame::OnInitDialog ) - EVT_BUTTON( ID_PLOT_PS_CURRENT_EXECUTE, WinEDA_PlotPSFrame::OnPlotPsCurrentExecuteClick ) +EVT_BUTTON( ID_PLOT_PS_CURRENT_EXECUTE, WinEDA_PlotPSFrame::OnPlotPsCurrentExecuteClick ) - EVT_BUTTON( ID_PLOT_PS_ALL_EXECUTE, WinEDA_PlotPSFrame::OnPlotPsAllExecuteClick ) +EVT_BUTTON( ID_PLOT_PS_ALL_EXECUTE, WinEDA_PlotPSFrame::OnPlotPsAllExecuteClick ) - EVT_BUTTON( wxID_CANCEL, WinEDA_PlotPSFrame::OnCancelClick ) +EVT_BUTTON( wxID_CANCEL, WinEDA_PlotPSFrame::OnCancelClick ) ////@end WinEDA_PlotPSFrame event table entries @@ -111,127 +117,184 @@ END_EVENT_TABLE() * WinEDA_PlotPSFrame constructors */ -WinEDA_PlotPSFrame::WinEDA_PlotPSFrame( ) +WinEDA_PlotPSFrame::WinEDA_PlotPSFrame() { } -WinEDA_PlotPSFrame::WinEDA_PlotPSFrame( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) + +WinEDA_PlotPSFrame::WinEDA_PlotPSFrame( wxWindow* parent, + wxWindowID id, + const wxString& caption, + const wxPoint& pos, + const wxSize& size, + long style ) { - Create(parent, id, caption, pos, size, style); + Create( parent, id, caption, pos, size, style ); } + /*! * WinEDA_PlotPSFrame creator */ -bool WinEDA_PlotPSFrame::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) +bool WinEDA_PlotPSFrame::Create( wxWindow* parent, + wxWindowID id, + const wxString& caption, + const wxPoint& pos, + const wxSize& size, + long style ) { ////@begin WinEDA_PlotPSFrame member initialisation m_SizeOption = NULL; m_PlotPSColorOption = NULL; - m_Plot_Sheet_Ref = NULL; + m_Plot_Sheet_Ref = NULL; m_btClose = NULL; m_DefaultLineSizeCtrlSizer = NULL; m_MsgBox = NULL; + ////@end WinEDA_PlotPSFrame member initialisation ////@begin WinEDA_PlotPSFrame creation - SetExtraStyle(wxWS_EX_BLOCK_EVENTS); + SetExtraStyle( wxWS_EX_BLOCK_EVENTS ); wxDialog::Create( parent, id, caption, pos, size, style ); CreateControls(); - if (GetSizer()) + if( GetSizer() ) { - GetSizer()->SetSizeHints(this); + GetSizer()->SetSizeHints( this ); } Centre(); + ////@end WinEDA_PlotPSFrame creation return true; } + /*! * Control creation for WinEDA_PlotPSFrame */ void WinEDA_PlotPSFrame::CreateControls() { - SetFont(*g_DialogFont); + SetFont( *g_DialogFont ); ////@begin WinEDA_PlotPSFrame content construction // Generated by DialogBlocks, 29/04/2008 21:12:22 (unregistered) WinEDA_PlotPSFrame* itemDialog1 = this; - wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL); - itemDialog1->SetSizer(itemBoxSizer2); + wxBoxSizer* itemBoxSizer2 = new wxBoxSizer( wxVERTICAL ); - wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxHORIZONTAL); - itemBoxSizer2->Add(itemBoxSizer3, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); + itemDialog1->SetSizer( itemBoxSizer2 ); + + wxBoxSizer* itemBoxSizer3 = new wxBoxSizer( wxHORIZONTAL ); + + itemBoxSizer2->Add( itemBoxSizer3, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 5 ); wxArrayString m_SizeOptionStrings; - m_SizeOptionStrings.Add(_("Auto")); - m_SizeOptionStrings.Add(_("Page Size A4")); - m_SizeOptionStrings.Add(_("Page Size A")); - m_SizeOption = new wxRadioBox( itemDialog1, ID_RADIOBOX1, _("Plot page size:"), wxDefaultPosition, wxDefaultSize, m_SizeOptionStrings, 1, wxRA_SPECIFY_COLS ); - m_SizeOption->SetSelection(0); - itemBoxSizer3->Add(m_SizeOption, 0, wxGROW|wxALL, 5); + m_SizeOptionStrings.Add( _( "Auto" ) ); + m_SizeOptionStrings.Add( _( "Page Size A4" ) ); + m_SizeOptionStrings.Add( _( "Page Size A" ) ); + m_SizeOption = new wxRadioBox( itemDialog1, ID_RADIOBOX1, _( + "Plot page size:" ), wxDefaultPosition, wxDefaultSize, + m_SizeOptionStrings, 1, + wxRA_SPECIFY_COLS ); - itemBoxSizer3->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); + m_SizeOption->SetSelection( 0 ); + itemBoxSizer3->Add( m_SizeOption, 0, wxGROW | wxALL, 5 ); - wxStaticBox* itemStaticBoxSizer6Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Plot Options:")); - wxStaticBoxSizer* itemStaticBoxSizer6 = new wxStaticBoxSizer(itemStaticBoxSizer6Static, wxVERTICAL); - itemBoxSizer3->Add(itemStaticBoxSizer6, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); + itemBoxSizer3->Add( 5, 5, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 ); + + wxStaticBox* itemStaticBoxSizer6Static = new wxStaticBox( itemDialog1, wxID_ANY, _( + "Plot Options:" ) ); + + wxStaticBoxSizer* itemStaticBoxSizer6 = new wxStaticBoxSizer( + itemStaticBoxSizer6Static, + wxVERTICAL ); + + itemBoxSizer3->Add( itemStaticBoxSizer6, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 ); wxArrayString m_PlotPSColorOptionStrings; - m_PlotPSColorOptionStrings.Add(_("B/W")); - m_PlotPSColorOptionStrings.Add(_("Color")); - m_PlotPSColorOption = new wxRadioBox( itemDialog1, ID_RADIOBOX, _("Plot Color:"), wxDefaultPosition, wxDefaultSize, m_PlotPSColorOptionStrings, 1, wxRA_SPECIFY_COLS ); - m_PlotPSColorOption->SetSelection(0); - itemStaticBoxSizer6->Add(m_PlotPSColorOption, 0, wxGROW|wxALL, 5); + m_PlotPSColorOptionStrings.Add( _( "B/W" ) ); + m_PlotPSColorOptionStrings.Add( _( "Color" ) ); + m_PlotPSColorOption = new wxRadioBox( itemDialog1, ID_RADIOBOX, _( + "Plot Color:" ), wxDefaultPosition, wxDefaultSize, + m_PlotPSColorOptionStrings, 1, + wxRA_SPECIFY_COLS ); - m_Plot_Sheet_Ref = new wxCheckBox( itemDialog1, ID_CHECKBOX, _("Print Sheet Ref"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE ); - m_Plot_Sheet_Ref->SetValue(false); - itemStaticBoxSizer6->Add(m_Plot_Sheet_Ref, 0, wxGROW|wxALL, 5); + m_PlotPSColorOption->SetSelection( 0 ); + itemStaticBoxSizer6->Add( m_PlotPSColorOption, 0, wxGROW | wxALL, 5 ); - itemBoxSizer3->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); + m_Plot_Sheet_Ref = new wxCheckBox( itemDialog1, ID_CHECKBOX, _( + "Print Sheet Ref" ), wxDefaultPosition, + wxDefaultSize, wxCHK_2STATE ); - wxBoxSizer* itemBoxSizer10 = new wxBoxSizer(wxVERTICAL); - itemBoxSizer3->Add(itemBoxSizer10, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); + m_Plot_Sheet_Ref->SetValue( false ); + itemStaticBoxSizer6->Add( m_Plot_Sheet_Ref, 0, wxGROW | wxALL, 5 ); - wxButton* itemButton11 = new wxButton( itemDialog1, ID_PLOT_PS_CURRENT_EXECUTE, _("&Plot CURRENT"), wxDefaultPosition, wxDefaultSize, 0 ); - itemButton11->SetForegroundColour(wxColour(0, 128, 0)); - itemBoxSizer10->Add(itemButton11, 0, wxGROW|wxALL, 5); + itemBoxSizer3->Add( 5, 5, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 ); - wxButton* itemButton12 = new wxButton( itemDialog1, ID_PLOT_PS_ALL_EXECUTE, _("Plot A&LL"), wxDefaultPosition, wxDefaultSize, 0 ); - itemButton12->SetForegroundColour(wxColour(179, 0, 0)); - itemBoxSizer10->Add(itemButton12, 0, wxGROW|wxALL, 5); + wxBoxSizer* itemBoxSizer10 = new wxBoxSizer( wxVERTICAL ); + + itemBoxSizer3->Add( itemBoxSizer10, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 ); + + wxButton* itemButton11 = new wxButton( itemDialog1, ID_PLOT_PS_CURRENT_EXECUTE, _( + "&Plot CURRENT" ), wxDefaultPosition, + wxDefaultSize, 0 ); + + itemButton11->SetForegroundColour( wxColour( 0, 128, 0 ) ); + itemBoxSizer10->Add( itemButton11, 0, wxGROW | wxALL, 5 ); + + wxButton* itemButton12 = new wxButton( itemDialog1, ID_PLOT_PS_ALL_EXECUTE, _( + "Plot A&LL" ), wxDefaultPosition, + wxDefaultSize, 0 ); + + itemButton12->SetForegroundColour( wxColour( 179, 0, 0 ) ); + itemBoxSizer10->Add( itemButton12, 0, wxGROW | wxALL, 5 ); + + m_btClose = new wxButton( itemDialog1, wxID_CANCEL, _( + "Close" ), wxDefaultPosition, wxDefaultSize, + 0 ); - m_btClose = new wxButton( itemDialog1, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 ); m_btClose->SetDefault(); - m_btClose->SetForegroundColour(wxColour(0, 0, 255)); - itemBoxSizer10->Add(m_btClose, 0, wxGROW|wxALL, 5); + m_btClose->SetForegroundColour( wxColour( 0, 0, 255 ) ); + itemBoxSizer10->Add( m_btClose, 0, wxGROW | wxALL, 5 ); - m_DefaultLineSizeCtrlSizer = new wxBoxSizer(wxVERTICAL); - itemBoxSizer2->Add(m_DefaultLineSizeCtrlSizer, 0, wxGROW|wxALL, 5); + m_DefaultLineSizeCtrlSizer = new wxBoxSizer( wxVERTICAL ); - wxStaticText* itemStaticText15 = new wxStaticText( itemDialog1, wxID_STATIC, _("Messages :"), wxDefaultPosition, wxDefaultSize, 0 ); - itemBoxSizer2->Add(itemStaticText15, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5); + itemBoxSizer2->Add( m_DefaultLineSizeCtrlSizer, 0, wxGROW | wxALL, 5 ); - m_MsgBox = new wxTextCtrl( itemDialog1, ID_TEXTCTRL, _T(""), wxDefaultPosition, wxSize(-1, 200), wxTE_MULTILINE ); - itemBoxSizer2->Add(m_MsgBox, 0, wxGROW|wxALL|wxFIXED_MINSIZE, 5); + wxStaticText* itemStaticText15 = new wxStaticText( itemDialog1, wxID_STATIC, _( + "Messages :" ), wxDefaultPosition, + wxDefaultSize, 0 ); + + itemBoxSizer2->Add( itemStaticText15, + 0, + wxALIGN_LEFT | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE, + 5 ); + + m_MsgBox = new wxTextCtrl( itemDialog1, ID_TEXTCTRL, _T( + "" ), wxDefaultPosition, wxSize( -1, + 200 ), wxTE_MULTILINE ); + + itemBoxSizer2->Add( m_MsgBox, 0, wxGROW | wxALL | wxFIXED_MINSIZE, 5 ); // Set validators - m_SizeOption->SetValidator( wxGenericValidator(& PS_SizeSelect) ); - m_PlotPSColorOption->SetValidator( wxGenericValidator(& g_PlotPSColorOpt) ); - m_Plot_Sheet_Ref->SetValidator( wxGenericValidator(& Plot_Sheet_Ref) ); + m_SizeOption->SetValidator( wxGenericValidator( &PS_SizeSelect ) ); + m_PlotPSColorOption->SetValidator( wxGenericValidator( &g_PlotPSColorOpt ) ); + m_Plot_Sheet_Ref->SetValidator( wxGenericValidator( &Plot_Sheet_Ref ) ); + ////@end WinEDA_PlotPSFrame content construction m_btClose->SetFocus(); - m_DefaultLineSizeCtrl = new WinEDA_ValueCtrl(this, _("Default Line Width"), g_PlotPSMinimunLineWidth, - g_UnitMetric, m_DefaultLineSizeCtrlSizer, EESCHEMA_INTERNAL_UNIT ); - + m_DefaultLineSizeCtrl = new WinEDA_ValueCtrl( this, _( + "Default Line Width" ), + g_PlotPSMinimunLineWidth, + g_UnitMetric, m_DefaultLineSizeCtrlSizer, + EESCHEMA_INTERNAL_UNIT ); } + /*! * Should we show tooltips? */ @@ -241,6 +304,7 @@ bool WinEDA_PlotPSFrame::ShowToolTips() return true; } + /*! * Get bitmap resources */ @@ -249,11 +313,13 @@ wxBitmap WinEDA_PlotPSFrame::GetBitmapResource( const wxString& name ) { // Bitmap retrieval ////@begin WinEDA_PlotPSFrame bitmap retrieval - wxUnusedVar(name); + wxUnusedVar( name ); return wxNullBitmap; + ////@end WinEDA_PlotPSFrame bitmap retrieval } + /*! * Get icon resources */ @@ -262,21 +328,24 @@ wxIcon WinEDA_PlotPSFrame::GetIconResource( const wxString& name ) { // Icon retrieval ////@begin WinEDA_PlotPSFrame icon retrieval - wxUnusedVar(name); + wxUnusedVar( name ); return wxNullIcon; + ////@end WinEDA_PlotPSFrame icon retrieval } + + /*! * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON */ void WinEDA_PlotPSFrame::OnPlotPsCurrentExecuteClick( wxCommandEvent& event ) { -int Select_PlotAll = FALSE; + int Select_PlotAll = FALSE; InitOptVars(); - CreatePSFile(Select_PlotAll, PS_SizeSelect); - m_MsgBox->AppendText( wxT("*****\n")); + CreatePSFile( Select_PlotAll, PS_SizeSelect ); + m_MsgBox->AppendText( wxT( "*****\n" ) ); } @@ -286,11 +355,11 @@ int Select_PlotAll = FALSE; void WinEDA_PlotPSFrame::OnPlotPsAllExecuteClick( wxCommandEvent& event ) { -int Select_PlotAll = TRUE; + int Select_PlotAll = TRUE; InitOptVars(); - CreatePSFile(Select_PlotAll, PS_SizeSelect); - m_MsgBox->AppendText( wxT("*****\n")); + CreatePSFile( Select_PlotAll, PS_SizeSelect ); + m_MsgBox->AppendText( wxT( "*****\n" ) ); } @@ -301,7 +370,7 @@ int Select_PlotAll = TRUE; void WinEDA_PlotPSFrame::OnCancelClick( wxCommandEvent& event ) { InitOptVars(); - EndModal(0); + EndModal( 0 ); } @@ -309,213 +378,241 @@ void WinEDA_PlotPSFrame::OnCancelClick( wxCommandEvent& event ) void WinEDA_PlotPSFrame::InitOptVars() /*****************************************/ { - Plot_Sheet_Ref = m_Plot_Sheet_Ref->GetValue(); + Plot_Sheet_Ref = m_Plot_Sheet_Ref->GetValue(); g_PlotPSColorOpt = m_PlotPSColorOption->GetSelection(); - PS_SizeSelect = m_SizeOption->GetSelection(); + PS_SizeSelect = m_SizeOption->GetSelection(); g_PlotPSMinimunLineWidth = m_DefaultLineSizeCtrl->GetValue(); - if ( g_PlotPSMinimunLineWidth < 1 ) g_PlotPSMinimunLineWidth = 1; - + if( g_PlotPSMinimunLineWidth < 1 ) + g_PlotPSMinimunLineWidth = 1; } /*************************************************************/ -void WinEDA_PlotPSFrame::CreatePSFile(int AllPages, int pagesize) +void WinEDA_PlotPSFrame::CreatePSFile( int AllPages, int pagesize ) /*************************************************************/ { -wxString PlotFileName, ShortFileName; -BASE_SCREEN *screen; -Ki_PageDescr * PlotSheet, * RealSheet; -int BBox[4]; -wxPoint plot_offset; + wxString PlotFileName, ShortFileName; + BASE_SCREEN* screen; + Ki_PageDescr* PlotSheet, * RealSheet; + int BBox[4]; + wxPoint plot_offset; g_PlotFormat = PLOT_FORMAT_POST; /* Build the screen list */ EDA_ScreenList ScreenList; - if ( AllPages == TRUE ) screen = ScreenList.GetFirst(); - else screen = ActiveScreen; - for ( ; screen != NULL; screen = ScreenList.GetNext() ) + if( AllPages == TRUE ) + screen = ScreenList.GetFirst(); + else + screen = ActiveScreen; + + for( ; screen != NULL; screen = ScreenList.GetNext() ) { PlotSheet = screen->m_CurrentSheetDesc; RealSheet = &g_Sheet_A4; - if ( pagesize == PAGE_SIZE_AUTO ) RealSheet = PlotSheet; - else if ( pagesize == PAGE_SIZE_A ) RealSheet = &g_Sheet_A; + + if( pagesize == PAGE_SIZE_AUTO ) + RealSheet = PlotSheet; + else if( pagesize == PAGE_SIZE_A ) + RealSheet = &g_Sheet_A; /* Calcul des limites de trace en 1/1000 pouce */ - BBox[0] = BBox[1] = g_PlotMargin; // Plot margin in 1/1000 inch + BBox[0] = BBox[1] = g_PlotMargin; // Plot margin in 1/1000 inch BBox[2] = RealSheet->m_Size.x - g_PlotMargin; BBox[3] = RealSheet->m_Size.y - g_PlotMargin; /* Calcul des echelles de conversion */ g_PlotScaleX = SCALE_PS * - (float) (BBox[2] - BBox[0]) / - PlotSheet->m_Size.x; + (float) (BBox[2] - BBox[0]) / + PlotSheet->m_Size.x; + g_PlotScaleY = SCALE_PS * - (float) (BBox[3] - BBox[1]) / - PlotSheet->m_Size.y; + (float) (BBox[3] - BBox[1]) / + PlotSheet->m_Size.y; plot_offset.x = 0; plot_offset.y = PlotSheet->m_Size.y; - wxSplitPath(screen->m_FileName.GetData(), (wxString*) NULL, - &ShortFileName, (wxString*) NULL); - wxString dirbuf = wxGetCwd() + STRING_DIR_SEP; - if( ! ShortFileName.IsEmpty() ) - PlotFileName = MakeFileName(dirbuf, ShortFileName, wxT(".ps")); - else PlotFileName = MakeFileName(dirbuf, g_DefaultSchematicFileName, wxT(".ps")); + wxSplitPath( screen->m_FileName.GetData(), (wxString*) NULL, + &ShortFileName, (wxString*) NULL ); - PlotOneSheetPS(PlotFileName,screen, RealSheet, BBox, plot_offset); - screen = (BASE_SCREEN*)screen->Pnext; - if (AllPages == FALSE ) break; + wxString dirbuf = wxGetCwd() + STRING_DIR_SEP; + + if( !ShortFileName.IsEmpty() ) + PlotFileName = MakeFileName( dirbuf, ShortFileName, wxT( ".ps" ) ); + else + PlotFileName = MakeFileName( dirbuf, g_DefaultSchematicFileName, wxT( ".ps" ) ); + + PlotOneSheetPS( PlotFileName, screen, RealSheet, BBox, plot_offset ); + + screen = (BASE_SCREEN*) screen->Pnext; + + if( AllPages == FALSE ) + break; } } /*****************************************************************************************/ -void WinEDA_PlotPSFrame::PlotOneSheetPS(const wxString & FileName, - BASE_SCREEN * screen, Ki_PageDescr * sheet, int BBox[4], wxPoint plot_offset) +void WinEDA_PlotPSFrame::PlotOneSheetPS( const wxString& FileName, + BASE_SCREEN* screen, + Ki_PageDescr* sheet, + int BBox[4], + wxPoint plot_offset ) /*****************************************************************************************/ -/* Trace en format PS. d'une feuille de dessin -*/ -{ -wxString Line; -SCH_ITEM *DrawList; -SCH_COMPONENT *DrawLibItem; -int layer; -wxPoint StartPos, EndPos; - PlotOutput = wxFopen(FileName, wxT("wt")); - if (PlotOutput == NULL) +/* Trace en format PS. d'une feuille de dessin + */ +{ + wxString Line; + SCH_ITEM* DrawList; + SCH_COMPONENT* DrawLibItem; + int layer; + wxPoint StartPos, EndPos; + + PlotOutput = wxFopen( FileName, wxT( "wt" ) ); + if( PlotOutput == NULL ) { - Line = wxT("\n** "); - Line += _("Unable to create ") + FileName + wxT(" **\n\n"); - m_MsgBox->AppendText(Line); + Line = wxT( "\n** " ); + Line += _( "Unable to create " ) + FileName + wxT( " **\n\n" ); + m_MsgBox->AppendText( Line ); wxBell(); - return ; + return; } - setlocale(LC_NUMERIC, "C"); - Line.Printf(_("Plot: %s\n"), FileName.GetData()) ; - m_MsgBox->AppendText(Line); + setlocale( LC_NUMERIC, "C" ); + Line.Printf( _( "Plot: %s\n" ), FileName.GetData() ); + m_MsgBox->AppendText( Line ); - InitPlotParametresPS(plot_offset, sheet, g_PlotScaleX, g_PlotScaleY); - SetDefaultLineWidthPS( g_PlotPSMinimunLineWidth); + InitPlotParametresPS( plot_offset, sheet, g_PlotScaleX, g_PlotScaleY ); + SetDefaultLineWidthPS( g_PlotPSMinimunLineWidth ); /* Init : */ - PrintHeaderPS( PlotOutput, wxT("EESchema-PS"), FileName, 1, BBox, wxLANDSCAPE ); - InitPlotParametresPS(plot_offset, sheet, 1.0, 1.0); + PrintHeaderPS( PlotOutput, wxT( "EESchema-PS" ), FileName, 1, BBox, wxLANDSCAPE ); + InitPlotParametresPS( plot_offset, sheet, 1.0, 1.0 ); - if ( m_Plot_Sheet_Ref->GetValue() ) + if( m_Plot_Sheet_Ref->GetValue() ) { - if ( (g_PlotFormat == PLOT_FORMAT_POST) && g_PlotPSColorOpt ) - SetColorMapPS ( BLACK ); - PlotWorkSheet(PLOT_FORMAT_POST, screen); + if( (g_PlotFormat == PLOT_FORMAT_POST) && g_PlotPSColorOpt ) + SetColorMapPS( BLACK ); + PlotWorkSheet( PLOT_FORMAT_POST, screen ); } DrawList = screen->EEDrawList; - while ( DrawList ) /* tracage */ + while( DrawList ) /* tracage */ { - Plume('U'); + Plume( 'U' ); layer = LAYER_NOTES; + switch( DrawList->Type() ) { - case DRAW_BUSENTRY_STRUCT_TYPE : /* Struct Raccord et Segment sont identiques */ - #undef STRUCT - #define STRUCT ((DrawBusEntryStruct*)DrawList) - StartPos = STRUCT->m_Pos; - EndPos = STRUCT->m_End(); - layer = STRUCT->GetLayer(); - case DRAW_SEGMENT_STRUCT_TYPE : - #undef STRUCT - #define STRUCT ((EDA_DrawLineStruct*)DrawList) - if ( DrawList->Type() == DRAW_SEGMENT_STRUCT_TYPE) - { - StartPos = STRUCT->m_Start; - EndPos = STRUCT->m_End; - layer = STRUCT->GetLayer(); - } - if ( g_PlotPSColorOpt ) - SetColorMapPS ( ReturnLayerColor(layer) ); - switch (layer) - { - case LAYER_NOTES: /* Trace en pointilles */ - SetCurrentLineWidth(-1); - fprintf(PlotOutput,"[50 50] 0 setdash\n"); - Move_Plume( StartPos, 'U'); - Move_Plume( EndPos, 'D'); - fprintf(PlotOutput,"[] 0 setdash\n"); - break; + case DRAW_BUSENTRY_STRUCT_TYPE: /* Struct Raccord et Segment sont identiques */ + #undef STRUCT + #define STRUCT ( (DrawBusEntryStruct*) DrawList ) + StartPos = STRUCT->m_Pos; + EndPos = STRUCT->m_End(); + layer = STRUCT->GetLayer(); - case LAYER_BUS: /* Trait large */ - { - fprintf(PlotOutput,"%d setlinewidth\n", g_PlotPSMinimunLineWidth * 3); - Move_Plume( StartPos,'U'); - Move_Plume( EndPos,'D'); - fprintf(PlotOutput,"%d setlinewidth\n", g_PlotPSMinimunLineWidth); - } - break; + case DRAW_SEGMENT_STRUCT_TYPE: + #undef STRUCT + #define STRUCT ( (EDA_DrawLineStruct*) DrawList ) + if( DrawList->Type() == DRAW_SEGMENT_STRUCT_TYPE ) + { + StartPos = STRUCT->m_Start; + EndPos = STRUCT->m_End; + layer = STRUCT->GetLayer(); + } + if( g_PlotPSColorOpt ) + SetColorMapPS( ReturnLayerColor( layer ) ); - default: - SetCurrentLineWidth(-1); - Move_Plume( StartPos,'U'); - Move_Plume( EndPos,'D'); - break; - } + switch( layer ) + { + case LAYER_NOTES: /* Trace en pointilles */ + SetCurrentLineWidth( -1 ); + fprintf( PlotOutput, "[50 50] 0 setdash\n" ); + Move_Plume( StartPos, 'U' ); + Move_Plume( EndPos, 'D' ); + fprintf( PlotOutput, "[] 0 setdash\n" ); break; - case DRAW_JUNCTION_STRUCT_TYPE : - #undef STRUCT - #define STRUCT ((DrawJunctionStruct*)DrawList) - if ( g_PlotPSColorOpt ) - SetColorMapPS (ReturnLayerColor(STRUCT->GetLayer()) ); - PlotCercle( STRUCT->m_Pos, DRAWJUNCTION_SIZE); - break; - - case TYPE_SCH_TEXT : - case TYPE_SCH_LABEL : - case TYPE_SCH_GLOBALLABEL : - case TYPE_SCH_HIERLABEL : - PlotTextStruct(DrawList); - break; - - case TYPE_SCH_COMPONENT : - DrawLibItem = (SCH_COMPONENT *) DrawList; - PlotLibPart( DrawLibItem ); - break; - - case DRAW_PICK_ITEM_STRUCT_TYPE : break; - case DRAW_POLYLINE_STRUCT_TYPE : break; - case DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE: break; - case DRAW_MARKER_STRUCT_TYPE : break; - - case DRAW_SHEET_STRUCT_TYPE : - #undef STRUCT - #define STRUCT ((DrawSheetStruct*)DrawList) - PlotSheetStruct(STRUCT); - break; - - case DRAW_NOCONNECT_STRUCT_TYPE: - #undef STRUCT - #define STRUCT ((DrawNoConnectStruct*)DrawList) - if ( g_PlotPSColorOpt ) - SetColorMapPS (ReturnLayerColor(LAYER_NOCONNECT) ); - PlotNoConnectStruct(STRUCT); + case LAYER_BUS: /* Trait large */ + { + fprintf( PlotOutput, "%d setlinewidth\n", g_PlotPSMinimunLineWidth * 3 ); + Move_Plume( StartPos, 'U' ); + Move_Plume( EndPos, 'D' ); + fprintf( PlotOutput, "%d setlinewidth\n", g_PlotPSMinimunLineWidth ); + } break; default: + SetCurrentLineWidth( -1 ); + Move_Plume( StartPos, 'U' ); + Move_Plume( EndPos, 'D' ); break; + } + + break; + + case DRAW_JUNCTION_STRUCT_TYPE: + #undef STRUCT + #define STRUCT ( (DrawJunctionStruct*) DrawList ) + if( g_PlotPSColorOpt ) + SetColorMapPS( ReturnLayerColor( STRUCT->GetLayer() ) ); + PlotCercle( STRUCT->m_Pos, DRAWJUNCTION_SIZE ); + break; + + case TYPE_SCH_TEXT: + case TYPE_SCH_LABEL: + case TYPE_SCH_GLOBALLABEL: + case TYPE_SCH_HIERLABEL: + PlotTextStruct( DrawList ); + break; + + case TYPE_SCH_COMPONENT: + DrawLibItem = (SCH_COMPONENT*) DrawList; + PlotLibPart( DrawLibItem ); + break; + + case DRAW_PICK_ITEM_STRUCT_TYPE: + break; + + case DRAW_POLYLINE_STRUCT_TYPE: + break; + + case DRAW_HIERARCHICAL_PIN_SHEET_STRUCT_TYPE: + break; + + case DRAW_MARKER_STRUCT_TYPE: + break; + + case DRAW_SHEET_STRUCT_TYPE: + #undef STRUCT + #define STRUCT ( (DrawSheetStruct*) DrawList ) + PlotSheetStruct( STRUCT ); + break; + + case DRAW_NOCONNECT_STRUCT_TYPE: + #undef STRUCT + #define STRUCT ( (DrawNoConnectStruct*) DrawList ) + if( g_PlotPSColorOpt ) + SetColorMapPS( ReturnLayerColor( LAYER_NOCONNECT ) ); + PlotNoConnectStruct( STRUCT ); + break; + + default: + break; } - Plume('U'); + Plume( 'U' ); DrawList = DrawList->Next(); } /* fin */ - CloseFilePS(PlotOutput); - setlocale(LC_NUMERIC, ""); + CloseFilePS( PlotOutput ); + setlocale( LC_NUMERIC, "" ); - m_MsgBox->AppendText( wxT("Ok\n")); + m_MsgBox->AppendText( wxT( "Ok\n" ) ); } @@ -525,13 +622,12 @@ wxPoint StartPos, EndPos; void WinEDA_PlotPSFrame::OnInitDialog( wxInitDialogEvent& event ) { - // make the ESC work m_SizeOption->SetFocus(); ////@begin wxEVT_INIT_DIALOG event handler for ID_DIALOG in WinEDA_PlotPSFrame. // Before editing this code, remove the block markers. event.Skip(); + ////@end wxEVT_INIT_DIALOG event handler for ID_DIALOG in WinEDA_PlotPSFrame. } -