Try to fix an unwanted left mouse release button event, when closing a dialog on a click or double click,
and therefore when the mouse butoon is released in the parent window Minor other fixes.
This commit is contained in:
parent
c648806703
commit
14fcf7f933
|
@ -209,6 +209,17 @@ void EDA_DRAW_FRAME::OnMenuOpen( wxMenuEvent& event )
|
|||
event.Skip();
|
||||
}
|
||||
|
||||
/* function IgnoreLeftButtonReleaseEvent
|
||||
* after calling this function, the next left mouse button release
|
||||
* event will be ignored.
|
||||
* It is is usefull when closing a dialog on a mouse click,
|
||||
* to ignore the next mouse click by the parent window, although the mouse
|
||||
* button (cliched on the dialog) is released in the parent frame
|
||||
*/
|
||||
void EDA_DRAW_FRAME::IgnoreLeftButtonReleaseEvent()
|
||||
{
|
||||
m_canvas->SetIgnoreLeftButtonReleaseEvent( true );
|
||||
}
|
||||
|
||||
void EDA_DRAW_FRAME::OnToggleGridState( wxCommandEvent& aEvent )
|
||||
{
|
||||
|
|
|
@ -105,6 +105,7 @@ EDA_DRAW_PANEL::EDA_DRAW_PANEL( EDA_DRAW_FRAME* parent, int id,
|
|||
m_panScrollbarLimits = false;
|
||||
m_enableAutoPan = true;
|
||||
m_ignoreMouseEvents = false;
|
||||
m_ignoreNextLeftButtonRelease = false;
|
||||
|
||||
m_mouseCaptureCallback = NULL;
|
||||
m_endMouseCaptureCallback = NULL;
|
||||
|
@ -118,6 +119,7 @@ EDA_DRAW_PANEL::EDA_DRAW_PANEL( EDA_DRAW_FRAME* parent, int id,
|
|||
|
||||
m_requestAutoPan = false;
|
||||
m_enableBlockCommands = false;
|
||||
m_minDragEventCount = 0;
|
||||
|
||||
#ifdef __WXMAC__
|
||||
m_defaultCursor = m_currentCursor = wxCURSOR_CROSS;
|
||||
|
@ -874,16 +876,8 @@ void EDA_DRAW_PANEL::OnMouseWheel( wxMouseEvent& event )
|
|||
|
||||
void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event )
|
||||
{
|
||||
/* Used to inhibit a response to a mouse left button release, after a double click
|
||||
* (when releasing the left button at the end of the second click. Used in Eeschema
|
||||
* to inhibit a mouse left release command when switching between hierarchical sheets
|
||||
* on a double click.
|
||||
*/
|
||||
static bool ignoreNextLeftButtonRelease = false;
|
||||
static EDA_DRAW_PANEL* LastPanel = NULL;
|
||||
|
||||
int localrealbutt = 0, localbutt = 0;
|
||||
BASE_SCREEN* screen = GetScreen();
|
||||
int localrealbutt = 0, localbutt = 0;
|
||||
BASE_SCREEN* screen = GetScreen();
|
||||
|
||||
if( !screen )
|
||||
return;
|
||||
|
@ -893,18 +887,8 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event )
|
|||
*/
|
||||
#define MIN_DRAG_COUNT_FOR_START_BLOCK_COMMAND 5
|
||||
|
||||
/* Count the drag events. Used to filter mouse moves before starting a
|
||||
* block command. A block command can be started only if
|
||||
* MinDragEventCount > MIN_DRAG_COUNT_FOR_START_BLOCK_COMMAND
|
||||
* and m_canStartBlock >= 0
|
||||
* in order to avoid spurious block commands.
|
||||
*/
|
||||
static int MinDragEventCount;
|
||||
|
||||
if( event.Leaving() )
|
||||
{
|
||||
m_canStartBlock = -1;
|
||||
}
|
||||
|
||||
if( !IsMouseCaptured() ) // No mouse capture in progress.
|
||||
m_requestAutoPan = false;
|
||||
|
@ -915,9 +899,7 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event )
|
|||
return;
|
||||
|
||||
if( !event.IsButton() && !event.Moving() && !event.Dragging() )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if( event.RightDown() )
|
||||
{
|
||||
|
@ -970,26 +952,29 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event )
|
|||
// inhibit a response to the mouse left button release,
|
||||
// because we have a double click, and we do not want a new
|
||||
// OnLeftClick command at end of this Double Click
|
||||
ignoreNextLeftButtonRelease = true;
|
||||
m_ignoreNextLeftButtonRelease = true;
|
||||
}
|
||||
else if( event.LeftUp() )
|
||||
{
|
||||
// A block command is in progress: a left up is the end of block
|
||||
// or this is the end of a double click, already seen
|
||||
if( screen->m_BlockLocate.GetState() == STATE_NO_BLOCK && !ignoreNextLeftButtonRelease )
|
||||
// Note also m_ignoreNextLeftButtonRelease can be set by
|
||||
// the call to OnLeftClick(), so do not change it after calling OnLeftClick
|
||||
bool ignoreEvt = m_ignoreNextLeftButtonRelease;
|
||||
m_ignoreNextLeftButtonRelease = false;
|
||||
|
||||
if( screen->m_BlockLocate.GetState() == STATE_NO_BLOCK && !ignoreEvt )
|
||||
GetParent()->OnLeftClick( &DC, screen->RefPos( true ) );
|
||||
|
||||
ignoreNextLeftButtonRelease = false;
|
||||
}
|
||||
|
||||
if( !event.LeftIsDown() )
|
||||
else if( !event.LeftIsDown() )
|
||||
{
|
||||
/* be sure there is a response to a left button release command
|
||||
* even when a LeftUp event is not seen. This happens when a
|
||||
* double click opens a dialog box, and the release mouse button
|
||||
* is made when the dialog box is open.
|
||||
* is made when the dialog box is opened.
|
||||
*/
|
||||
ignoreNextLeftButtonRelease = false;
|
||||
m_ignoreNextLeftButtonRelease = false;
|
||||
}
|
||||
|
||||
if( event.ButtonDown( wxMOUSE_BTN_MIDDLE ) && m_enableMiddleButtonPan )
|
||||
|
@ -1115,9 +1100,10 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event )
|
|||
/*******************************/
|
||||
|
||||
// Command block can't start if mouse is dragging a new panel
|
||||
if( LastPanel != this )
|
||||
static EDA_DRAW_PANEL* lastPanel;
|
||||
if( lastPanel != this )
|
||||
{
|
||||
MinDragEventCount = 0;
|
||||
m_minDragEventCount = 0;
|
||||
m_canStartBlock = -1;
|
||||
}
|
||||
|
||||
|
@ -1129,7 +1115,7 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event )
|
|||
*/
|
||||
if( !event.LeftIsDown() && !event.MiddleIsDown() )
|
||||
{
|
||||
MinDragEventCount = 0;
|
||||
m_minDragEventCount = 0;
|
||||
m_canStartBlock = 0;
|
||||
|
||||
/* Remember the last cursor position when a drag mouse starts
|
||||
|
@ -1155,7 +1141,7 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event )
|
|||
{
|
||||
m_requestAutoPan = false;
|
||||
GetParent()->HandleBlockPlace( &DC );
|
||||
ignoreNextLeftButtonRelease = true;
|
||||
m_ignoreNextLeftButtonRelease = true;
|
||||
}
|
||||
}
|
||||
else if( ( m_canStartBlock >= 0 )
|
||||
|
@ -1174,8 +1160,8 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event )
|
|||
// A block command is started if the drag is enough. A small
|
||||
// drag is ignored (it is certainly a little mouse move when
|
||||
// clicking) not really a drag mouse
|
||||
if( MinDragEventCount < MIN_DRAG_COUNT_FOR_START_BLOCK_COMMAND )
|
||||
MinDragEventCount++;
|
||||
if( m_minDragEventCount < MIN_DRAG_COUNT_FOR_START_BLOCK_COMMAND )
|
||||
m_minDragEventCount++;
|
||||
else
|
||||
{
|
||||
if( !GetParent()->HandleBlockBegin( &DC, cmd_type, m_CursorStartPos ) )
|
||||
|
@ -1250,7 +1236,7 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event )
|
|||
GetParent()->PrintMsg( msg_debug );
|
||||
#endif
|
||||
|
||||
LastPanel = this;
|
||||
lastPanel = this;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -205,6 +205,9 @@ void DIALOG_ERC::OnLeftDblClickMarkersList( wxCommandEvent& event )
|
|||
{
|
||||
m_parent->GetScreen()->SetCrossHairPosition( m_lastMarkerFound->m_Pos );
|
||||
m_parent->RedrawScreen( m_lastMarkerFound->m_Pos, true);
|
||||
// prevent a left mouse click event on parent frame
|
||||
// coming from the ERC dialog double click
|
||||
m_parent->IgnoreLeftButtonReleaseEvent();
|
||||
EndModal( 1 );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -216,7 +216,6 @@ SCH_COMPONENT* SCH_EDIT_FRAME::Load_Component( wxDC* aDC,
|
|||
{
|
||||
int unit = 1;
|
||||
int convert = 1;
|
||||
|
||||
m_itemToRepeat = NULL;
|
||||
m_canvas->SetIgnoreMouseEvents( true );
|
||||
|
||||
|
|
|
@ -100,10 +100,10 @@ static wxAcceleratorEntry accels[] =
|
|||
#define EXTRA_BORDER_SIZE 2
|
||||
#define LIB_VIEW_FRAME_NAME wxT( "ViewlibFrame" )
|
||||
|
||||
LIB_VIEW_FRAME::LIB_VIEW_FRAME( wxWindow* father, CMP_LIBRARY* Library,
|
||||
wxSemaphore* semaphore, long style ) :
|
||||
SCH_BASE_FRAME( father, VIEWER_FRAME_TYPE, _( "Library Browser" ),
|
||||
wxDefaultPosition, wxDefaultSize, style, GetLibViewerFrameName() )
|
||||
LIB_VIEW_FRAME::LIB_VIEW_FRAME( SCH_BASE_FRAME* aParent, CMP_LIBRARY* aLibrary,
|
||||
wxSemaphore* aSemaphore, long aStyle ) :
|
||||
SCH_BASE_FRAME( aParent, VIEWER_FRAME_TYPE, _( "Library Browser" ),
|
||||
wxDefaultPosition, wxDefaultSize, aStyle, GetLibViewerFrameName() )
|
||||
{
|
||||
wxAcceleratorTable table( ACCEL_TABLE_CNT, accels );
|
||||
|
||||
|
@ -121,7 +121,7 @@ LIB_VIEW_FRAME::LIB_VIEW_FRAME( wxWindow* father, CMP_LIBRARY* Library,
|
|||
m_LibList = NULL;
|
||||
m_LibListWindow = NULL;
|
||||
m_CmpListWindow = NULL;
|
||||
m_Semaphore = semaphore;
|
||||
m_Semaphore = aSemaphore;
|
||||
if( m_Semaphore )
|
||||
SetModalMode( true );
|
||||
m_exportToEeschemaCmpName.Empty();
|
||||
|
@ -146,7 +146,7 @@ LIB_VIEW_FRAME::LIB_VIEW_FRAME( wxWindow* father, CMP_LIBRARY* Library,
|
|||
|
||||
wxPoint win_pos( 0, 0 );
|
||||
|
||||
if( Library == NULL )
|
||||
if( aLibrary == NULL )
|
||||
{
|
||||
// Creates the libraries window display
|
||||
m_LibListWindow =
|
||||
|
@ -163,7 +163,7 @@ LIB_VIEW_FRAME::LIB_VIEW_FRAME( wxWindow* father, CMP_LIBRARY* Library,
|
|||
}
|
||||
else
|
||||
{
|
||||
m_libraryName = Library->GetName();
|
||||
m_libraryName = aLibrary->GetName();
|
||||
m_entryName.Clear();
|
||||
m_unit = 1;
|
||||
m_convert = 1;
|
||||
|
@ -507,7 +507,9 @@ void LIB_VIEW_FRAME::DClickOnCmpList( wxCommandEvent& event )
|
|||
// Prevent the double click from being as a single click in the parent
|
||||
// window which would cause the part to be parked rather than staying
|
||||
// in drag mode.
|
||||
event.StopPropagation();
|
||||
// event.StopPropagation();
|
||||
((SCH_BASE_FRAME*) GetParent())->IgnoreLeftButtonReleaseEvent();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -73,9 +73,9 @@ protected:
|
|||
static int m_convert;
|
||||
|
||||
public:
|
||||
LIB_VIEW_FRAME( wxWindow* father, CMP_LIBRARY* Library = NULL,
|
||||
wxSemaphore* semaphore = NULL,
|
||||
long style = KICAD_DEFAULT_DRAWFRAME_STYLE );
|
||||
LIB_VIEW_FRAME( SCH_BASE_FRAME* aParent, CMP_LIBRARY* aLibrary = NULL,
|
||||
wxSemaphore* aSemaphore = NULL,
|
||||
long aStyle = KICAD_DEFAULT_DRAWFRAME_STYLE );
|
||||
|
||||
~LIB_VIEW_FRAME();
|
||||
|
||||
|
|
|
@ -83,8 +83,20 @@ private:
|
|||
|
||||
bool m_ignoreMouseEvents; ///< Ignore mouse events when true.
|
||||
|
||||
/* Used to inhibit a response to a mouse left button release, after a double click
|
||||
* (when releasing the left button at the end of the second click. Used in Eeschema
|
||||
* to inhibit a mouse left release command when switching between hierarchical sheets
|
||||
* on a double click.
|
||||
*/
|
||||
bool m_ignoreNextLeftButtonRelease; ///< Ignore the next mouse left button release when true.
|
||||
|
||||
bool m_enableBlockCommands; ///< True enables block commands.
|
||||
|
||||
int m_minDragEventCount; /* Count the drag events. Used to filter mouse moves before starting a
|
||||
* block command. A block command can be started only if
|
||||
* MinDragEventCount > MIN_DRAG_COUNT_FOR_START_BLOCK_COMMAND
|
||||
* in order to avoid spurious block commands. */
|
||||
|
||||
/// True when drawing in mirror mode. Used by the draw arc function, because arcs
|
||||
/// are oriented, and in mirror mode, orientations are reversed.
|
||||
bool m_PrintIsMirrored;
|
||||
|
@ -134,6 +146,8 @@ public:
|
|||
|
||||
void SetIgnoreMouseEvents( bool aIgnore ) { m_ignoreMouseEvents = aIgnore; }
|
||||
|
||||
void SetIgnoreLeftButtonReleaseEvent( bool aIgnore ) { m_ignoreNextLeftButtonRelease = aIgnore; }
|
||||
|
||||
void SetEnableBlockCommands( bool aEnable ) { m_enableBlockCommands = aEnable; }
|
||||
|
||||
bool GetPrintMirrored() const { return m_PrintIsMirrored; }
|
||||
|
|
|
@ -498,6 +498,17 @@ public:
|
|||
|
||||
void OnMenuOpen( wxMenuEvent& event );
|
||||
void OnMouseEvent( wxMouseEvent& event );
|
||||
|
||||
/** function IgnoreLeftButtonReleaseEvent
|
||||
* after calling this function, the next left mouse button release
|
||||
* event will be ignored.
|
||||
* It is is usefull when closing a dialog on a mouse click,
|
||||
* to ignore the next mouse click by the parent window, although the mouse
|
||||
* button (clicked on the dialog) is released in the parent frame,
|
||||
* and therfore creates an unwanted mouse click event
|
||||
*/
|
||||
void IgnoreLeftButtonReleaseEvent();
|
||||
|
||||
virtual void OnHotKey( wxDC* aDC, int aHotKey, const wxPoint& aPosition,
|
||||
EDA_ITEM* aItem = NULL );
|
||||
|
||||
|
|
|
@ -494,6 +494,27 @@ void MODULE::DisplayInfo( EDA_DRAW_FRAME* frame )
|
|||
msg.Printf( wxT( "%.1f" ), (float) m_Orient / 10 );
|
||||
frame->AppendMsgPanel( _( "Orient" ), msg, BROWN );
|
||||
|
||||
/* Controls on right side of the dialog */
|
||||
switch( m_Attributs & 255 )
|
||||
{
|
||||
case 0:
|
||||
msg = _("Normal");
|
||||
break;
|
||||
|
||||
case MOD_CMS:
|
||||
msg = _("Insert");
|
||||
break;
|
||||
|
||||
case MOD_VIRTUAL:
|
||||
msg = _("Virtual");
|
||||
break;
|
||||
|
||||
default:
|
||||
msg = wxT("???");
|
||||
break;
|
||||
}
|
||||
frame->AppendMsgPanel( _( "Attrib" ), msg, BROWN );
|
||||
|
||||
frame->AppendMsgPanel( _( "Module" ), m_LibRef, BLUE );
|
||||
|
||||
if( m_3D_Drawings != NULL )
|
||||
|
|
|
@ -1,121 +1,120 @@
|
|||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Mar 19 2012)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dialog_gen_module_position_file_base.h"
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
DIALOG_GEN_MODULE_POSITION_BASE::DIALOG_GEN_MODULE_POSITION_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style )
|
||||
{
|
||||
this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
|
||||
|
||||
m_MainSizer = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
wxBoxSizer* bUpperSizer;
|
||||
bUpperSizer = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
wxBoxSizer* bDirSizer;
|
||||
bDirSizer = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_staticTextDir = new wxStaticText( this, wxID_ANY, _("Output directory:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextDir->Wrap( -1 );
|
||||
bDirSizer->Add( m_staticTextDir, 0, wxEXPAND|wxTOP|wxLEFT, 5 );
|
||||
|
||||
wxBoxSizer* bSizerdirBrowse;
|
||||
bSizerdirBrowse = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
m_outputDirectoryName = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_outputDirectoryName->SetToolTip( _("Target directory for plot files. Can be absolute or relative to the board file location.") );
|
||||
m_outputDirectoryName->SetMinSize( wxSize( 350,-1 ) );
|
||||
|
||||
bSizerdirBrowse->Add( m_outputDirectoryName, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_browseButton = new wxButton( this, wxID_ANY, _("Browse..."), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
bSizerdirBrowse->Add( m_browseButton, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
|
||||
|
||||
|
||||
bDirSizer->Add( bSizerdirBrowse, 1, wxEXPAND, 5 );
|
||||
|
||||
|
||||
bUpperSizer->Add( bDirSizer, 1, 0, 5 );
|
||||
|
||||
|
||||
m_MainSizer->Add( bUpperSizer, 0, wxEXPAND, 5 );
|
||||
|
||||
wxBoxSizer* bSizerOptions;
|
||||
bSizerOptions = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
wxString m_radioBoxUnitsChoices[] = { _("Inches"), _("mm") };
|
||||
int m_radioBoxUnitsNChoices = sizeof( m_radioBoxUnitsChoices ) / sizeof( wxString );
|
||||
m_radioBoxUnits = new wxRadioBox( this, wxID_ANY, _("Units:"), wxDefaultPosition, wxDefaultSize, m_radioBoxUnitsNChoices, m_radioBoxUnitsChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_radioBoxUnits->SetSelection( 0 );
|
||||
bSizerOptions->Add( m_radioBoxUnits, 1, wxALL, 5 );
|
||||
|
||||
wxString m_radioBoxFilesCountChoices[] = { _("One file per side"), _("One file for board") };
|
||||
int m_radioBoxFilesCountNChoices = sizeof( m_radioBoxFilesCountChoices ) / sizeof( wxString );
|
||||
m_radioBoxFilesCount = new wxRadioBox( this, wxID_ANY, _("Files:"), wxDefaultPosition, wxDefaultSize, m_radioBoxFilesCountNChoices, m_radioBoxFilesCountChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_radioBoxFilesCount->SetSelection( 0 );
|
||||
m_radioBoxFilesCount->SetToolTip( _("Creates 2 files: one for each board side or\nCreates only one file containing all footprints to place\n") );
|
||||
|
||||
bSizerOptions->Add( m_radioBoxFilesCount, 1, wxALL, 5 );
|
||||
|
||||
wxString m_radioBoxForceSmdChoices[] = { _("With INSERT attribute set"), _("Force INSERT attribute for all SMD footprints") };
|
||||
int m_radioBoxForceSmdNChoices = sizeof( m_radioBoxForceSmdChoices ) / sizeof( wxString );
|
||||
m_radioBoxForceSmd = new wxRadioBox( this, wxID_ANY, _("Footprints Selection:"), wxDefaultPosition, wxDefaultSize, m_radioBoxForceSmdNChoices, m_radioBoxForceSmdChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_radioBoxForceSmd->SetSelection( 0 );
|
||||
m_radioBoxForceSmd->SetToolTip( _("Only footprints with option INSERT are listed in placement file.\nThis option can force this option for all footprints having only SMD pads.\nWarning: this options will modify the board.") );
|
||||
|
||||
bSizerOptions->Add( m_radioBoxForceSmd, 0, wxALL, 5 );
|
||||
|
||||
|
||||
m_MainSizer->Add( bSizerOptions, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
|
||||
|
||||
wxStaticBoxSizer* sbSizerMsg;
|
||||
sbSizerMsg = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Messages:") ), wxVERTICAL );
|
||||
|
||||
m_messagesBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY );
|
||||
m_messagesBox->SetMinSize( wxSize( -1,70 ) );
|
||||
|
||||
sbSizerMsg->Add( m_messagesBox, 1, wxEXPAND, 5 );
|
||||
|
||||
|
||||
m_MainSizer->Add( sbSizerMsg, 1, wxEXPAND, 5 );
|
||||
|
||||
m_sdbSizerButtons = new wxStdDialogButtonSizer();
|
||||
m_sdbSizerButtonsOK = new wxButton( this, wxID_OK );
|
||||
m_sdbSizerButtons->AddButton( m_sdbSizerButtonsOK );
|
||||
m_sdbSizerButtonsCancel = new wxButton( this, wxID_CANCEL );
|
||||
m_sdbSizerButtons->AddButton( m_sdbSizerButtonsCancel );
|
||||
m_sdbSizerButtons->Realize();
|
||||
|
||||
m_MainSizer->Add( m_sdbSizerButtons, 0, wxEXPAND|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxRIGHT, 5 );
|
||||
|
||||
|
||||
this->SetSizer( m_MainSizer );
|
||||
this->Layout();
|
||||
m_MainSizer->Fit( this );
|
||||
|
||||
this->Centre( wxBOTH );
|
||||
|
||||
// Connect Events
|
||||
this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnClose ) );
|
||||
this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnInitDialog ) );
|
||||
m_browseButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnOutputDirectoryBrowseClicked ), NULL, this );
|
||||
m_sdbSizerButtonsCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnCancelButton ), NULL, this );
|
||||
m_sdbSizerButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnOKButton ), NULL, this );
|
||||
}
|
||||
|
||||
DIALOG_GEN_MODULE_POSITION_BASE::~DIALOG_GEN_MODULE_POSITION_BASE()
|
||||
{
|
||||
// Disconnect Events
|
||||
this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnClose ) );
|
||||
this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnInitDialog ) );
|
||||
m_browseButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnOutputDirectoryBrowseClicked ), NULL, this );
|
||||
m_sdbSizerButtonsCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnCancelButton ), NULL, this );
|
||||
m_sdbSizerButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnOKButton ), NULL, this );
|
||||
|
||||
}
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Apr 10 2012)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "dialog_gen_module_position_file_base.h"
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
DIALOG_GEN_MODULE_POSITION_BASE::DIALOG_GEN_MODULE_POSITION_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style )
|
||||
{
|
||||
this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
|
||||
|
||||
m_MainSizer = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
wxBoxSizer* bUpperSizer;
|
||||
bUpperSizer = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
wxBoxSizer* bDirSizer;
|
||||
bDirSizer = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
m_staticTextDir = new wxStaticText( this, wxID_ANY, _("Output directory:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_staticTextDir->Wrap( -1 );
|
||||
bDirSizer->Add( m_staticTextDir, 0, wxEXPAND|wxTOP|wxLEFT, 5 );
|
||||
|
||||
wxBoxSizer* bSizerdirBrowse;
|
||||
bSizerdirBrowse = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
m_outputDirectoryName = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_outputDirectoryName->SetToolTip( _("Target directory for plot files. Can be absolute or relative to the board file location.") );
|
||||
m_outputDirectoryName->SetMinSize( wxSize( 350,-1 ) );
|
||||
|
||||
bSizerdirBrowse->Add( m_outputDirectoryName, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_browseButton = new wxButton( this, wxID_ANY, _("Browse..."), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
bSizerdirBrowse->Add( m_browseButton, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
|
||||
|
||||
|
||||
bDirSizer->Add( bSizerdirBrowse, 1, wxEXPAND, 5 );
|
||||
|
||||
|
||||
bUpperSizer->Add( bDirSizer, 1, 0, 5 );
|
||||
|
||||
|
||||
m_MainSizer->Add( bUpperSizer, 0, wxEXPAND, 5 );
|
||||
|
||||
wxBoxSizer* bSizerOptions;
|
||||
bSizerOptions = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
wxString m_radioBoxUnitsChoices[] = { _("Inches"), _("mm") };
|
||||
int m_radioBoxUnitsNChoices = sizeof( m_radioBoxUnitsChoices ) / sizeof( wxString );
|
||||
m_radioBoxUnits = new wxRadioBox( this, wxID_ANY, _("Units:"), wxDefaultPosition, wxDefaultSize, m_radioBoxUnitsNChoices, m_radioBoxUnitsChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_radioBoxUnits->SetSelection( 0 );
|
||||
bSizerOptions->Add( m_radioBoxUnits, 1, wxALL, 5 );
|
||||
|
||||
wxString m_radioBoxFilesCountChoices[] = { _("One file per side"), _("One file for board") };
|
||||
int m_radioBoxFilesCountNChoices = sizeof( m_radioBoxFilesCountChoices ) / sizeof( wxString );
|
||||
m_radioBoxFilesCount = new wxRadioBox( this, wxID_ANY, _("Files:"), wxDefaultPosition, wxDefaultSize, m_radioBoxFilesCountNChoices, m_radioBoxFilesCountChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_radioBoxFilesCount->SetSelection( 0 );
|
||||
m_radioBoxFilesCount->SetToolTip( _("Creates 2 files: one for each board side or\nCreates only one file containing all footprints to place\n") );
|
||||
|
||||
bSizerOptions->Add( m_radioBoxFilesCount, 1, wxALL, 5 );
|
||||
|
||||
wxString m_radioBoxForceSmdChoices[] = { _("With INSERT attribute set"), _("Force INSERT attribute for all SMD footprints") };
|
||||
int m_radioBoxForceSmdNChoices = sizeof( m_radioBoxForceSmdChoices ) / sizeof( wxString );
|
||||
m_radioBoxForceSmd = new wxRadioBox( this, wxID_ANY, _("Footprints Selection:"), wxDefaultPosition, wxDefaultSize, m_radioBoxForceSmdNChoices, m_radioBoxForceSmdChoices, 1, wxRA_SPECIFY_COLS );
|
||||
m_radioBoxForceSmd->SetSelection( 0 );
|
||||
m_radioBoxForceSmd->SetToolTip( _("Only footprints with option INSERT are listed in placement file.\nThis option can force this option for all footprints having only SMD pads.\nWarning: this options will modify the board.") );
|
||||
|
||||
bSizerOptions->Add( m_radioBoxForceSmd, 0, wxALL, 5 );
|
||||
|
||||
|
||||
m_MainSizer->Add( bSizerOptions, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
|
||||
|
||||
wxStaticBoxSizer* sbSizerMsg;
|
||||
sbSizerMsg = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Messages:") ), wxVERTICAL );
|
||||
|
||||
m_messagesBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxTE_MULTILINE|wxTE_READONLY );
|
||||
m_messagesBox->SetMinSize( wxSize( -1,150 ) );
|
||||
|
||||
sbSizerMsg->Add( m_messagesBox, 1, wxEXPAND, 5 );
|
||||
|
||||
|
||||
m_MainSizer->Add( sbSizerMsg, 1, wxEXPAND, 5 );
|
||||
|
||||
m_sdbSizerButtons = new wxStdDialogButtonSizer();
|
||||
m_sdbSizerButtonsOK = new wxButton( this, wxID_OK );
|
||||
m_sdbSizerButtons->AddButton( m_sdbSizerButtonsOK );
|
||||
m_sdbSizerButtonsCancel = new wxButton( this, wxID_CANCEL );
|
||||
m_sdbSizerButtons->AddButton( m_sdbSizerButtonsCancel );
|
||||
m_sdbSizerButtons->Realize();
|
||||
|
||||
m_MainSizer->Add( m_sdbSizerButtons, 0, wxEXPAND|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxRIGHT, 5 );
|
||||
|
||||
|
||||
this->SetSizer( m_MainSizer );
|
||||
this->Layout();
|
||||
|
||||
this->Centre( wxBOTH );
|
||||
|
||||
// Connect Events
|
||||
this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnClose ) );
|
||||
this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnInitDialog ) );
|
||||
m_browseButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnOutputDirectoryBrowseClicked ), NULL, this );
|
||||
m_sdbSizerButtonsCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnCancelButton ), NULL, this );
|
||||
m_sdbSizerButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnOKButton ), NULL, this );
|
||||
}
|
||||
|
||||
DIALOG_GEN_MODULE_POSITION_BASE::~DIALOG_GEN_MODULE_POSITION_BASE()
|
||||
{
|
||||
// Disconnect Events
|
||||
this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnClose ) );
|
||||
this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnInitDialog ) );
|
||||
m_browseButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnOutputDirectoryBrowseClicked ), NULL, this );
|
||||
m_sdbSizerButtonsCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnCancelButton ), NULL, this );
|
||||
m_sdbSizerButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnOKButton ), NULL, this );
|
||||
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
<property name="minimum_size">-1,-1</property>
|
||||
<property name="name">DIALOG_GEN_MODULE_POSITION_BASE</property>
|
||||
<property name="pos"></property>
|
||||
<property name="size">-1,-1</property>
|
||||
<property name="size">510,351</property>
|
||||
<property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
|
||||
<property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
|
||||
<property name="title">Position Files:</property>
|
||||
|
@ -717,7 +717,7 @@
|
|||
<property name="maxlength">0</property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size">-1,70</property>
|
||||
<property name="minimum_size">-1,150</property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_messagesBox</property>
|
||||
<property name="pane_border">1</property>
|
||||
|
@ -728,7 +728,7 @@
|
|||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="size">-1,-1</property>
|
||||
<property name="style">wxTE_MULTILINE|wxTE_READONLY</property>
|
||||
<property name="subclass"></property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
|
|
|
@ -1,65 +1,65 @@
|
|||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Mar 19 2012)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __DIALOG_GEN_MODULE_POSITION_FILE_BASE_H__
|
||||
#define __DIALOG_GEN_MODULE_POSITION_FILE_BASE_H__
|
||||
|
||||
#include <wx/artprov.h>
|
||||
#include <wx/xrc/xmlres.h>
|
||||
#include <wx/intl.h>
|
||||
#include "dialog_shim.h"
|
||||
#include <wx/string.h>
|
||||
#include <wx/stattext.h>
|
||||
#include <wx/gdicmn.h>
|
||||
#include <wx/font.h>
|
||||
#include <wx/colour.h>
|
||||
#include <wx/settings.h>
|
||||
#include <wx/textctrl.h>
|
||||
#include <wx/button.h>
|
||||
#include <wx/sizer.h>
|
||||
#include <wx/radiobox.h>
|
||||
#include <wx/statbox.h>
|
||||
#include <wx/dialog.h>
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
/// Class DIALOG_GEN_MODULE_POSITION_BASE
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
class DIALOG_GEN_MODULE_POSITION_BASE : public DIALOG_SHIM
|
||||
{
|
||||
private:
|
||||
|
||||
protected:
|
||||
wxBoxSizer* m_MainSizer;
|
||||
wxStaticText* m_staticTextDir;
|
||||
wxTextCtrl* m_outputDirectoryName;
|
||||
wxButton* m_browseButton;
|
||||
wxRadioBox* m_radioBoxUnits;
|
||||
wxRadioBox* m_radioBoxFilesCount;
|
||||
wxRadioBox* m_radioBoxForceSmd;
|
||||
wxTextCtrl* m_messagesBox;
|
||||
wxStdDialogButtonSizer* m_sdbSizerButtons;
|
||||
wxButton* m_sdbSizerButtonsOK;
|
||||
wxButton* m_sdbSizerButtonsCancel;
|
||||
|
||||
// Virtual event handlers, overide them in your derived class
|
||||
virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
|
||||
virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }
|
||||
virtual void OnOutputDirectoryBrowseClicked( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnCancelButton( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnOKButton( wxCommandEvent& event ) { event.Skip(); }
|
||||
|
||||
|
||||
public:
|
||||
|
||||
DIALOG_GEN_MODULE_POSITION_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Position Files:"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
||||
~DIALOG_GEN_MODULE_POSITION_BASE();
|
||||
|
||||
};
|
||||
|
||||
#endif //__DIALOG_GEN_MODULE_POSITION_FILE_BASE_H__
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Apr 10 2012)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __DIALOG_GEN_MODULE_POSITION_FILE_BASE_H__
|
||||
#define __DIALOG_GEN_MODULE_POSITION_FILE_BASE_H__
|
||||
|
||||
#include <wx/artprov.h>
|
||||
#include <wx/xrc/xmlres.h>
|
||||
#include <wx/intl.h>
|
||||
#include "dialog_shim.h"
|
||||
#include <wx/string.h>
|
||||
#include <wx/stattext.h>
|
||||
#include <wx/gdicmn.h>
|
||||
#include <wx/font.h>
|
||||
#include <wx/colour.h>
|
||||
#include <wx/settings.h>
|
||||
#include <wx/textctrl.h>
|
||||
#include <wx/button.h>
|
||||
#include <wx/sizer.h>
|
||||
#include <wx/radiobox.h>
|
||||
#include <wx/statbox.h>
|
||||
#include <wx/dialog.h>
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
/// Class DIALOG_GEN_MODULE_POSITION_BASE
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
class DIALOG_GEN_MODULE_POSITION_BASE : public DIALOG_SHIM
|
||||
{
|
||||
private:
|
||||
|
||||
protected:
|
||||
wxBoxSizer* m_MainSizer;
|
||||
wxStaticText* m_staticTextDir;
|
||||
wxTextCtrl* m_outputDirectoryName;
|
||||
wxButton* m_browseButton;
|
||||
wxRadioBox* m_radioBoxUnits;
|
||||
wxRadioBox* m_radioBoxFilesCount;
|
||||
wxRadioBox* m_radioBoxForceSmd;
|
||||
wxTextCtrl* m_messagesBox;
|
||||
wxStdDialogButtonSizer* m_sdbSizerButtons;
|
||||
wxButton* m_sdbSizerButtonsOK;
|
||||
wxButton* m_sdbSizerButtonsCancel;
|
||||
|
||||
// Virtual event handlers, overide them in your derived class
|
||||
virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
|
||||
virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }
|
||||
virtual void OnOutputDirectoryBrowseClicked( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnCancelButton( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnOKButton( wxCommandEvent& event ) { event.Skip(); }
|
||||
|
||||
|
||||
public:
|
||||
|
||||
DIALOG_GEN_MODULE_POSITION_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Position Files:"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 510,351 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
||||
~DIALOG_GEN_MODULE_POSITION_BASE();
|
||||
|
||||
};
|
||||
|
||||
#endif //__DIALOG_GEN_MODULE_POSITION_FILE_BASE_H__
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
#define MinimalHeaderKey wxT( "DrillMinHeader" )
|
||||
#define UnitDrillInchKey wxT( "DrillUnit" )
|
||||
#define DrillOriginIsAuxAxisKey wxT( "DrillAuxAxis" )
|
||||
#define DrillMapFileTypeKey wxT( "DrillMapFileType" )
|
||||
|
||||
// list of allowed precision for EXCELLON files, for integer format:
|
||||
// Due to difference between inches and mm,
|
||||
|
@ -98,11 +99,12 @@ DIALOG_GENDRILL::~DIALOG_GENDRILL()
|
|||
|
||||
void DIALOG_GENDRILL::initDialog()
|
||||
{
|
||||
m_config->Read( ZerosFormatKey, &DIALOG_GENDRILL::m_ZerosFormat );
|
||||
m_config->Read( MirrorKey, &DIALOG_GENDRILL::m_Mirror );
|
||||
m_config->Read( MinimalHeaderKey, &DIALOG_GENDRILL::m_MinimalHeader );
|
||||
m_config->Read( UnitDrillInchKey, &DIALOG_GENDRILL::m_UnitDrillIsInch );
|
||||
m_config->Read( DrillOriginIsAuxAxisKey, &DIALOG_GENDRILL::m_DrillOriginIsAuxAxis );
|
||||
m_config->Read( ZerosFormatKey, &m_ZerosFormat );
|
||||
m_config->Read( MirrorKey, &m_Mirror );
|
||||
m_config->Read( MinimalHeaderKey, &m_MinimalHeader );
|
||||
m_config->Read( UnitDrillInchKey, &m_UnitDrillIsInch );
|
||||
m_config->Read( DrillOriginIsAuxAxisKey, &m_DrillOriginIsAuxAxis );
|
||||
m_config->Read( DrillMapFileTypeKey, &m_mapFileType );
|
||||
|
||||
InitDisplayParams();
|
||||
}
|
||||
|
@ -114,20 +116,15 @@ void DIALOG_GENDRILL::InitDisplayParams()
|
|||
|
||||
m_Choice_Unit->SetSelection( m_UnitDrillIsInch ? 1 : 0 );
|
||||
m_Choice_Zeros_Format->SetSelection( m_ZerosFormat );
|
||||
|
||||
UpdatePrecisionOptions();
|
||||
|
||||
m_Check_Minimal->SetValue( m_MinimalHeader );
|
||||
|
||||
if( m_DrillOriginIsAuxAxis )
|
||||
m_Choice_Drill_Offset->SetSelection( 1 );
|
||||
|
||||
m_Check_Mirror->SetValue( m_Mirror );
|
||||
|
||||
m_Choice_Drill_Map->SetSelection( m_mapFileType );
|
||||
|
||||
m_ViaDrillValue->SetLabel( _( "Use Netclasses values" ) );
|
||||
|
||||
m_MicroViaDrillValue->SetLabel( _( "Use Netclasses values" ) );
|
||||
|
||||
// See if we have some buried vias or/and microvias, and display
|
||||
|
@ -171,7 +168,7 @@ void DIALOG_GENDRILL::InitDisplayParams()
|
|||
}
|
||||
else
|
||||
{
|
||||
if( std::min( pad->GetDrillSize().x, pad->GetDrillSize().y ) != 0 )
|
||||
if( pad->GetDrillSize().x != 0 && pad->GetDrillSize().y != 0 )
|
||||
{
|
||||
if( pad->GetAttribute() == PAD_HOLE_NOT_PLATED )
|
||||
m_notplatedPadsHoleCount++;
|
||||
|
@ -217,6 +214,7 @@ void DIALOG_GENDRILL::UpdateConfig()
|
|||
m_config->Write( MinimalHeaderKey, m_MinimalHeader );
|
||||
m_config->Write( UnitDrillInchKey, m_UnitDrillIsInch );
|
||||
m_config->Write( DrillOriginIsAuxAxisKey, m_DrillOriginIsAuxAxis );
|
||||
m_config->Write( DrillMapFileTypeKey, m_mapFileType );
|
||||
}
|
||||
|
||||
|
||||
|
@ -335,7 +333,7 @@ void DIALOG_GENDRILL::SetParams()
|
|||
/**
|
||||
* Function GenDrillAndMapFiles
|
||||
* Calls the functions to create EXCELLON drill files and/or drill map files
|
||||
* >When all holes are through, only one excellon file is created.
|
||||
* >When all holes are through holes, only one excellon file is created.
|
||||
* >When there are some partial holes (some blind or buried vias),
|
||||
* one excellon file is created, for all plated through holes,
|
||||
* and one file per layer pair, which have one or more holes, excluding
|
||||
|
|
|
@ -300,23 +300,23 @@ void DIALOG_PAD_PROPERTIES::initValues()
|
|||
m_PadNetNameCtrl->SetValue( m_dummyPad->GetNetname() );
|
||||
|
||||
// Display current unit name in dialog:
|
||||
m_PadPosX_Unit->SetLabel( GetUnitsLabel( g_UserUnit ) );
|
||||
m_PadPosY_Unit->SetLabel( GetUnitsLabel( g_UserUnit ) );
|
||||
m_PadDrill_X_Unit->SetLabel( GetUnitsLabel( g_UserUnit ) );
|
||||
m_PadDrill_Y_Unit->SetLabel( GetUnitsLabel( g_UserUnit ) );
|
||||
m_PadShapeSizeX_Unit->SetLabel( GetUnitsLabel( g_UserUnit ) );
|
||||
m_PadShapeSizeY_Unit->SetLabel( GetUnitsLabel( g_UserUnit ) );
|
||||
m_PadShapeOffsetX_Unit->SetLabel( GetUnitsLabel( g_UserUnit ) );
|
||||
m_PadShapeOffsetY_Unit->SetLabel( GetUnitsLabel( g_UserUnit ) );
|
||||
m_PadShapeDelta_Unit->SetLabel( GetUnitsLabel( g_UserUnit ) );
|
||||
m_PadLengthDie_Unit->SetLabel( GetUnitsLabel( g_UserUnit ) );
|
||||
m_PadPosX_Unit->SetLabel( GetAbbreviatedUnitsLabel( g_UserUnit ) );
|
||||
m_PadPosY_Unit->SetLabel( GetAbbreviatedUnitsLabel( g_UserUnit ) );
|
||||
m_PadDrill_X_Unit->SetLabel( GetAbbreviatedUnitsLabel( g_UserUnit ) );
|
||||
m_PadDrill_Y_Unit->SetLabel( GetAbbreviatedUnitsLabel( g_UserUnit ) );
|
||||
m_PadShapeSizeX_Unit->SetLabel( GetAbbreviatedUnitsLabel( g_UserUnit ) );
|
||||
m_PadShapeSizeY_Unit->SetLabel( GetAbbreviatedUnitsLabel( g_UserUnit ) );
|
||||
m_PadShapeOffsetX_Unit->SetLabel( GetAbbreviatedUnitsLabel( g_UserUnit ) );
|
||||
m_PadShapeOffsetY_Unit->SetLabel( GetAbbreviatedUnitsLabel( g_UserUnit ) );
|
||||
m_PadShapeDelta_Unit->SetLabel( GetAbbreviatedUnitsLabel( g_UserUnit ) );
|
||||
m_PadLengthDie_Unit->SetLabel( GetAbbreviatedUnitsLabel( g_UserUnit ) );
|
||||
|
||||
// Display current pad masks clearances units
|
||||
m_NetClearanceUnits->SetLabel( GetUnitsLabel( g_UserUnit ) );
|
||||
m_SolderMaskMarginUnits->SetLabel( GetUnitsLabel( g_UserUnit ) );
|
||||
m_SolderPasteMarginUnits->SetLabel( GetUnitsLabel( g_UserUnit ) );
|
||||
m_ThermalWidthUnits->SetLabel( GetUnitsLabel( g_UserUnit ) );
|
||||
m_ThermalGapUnits->SetLabel( GetUnitsLabel( g_UserUnit ) );
|
||||
m_NetClearanceUnits->SetLabel( GetAbbreviatedUnitsLabel( g_UserUnit ) );
|
||||
m_SolderMaskMarginUnits->SetLabel( GetAbbreviatedUnitsLabel( g_UserUnit ) );
|
||||
m_SolderPasteMarginUnits->SetLabel( GetAbbreviatedUnitsLabel( g_UserUnit ) );
|
||||
m_ThermalWidthUnits->SetLabel( GetAbbreviatedUnitsLabel( g_UserUnit ) );
|
||||
m_ThermalGapUnits->SetLabel( GetAbbreviatedUnitsLabel( g_UserUnit ) );
|
||||
|
||||
// Display current pad parameters units:
|
||||
PutValueInLocalUnits( *m_PadPosition_X_Ctrl, m_dummyPad->GetPosition().x );
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,168 +1,167 @@
|
|||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Mar 19 2012)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __DIALOG_PAD_PROPERTIES_BASE_H__
|
||||
#define __DIALOG_PAD_PROPERTIES_BASE_H__
|
||||
|
||||
#include <wx/artprov.h>
|
||||
#include <wx/xrc/xmlres.h>
|
||||
#include <wx/intl.h>
|
||||
#include "dialog_shim.h"
|
||||
#include <wx/string.h>
|
||||
#include <wx/stattext.h>
|
||||
#include <wx/gdicmn.h>
|
||||
#include <wx/font.h>
|
||||
#include <wx/colour.h>
|
||||
#include <wx/settings.h>
|
||||
#include <wx/textctrl.h>
|
||||
#include <wx/choice.h>
|
||||
#include <wx/sizer.h>
|
||||
#include <wx/statbox.h>
|
||||
#include <wx/checkbox.h>
|
||||
#include <wx/panel.h>
|
||||
#include <wx/bitmap.h>
|
||||
#include <wx/image.h>
|
||||
#include <wx/icon.h>
|
||||
#include <wx/notebook.h>
|
||||
#include <wx/button.h>
|
||||
#include <wx/dialog.h>
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
/// Class DIALOG_PAD_PROPERTIES_BASE
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
class DIALOG_PAD_PROPERTIES_BASE : public DIALOG_SHIM
|
||||
{
|
||||
private:
|
||||
|
||||
protected:
|
||||
enum
|
||||
{
|
||||
wxID_DIALOG_EDIT_PAD = 1000,
|
||||
wxID_PADNUMCTRL,
|
||||
wxID_PADNETNAMECTRL
|
||||
};
|
||||
|
||||
wxNotebook* m_notebook1;
|
||||
wxPanel* m_panel2;
|
||||
wxStaticText* m_PadNumText;
|
||||
wxTextCtrl* m_PadNumCtrl;
|
||||
wxStaticText* m_PadNameText;
|
||||
wxTextCtrl* m_PadNetNameCtrl;
|
||||
wxStaticText* m_staticText44;
|
||||
wxChoice* m_PadType;
|
||||
wxStaticText* m_staticText4;
|
||||
wxTextCtrl* m_PadPosition_X_Ctrl;
|
||||
wxStaticText* m_PadPosX_Unit;
|
||||
wxStaticText* m_staticText41;
|
||||
wxTextCtrl* m_PadPosition_Y_Ctrl;
|
||||
wxStaticText* m_PadPosY_Unit;
|
||||
wxStaticText* m_staticText45;
|
||||
wxChoice* m_PadShape;
|
||||
wxStaticText* m_staticText12;
|
||||
wxTextCtrl* m_ShapeSize_X_Ctrl;
|
||||
wxStaticText* m_PadShapeSizeX_Unit;
|
||||
wxStaticText* m_staticText15;
|
||||
wxTextCtrl* m_ShapeSize_Y_Ctrl;
|
||||
wxStaticText* m_PadShapeSizeY_Unit;
|
||||
wxStaticText* m_staticText48;
|
||||
wxChoice* m_PadOrient;
|
||||
wxStaticText* m_staticText491;
|
||||
wxStaticText* m_PadOrientText;
|
||||
wxTextCtrl* m_PadOrientCtrl;
|
||||
wxStaticText* m_customOrientUnits;
|
||||
wxStaticText* m_staticText17;
|
||||
wxTextCtrl* m_ShapeOffset_X_Ctrl;
|
||||
wxStaticText* m_PadShapeOffsetX_Unit;
|
||||
wxStaticText* m_staticText19;
|
||||
wxTextCtrl* m_ShapeOffset_Y_Ctrl;
|
||||
wxStaticText* m_PadShapeOffsetY_Unit;
|
||||
wxStaticText* m_staticText38;
|
||||
wxTextCtrl* m_LengthDieCtrl;
|
||||
wxStaticText* m_PadLengthDie_Unit;
|
||||
wxStaticText* m_staticText21;
|
||||
wxTextCtrl* m_ShapeDelta_Ctrl;
|
||||
wxStaticText* m_PadShapeDelta_Unit;
|
||||
wxStaticText* m_staticText23;
|
||||
wxChoice* m_trapDeltaDirChoice;
|
||||
wxBoxSizer* m_DrillShapeBoxSizer;
|
||||
wxStaticText* m_staticTitleModuleRot;
|
||||
wxStaticText* m_staticModuleRotValue;
|
||||
wxStaticText* m_staticTitleModuleSide;
|
||||
wxStaticText* m_staticModuleSideValue;
|
||||
wxStaticText* m_staticTextWarningPadFlipped;
|
||||
wxStaticText* m_staticText47;
|
||||
wxChoice* m_DrillShapeCtrl;
|
||||
wxStaticText* m_staticText51;
|
||||
wxStaticText* m_textPadDrillX;
|
||||
wxTextCtrl* m_PadDrill_X_Ctrl;
|
||||
wxStaticText* m_PadDrill_X_Unit;
|
||||
wxStaticText* m_textPadDrillY;
|
||||
wxTextCtrl* m_PadDrill_Y_Ctrl;
|
||||
wxStaticText* m_PadDrill_Y_Unit;
|
||||
wxStaticText* m_staticText511;
|
||||
wxChoice* m_rbCopperLayersSel;
|
||||
wxCheckBox* m_PadLayerAdhCmp;
|
||||
wxCheckBox* m_PadLayerAdhCu;
|
||||
wxCheckBox* m_PadLayerPateCmp;
|
||||
wxCheckBox* m_PadLayerPateCu;
|
||||
wxCheckBox* m_PadLayerSilkCmp;
|
||||
wxCheckBox* m_PadLayerSilkCu;
|
||||
wxCheckBox* m_PadLayerMaskCmp;
|
||||
wxCheckBox* m_PadLayerMaskCu;
|
||||
wxCheckBox* m_PadLayerDraft;
|
||||
wxCheckBox* m_PadLayerECO1;
|
||||
wxCheckBox* m_PadLayerECO2;
|
||||
wxPanel* m_panelShowPad;
|
||||
wxPanel* m_localSettingsPanel;
|
||||
wxStaticText* m_staticTextNetClearance;
|
||||
wxTextCtrl* m_NetClearanceValueCtrl;
|
||||
wxStaticText* m_NetClearanceUnits;
|
||||
wxStaticText* m_MaskClearanceTitle;
|
||||
wxTextCtrl* m_SolderMaskMarginCtrl;
|
||||
wxStaticText* m_SolderMaskMarginUnits;
|
||||
wxStaticText* m_staticTextSolderPaste;
|
||||
wxTextCtrl* m_SolderPasteMarginCtrl;
|
||||
wxStaticText* m_SolderPasteMarginUnits;
|
||||
wxStaticText* m_staticTextRatio;
|
||||
wxTextCtrl* m_SolderPasteMarginRatioCtrl;
|
||||
wxStaticText* m_SolderPasteRatioMarginUnits;
|
||||
wxStaticText* m_staticText40;
|
||||
wxChoice* m_ZoneConnectionChoice;
|
||||
wxStaticText* m_staticText43;
|
||||
wxStaticText* m_staticText49;
|
||||
wxTextCtrl* m_ThermalWidthCtrl;
|
||||
wxStaticText* m_ThermalWidthUnits;
|
||||
wxStaticText* m_staticText52;
|
||||
wxTextCtrl* m_ThermalGapCtrl;
|
||||
wxStaticText* m_ThermalGapUnits;
|
||||
wxStaticText* m_staticTextWarning;
|
||||
wxStdDialogButtonSizer* m_sdbSizer1;
|
||||
wxButton* m_sdbSizer1OK;
|
||||
wxButton* m_sdbSizer1Cancel;
|
||||
|
||||
// Virtual event handlers, overide them in your derived class
|
||||
virtual void OnValuesChanged( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void PadTypeSelected( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnPadShapeSelection( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void PadOrientEvent( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnSetLayers( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnDrillShapeSelected( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnPaintShowPanel( wxPaintEvent& event ) { event.Skip(); }
|
||||
virtual void OnCancelButtonClick( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void PadPropertiesAccept( wxCommandEvent& event ) { event.Skip(); }
|
||||
|
||||
|
||||
public:
|
||||
|
||||
DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWindowID id = wxID_DIALOG_EDIT_PAD, const wxString& title = _("Pad Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 857,618 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxSUNKEN_BORDER );
|
||||
~DIALOG_PAD_PROPERTIES_BASE();
|
||||
|
||||
};
|
||||
|
||||
#endif //__DIALOG_PAD_PROPERTIES_BASE_H__
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Apr 10 2012)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __DIALOG_PAD_PROPERTIES_BASE_H__
|
||||
#define __DIALOG_PAD_PROPERTIES_BASE_H__
|
||||
|
||||
#include <wx/artprov.h>
|
||||
#include <wx/xrc/xmlres.h>
|
||||
#include <wx/intl.h>
|
||||
#include "dialog_shim.h"
|
||||
#include <wx/string.h>
|
||||
#include <wx/stattext.h>
|
||||
#include <wx/gdicmn.h>
|
||||
#include <wx/font.h>
|
||||
#include <wx/colour.h>
|
||||
#include <wx/settings.h>
|
||||
#include <wx/textctrl.h>
|
||||
#include <wx/choice.h>
|
||||
#include <wx/sizer.h>
|
||||
#include <wx/statbox.h>
|
||||
#include <wx/checkbox.h>
|
||||
#include <wx/panel.h>
|
||||
#include <wx/bitmap.h>
|
||||
#include <wx/image.h>
|
||||
#include <wx/icon.h>
|
||||
#include <wx/notebook.h>
|
||||
#include <wx/button.h>
|
||||
#include <wx/dialog.h>
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
/// Class DIALOG_PAD_PROPERTIES_BASE
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
class DIALOG_PAD_PROPERTIES_BASE : public DIALOG_SHIM
|
||||
{
|
||||
private:
|
||||
|
||||
protected:
|
||||
enum
|
||||
{
|
||||
wxID_DIALOG_EDIT_PAD = 1000,
|
||||
wxID_PADNUMCTRL,
|
||||
wxID_PADNETNAMECTRL
|
||||
};
|
||||
|
||||
wxNotebook* m_notebook;
|
||||
wxPanel* m_panelGeneral;
|
||||
wxStaticText* m_PadNumText;
|
||||
wxTextCtrl* m_PadNumCtrl;
|
||||
wxStaticText* m_PadNameText;
|
||||
wxTextCtrl* m_PadNetNameCtrl;
|
||||
wxStaticText* m_staticText44;
|
||||
wxChoice* m_PadType;
|
||||
wxStaticText* m_staticText4;
|
||||
wxTextCtrl* m_PadPosition_X_Ctrl;
|
||||
wxStaticText* m_PadPosX_Unit;
|
||||
wxStaticText* m_staticText41;
|
||||
wxTextCtrl* m_PadPosition_Y_Ctrl;
|
||||
wxStaticText* m_PadPosY_Unit;
|
||||
wxStaticText* m_staticText45;
|
||||
wxChoice* m_PadShape;
|
||||
wxStaticText* m_staticText12;
|
||||
wxTextCtrl* m_ShapeSize_X_Ctrl;
|
||||
wxStaticText* m_PadShapeSizeX_Unit;
|
||||
wxStaticText* m_staticText15;
|
||||
wxTextCtrl* m_ShapeSize_Y_Ctrl;
|
||||
wxStaticText* m_PadShapeSizeY_Unit;
|
||||
wxStaticText* m_staticText48;
|
||||
wxChoice* m_PadOrient;
|
||||
wxStaticText* m_staticText491;
|
||||
wxStaticText* m_PadOrientText;
|
||||
wxTextCtrl* m_PadOrientCtrl;
|
||||
wxStaticText* m_customOrientUnits;
|
||||
wxStaticText* m_staticText17;
|
||||
wxTextCtrl* m_ShapeOffset_X_Ctrl;
|
||||
wxStaticText* m_PadShapeOffsetX_Unit;
|
||||
wxStaticText* m_staticText19;
|
||||
wxTextCtrl* m_ShapeOffset_Y_Ctrl;
|
||||
wxStaticText* m_PadShapeOffsetY_Unit;
|
||||
wxStaticText* m_staticText38;
|
||||
wxTextCtrl* m_LengthDieCtrl;
|
||||
wxStaticText* m_PadLengthDie_Unit;
|
||||
wxStaticText* m_staticText21;
|
||||
wxTextCtrl* m_ShapeDelta_Ctrl;
|
||||
wxStaticText* m_PadShapeDelta_Unit;
|
||||
wxStaticText* m_staticText23;
|
||||
wxChoice* m_trapDeltaDirChoice;
|
||||
wxBoxSizer* m_DrillShapeBoxSizer;
|
||||
wxStaticText* m_staticTitleModuleRot;
|
||||
wxStaticText* m_staticModuleRotValue;
|
||||
wxStaticText* m_staticTitleModuleSide;
|
||||
wxStaticText* m_staticModuleSideValue;
|
||||
wxStaticText* m_staticText47;
|
||||
wxChoice* m_DrillShapeCtrl;
|
||||
wxStaticText* m_staticText51;
|
||||
wxStaticText* m_textPadDrillX;
|
||||
wxTextCtrl* m_PadDrill_X_Ctrl;
|
||||
wxStaticText* m_PadDrill_X_Unit;
|
||||
wxStaticText* m_textPadDrillY;
|
||||
wxTextCtrl* m_PadDrill_Y_Ctrl;
|
||||
wxStaticText* m_PadDrill_Y_Unit;
|
||||
wxStaticText* m_staticText511;
|
||||
wxChoice* m_rbCopperLayersSel;
|
||||
wxCheckBox* m_PadLayerAdhCmp;
|
||||
wxCheckBox* m_PadLayerAdhCu;
|
||||
wxCheckBox* m_PadLayerPateCmp;
|
||||
wxCheckBox* m_PadLayerPateCu;
|
||||
wxCheckBox* m_PadLayerSilkCmp;
|
||||
wxCheckBox* m_PadLayerSilkCu;
|
||||
wxCheckBox* m_PadLayerMaskCmp;
|
||||
wxCheckBox* m_PadLayerMaskCu;
|
||||
wxCheckBox* m_PadLayerDraft;
|
||||
wxCheckBox* m_PadLayerECO1;
|
||||
wxCheckBox* m_PadLayerECO2;
|
||||
wxPanel* m_localSettingsPanel;
|
||||
wxStaticText* m_staticTextNetClearance;
|
||||
wxTextCtrl* m_NetClearanceValueCtrl;
|
||||
wxStaticText* m_NetClearanceUnits;
|
||||
wxStaticText* m_MaskClearanceTitle;
|
||||
wxTextCtrl* m_SolderMaskMarginCtrl;
|
||||
wxStaticText* m_SolderMaskMarginUnits;
|
||||
wxStaticText* m_staticTextSolderPaste;
|
||||
wxTextCtrl* m_SolderPasteMarginCtrl;
|
||||
wxStaticText* m_SolderPasteMarginUnits;
|
||||
wxStaticText* m_staticTextRatio;
|
||||
wxTextCtrl* m_SolderPasteMarginRatioCtrl;
|
||||
wxStaticText* m_SolderPasteRatioMarginUnits;
|
||||
wxStaticText* m_staticText40;
|
||||
wxChoice* m_ZoneConnectionChoice;
|
||||
wxStaticText* m_staticText49;
|
||||
wxTextCtrl* m_ThermalWidthCtrl;
|
||||
wxStaticText* m_ThermalWidthUnits;
|
||||
wxStaticText* m_staticText52;
|
||||
wxTextCtrl* m_ThermalGapCtrl;
|
||||
wxStaticText* m_ThermalGapUnits;
|
||||
wxStaticText* m_staticTextWarning;
|
||||
wxPanel* m_panelShowPad;
|
||||
wxStaticText* m_staticTextWarningPadFlipped;
|
||||
wxStdDialogButtonSizer* m_sdbSizer1;
|
||||
wxButton* m_sdbSizer1OK;
|
||||
wxButton* m_sdbSizer1Cancel;
|
||||
|
||||
// Virtual event handlers, overide them in your derived class
|
||||
virtual void OnValuesChanged( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void PadTypeSelected( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnPadShapeSelection( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void PadOrientEvent( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnSetLayers( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnDrillShapeSelected( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnPaintShowPanel( wxPaintEvent& event ) { event.Skip(); }
|
||||
virtual void OnCancelButtonClick( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void PadPropertiesAccept( wxCommandEvent& event ) { event.Skip(); }
|
||||
|
||||
|
||||
public:
|
||||
|
||||
DIALOG_PAD_PROPERTIES_BASE( wxWindow* parent, wxWindowID id = wxID_DIALOG_EDIT_PAD, const wxString& title = _("Pad Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 857,630 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxSUNKEN_BORDER );
|
||||
~DIALOG_PAD_PROPERTIES_BASE();
|
||||
|
||||
};
|
||||
|
||||
#endif //__DIALOG_PAD_PROPERTIES_BASE_H__
|
||||
|
|
|
@ -338,6 +338,18 @@ void PCB_EDIT_FRAME::GenFootprintsPositionFile( wxCommandEvent& event )
|
|||
* aSide = 0 -> Back (bottom) side)
|
||||
* aSide = 1 -> Front (top) side)
|
||||
* aSide = 2 -> both sides
|
||||
*
|
||||
* The format is:
|
||||
* ### Module positions - created on 04/12/2012 15:24:24 ###
|
||||
* ### Printed by Pcbnew version pcbnew (2012-11-30 BZR 3828)-testing
|
||||
* ## Unit = inches, Angle = deg.
|
||||
* ## Side : Front
|
||||
* # Ref Val Package PosX PosY Rot Side
|
||||
* C123 0,1uF/50V SM0603 1.6024 -2.6280 180.0 Front
|
||||
* C124 0,1uF/50V SM0603 1.6063 -2.7579 180.0 Front
|
||||
* C125 0,1uF/50V SM0603 1.6010 -2.8310 180.0 Front
|
||||
* ## End
|
||||
*
|
||||
*/
|
||||
int PCB_EDIT_FRAME::DoGenFootprintsPositionFile( const wxString& aFullFileName,
|
||||
bool aUnitsMM,
|
||||
|
@ -368,7 +380,7 @@ int PCB_EDIT_FRAME::DoGenFootprintsPositionFile( const wxString& aFullFileName,
|
|||
continue;
|
||||
}
|
||||
|
||||
if( ( module->m_Attributs & MOD_CMS ) == 0 )
|
||||
if( ( module->m_Attributs & MOD_CMS ) == 0 )
|
||||
{
|
||||
if( aForceSmdItems ) // true to fix a bunch of mis-labeled modules:
|
||||
{
|
||||
|
@ -385,7 +397,8 @@ int PCB_EDIT_FRAME::DoGenFootprintsPositionFile( const wxString& aFullFileName,
|
|||
continue;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
else
|
||||
continue;
|
||||
}
|
||||
|
||||
moduleCount++;
|
||||
|
@ -402,7 +415,7 @@ int PCB_EDIT_FRAME::DoGenFootprintsPositionFile( const wxString& aFullFileName,
|
|||
// Build and sort the list of modules alphabetically
|
||||
std::vector<LIST_MOD> list;
|
||||
list.reserve(moduleCount);
|
||||
for( module = GetBoard()->m_Modules; module; module = module->Next() )
|
||||
for( module = GetBoard()->m_Modules; module; module = module->Next() )
|
||||
{
|
||||
if( aSide < 2 )
|
||||
{
|
||||
|
@ -425,15 +438,14 @@ int PCB_EDIT_FRAME::DoGenFootprintsPositionFile( const wxString& aFullFileName,
|
|||
list.push_back( item );
|
||||
}
|
||||
|
||||
if( moduleCount > 1 )
|
||||
if( list.size() > 1 )
|
||||
sort( list.begin(), list.end(), sortFPlist );
|
||||
|
||||
wxString frontLayerName = GetBoard()->GetLayerName( LAYER_N_FRONT );
|
||||
wxString backLayerName = GetBoard()->GetLayerName( LAYER_N_BACK );
|
||||
|
||||
// Switch the locale to standard C (needed to print floating point
|
||||
// numbers like 1.3)
|
||||
SetLocaleTo_C_standard( );
|
||||
// Switch the locale to standard C (needed to print floating point numbers)
|
||||
LOCALE_IO toggle;
|
||||
|
||||
// Write file header
|
||||
sprintf( line, "### Module positions - created on %s ###\n", TO_UTF8( DateAndTime() ) );
|
||||
|
@ -459,7 +471,7 @@ int PCB_EDIT_FRAME::DoGenFootprintsPositionFile( const wxString& aFullFileName,
|
|||
const wxString& ref = list[ii].m_Reference;
|
||||
const wxString& val = list[ii].m_Value;
|
||||
const wxString& pkg = list[ii].m_Module->m_LibRef;
|
||||
sprintf( line, "%-8.8s %-16.16s %-16.16s",
|
||||
sprintf( line, "%-8.8s %-16.16s %-16.16s",
|
||||
TO_UTF8( ref ), TO_UTF8( val ), TO_UTF8( pkg ) );
|
||||
|
||||
module_pos = list[ii].m_Module->m_Pos;
|
||||
|
@ -494,8 +506,6 @@ int PCB_EDIT_FRAME::DoGenFootprintsPositionFile( const wxString& aFullFileName,
|
|||
// Write EOF
|
||||
fputs( "## End\n", file );
|
||||
|
||||
SetLocaleTo_Default( ); // revert to the current locale
|
||||
|
||||
fclose( file );
|
||||
return moduleCount;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue