Pcbnew+Gerbview: Fixed minor bugs and printing problems, and others minor enhancements, from testing branch
This commit is contained in:
commit
90f6219ae2
|
@ -4,6 +4,11 @@ KiCad ChangeLog 2010
|
||||||
Please add newer entries at the top, list the date and your name with
|
Please add newer entries at the top, list the date and your name with
|
||||||
email address.
|
email address.
|
||||||
|
|
||||||
|
2010-apr-22, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
|
||||||
|
================================================================================
|
||||||
|
++Pcbnew+Gerbview:
|
||||||
|
Fixed minor problems in printing.
|
||||||
|
|
||||||
2010-apr-19, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
|
2010-apr-19, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
|
||||||
================================================================================
|
================================================================================
|
||||||
++Pcbnew:
|
++Pcbnew:
|
||||||
|
|
|
@ -36,16 +36,16 @@ DIALOG_PRINT_USING_PRINTER_BASE::DIALOG_PRINT_USING_PRINTER_BASE( wxWindow* pare
|
||||||
bbuttonsSizer = new wxBoxSizer( wxVERTICAL );
|
bbuttonsSizer = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
m_buttonPageSetup = new wxButton( this, wxID_ANY, _("Page Setup"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_buttonPageSetup = new wxButton( this, wxID_ANY, _("Page Setup"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
bbuttonsSizer->Add( m_buttonPageSetup, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
|
bbuttonsSizer->Add( m_buttonPageSetup, 0, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_buttonPreview = new wxButton( this, wxID_ANY, _("Preview"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_buttonPreview = new wxButton( this, wxID_ANY, _("Preview"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
bbuttonsSizer->Add( m_buttonPreview, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
|
bbuttonsSizer->Add( m_buttonPreview, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_buttonPrint = new wxButton( this, wxID_ANY, _("Print"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_buttonPrint = new wxButton( this, wxID_ANY, _("Print"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
bbuttonsSizer->Add( m_buttonPrint, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
|
bbuttonsSizer->Add( m_buttonPrint, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_buttonQuit = new wxButton( this, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_buttonQuit = new wxButton( this, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
bbuttonsSizer->Add( m_buttonQuit, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
|
bbuttonsSizer->Add( m_buttonQuit, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
|
||||||
|
|
||||||
bMainSizer->Add( bbuttonsSizer, 0, wxALL, 12 );
|
bMainSizer->Add( bbuttonsSizer, 0, wxALL, 12 );
|
||||||
|
|
||||||
|
|
|
@ -201,7 +201,7 @@
|
||||||
<property name="permission">none</property>
|
<property name="permission">none</property>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxALIGN_CENTER_HORIZONTAL|wxALL</property>
|
<property name="flag">wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND</property>
|
||||||
<property name="proportion">0</property>
|
<property name="proportion">0</property>
|
||||||
<object class="wxButton" expanded="1">
|
<object class="wxButton" expanded="1">
|
||||||
<property name="bg"></property>
|
<property name="bg"></property>
|
||||||
|
@ -253,7 +253,7 @@
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxALL|wxALIGN_CENTER_HORIZONTAL</property>
|
<property name="flag">wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND</property>
|
||||||
<property name="proportion">0</property>
|
<property name="proportion">0</property>
|
||||||
<object class="wxButton" expanded="1">
|
<object class="wxButton" expanded="1">
|
||||||
<property name="bg"></property>
|
<property name="bg"></property>
|
||||||
|
@ -305,7 +305,7 @@
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxALL|wxALIGN_CENTER_HORIZONTAL</property>
|
<property name="flag">wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND</property>
|
||||||
<property name="proportion">0</property>
|
<property name="proportion">0</property>
|
||||||
<object class="wxButton" expanded="1">
|
<object class="wxButton" expanded="1">
|
||||||
<property name="bg"></property>
|
<property name="bg"></property>
|
||||||
|
@ -357,7 +357,7 @@
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxALL|wxALIGN_CENTER_HORIZONTAL</property>
|
<property name="flag">wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND</property>
|
||||||
<property name="proportion">0</property>
|
<property name="proportion">0</property>
|
||||||
<object class="wxButton" expanded="1">
|
<object class="wxButton" expanded="1">
|
||||||
<property name="bg"></property>
|
<property name="bg"></property>
|
||||||
|
|
|
@ -34,6 +34,7 @@ static double s_ScaleList[] =
|
||||||
|
|
||||||
// static print data and page setup data, to remember settings during the session
|
// static print data and page setup data, to remember settings during the session
|
||||||
static wxPrintData* g_PrintData;
|
static wxPrintData* g_PrintData;
|
||||||
|
static wxPageSetupDialogData* g_pageSetupData = (wxPageSetupDialogData*) NULL;
|
||||||
|
|
||||||
// Variables locales
|
// Variables locales
|
||||||
static PRINT_PARAMETERS s_Parameters;
|
static PRINT_PARAMETERS s_Parameters;
|
||||||
|
@ -58,9 +59,10 @@ public:
|
||||||
private:
|
private:
|
||||||
void OnCloseWindow( wxCloseEvent& event );
|
void OnCloseWindow( wxCloseEvent& event );
|
||||||
void OnInitDialog( wxInitDialogEvent& event );
|
void OnInitDialog( wxInitDialogEvent& event );
|
||||||
void OnPrintSetup( wxCommandEvent& event );
|
void OnPageSetup( wxCommandEvent& event );
|
||||||
void OnPrintPreview( wxCommandEvent& event );
|
void OnPrintPreview( wxCommandEvent& event );
|
||||||
void OnPrintButtonClick( wxCommandEvent& event );
|
void OnPrintButtonClick( wxCommandEvent& event );
|
||||||
|
void OnScaleSelectionClick( wxCommandEvent& event );
|
||||||
|
|
||||||
void OnButtonCancelClick( wxCommandEvent& event ) { Close(); }
|
void OnButtonCancelClick( wxCommandEvent& event ) { Close(); }
|
||||||
void SetPrintParameters( );
|
void SetPrintParameters( );
|
||||||
|
@ -130,8 +132,18 @@ void DIALOG_PRINT_USING_PRINTER::InitValues( )
|
||||||
int layer_max = NB_LAYERS;
|
int layer_max = NB_LAYERS;
|
||||||
wxString msg;
|
wxString msg;
|
||||||
|
|
||||||
layer_max = 32;
|
if( g_pageSetupData == NULL )
|
||||||
|
{
|
||||||
|
g_pageSetupData = new wxPageSetupDialogData;
|
||||||
|
// Set initial page margins.
|
||||||
|
// Margins are already set in Pcbnew, so we cans use 0
|
||||||
|
g_pageSetupData->SetMarginTopLeft(wxPoint(0, 0));
|
||||||
|
g_pageSetupData->SetMarginBottomRight(wxPoint(0, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
s_Parameters.m_PageSetupData = g_pageSetupData;
|
||||||
|
|
||||||
|
layer_max = 32;
|
||||||
/* Create layer list */
|
/* Create layer list */
|
||||||
int mask = 1, ii;
|
int mask = 1, ii;
|
||||||
for( ii = 0; ii < layer_max; ii++, mask <<= 1 )
|
for( ii = 0; ii < layer_max; ii++, mask <<= 1 )
|
||||||
|
@ -199,6 +211,8 @@ void DIALOG_PRINT_USING_PRINTER::InitValues( )
|
||||||
}
|
}
|
||||||
|
|
||||||
m_ScaleOption->SetSelection( scale_idx );
|
m_ScaleOption->SetSelection( scale_idx );
|
||||||
|
scale_idx = m_ScaleOption->GetSelection();
|
||||||
|
s_Parameters.m_PrintScale = s_ScaleList[scale_idx];
|
||||||
m_Print_Mirror->SetValue(s_Parameters.m_PrintMirror);
|
m_Print_Mirror->SetValue(s_Parameters.m_PrintMirror);
|
||||||
|
|
||||||
|
|
||||||
|
@ -214,6 +228,12 @@ void DIALOG_PRINT_USING_PRINTER::InitValues( )
|
||||||
m_FineAdjustXscaleOpt->SetValue( msg );
|
m_FineAdjustXscaleOpt->SetValue( msg );
|
||||||
msg.Printf( wxT( "%f" ), s_Parameters.m_YScaleAdjust );
|
msg.Printf( wxT( "%f" ), s_Parameters.m_YScaleAdjust );
|
||||||
m_FineAdjustYscaleOpt->SetValue( msg );
|
m_FineAdjustYscaleOpt->SetValue( msg );
|
||||||
|
|
||||||
|
bool enable = (s_Parameters.m_PrintScale == 1.0);
|
||||||
|
if( m_FineAdjustXscaleOpt )
|
||||||
|
m_FineAdjustXscaleOpt->Enable(enable);
|
||||||
|
if( m_FineAdjustYscaleOpt )
|
||||||
|
m_FineAdjustYscaleOpt->Enable(enable);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*************************************************/
|
/*************************************************/
|
||||||
|
@ -325,25 +345,30 @@ void DIALOG_PRINT_USING_PRINTER::SetPrintParameters( )
|
||||||
g_pcb_plot_options.ScaleAdjX = s_Parameters.m_YScaleAdjust;
|
g_pcb_plot_options.ScaleAdjX = s_Parameters.m_YScaleAdjust;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DIALOG_PRINT_USING_PRINTER::OnScaleSelectionClick( wxCommandEvent& event )
|
||||||
|
{
|
||||||
|
double scale = s_ScaleList[m_ScaleOption->GetSelection()];
|
||||||
|
bool enable = (scale == 1.0);
|
||||||
|
if( m_FineAdjustXscaleOpt )
|
||||||
|
m_FineAdjustXscaleOpt->Enable(enable);
|
||||||
|
if( m_FineAdjustYscaleOpt )
|
||||||
|
m_FineAdjustYscaleOpt->Enable(enable);
|
||||||
|
}
|
||||||
|
|
||||||
/**********************************************************/
|
/**********************************************************/
|
||||||
void DIALOG_PRINT_USING_PRINTER::OnPrintSetup( wxCommandEvent& event )
|
void DIALOG_PRINT_USING_PRINTER::OnPageSetup( wxCommandEvent& event )
|
||||||
/**********************************************************/
|
/**********************************************************/
|
||||||
|
|
||||||
/* Open a dialog box for printer setup (printer options, page size ...)
|
/* Open a dialog box for printer setup (printer options, page size ...)
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
wxPrintDialogData printDialogData( *g_PrintData );
|
*g_pageSetupData = *g_PrintData;
|
||||||
|
|
||||||
if( printDialogData.Ok() )
|
wxPageSetupDialog pageSetupDialog(this, g_pageSetupData);
|
||||||
{
|
pageSetupDialog.ShowModal();
|
||||||
wxPrintDialog printerDialog( this, &printDialogData );
|
|
||||||
|
|
||||||
printerDialog.ShowModal();
|
(*g_PrintData) = pageSetupDialog.GetPageSetupDialogData().GetPrintData();
|
||||||
|
(*g_pageSetupData) = pageSetupDialog.GetPageSetupDialogData();
|
||||||
*g_PrintData = printerDialog.GetPrintDialogData().GetPrintData();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
DisplayError( this, _( "Printer Problem!" ) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -95,16 +95,16 @@ DIALOG_PRINT_USING_PRINTER_base::DIALOG_PRINT_USING_PRINTER_base( wxWindow* pare
|
||||||
b_buttonsSizer = new wxBoxSizer( wxVERTICAL );
|
b_buttonsSizer = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
m_buttonOption = new wxButton( this, wxID_PRINT_OPTIONS, _("Page Options"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_buttonOption = new wxButton( this, wxID_PRINT_OPTIONS, _("Page Options"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
b_buttonsSizer->Add( m_buttonOption, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
|
b_buttonsSizer->Add( m_buttonOption, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_buttonPreview = new wxButton( this, wxID_PREVIEW, _("Preview"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_buttonPreview = new wxButton( this, wxID_PREVIEW, _("Preview"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
b_buttonsSizer->Add( m_buttonPreview, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
|
b_buttonsSizer->Add( m_buttonPreview, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_buttonPrint = new wxButton( this, wxID_PRINT_ALL, _("Print"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_buttonPrint = new wxButton( this, wxID_PRINT_ALL, _("Print"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
b_buttonsSizer->Add( m_buttonPrint, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
|
b_buttonsSizer->Add( m_buttonPrint, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_buttonQuit = new wxButton( this, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_buttonQuit = new wxButton( this, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
b_buttonsSizer->Add( m_buttonQuit, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 );
|
b_buttonsSizer->Add( m_buttonQuit, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
|
||||||
|
|
||||||
bMainSizer->Add( b_buttonsSizer, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
bMainSizer->Add( b_buttonsSizer, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
|
@ -113,7 +113,8 @@ DIALOG_PRINT_USING_PRINTER_base::DIALOG_PRINT_USING_PRINTER_base( wxWindow* pare
|
||||||
|
|
||||||
// Connect Events
|
// Connect Events
|
||||||
this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnCloseWindow ) );
|
this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnCloseWindow ) );
|
||||||
m_buttonOption->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintSetup ), NULL, this );
|
m_ScaleOption->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnScaleSelectionClick ), NULL, this );
|
||||||
|
m_buttonOption->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPageSetup ), NULL, this );
|
||||||
m_buttonPreview->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintPreview ), NULL, this );
|
m_buttonPreview->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintPreview ), NULL, this );
|
||||||
m_buttonPrint->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintButtonClick ), NULL, this );
|
m_buttonPrint->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintButtonClick ), NULL, this );
|
||||||
m_buttonQuit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnButtonCancelClick ), NULL, this );
|
m_buttonQuit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnButtonCancelClick ), NULL, this );
|
||||||
|
@ -123,7 +124,8 @@ DIALOG_PRINT_USING_PRINTER_base::~DIALOG_PRINT_USING_PRINTER_base()
|
||||||
{
|
{
|
||||||
// Disconnect Events
|
// Disconnect Events
|
||||||
this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnCloseWindow ) );
|
this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnCloseWindow ) );
|
||||||
m_buttonOption->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintSetup ), NULL, this );
|
m_ScaleOption->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnScaleSelectionClick ), NULL, this );
|
||||||
|
m_buttonOption->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPageSetup ), NULL, this );
|
||||||
m_buttonPreview->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintPreview ), NULL, this );
|
m_buttonPreview->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintPreview ), NULL, this );
|
||||||
m_buttonPrint->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintButtonClick ), NULL, this );
|
m_buttonPrint->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintButtonClick ), NULL, this );
|
||||||
m_buttonQuit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnButtonCancelClick ), NULL, this );
|
m_buttonQuit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnButtonCancelClick ), NULL, this );
|
||||||
|
|
|
@ -182,7 +182,7 @@
|
||||||
<event name="OnMouseEvents"></event>
|
<event name="OnMouseEvents"></event>
|
||||||
<event name="OnMouseWheel"></event>
|
<event name="OnMouseWheel"></event>
|
||||||
<event name="OnPaint"></event>
|
<event name="OnPaint"></event>
|
||||||
<event name="OnRadioBox"></event>
|
<event name="OnRadioBox">OnScaleSelectionClick</event>
|
||||||
<event name="OnRightDClick"></event>
|
<event name="OnRightDClick"></event>
|
||||||
<event name="OnRightDown"></event>
|
<event name="OnRightDown"></event>
|
||||||
<event name="OnRightUp"></event>
|
<event name="OnRightUp"></event>
|
||||||
|
@ -601,7 +601,7 @@
|
||||||
<property name="permission">none</property>
|
<property name="permission">none</property>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxALL|wxALIGN_CENTER_HORIZONTAL</property>
|
<property name="flag">wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND</property>
|
||||||
<property name="proportion">0</property>
|
<property name="proportion">0</property>
|
||||||
<object class="wxButton" expanded="1">
|
<object class="wxButton" expanded="1">
|
||||||
<property name="bg"></property>
|
<property name="bg"></property>
|
||||||
|
@ -625,7 +625,7 @@
|
||||||
<property name="window_extra_style"></property>
|
<property name="window_extra_style"></property>
|
||||||
<property name="window_name"></property>
|
<property name="window_name"></property>
|
||||||
<property name="window_style"></property>
|
<property name="window_style"></property>
|
||||||
<event name="OnButtonClick">OnPrintSetup</event>
|
<event name="OnButtonClick">OnPageSetup</event>
|
||||||
<event name="OnChar"></event>
|
<event name="OnChar"></event>
|
||||||
<event name="OnEnterWindow"></event>
|
<event name="OnEnterWindow"></event>
|
||||||
<event name="OnEraseBackground"></event>
|
<event name="OnEraseBackground"></event>
|
||||||
|
@ -653,7 +653,7 @@
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxALL|wxALIGN_CENTER_HORIZONTAL</property>
|
<property name="flag">wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND</property>
|
||||||
<property name="proportion">0</property>
|
<property name="proportion">0</property>
|
||||||
<object class="wxButton" expanded="1">
|
<object class="wxButton" expanded="1">
|
||||||
<property name="bg"></property>
|
<property name="bg"></property>
|
||||||
|
@ -705,7 +705,7 @@
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxALL|wxALIGN_CENTER_HORIZONTAL</property>
|
<property name="flag">wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND</property>
|
||||||
<property name="proportion">0</property>
|
<property name="proportion">0</property>
|
||||||
<object class="wxButton" expanded="1">
|
<object class="wxButton" expanded="1">
|
||||||
<property name="bg"></property>
|
<property name="bg"></property>
|
||||||
|
@ -757,7 +757,7 @@
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxALL|wxALIGN_CENTER_HORIZONTAL</property>
|
<property name="flag">wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND</property>
|
||||||
<property name="proportion">0</property>
|
<property name="proportion">0</property>
|
||||||
<object class="wxButton" expanded="1">
|
<object class="wxButton" expanded="1">
|
||||||
<property name="bg"></property>
|
<property name="bg"></property>
|
||||||
|
|
|
@ -59,7 +59,8 @@ class DIALOG_PRINT_USING_PRINTER_base : public wxDialog
|
||||||
|
|
||||||
// Virtual event handlers, overide them in your derived class
|
// Virtual event handlers, overide them in your derived class
|
||||||
virtual void OnCloseWindow( wxCloseEvent& event ){ event.Skip(); }
|
virtual void OnCloseWindow( wxCloseEvent& event ){ event.Skip(); }
|
||||||
virtual void OnPrintSetup( wxCommandEvent& event ){ event.Skip(); }
|
virtual void OnScaleSelectionClick( wxCommandEvent& event ){ event.Skip(); }
|
||||||
|
virtual void OnPageSetup( wxCommandEvent& event ){ event.Skip(); }
|
||||||
virtual void OnPrintPreview( wxCommandEvent& event ){ event.Skip(); }
|
virtual void OnPrintPreview( wxCommandEvent& event ){ event.Skip(); }
|
||||||
virtual void OnPrintButtonClick( wxCommandEvent& event ){ event.Skip(); }
|
virtual void OnPrintButtonClick( wxCommandEvent& event ){ event.Skip(); }
|
||||||
virtual void OnButtonCancelClick( wxCommandEvent& event ){ event.Skip(); }
|
virtual void OnButtonCancelClick( wxCommandEvent& event ){ event.Skip(); }
|
||||||
|
|
|
@ -1040,6 +1040,19 @@ public:
|
||||||
*/
|
*/
|
||||||
void ToPrinter( wxCommandEvent& event );
|
void ToPrinter( wxCommandEvent& event );
|
||||||
|
|
||||||
|
/** Virtual function PrintPage
|
||||||
|
* used to print a page
|
||||||
|
* Print the page pointed by ActiveScreen, set by the calling print function
|
||||||
|
* @param aDC = wxDC given by the calling print function
|
||||||
|
* @param aPrint_Sheet_Ref = true to print page references
|
||||||
|
* @param aPrintMask = not used here
|
||||||
|
* @param aPrintMirrorMode = not used here (Set when printing in mirror mode)
|
||||||
|
* @param aData = a pointer on an auxiliary data (NULL if not used)
|
||||||
|
*/
|
||||||
|
virtual void PrintPage( wxDC* aDC, bool aPrint_Sheet_Ref,
|
||||||
|
int aPrintMask, bool aPrintMirrorMode,
|
||||||
|
void * aData = NULL);
|
||||||
|
|
||||||
// BOARD handling
|
// BOARD handling
|
||||||
|
|
||||||
/** function Clear_Pcb()
|
/** function Clear_Pcb()
|
||||||
|
|
|
@ -36,6 +36,7 @@ static double s_ScaleList[] =
|
||||||
|
|
||||||
// static print data and page setup data, to remember settings during the session
|
// static print data and page setup data, to remember settings during the session
|
||||||
static wxPrintData* g_PrintData;
|
static wxPrintData* g_PrintData;
|
||||||
|
static wxPageSetupDialogData* g_pageSetupData = (wxPageSetupDialogData*) NULL;
|
||||||
|
|
||||||
static PRINT_PARAMETERS s_Parameters;
|
static PRINT_PARAMETERS s_Parameters;
|
||||||
|
|
||||||
|
@ -59,9 +60,10 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void OnCloseWindow( wxCloseEvent& event );
|
void OnCloseWindow( wxCloseEvent& event );
|
||||||
void OnPrintSetup( wxCommandEvent& event );
|
void OnPageSetup( wxCommandEvent& event );
|
||||||
void OnPrintPreview( wxCommandEvent& event );
|
void OnPrintPreview( wxCommandEvent& event );
|
||||||
void OnPrintButtonClick( wxCommandEvent& event );
|
void OnPrintButtonClick( wxCommandEvent& event );
|
||||||
|
void OnScaleSelectionClick( wxCommandEvent& event );
|
||||||
|
|
||||||
void OnButtonCancelClick( wxCommandEvent& event ) { Close(); }
|
void OnButtonCancelClick( wxCommandEvent& event ) { Close(); }
|
||||||
void SetPrintParameters( );
|
void SetPrintParameters( );
|
||||||
|
@ -138,6 +140,16 @@ void DIALOG_PRINT_USING_PRINTER::InitValues( )
|
||||||
int layer_max = NB_LAYERS;
|
int layer_max = NB_LAYERS;
|
||||||
wxString msg;
|
wxString msg;
|
||||||
BOARD* board = m_Parent->GetBoard();
|
BOARD* board = m_Parent->GetBoard();
|
||||||
|
if( g_pageSetupData == NULL )
|
||||||
|
{
|
||||||
|
g_pageSetupData = new wxPageSetupDialogData;
|
||||||
|
// Set initial page margins.
|
||||||
|
// Margins are already set in Pcbnew, so we cans use 0
|
||||||
|
g_pageSetupData->SetMarginTopLeft(wxPoint(0, 0));
|
||||||
|
g_pageSetupData->SetMarginBottomRight(wxPoint(0, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
s_Parameters.m_PageSetupData = g_pageSetupData;
|
||||||
|
|
||||||
// Create layer list.
|
// Create layer list.
|
||||||
int layer;
|
int layer;
|
||||||
|
@ -231,6 +243,8 @@ void DIALOG_PRINT_USING_PRINTER::InitValues( )
|
||||||
}
|
}
|
||||||
|
|
||||||
m_ScaleOption->SetSelection( scale_idx );
|
m_ScaleOption->SetSelection( scale_idx );
|
||||||
|
scale_idx = m_ScaleOption->GetSelection();
|
||||||
|
s_Parameters.m_PrintScale = s_ScaleList[scale_idx];
|
||||||
m_Print_Mirror->SetValue(s_Parameters.m_PrintMirror);
|
m_Print_Mirror->SetValue(s_Parameters.m_PrintMirror);
|
||||||
m_Exclude_Edges_Pcb->SetValue(m_ExcludeEdgeLayer);
|
m_Exclude_Edges_Pcb->SetValue(m_ExcludeEdgeLayer);
|
||||||
m_Print_Sheet_Ref->SetValue( s_Parameters.m_Print_Sheet_Ref );
|
m_Print_Sheet_Ref->SetValue( s_Parameters.m_Print_Sheet_Ref );
|
||||||
|
@ -254,6 +268,12 @@ void DIALOG_PRINT_USING_PRINTER::InitValues( )
|
||||||
m_FineAdjustXscaleOpt->SetValue( msg );
|
m_FineAdjustXscaleOpt->SetValue( msg );
|
||||||
msg.Printf( wxT( "%f" ), s_Parameters.m_YScaleAdjust );
|
msg.Printf( wxT( "%f" ), s_Parameters.m_YScaleAdjust );
|
||||||
m_FineAdjustYscaleOpt->SetValue( msg );
|
m_FineAdjustYscaleOpt->SetValue( msg );
|
||||||
|
|
||||||
|
bool enable = (s_Parameters.m_PrintScale == 1.0);
|
||||||
|
if( m_FineAdjustXscaleOpt )
|
||||||
|
m_FineAdjustXscaleOpt->Enable(enable);
|
||||||
|
if( m_FineAdjustYscaleOpt )
|
||||||
|
m_FineAdjustYscaleOpt->Enable(enable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -412,26 +432,31 @@ void DIALOG_PRINT_USING_PRINTER::SetPenWidth()
|
||||||
ReturnStringFromValue( g_UnitMetric, s_Parameters.m_PenDefaultSize, m_Parent->m_InternalUnits ) );
|
ReturnStringFromValue( g_UnitMetric, s_Parameters.m_PenDefaultSize, m_Parent->m_InternalUnits ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DIALOG_PRINT_USING_PRINTER::OnScaleSelectionClick( wxCommandEvent& event )
|
||||||
|
{
|
||||||
|
double scale = s_ScaleList[m_ScaleOption->GetSelection()];
|
||||||
|
bool enable = (scale == 1.0);
|
||||||
|
if( m_FineAdjustXscaleOpt )
|
||||||
|
m_FineAdjustXscaleOpt->Enable(enable);
|
||||||
|
if( m_FineAdjustYscaleOpt )
|
||||||
|
m_FineAdjustYscaleOpt->Enable(enable);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**********************************************************/
|
/**********************************************************/
|
||||||
void DIALOG_PRINT_USING_PRINTER::OnPrintSetup( wxCommandEvent& event )
|
void DIALOG_PRINT_USING_PRINTER::OnPageSetup( wxCommandEvent& event )
|
||||||
/**********************************************************/
|
/**********************************************************/
|
||||||
|
|
||||||
/* Open a dialog box for printer setup (printer options, page size ...)
|
/* Open a dialog box for printer setup (printer options, page size ...)
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
wxPrintDialogData printDialogData( *g_PrintData );
|
*g_pageSetupData = *g_PrintData;
|
||||||
|
|
||||||
if( printDialogData.Ok() )
|
wxPageSetupDialog pageSetupDialog(this, g_pageSetupData);
|
||||||
{
|
pageSetupDialog.ShowModal();
|
||||||
wxPrintDialog printerDialog( this, &printDialogData );
|
|
||||||
|
|
||||||
printerDialog.ShowModal();
|
(*g_PrintData) = pageSetupDialog.GetPageSetupDialogData().GetPrintData();
|
||||||
|
(*g_pageSetupData) = pageSetupDialog.GetPageSetupDialogData();
|
||||||
*g_PrintData = printerDialog.GetPrintDialogData().GetPrintData();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
DisplayError( this, _( "Printer Problem!" ) );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -148,7 +148,8 @@ DIALOG_PRINT_USING_PRINTER_base::DIALOG_PRINT_USING_PRINTER_base( wxWindow* pare
|
||||||
|
|
||||||
// Connect Events
|
// Connect Events
|
||||||
this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnCloseWindow ) );
|
this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnCloseWindow ) );
|
||||||
m_buttonOption->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintSetup ), NULL, this );
|
m_ScaleOption->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnScaleSelectionClick ), NULL, this );
|
||||||
|
m_buttonOption->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPageSetup ), NULL, this );
|
||||||
m_buttonPreview->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintPreview ), NULL, this );
|
m_buttonPreview->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintPreview ), NULL, this );
|
||||||
m_buttonPrint->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintButtonClick ), NULL, this );
|
m_buttonPrint->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintButtonClick ), NULL, this );
|
||||||
m_buttonQuit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnButtonCancelClick ), NULL, this );
|
m_buttonQuit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnButtonCancelClick ), NULL, this );
|
||||||
|
@ -158,7 +159,8 @@ DIALOG_PRINT_USING_PRINTER_base::~DIALOG_PRINT_USING_PRINTER_base()
|
||||||
{
|
{
|
||||||
// Disconnect Events
|
// Disconnect Events
|
||||||
this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnCloseWindow ) );
|
this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnCloseWindow ) );
|
||||||
m_buttonOption->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintSetup ), NULL, this );
|
m_ScaleOption->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnScaleSelectionClick ), NULL, this );
|
||||||
|
m_buttonOption->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPageSetup ), NULL, this );
|
||||||
m_buttonPreview->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintPreview ), NULL, this );
|
m_buttonPreview->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintPreview ), NULL, this );
|
||||||
m_buttonPrint->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintButtonClick ), NULL, this );
|
m_buttonPrint->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnPrintButtonClick ), NULL, this );
|
||||||
m_buttonQuit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnButtonCancelClick ), NULL, this );
|
m_buttonQuit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PRINT_USING_PRINTER_base::OnButtonCancelClick ), NULL, this );
|
||||||
|
|
|
@ -234,7 +234,7 @@
|
||||||
<event name="OnMouseEvents"></event>
|
<event name="OnMouseEvents"></event>
|
||||||
<event name="OnMouseWheel"></event>
|
<event name="OnMouseWheel"></event>
|
||||||
<event name="OnPaint"></event>
|
<event name="OnPaint"></event>
|
||||||
<event name="OnRadioBox"></event>
|
<event name="OnRadioBox">OnScaleSelectionClick</event>
|
||||||
<event name="OnRightDClick"></event>
|
<event name="OnRightDClick"></event>
|
||||||
<event name="OnRightDown"></event>
|
<event name="OnRightDown"></event>
|
||||||
<event name="OnRightUp"></event>
|
<event name="OnRightUp"></event>
|
||||||
|
@ -899,7 +899,7 @@
|
||||||
<property name="window_extra_style"></property>
|
<property name="window_extra_style"></property>
|
||||||
<property name="window_name"></property>
|
<property name="window_name"></property>
|
||||||
<property name="window_style"></property>
|
<property name="window_style"></property>
|
||||||
<event name="OnButtonClick">OnPrintSetup</event>
|
<event name="OnButtonClick">OnPageSetup</event>
|
||||||
<event name="OnChar"></event>
|
<event name="OnChar"></event>
|
||||||
<event name="OnEnterWindow"></event>
|
<event name="OnEnterWindow"></event>
|
||||||
<event name="OnEraseBackground"></event>
|
<event name="OnEraseBackground"></event>
|
||||||
|
|
|
@ -67,7 +67,8 @@ class DIALOG_PRINT_USING_PRINTER_base : public wxDialog
|
||||||
|
|
||||||
// Virtual event handlers, overide them in your derived class
|
// Virtual event handlers, overide them in your derived class
|
||||||
virtual void OnCloseWindow( wxCloseEvent& event ){ event.Skip(); }
|
virtual void OnCloseWindow( wxCloseEvent& event ){ event.Skip(); }
|
||||||
virtual void OnPrintSetup( wxCommandEvent& event ){ event.Skip(); }
|
virtual void OnScaleSelectionClick( wxCommandEvent& event ){ event.Skip(); }
|
||||||
|
virtual void OnPageSetup( wxCommandEvent& event ){ event.Skip(); }
|
||||||
virtual void OnPrintPreview( wxCommandEvent& event ){ event.Skip(); }
|
virtual void OnPrintPreview( wxCommandEvent& event ){ event.Skip(); }
|
||||||
virtual void OnPrintButtonClick( wxCommandEvent& event ){ event.Skip(); }
|
virtual void OnPrintButtonClick( wxCommandEvent& event ){ event.Skip(); }
|
||||||
virtual void OnButtonCancelClick( wxCommandEvent& event ){ event.Skip(); }
|
virtual void OnButtonCancelClick( wxCommandEvent& event ){ event.Skip(); }
|
||||||
|
|
|
@ -4,10 +4,12 @@
|
||||||
|
|
||||||
#include "fctsys.h"
|
#include "fctsys.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
#include "confirm.h"
|
||||||
#include "class_drawpanel.h"
|
#include "class_drawpanel.h"
|
||||||
#include "pcbnew.h"
|
#include "pcbnew.h"
|
||||||
#include "wxPcbStruct.h"
|
#include "wxPcbStruct.h"
|
||||||
#include "class_board_design_settings.h"
|
#include "class_board_design_settings.h"
|
||||||
|
#include "drawtxt.h"
|
||||||
|
|
||||||
/* Routines Locales */
|
/* Routines Locales */
|
||||||
static void Exit_EditCotation( WinEDA_DrawPanel* Panel, wxDC* DC );
|
static void Exit_EditCotation( WinEDA_DrawPanel* Panel, wxDC* DC );
|
||||||
|
@ -23,10 +25,10 @@ static int status_cotation; /* = 0 : pas de cotation en cours
|
||||||
* Les routines generent une cotation de la forme
|
* Les routines generent une cotation de la forme
|
||||||
* - cote usuelle:
|
* - cote usuelle:
|
||||||
*
|
*
|
||||||
| |
|
* | |
|
||||||
| dist |
|
* | dist |
|
||||||
|<---------->|
|
* |<---------->|
|
||||||
| |
|
* | |
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -40,10 +42,10 @@ enum id_Cotation_properties {
|
||||||
};
|
};
|
||||||
|
|
||||||
/************************************/
|
/************************************/
|
||||||
/* class WinEDA_CotationPropertiesFrame */
|
/* class DIMENSION_EDITOR_DIALOG */
|
||||||
/************************************/
|
/************************************/
|
||||||
|
|
||||||
class WinEDA_CotationPropertiesFrame : public wxDialog
|
class DIMENSION_EDITOR_DIALOG : public wxDialog
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
@ -59,9 +61,9 @@ private:
|
||||||
public:
|
public:
|
||||||
|
|
||||||
// Constructor and destructor
|
// Constructor and destructor
|
||||||
WinEDA_CotationPropertiesFrame( WinEDA_PcbFrame* parent,
|
DIMENSION_EDITOR_DIALOG( WinEDA_PcbFrame* parent,
|
||||||
COTATION* Cotation, wxDC* DC, const wxPoint& pos );
|
COTATION* Cotation, wxDC* DC, const wxPoint& pos );
|
||||||
~WinEDA_CotationPropertiesFrame()
|
~DIMENSION_EDITOR_DIALOG()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,13 +75,13 @@ private:
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
};
|
};
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE( WinEDA_CotationPropertiesFrame, wxDialog )
|
BEGIN_EVENT_TABLE( DIMENSION_EDITOR_DIALOG, wxDialog )
|
||||||
EVT_BUTTON( wxID_OK, WinEDA_CotationPropertiesFrame::OnOkClick )
|
EVT_BUTTON( wxID_OK, DIMENSION_EDITOR_DIALOG::OnOkClick )
|
||||||
EVT_BUTTON( wxID_CANCEL, WinEDA_CotationPropertiesFrame::OnCancelClick )
|
EVT_BUTTON( wxID_CANCEL, DIMENSION_EDITOR_DIALOG::OnCancelClick )
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
|
|
||||||
WinEDA_CotationPropertiesFrame::WinEDA_CotationPropertiesFrame( WinEDA_PcbFrame* parent,
|
DIMENSION_EDITOR_DIALOG::DIMENSION_EDITOR_DIALOG( WinEDA_PcbFrame* parent,
|
||||||
COTATION* Cotation, wxDC* DC,
|
COTATION* Cotation, wxDC* DC,
|
||||||
const wxPoint& framepos ) :
|
const wxPoint& framepos ) :
|
||||||
wxDialog( parent, -1, _( "Dimension properties" ), framepos, wxSize( 340, 270 ),
|
wxDialog( parent, -1, _( "Dimension properties" ), framepos, wxSize( 340, 270 ),
|
||||||
|
@ -146,7 +148,7 @@ WinEDA_CotationPropertiesFrame::WinEDA_CotationPropertiesFrame( WinEDA_PcbFrame*
|
||||||
|
|
||||||
|
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
void WinEDA_CotationPropertiesFrame::OnCancelClick( wxCommandEvent& WXUNUSED (event) )
|
void DIMENSION_EDITOR_DIALOG::OnCancelClick( wxCommandEvent& WXUNUSED (event) )
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
{
|
{
|
||||||
EndModal( -1 );
|
EndModal( -1 );
|
||||||
|
@ -154,7 +156,7 @@ void WinEDA_CotationPropertiesFrame::OnCancelClick( wxCommandEvent& WXUNUSED (ev
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************************/
|
/***********************************************************************************/
|
||||||
void WinEDA_CotationPropertiesFrame::OnOkClick( wxCommandEvent& event )
|
void DIMENSION_EDITOR_DIALOG::OnOkClick( wxCommandEvent& event )
|
||||||
/***********************************************************************************/
|
/***********************************************************************************/
|
||||||
{
|
{
|
||||||
if( m_DC ) // Effacement ancien texte
|
if( m_DC ) // Effacement ancien texte
|
||||||
|
@ -169,8 +171,16 @@ void WinEDA_CotationPropertiesFrame::OnOkClick( wxCommandEvent& event )
|
||||||
}
|
}
|
||||||
|
|
||||||
CurrentCotation->m_Text->m_Size = m_TxtSizeCtrl->GetValue();
|
CurrentCotation->m_Text->m_Size = m_TxtSizeCtrl->GetValue();
|
||||||
CurrentCotation->m_Text->m_Width = CurrentCotation->m_Width =
|
|
||||||
m_TxtWidthCtrl->GetValue();
|
int width = m_TxtWidthCtrl->GetValue();
|
||||||
|
int maxthickness = Clamp_Text_PenSize(width, CurrentCotation->m_Text->m_Size );
|
||||||
|
if( width > maxthickness )
|
||||||
|
{
|
||||||
|
DisplayError(NULL, _("The text thickness is too large for the text size. It will be clamped"));
|
||||||
|
width = maxthickness;
|
||||||
|
}
|
||||||
|
CurrentCotation->m_Text->m_Width = CurrentCotation->m_Width = width ;
|
||||||
|
|
||||||
CurrentCotation->m_Text->m_Mirror = (m_Mirror->GetSelection() == 1) ? true : false;
|
CurrentCotation->m_Text->m_Mirror = (m_Mirror->GetSelection() == 1) ? true : false;
|
||||||
|
|
||||||
CurrentCotation->SetLayer( m_SelLayerBox->GetChoice() + FIRST_NO_COPPER_LAYER );
|
CurrentCotation->SetLayer( m_SelLayerBox->GetChoice() + FIRST_NO_COPPER_LAYER );
|
||||||
|
@ -227,8 +237,6 @@ COTATION* WinEDA_PcbFrame::Begin_Cotation( COTATION* Cotation, wxDC* DC )
|
||||||
Cotation->m_Flags = IS_NEW;
|
Cotation->m_Flags = IS_NEW;
|
||||||
|
|
||||||
Cotation->SetLayer( getActiveLayer() );
|
Cotation->SetLayer( getActiveLayer() );
|
||||||
Cotation->m_Width = GetBoard()->GetBoardDesignSettings()->m_DrawSegmentWidth;
|
|
||||||
Cotation->m_Text->m_Width = Cotation->m_Width;
|
|
||||||
|
|
||||||
Cotation->Barre_ox = Cotation->Barre_fx = pos.x;
|
Cotation->Barre_ox = Cotation->Barre_fx = pos.x;
|
||||||
Cotation->Barre_oy = Cotation->Barre_fy = pos.y;
|
Cotation->Barre_oy = Cotation->Barre_fy = pos.y;
|
||||||
|
@ -252,7 +260,13 @@ COTATION* WinEDA_PcbFrame::Begin_Cotation( COTATION* Cotation, wxDC* DC )
|
||||||
Cotation->FlecheD2_oy = Cotation->FlecheD2_fy = pos.y;
|
Cotation->FlecheD2_oy = Cotation->FlecheD2_fy = pos.y;
|
||||||
|
|
||||||
Cotation->m_Text->m_Size = GetBoard()->GetBoardDesignSettings()->m_PcbTextSize;
|
Cotation->m_Text->m_Size = GetBoard()->GetBoardDesignSettings()->m_PcbTextSize;
|
||||||
Cotation->m_Text->m_Width = GetBoard()->GetBoardDesignSettings()->m_PcbTextWidth;
|
int width = GetBoard()->GetBoardDesignSettings()->m_PcbTextWidth;
|
||||||
|
int maxthickness = Clamp_Text_PenSize(width, Cotation->m_Text->m_Size );
|
||||||
|
if( width > maxthickness )
|
||||||
|
{
|
||||||
|
width = maxthickness;
|
||||||
|
}
|
||||||
|
Cotation->m_Text->m_Width = Cotation->m_Width = width ;
|
||||||
|
|
||||||
Ajuste_Details_Cotation( Cotation );
|
Ajuste_Details_Cotation( Cotation );
|
||||||
|
|
||||||
|
@ -273,9 +287,12 @@ COTATION* WinEDA_PcbFrame::Begin_Cotation( COTATION* Cotation, wxDC* DC )
|
||||||
Cotation->Draw( DrawPanel, DC, GR_OR );
|
Cotation->Draw( DrawPanel, DC, GR_OR );
|
||||||
Cotation->m_Flags = 0;
|
Cotation->m_Flags = 0;
|
||||||
|
|
||||||
/* Insertion de la structure dans le Chainage .Drawings du PCB */
|
/* ADD this new item in list */
|
||||||
GetBoard()->Add( Cotation );
|
GetBoard()->Add( Cotation );
|
||||||
|
|
||||||
|
// Add store it in undo/redo list
|
||||||
|
SaveCopyInUndoList( Cotation, UR_NEW );
|
||||||
|
|
||||||
OnModify();
|
OnModify();
|
||||||
DrawPanel->ManageCurseur = NULL;
|
DrawPanel->ManageCurseur = NULL;
|
||||||
DrawPanel->ForceCloseManageCurseur = NULL;
|
DrawPanel->ForceCloseManageCurseur = NULL;
|
||||||
|
@ -347,8 +364,7 @@ void WinEDA_PcbFrame::Install_Edit_Cotation( COTATION* Cotation,
|
||||||
if( Cotation == NULL )
|
if( Cotation == NULL )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
WinEDA_CotationPropertiesFrame* frame = new WinEDA_CotationPropertiesFrame( this,
|
DIMENSION_EDITOR_DIALOG* frame = new DIMENSION_EDITOR_DIALOG( this, Cotation, DC, pos );
|
||||||
Cotation, DC, pos );
|
|
||||||
|
|
||||||
Ajuste_Details_Cotation( Cotation, true );
|
Ajuste_Details_Cotation( Cotation, true );
|
||||||
frame->ShowModal();
|
frame->ShowModal();
|
||||||
|
|
|
@ -88,6 +88,10 @@ void WinEDA_PcbFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case TYPE_COTATION:
|
||||||
|
// see above.
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
if( m_ID_current_state == 0 )
|
if( m_ID_current_state == 0 )
|
||||||
{
|
{
|
||||||
|
@ -348,7 +352,7 @@ void WinEDA_PcbFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
||||||
DrawPanel->m_AutoPAN_Request = true;
|
DrawPanel->m_AutoPAN_Request = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
DisplayError( this, wxT( "Internal err: Struct not COTATION" ) );
|
DisplayError( this, wxT( "WinEDA_PcbFrame::OnLeftClick() error item is not a DIMENSION" ) );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_PCB_DELETE_ITEM_BUTT:
|
case ID_PCB_DELETE_ITEM_BUTT:
|
||||||
|
|
|
@ -262,11 +262,17 @@ static void PlotTextModule( PLOTTER* plotter, TEXTE_MODULE* pt_texte,
|
||||||
if( pt_texte->m_Mirror )
|
if( pt_texte->m_Mirror )
|
||||||
NEGATE( size.x ); // Text is mirrored
|
NEGATE( size.x ); // Text is mirrored
|
||||||
|
|
||||||
|
// Non bold texts thickness is clamped at 1/6 char size by the low level draw function.
|
||||||
|
// but in Pcbnew we do not manage bold texts and thickness up to 1/4 char size
|
||||||
|
// (like bold text) and we manage the thickness.
|
||||||
|
// So we set bold flag to true
|
||||||
|
bool allow_bold = pt_texte->m_Bold || thickness;
|
||||||
|
|
||||||
plotter->text( pos, BLACK,
|
plotter->text( pos, BLACK,
|
||||||
pt_texte->m_Text,
|
pt_texte->m_Text,
|
||||||
orient, size,
|
orient, size,
|
||||||
pt_texte->m_HJustify, pt_texte->m_VJustify,
|
pt_texte->m_HJustify, pt_texte->m_VJustify,
|
||||||
thickness, pt_texte->m_Italic, pt_texte->m_Bold );
|
thickness, pt_texte->m_Italic, allow_bold );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -511,6 +517,12 @@ void PlotTextePcb( PLOTTER* plotter, TEXTE_PCB* pt_texte, int masque_layer,
|
||||||
if( pt_texte->m_Mirror )
|
if( pt_texte->m_Mirror )
|
||||||
size.x = -size.x;
|
size.x = -size.x;
|
||||||
|
|
||||||
|
// Non bold texts thickness is clamped at 1/6 char size by the low level draw function.
|
||||||
|
// but in Pcbnew we do not manage bold texts and thickness up to 1/4 char size
|
||||||
|
// (like bold text) and we manage the thickness.
|
||||||
|
// So we set bold flag to true
|
||||||
|
bool allow_bold = pt_texte->m_Bold || thickness;
|
||||||
|
|
||||||
if( pt_texte->m_MultilineAllowed )
|
if( pt_texte->m_MultilineAllowed )
|
||||||
{
|
{
|
||||||
wxArrayString* list = wxStringSplit( pt_texte->m_Text, '\n' );
|
wxArrayString* list = wxStringSplit( pt_texte->m_Text, '\n' );
|
||||||
|
@ -526,7 +538,7 @@ void PlotTextePcb( PLOTTER* plotter, TEXTE_PCB* pt_texte, int masque_layer,
|
||||||
txt,
|
txt,
|
||||||
orient, size,
|
orient, size,
|
||||||
pt_texte->m_HJustify, pt_texte->m_VJustify,
|
pt_texte->m_HJustify, pt_texte->m_VJustify,
|
||||||
thickness, pt_texte->m_Italic, pt_texte->m_Bold );
|
thickness, pt_texte->m_Italic, allow_bold );
|
||||||
pos += offset;
|
pos += offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -537,7 +549,7 @@ void PlotTextePcb( PLOTTER* plotter, TEXTE_PCB* pt_texte, int masque_layer,
|
||||||
pt_texte->m_Text,
|
pt_texte->m_Text,
|
||||||
orient, size,
|
orient, size,
|
||||||
pt_texte->m_HJustify, pt_texte->m_VJustify,
|
pt_texte->m_HJustify, pt_texte->m_VJustify,
|
||||||
thickness, pt_texte->m_Italic, pt_texte->m_Bold );
|
thickness, pt_texte->m_Italic, allow_bold );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -19,8 +19,87 @@ static void Print_Module( WinEDA_DrawPanel* aPanel, wxDC* aDC, MODULE* aModule,
|
||||||
int aDraw_mode, int aMasklayer,
|
int aDraw_mode, int aMasklayer,
|
||||||
PRINT_PARAMETERS::DrillShapeOptT aDrillShapeOpt );
|
PRINT_PARAMETERS::DrillShapeOptT aDrillShapeOpt );
|
||||||
|
|
||||||
|
/** Function WinEDA_ModuleEditFrame::PrintPage
|
||||||
|
* Used to print the board (on printer, or when creating SVF files).
|
||||||
|
* Print the board, but only layers allowed by aPrintMaskLayer
|
||||||
|
* @param aDC = the print device context
|
||||||
|
* @param aPrint_Sheet_Ref = true to print frame references
|
||||||
|
* @param aPrint_Sheet_Ref = a 32 bits mask: bit n = 1 -> layer n is printed
|
||||||
|
* @param aPrintMirrorMode = true to plot mirrored
|
||||||
|
* @param aData = a pointer to an optional data (NULL if not used)
|
||||||
|
*/
|
||||||
|
void WinEDA_ModuleEditFrame::PrintPage( wxDC* aDC,
|
||||||
|
bool aPrint_Sheet_Ref,
|
||||||
|
int aPrintMaskLayer,
|
||||||
|
bool aPrintMirrorMode,
|
||||||
|
void * aData)
|
||||||
|
{
|
||||||
|
MODULE* Module;
|
||||||
|
int drawmode = GR_COPY;
|
||||||
|
DISPLAY_OPTIONS save_opt;
|
||||||
|
BOARD* Pcb = GetBoard();
|
||||||
|
int defaultPenSize = 50;
|
||||||
|
|
||||||
/** Function PrintPage
|
PRINT_PARAMETERS * printParameters = (PRINT_PARAMETERS*) aData; // can be null
|
||||||
|
PRINT_PARAMETERS::DrillShapeOptT drillShapeOpt = PRINT_PARAMETERS::FULL_DRILL_SHAPE;
|
||||||
|
if( printParameters )
|
||||||
|
defaultPenSize = printParameters->m_PenDefaultSize;
|
||||||
|
|
||||||
|
save_opt = DisplayOpt;
|
||||||
|
|
||||||
|
DisplayOpt.ContrastModeDisplay = false;
|
||||||
|
DisplayOpt.DisplayPadFill = true;
|
||||||
|
DisplayOpt.DisplayViaFill = true;
|
||||||
|
|
||||||
|
m_DisplayPadFill = DisplayOpt.DisplayPadFill;
|
||||||
|
m_DisplayViaFill = DisplayOpt.DisplayViaFill;
|
||||||
|
m_DisplayPadNum = DisplayOpt.DisplayPadNum = false;
|
||||||
|
bool nctmp = GetBoard()->IsElementVisible(NO_CONNECTS_VISIBLE);
|
||||||
|
GetBoard()->SetElementVisibility(NO_CONNECTS_VISIBLE, false);
|
||||||
|
DisplayOpt.DisplayPadIsol = false;
|
||||||
|
DisplayOpt.DisplayModEdge = FILLED;
|
||||||
|
DisplayOpt.DisplayModText = FILLED;
|
||||||
|
m_DisplayPcbTrackFill = DisplayOpt.DisplayPcbTrackFill = FILLED;
|
||||||
|
DisplayOpt.ShowTrackClearanceMode = DO_NOT_SHOW_CLEARANCE;
|
||||||
|
DisplayOpt.DisplayDrawItems = FILLED;
|
||||||
|
DisplayOpt.DisplayZonesMode = 0;
|
||||||
|
DisplayOpt.DisplayNetNamesMode = 0;
|
||||||
|
|
||||||
|
DrawPanel->m_PrintIsMirrored = aPrintMirrorMode;
|
||||||
|
|
||||||
|
// The OR mode is used in color mode, but be aware the backgroud *must be
|
||||||
|
// BLACK. In the print page dialog, we first print in BLACK, and after
|
||||||
|
// reprint in color, on the black "local" backgroud, in OR mode the black
|
||||||
|
// print is not made before, only a white page is printed
|
||||||
|
if( GetGRForceBlackPenState() == false )
|
||||||
|
drawmode = GR_OR;
|
||||||
|
|
||||||
|
// Draw footprints, this is done at last in order to print the pad holes in
|
||||||
|
// white (or g_DrawBgColor) after the tracks and zones
|
||||||
|
Module = (MODULE*) Pcb->m_Modules;
|
||||||
|
int tmp = D_PAD::m_PadSketchModePenSize;
|
||||||
|
D_PAD::m_PadSketchModePenSize = defaultPenSize;
|
||||||
|
for( ; Module != NULL; Module = Module->Next() )
|
||||||
|
{
|
||||||
|
Print_Module( DrawPanel, aDC, Module, drawmode, aPrintMaskLayer, drillShapeOpt );
|
||||||
|
}
|
||||||
|
D_PAD::m_PadSketchModePenSize = tmp;
|
||||||
|
|
||||||
|
if( aPrint_Sheet_Ref )
|
||||||
|
TraceWorkSheet( aDC, GetScreen(), defaultPenSize );
|
||||||
|
|
||||||
|
DrawPanel->m_PrintIsMirrored = false;
|
||||||
|
|
||||||
|
DisplayOpt = save_opt;
|
||||||
|
m_DisplayPcbTrackFill = DisplayOpt.DisplayPcbTrackFill;
|
||||||
|
m_DisplayPadFill = DisplayOpt.DisplayPadFill;
|
||||||
|
m_DisplayViaFill = DisplayOpt.DisplayViaFill;
|
||||||
|
m_DisplayPadNum = DisplayOpt.DisplayPadNum;
|
||||||
|
GetBoard()->SetElementVisibility(NO_CONNECTS_VISIBLE, nctmp);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** WinEDA_PcbFrame::Function PrintPage
|
||||||
* Used to print the board (on printer, or when creating SVF files).
|
* Used to print the board (on printer, or when creating SVF files).
|
||||||
* Print the board, but only layers allowed by aPrintMaskLayer
|
* Print the board, but only layers allowed by aPrintMaskLayer
|
||||||
* @param aDC = the print device context
|
* @param aDC = the print device context
|
||||||
|
|
|
@ -32,6 +32,7 @@ PRINT_PARAMETERS::PRINT_PARAMETERS()
|
||||||
m_ForceCentered = false;
|
m_ForceCentered = false;
|
||||||
m_Flags = 0;
|
m_Flags = 0;
|
||||||
m_DrillShapeOpt = PRINT_PARAMETERS::SMALL_DRILL_SHAPE;
|
m_DrillShapeOpt = PRINT_PARAMETERS::SMALL_DRILL_SHAPE;
|
||||||
|
m_PageSetupData = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -116,10 +117,7 @@ void BOARD_PRINTOUT_CONTROLER::DrawPage()
|
||||||
{
|
{
|
||||||
int tmpzoom;
|
int tmpzoom;
|
||||||
wxPoint tmp_startvisu;
|
wxPoint tmp_startvisu;
|
||||||
wxSize PageSize_in_mm;
|
|
||||||
wxSize SheetSize; // Page size in internal units
|
wxSize SheetSize; // Page size in internal units
|
||||||
wxSize PlotAreaSize; // plot area size in pixels
|
|
||||||
double scaleX, scaleY, scale;
|
|
||||||
wxPoint old_org;
|
wxPoint old_org;
|
||||||
wxPoint DrawOffset; // Offset de trace
|
wxPoint DrawOffset; // Offset de trace
|
||||||
double userscale;
|
double userscale;
|
||||||
|
@ -130,8 +128,6 @@ void BOARD_PRINTOUT_CONTROLER::DrawPage()
|
||||||
|
|
||||||
wxBusyCursor dummy;
|
wxBusyCursor dummy;
|
||||||
|
|
||||||
GetPageSizeMM( &PageSize_in_mm.x, &PageSize_in_mm.y );
|
|
||||||
|
|
||||||
/* Save old draw scale and draw offset */
|
/* Save old draw scale and draw offset */
|
||||||
tmp_startvisu = ActiveScreen->m_StartVisu;
|
tmp_startvisu = ActiveScreen->m_StartVisu;
|
||||||
tmpzoom = ActiveScreen->GetZoom();
|
tmpzoom = ActiveScreen->GetZoom();
|
||||||
|
@ -151,21 +147,19 @@ void BOARD_PRINTOUT_CONTROLER::DrawPage()
|
||||||
SheetSize.x *= m_Parent->m_InternalUnits / 1000;
|
SheetSize.x *= m_Parent->m_InternalUnits / 1000;
|
||||||
SheetSize.y *= m_Parent->m_InternalUnits / 1000; // size in pixels
|
SheetSize.y *= m_Parent->m_InternalUnits / 1000; // size in pixels
|
||||||
|
|
||||||
// Get the size of the DC in pixels
|
|
||||||
dc->GetSize( &PlotAreaSize.x, &PlotAreaSize.y );
|
|
||||||
|
|
||||||
WinEDA_BasePcbFrame* pcbframe = (WinEDA_BasePcbFrame*) m_Parent;
|
WinEDA_BasePcbFrame* pcbframe = (WinEDA_BasePcbFrame*) m_Parent;
|
||||||
pcbframe->GetBoard()->ComputeBoundaryBox();
|
pcbframe->GetBoard()->ComputeBoundaryBox();
|
||||||
/* Compute the PCB size in internal units*/
|
/* Compute the PCB size in internal units*/
|
||||||
userscale = m_PrintParams.m_PrintScale;
|
userscale = m_PrintParams.m_PrintScale;
|
||||||
if( userscale == 0 ) // fit in page
|
if( userscale == 0 ) // fit in page
|
||||||
{
|
{
|
||||||
int extra_margin = 0; // Margin = 8000/2 units pcb = 0,4 inch
|
int extra_margin = 4000*2; // Margin = 4000 units pcb = 0.4 inch
|
||||||
SheetSize.x = pcbframe->GetBoard()->m_BoundaryBox.GetWidth() + extra_margin;
|
SheetSize.x = pcbframe->GetBoard()->m_BoundaryBox.GetWidth() + extra_margin;
|
||||||
SheetSize.y = pcbframe->GetBoard()->m_BoundaryBox.GetHeight() + extra_margin;
|
SheetSize.y = pcbframe->GetBoard()->m_BoundaryBox.GetHeight() + extra_margin;
|
||||||
userscale = 0.99;
|
userscale = 0.99;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if( (m_PrintParams.m_PrintScale > 1.0) // scale > 1 -> Recadrage
|
if( (m_PrintParams.m_PrintScale > 1.0) // scale > 1 -> Recadrage
|
||||||
|| (m_PrintParams.m_PrintScale == 0) ) // fit in page
|
|| (m_PrintParams.m_PrintScale == 0) ) // fit in page
|
||||||
{
|
{
|
||||||
|
@ -173,26 +167,28 @@ void BOARD_PRINTOUT_CONTROLER::DrawPage()
|
||||||
DrawOffset.y += pcbframe->GetBoard()->m_BoundaryBox.Centre().y;
|
DrawOffset.y += pcbframe->GetBoard()->m_BoundaryBox.Centre().y;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calculate a suitable scaling factor
|
if( m_PrintParams.m_PageSetupData )
|
||||||
scaleX = (double) SheetSize.x / (double) PlotAreaSize.x;
|
{
|
||||||
scaleY = (double) SheetSize.y / (double) PlotAreaSize.y;
|
wxSize pagesize;
|
||||||
scale = wxMax( scaleX, scaleY ) / userscale; // Use x or y scaling factor, whichever fits on the DC
|
pagesize.x = (int) (SheetSize.x / userscale);
|
||||||
|
pagesize.y = (int) (SheetSize.y / userscale);
|
||||||
// ajust the real draw scale
|
FitThisSizeToPageMargins(pagesize, *m_PrintParams.m_PageSetupData );
|
||||||
double accurate_Xscale, accurate_Yscale;
|
}
|
||||||
dc->SetUserScale( DrawZoom / scale * m_PrintParams.m_XScaleAdjust,
|
|
||||||
DrawZoom / scale * m_PrintParams.m_YScaleAdjust );
|
|
||||||
|
|
||||||
// Compute Accurate scale 1
|
// Compute Accurate scale 1
|
||||||
|
if( userscale == 1.0 )
|
||||||
{
|
{
|
||||||
|
// We want a 1:1 scale and margins for printing
|
||||||
|
MapScreenSizeToPaper( );
|
||||||
int w, h;
|
int w, h;
|
||||||
GetPPIPrinter( &w, &h );
|
GetPPIPrinter( &w, &h );
|
||||||
accurate_Xscale = ( (double) ( DrawZoom * w ) ) / (double) PCB_INTERNAL_UNIT;
|
double accurate_Xscale = ( (double) ( DrawZoom * w ) ) / (double) PCB_INTERNAL_UNIT;
|
||||||
accurate_Yscale = ( (double) ( DrawZoom * h ) ) / (double) PCB_INTERNAL_UNIT;
|
double accurate_Yscale = ( (double) ( DrawZoom * h ) ) / (double) PCB_INTERNAL_UNIT;
|
||||||
|
|
||||||
if( IsPreview() ) // Scale must take in account the DC size in Preview
|
if( IsPreview() ) // Scale must take in account the DC size in Preview
|
||||||
{
|
{
|
||||||
// Get the size of the DC in pixels
|
// Get the size of the DC in pixels
|
||||||
|
wxSize PlotAreaSize;
|
||||||
dc->GetSize( &PlotAreaSize.x, &PlotAreaSize.y );
|
dc->GetSize( &PlotAreaSize.x, &PlotAreaSize.y );
|
||||||
GetPageSizePixels( &w, &h );
|
GetPageSizePixels( &w, &h );
|
||||||
accurate_Xscale *= PlotAreaSize.x;
|
accurate_Xscale *= PlotAreaSize.x;
|
||||||
|
@ -202,8 +198,19 @@ void BOARD_PRINTOUT_CONTROLER::DrawPage()
|
||||||
}
|
}
|
||||||
accurate_Xscale *= m_PrintParams.m_XScaleAdjust;
|
accurate_Xscale *= m_PrintParams.m_XScaleAdjust;
|
||||||
accurate_Yscale *= m_PrintParams.m_YScaleAdjust;
|
accurate_Yscale *= m_PrintParams.m_YScaleAdjust;
|
||||||
|
// Fine scale adjust
|
||||||
|
dc->SetUserScale( accurate_Xscale, accurate_Yscale );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Get the final size of the DC in pixels
|
||||||
|
wxSize PlotAreaSizeInPixels;
|
||||||
|
dc->GetSize( &PlotAreaSizeInPixels.x, &PlotAreaSizeInPixels.y );
|
||||||
|
double scalex, scaley;
|
||||||
|
dc->GetUserScale(&scalex, &scaley);
|
||||||
|
wxSize PlotAreaSizeInUserUnits;
|
||||||
|
PlotAreaSizeInUserUnits.x = (int) (PlotAreaSizeInPixels.x/scalex);
|
||||||
|
PlotAreaSizeInUserUnits.y = (int) (PlotAreaSizeInPixels.y/scaley);
|
||||||
|
|
||||||
/* In some cases the plot origin is the centre of the page
|
/* In some cases the plot origin is the centre of the page
|
||||||
* when:
|
* when:
|
||||||
* - Asked
|
* - Asked
|
||||||
|
@ -214,13 +221,9 @@ void BOARD_PRINTOUT_CONTROLER::DrawPage()
|
||||||
|| (m_PrintParams.m_PrintScale > 1.0) // scale > 1
|
|| (m_PrintParams.m_PrintScale > 1.0) // scale > 1
|
||||||
|| (m_PrintParams.m_PrintScale == 0) ) // fit in page
|
|| (m_PrintParams.m_PrintScale == 0) ) // fit in page
|
||||||
{
|
{
|
||||||
DrawOffset.x -= wxRound( ( (double) PlotAreaSize.x / 2.0 ) * scale );
|
DrawOffset.x -= PlotAreaSizeInUserUnits.x / 2;
|
||||||
DrawOffset.y -= wxRound( ( (double) PlotAreaSize.y / 2.0 ) * scale );
|
DrawOffset.y -= PlotAreaSizeInUserUnits.y / 2;
|
||||||
}
|
}
|
||||||
DrawOffset.x += wxRound( ( (double) SheetSize.x / 2.0 ) *
|
|
||||||
( m_PrintParams.m_XScaleAdjust - 1.0 ) );
|
|
||||||
DrawOffset.y += wxRound( ( (double) SheetSize.y / 2.0 ) *
|
|
||||||
( m_PrintParams.m_YScaleAdjust - 1.0 ) );
|
|
||||||
|
|
||||||
ActiveScreen->m_DrawOrg = DrawOffset;
|
ActiveScreen->m_DrawOrg = DrawOffset;
|
||||||
|
|
||||||
|
@ -238,11 +241,6 @@ void BOARD_PRINTOUT_CONTROLER::DrawPage()
|
||||||
m_Parent->GetBaseScreen()->m_IsPrinting = true;
|
m_Parent->GetBaseScreen()->m_IsPrinting = true;
|
||||||
int bg_color = g_DrawBgColor;
|
int bg_color = g_DrawBgColor;
|
||||||
|
|
||||||
if( userscale == 1.0 )
|
|
||||||
{
|
|
||||||
dc->SetUserScale( accurate_Xscale, accurate_Yscale );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( m_PrintParams.m_Print_Sheet_Ref )
|
if( m_PrintParams.m_Print_Sheet_Ref )
|
||||||
m_Parent->TraceWorkSheet( dc, ActiveScreen, m_PrintParams.m_PenDefaultSize );
|
m_Parent->TraceWorkSheet( dc, ActiveScreen, m_PrintParams.m_PenDefaultSize );
|
||||||
|
|
||||||
|
@ -260,7 +258,7 @@ void BOARD_PRINTOUT_CONTROLER::DrawPage()
|
||||||
* the old draw area in the new draw area, because the draw origin has not moved
|
* the old draw area in the new draw area, because the draw origin has not moved
|
||||||
* (this is the upper left corner) but the Y axis is reversed, therefore the plotting area
|
* (this is the upper left corner) but the Y axis is reversed, therefore the plotting area
|
||||||
* is the y coordinate values from - PlotAreaSize.y to 0 */
|
* is the y coordinate values from - PlotAreaSize.y to 0 */
|
||||||
int ysize = (int) ( PlotAreaSize.y / sy );
|
int ysize = (int) ( PlotAreaSizeInPixels.y / sy );
|
||||||
DrawOffset.y += ysize;
|
DrawOffset.y += ysize;
|
||||||
|
|
||||||
/* in order to keep the board position in the sheet
|
/* in order to keep the board position in the sheet
|
||||||
|
|
|
@ -31,6 +31,7 @@ public:
|
||||||
int m_PageCount; // Number of page to print
|
int m_PageCount; // Number of page to print
|
||||||
bool m_ForceCentered; // Forge plot origin to page centre (used in modedit)
|
bool m_ForceCentered; // Forge plot origin to page centre (used in modedit)
|
||||||
int m_Flags; // auxiliary variable: can be used to pass some other info
|
int m_Flags; // auxiliary variable: can be used to pass some other info
|
||||||
|
wxPageSetupDialogData* m_PageSetupData; // A wxPageSetupDialogData to know page options (margins)
|
||||||
|
|
||||||
enum DrillShapeOptT {
|
enum DrillShapeOptT {
|
||||||
NO_DRILL_SHAPE = 0,
|
NO_DRILL_SHAPE = 0,
|
||||||
|
|
Loading…
Reference in New Issue