All: Fix an usually unwanted behavior in kicad: When closing a dialog (mainly ERC, DRC and recently a component selection by the library viewer on a double click) the mouse release left button event (which is seen by the parent after closing the dialog, becuse it is actually made in the parent) generate an unwanted command (item selection, component place ...)
This event can be now skipped if needed by calling EDA_DRAW_FRAME::SkipNextLeftButtonReleaseEvent() from the dialog. Very minor other fixes
This commit is contained in:
commit
1671432ac1
|
@ -209,6 +209,20 @@ void EDA_DRAW_FRAME::OnMenuOpen( wxMenuEvent& event )
|
|||
event.Skip();
|
||||
}
|
||||
|
||||
/* function SkipNextLeftButtonReleaseEvent
|
||||
* after calling this function, if the left mouse button
|
||||
* is down, the next left mouse button release event will be ignored.
|
||||
* It is is usefull for instance when closing a dialog on a mouse click,
|
||||
* to skip the next mouse left button release event
|
||||
* by the parent window, because the mouse button
|
||||
* clicked on the dialog is often released in the parent frame,
|
||||
* and therefore creates a left button released mouse event
|
||||
* which can be unwanted in some cases
|
||||
*/
|
||||
void EDA_DRAW_FRAME::SkipNextLeftButtonReleaseEvent()
|
||||
{
|
||||
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,11 @@ void DIALOG_ERC::OnLeftDblClickMarkersList( wxCommandEvent& event )
|
|||
{
|
||||
m_parent->GetScreen()->SetCrossHairPosition( m_lastMarkerFound->m_Pos );
|
||||
m_parent->RedrawScreen( m_lastMarkerFound->m_Pos, true);
|
||||
// prevent a mouse left button release event in
|
||||
// coming from the ERC dialog double click
|
||||
// ( the button is released after closing this dialog and will generate
|
||||
// an unwanted event in parent frame)
|
||||
m_parent->SkipNextLeftButtonReleaseEvent();
|
||||
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,7 @@ 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();
|
||||
((SCH_BASE_FRAME*) GetParent())->SkipNextLeftButtonReleaseEvent();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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,19 @@ public:
|
|||
|
||||
void OnMenuOpen( wxMenuEvent& event );
|
||||
void OnMouseEvent( wxMouseEvent& event );
|
||||
|
||||
/** function SkipNextLeftButtonReleaseEvent
|
||||
* after calling this function, if the left mouse button
|
||||
* is down, the next left mouse button release event will be ignored.
|
||||
* It is is usefull for instance when closing a dialog on a mouse click,
|
||||
* to skip the next mouse left button release event
|
||||
* by the parent window, because the mouse button
|
||||
* clicked on the dialog is often released in the parent frame,
|
||||
* and therefore creates a left button released mouse event
|
||||
* which can be unwanted in some cases
|
||||
*/
|
||||
void SkipNextLeftButtonReleaseEvent();
|
||||
|
||||
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 )
|
||||
|
|
|
@ -347,7 +347,9 @@ void DIALOG_DRC_CONTROL::OnLeftDClickClearance( wxMouseEvent& event )
|
|||
// no destruction so we can preserve listbox cursor
|
||||
Show( false );
|
||||
|
||||
event.StopPropagation(); // still get the popup window.
|
||||
// We do not want the clarification popup window.
|
||||
// when releasing the left button in the main window
|
||||
m_Parent->SkipNextLeftButtonReleaseEvent();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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