Commit ebeb2363 authored by charras's avatar charras
Browse files

eeschema: libedit changes (see changelog)

parent 18b8932b
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -5,6 +5,13 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with
email address.

2008-Aug-11 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+eeschema:
    libedit:
        solved : a bug which can crash eeschema on a double click.
        modified : pin lenght edit in pin edit dialog. The value (handle by spin control) was not editable with recent wxWidgets versions

2008-Aug-09 UPDATE   Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
+6 −9
Original line number Diff line number Diff line
@@ -179,11 +179,9 @@ void WinEDA_LibeditFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
void WinEDA_LibeditFrame::OnLeftDClick( wxDC* DC, const wxPoint& MousePos )
/*************************************************************************/

/* Appel� sur un double click:
 *  pour un �l�ment editable (textes, composant):
 *      appel de l'editeur correspondant.
 *  pour une connexion en cours:
 *      termine la connexion
/* Called on a double click:
 *  If an editable item  (field, pin, graphic):
 *      Call the suitable dialog editor.
 */
{
    wxPoint            pos = GetPosition();
@@ -192,9 +190,8 @@ void WinEDA_LibeditFrame::OnLeftDClick( wxDC* DC, const wxPoint& MousePos )
    if( CurrentLibEntry == NULL )
        return;

    if( !m_ID_current_state    // Simple localisation des elements
       || (DrawEntry == NULL) || (DrawEntry->m_Flags == 0) )
    {
    if( (DrawEntry == NULL) || (DrawEntry->m_Flags == 0) )
    {   // We can locate an item
		DrawEntry = LocatePin( GetScreen()->m_MousePosition, CurrentLibEntry,
                               CurrentUnit, CurrentConvert );
        if( DrawEntry == NULL )
+195 −122
Original line number Diff line number Diff line
@@ -65,6 +65,9 @@ IMPLEMENT_DYNAMIC_CLASS( WinEDA_PinPropertiesFrame, wxDialog )
BEGIN_EVENT_TABLE( WinEDA_PinPropertiesFrame, wxDialog )

////@begin WinEDA_PinPropertiesFrame event table entries
    EVT_SPIN_UP( ID_SPINBUTTON_INC_DEC_PINSIZE, WinEDA_PinPropertiesFrame::OnSpinbuttonIncDecPinsizeUp )
    EVT_SPIN_DOWN( ID_SPINBUTTON_INC_DEC_PINSIZE, WinEDA_PinPropertiesFrame::OnSpinbuttonIncDecPinsizeDown )

    EVT_BUTTON( wxID_CANCEL, WinEDA_PinPropertiesFrame::OnCancelClick )

    EVT_BUTTON( wxID_OK, WinEDA_PinPropertiesFrame::OnOkClick )
@@ -83,96 +86,17 @@ WinEDA_PinPropertiesFrame::WinEDA_PinPropertiesFrame( )

WinEDA_PinPropertiesFrame::WinEDA_PinPropertiesFrame( WinEDA_LibeditFrame* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
{
wxString number;
LibDrawPin * CurrentPin = (LibDrawPin *) CurrentDrawItem;
wxString msg, StringPinNum;
int tmp, ii;

	m_Parent = parent;
	if ( CurrentPin )
	{
		CurrentPin->ReturnPinStringNum(StringPinNum);
		m_Parent->InitEditOnePin();
	}
    Create(parent, id, caption, pos, size, style);

	/* Init dialog pin name and pin name size values */
	if ( CurrentPin ) msg = CurrentPin->m_PinName;
	else msg = wxEmptyString;
	m_PinNameCtrl->SetValue(msg);
	tmp = CurrentPin ? CurrentPin->m_PinNameSize : LastPinNameSize;
	msg = ReturnStringFromValue(g_UnitMetric, tmp, m_Parent->m_InternalUnits);
	m_PinNameSizeCtrl->SetValue(msg);
	msg = m_PinNameSizeText->GetLabel() + ReturnUnitSymbol();
	m_PinNameSizeText->SetLabel(msg);
	/* Init dialog pin num and pin num size values */
	m_PinNumCtrl->SetValue(StringPinNum);
	tmp = CurrentPin ? CurrentPin->m_PinNumSize : LastPinNumSize;
	msg = ReturnStringFromValue(g_UnitMetric, tmp, m_Parent->m_InternalUnits);
	m_PinNumSizeCtrl->SetValue(msg);
	msg = m_PinNumSizeText->GetLabel() + ReturnUnitSymbol();
	m_PinNumSizeText->SetLabel(msg);
	/* init dialog pin size */
	int pinsize = CurrentPin ? CurrentPin->m_PinLen : LastPinSize;
	m_PinSize->SetValue(pinsize);
	/* init pin options */
	if ( CurrentPin )
		{
		if ( CurrentPin->m_Unit == 0 ) m_CommonUnit->SetValue(TRUE);
		}
	else m_CommonUnit->SetValue(LastPinCommonUnit);
	if ( CurrentPin )
		{
		if ( CurrentPin->m_Convert == 0 ) m_CommonConvert->SetValue(TRUE);
		}
	else m_CommonConvert->SetValue(LastPinCommonConvert);
	if ( CurrentPin )
		{
		if ( CurrentPin->m_Attributs & PINNOTDRAW ) m_NoDraw->SetValue(TRUE);
		}
	else m_NoDraw->SetValue(LastPinNoDraw);
		
	tmp = CurrentPin ? CurrentPin->m_Orient : LastPinOrient;
	switch ( tmp )
	{
		case PIN_RIGHT:
			m_PinOrient->SetSelection(0);
			break;

		case PIN_LEFT:
			m_PinOrient->SetSelection(1);
			break;

		case PIN_UP:
			m_PinOrient->SetSelection(2);
			break;

		case PIN_DOWN:
			m_PinOrient->SetSelection(3);
			break;
	}

	tmp = CurrentPin ? CurrentPin->m_PinShape : LastPinShape;
	m_PinShape->SetSelection( 0 );
	for ( ii = 0; ii < NBSHAPES; ii++ )
	{
		if ( CodeShape[ii] == tmp )
		{
			m_PinShape->SetSelection( ii ); break ;
		}
	}
	
	tmp = CurrentPin ? CurrentPin->m_PinShape : LastPinShape;
	m_PinShape->SetSelection( 0 );
	for ( ii = 0; ii < NBSHAPES; ii++ )
	{
		if ( CodeShape[ii] == tmp )
		{
			m_PinShape->SetSelection( ii ); break ;
		}
	}
	
	m_PinElectricalType->SetSelection( CurrentPin ? CurrentPin->m_PinType : LastPinType);
    SetValuesInDialog( );
}

/*!
@@ -184,7 +108,9 @@ bool WinEDA_PinPropertiesFrame::Create( wxWindow* parent, wxWindowID id, const w
////@begin WinEDA_PinPropertiesFrame member initialisation
    m_PinNameCtrl = NULL;
    m_PinNumCtrl = NULL;
    m_PinSize = NULL;
    m_PinSizeCtrl = NULL;
    m_PinSizeIncDecButton = NULL;
    m_PinSizeText = NULL;
    m_CommonUnit = NULL;
    m_CommonConvert = NULL;
    m_NoDraw = NULL;
@@ -221,7 +147,7 @@ void WinEDA_PinPropertiesFrame::CreateControls()
	SetFont(*g_DialogFont);

////@begin WinEDA_PinPropertiesFrame content construction
    // Generated by DialogBlocks, 29/04/2008 21:13:51 (unregistered)
    // Generated by DialogBlocks, 11/08/2008 19:12:48 (unregistered)

    WinEDA_PinPropertiesFrame* itemDialog1 = this;

@@ -234,13 +160,13 @@ void WinEDA_PinPropertiesFrame::CreateControls()
    wxStaticText* itemStaticText4 = new wxStaticText( itemDialog1, wxID_STATIC, _("Pin Name :"), wxDefaultPosition, wxDefaultSize, 0 );
    itemBoxSizer3->Add(itemStaticText4, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);

    m_PinNameCtrl = new wxTextCtrl( itemDialog1, ID_TEXTCTRL, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
    m_PinNameCtrl = new wxTextCtrl( itemDialog1, ID_TEXTCTRL_PINNAME, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
    itemBoxSizer3->Add(m_PinNameCtrl, 0, wxGROW|wxALL, 5);

    wxStaticText* itemStaticText6 = new wxStaticText( itemDialog1, wxID_STATIC, _("Pin Num :"), wxDefaultPosition, wxDefaultSize, 0 );
    itemBoxSizer3->Add(itemStaticText6, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);

    m_PinNumCtrl = new wxTextCtrl( itemDialog1, ID_TEXTCTRL1, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
    m_PinNumCtrl = new wxTextCtrl( itemDialog1, ID_TEXTCTRL_PINNUM, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
    itemBoxSizer3->Add(m_PinNumCtrl, 0, wxGROW|wxALL, 5);

    itemBoxSizer3->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
@@ -250,40 +176,48 @@ void WinEDA_PinPropertiesFrame::CreateControls()
    itemStaticBoxSizer9Static->SetForegroundColour(wxColour(64, 0, 128));
    itemBoxSizer3->Add(itemStaticBoxSizer9, 0, wxGROW|wxALL, 5);

    wxStaticText* itemStaticText10 = new wxStaticText( itemDialog1, wxID_STATIC, _("Pin lenght :"), wxDefaultPosition, wxDefaultSize, 0 );
    itemStaticBoxSizer9->Add(itemStaticText10, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
    wxBoxSizer* itemBoxSizer10 = new wxBoxSizer(wxHORIZONTAL);
    itemStaticBoxSizer9->Add(itemBoxSizer10, 0, wxGROW, 5);

    m_PinSizeCtrl = new wxTextCtrl( itemDialog1, ID_TEXTCTRL_PINSIZE, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
    itemBoxSizer10->Add(m_PinSizeCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);

    m_PinSize = new wxSpinCtrl( itemDialog1, ID_SPINCTRL, _T("0"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2000, 0 );
    itemStaticBoxSizer9->Add(m_PinSize, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
    m_PinSizeIncDecButton = new wxSpinButton( itemDialog1, ID_SPINBUTTON_INC_DEC_PINSIZE, wxDefaultPosition, wxDefaultSize, wxSP_VERTICAL );
    m_PinSizeIncDecButton->SetRange(0, 2000);
    m_PinSizeIncDecButton->SetValue(0);
    itemBoxSizer10->Add(m_PinSizeIncDecButton, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5);

    m_CommonUnit = new wxCheckBox( itemDialog1, ID_CHECKBOX, _("Common to Units"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
    m_PinSizeText = new wxStaticText( itemDialog1, wxID_STATIC, _("Pin Lenght"), wxDefaultPosition, wxDefaultSize, 0 );
    itemStaticBoxSizer9->Add(m_PinSizeText, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);

    m_CommonUnit = new wxCheckBox( itemDialog1, ID_CHECKBOX_COMMON_UNITS, _("Common to Units"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
    m_CommonUnit->SetValue(false);
    itemStaticBoxSizer9->Add(m_CommonUnit, 0, wxALIGN_LEFT|wxALL, 5);

    m_CommonConvert = new wxCheckBox( itemDialog1, ID_CHECKBOX1, _("Common to convert"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
    m_CommonConvert = new wxCheckBox( itemDialog1, ID_CHECKBOX_COMMON_CONVERT, _("Common to convert"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
    m_CommonConvert->SetValue(false);
    itemStaticBoxSizer9->Add(m_CommonConvert, 0, wxALIGN_LEFT|wxALL, 5);

    m_NoDraw = new wxCheckBox( itemDialog1, ID_CHECKBOX2, _("No Draw"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
    m_NoDraw = new wxCheckBox( itemDialog1, ID_CHECKBOX_NOT_DRAWN, _("No Draw"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );
    m_NoDraw->SetValue(false);
    itemStaticBoxSizer9->Add(m_NoDraw, 0, wxALIGN_LEFT|wxALL, 5);

    wxBoxSizer* itemBoxSizer15 = new wxBoxSizer(wxVERTICAL);
    itemBoxSizer2->Add(itemBoxSizer15, 0, wxGROW|wxALL, 5);
    wxBoxSizer* itemBoxSizer17 = new wxBoxSizer(wxVERTICAL);
    itemBoxSizer2->Add(itemBoxSizer17, 0, wxGROW|wxALL, 5);

    m_PinNameSizeText = new wxStaticText( itemDialog1, wxID_STATIC, _("Size"), wxDefaultPosition, wxDefaultSize, 0 );
    itemBoxSizer15->Add(m_PinNameSizeText, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
    itemBoxSizer17->Add(m_PinNameSizeText, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);

    m_PinNameSizeCtrl = new wxTextCtrl( itemDialog1, ID_TEXTCTRL2, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
    itemBoxSizer15->Add(m_PinNameSizeCtrl, 0, wxALIGN_LEFT|wxALL, 5);
    m_PinNameSizeCtrl = new wxTextCtrl( itemDialog1, ID_TEXTCTRL_PINNAME_SIZE, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
    itemBoxSizer17->Add(m_PinNameSizeCtrl, 0, wxALIGN_LEFT|wxALL, 5);

    m_PinNumSizeText = new wxStaticText( itemDialog1, wxID_STATIC, _("Size"), wxDefaultPosition, wxDefaultSize, 0 );
    itemBoxSizer15->Add(m_PinNumSizeText, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
    itemBoxSizer17->Add(m_PinNumSizeText, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);

    m_PinNumSizeCtrl = new wxTextCtrl( itemDialog1, ID_TEXTCTRL3, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
    itemBoxSizer15->Add(m_PinNumSizeCtrl, 0, wxALIGN_LEFT|wxALL, 5);
    m_PinNumSizeCtrl = new wxTextCtrl( itemDialog1, ID_TEXTCTRL_PINNUM_SIZE, _T(""), wxDefaultPosition, wxDefaultSize, 0 );
    itemBoxSizer17->Add(m_PinNumSizeCtrl, 0, wxALIGN_LEFT|wxALL, 5);

    itemBoxSizer15->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
    itemBoxSizer17->Add(5, 5, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);

    wxArrayString m_PinOrientStrings;
    m_PinOrientStrings.Add(_("Right"));
@@ -293,25 +227,25 @@ void WinEDA_PinPropertiesFrame::CreateControls()
    m_PinOrient = new wxRadioBox( itemDialog1, ID_RADIOBOX, _("Pin Orient:"), wxDefaultPosition, wxDefaultSize, m_PinOrientStrings, 1, wxRA_SPECIFY_COLS );
    m_PinOrient->SetSelection(0);
    m_PinOrient->SetForegroundColour(wxColour(41, 84, 84));
    itemBoxSizer15->Add(m_PinOrient, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
    itemBoxSizer17->Add(m_PinOrient, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);

    wxBoxSizer* itemBoxSizer22 = new wxBoxSizer(wxVERTICAL);
    itemBoxSizer2->Add(itemBoxSizer22, 0, wxGROW|wxALL, 5);
    wxBoxSizer* itemBoxSizer24 = new wxBoxSizer(wxVERTICAL);
    itemBoxSizer2->Add(itemBoxSizer24, 0, wxGROW|wxALL, 5);

    wxBoxSizer* itemBoxSizer23 = new wxBoxSizer(wxHORIZONTAL);
    itemBoxSizer22->Add(itemBoxSizer23, 0, wxGROW|wxALL, 5);
    wxBoxSizer* itemBoxSizer25 = new wxBoxSizer(wxHORIZONTAL);
    itemBoxSizer24->Add(itemBoxSizer25, 0, wxGROW|wxALL, 5);

    m_btClose = new wxButton( itemDialog1, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
    m_btClose->SetForegroundColour(wxColour(0, 0, 160));
    itemBoxSizer23->Add(m_btClose, 0, wxGROW|wxALL, 5);
    itemBoxSizer25->Add(m_btClose, 0, wxGROW|wxALL, 5);

    wxButton* itemButton25 = new wxButton( itemDialog1, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
    itemButton25->SetDefault();
    itemButton25->SetForegroundColour(wxColour(198, 0, 0));
    itemBoxSizer23->Add(itemButton25, 0, wxGROW|wxALL, 5);
    wxButton* itemButton27 = new wxButton( itemDialog1, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
    itemButton27->SetDefault();
    itemButton27->SetForegroundColour(wxColour(198, 0, 0));
    itemBoxSizer25->Add(itemButton27, 0, wxGROW|wxALL, 5);

    wxBoxSizer* itemBoxSizer26 = new wxBoxSizer(wxHORIZONTAL);
    itemBoxSizer22->Add(itemBoxSizer26, 0, wxGROW|wxALL, 5);
    wxBoxSizer* itemBoxSizer28 = new wxBoxSizer(wxHORIZONTAL);
    itemBoxSizer24->Add(itemBoxSizer28, 0, wxGROW|wxALL, 5);

    wxArrayString m_PinShapeStrings;
    m_PinShapeStrings.Add(_("line"));
@@ -324,7 +258,7 @@ void WinEDA_PinPropertiesFrame::CreateControls()
    m_PinShape = new wxRadioBox( itemDialog1, ID_RADIOBOX1, _("Pin Shape:"), wxDefaultPosition, wxDefaultSize, m_PinShapeStrings, 1, wxRA_SPECIFY_COLS );
    m_PinShape->SetSelection(0);
    m_PinShape->SetForegroundColour(wxColour(0, 64, 0));
    itemBoxSizer26->Add(m_PinShape, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
    itemBoxSizer28->Add(m_PinShape, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);

    wxArrayString m_PinElectricalTypeStrings;
    m_PinElectricalTypeStrings.Add(_("Input"));
@@ -340,7 +274,7 @@ void WinEDA_PinPropertiesFrame::CreateControls()
    m_PinElectricalType = new wxRadioBox( itemDialog1, ID_RADIOBOX2, _("Electrical Type:"), wxDefaultPosition, wxDefaultSize, m_PinElectricalTypeStrings, 1, wxRA_SPECIFY_COLS );
    m_PinElectricalType->SetSelection(0);
    m_PinElectricalType->SetForegroundColour(wxColour(68, 68, 34));
    itemBoxSizer26->Add(m_PinElectricalType, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
    itemBoxSizer28->Add(m_PinElectricalType, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);

////@end WinEDA_PinPropertiesFrame content construction

@@ -400,4 +334,143 @@ void WinEDA_PinPropertiesFrame::OnCancelClick( wxCommandEvent& event )
	EndModal(0);
}

/*******************************************************/
void WinEDA_PinPropertiesFrame::SetValuesInDialog(void)
/*******************************************************/
{
    wxString number;
    LibDrawPin * CurrentPin = (LibDrawPin *) CurrentDrawItem;
    wxString msg;
    int tmp, ii;

    // Init values and texts for pin name:
	if ( CurrentPin ) msg = CurrentPin->m_PinName;
	else msg = wxEmptyString;
	m_PinNameCtrl->SetValue(msg);
	tmp = CurrentPin ? CurrentPin->m_PinNameSize : LastPinNameSize;
	msg = ReturnStringFromValue(g_UnitMetric, tmp, m_Parent->m_InternalUnits);
	m_PinNameSizeCtrl->SetValue(msg);
	msg = m_PinNameSizeText->GetLabel() + ReturnUnitSymbol();
	m_PinNameSizeText->SetLabel(msg);

	/* Init dialog pin num and pin num size values */
	if ( CurrentPin ) CurrentPin->ReturnPinStringNum(msg);
	else msg = wxEmptyString;
	m_PinNumCtrl->SetValue(msg);
	tmp = CurrentPin ? CurrentPin->m_PinNumSize : LastPinNumSize;
	msg = ReturnStringFromValue(g_UnitMetric, tmp, m_Parent->m_InternalUnits);
	m_PinNumSizeCtrl->SetValue(msg);
	msg = m_PinNumSizeText->GetLabel() + ReturnUnitSymbol();
	m_PinNumSizeText->SetLabel(msg);

	/* init dialog pin size */
	msg = m_PinSizeText->GetLabel() + ReturnUnitSymbol();
	m_PinSizeText->SetLabel(msg);

    int pinsize = CurrentPin ? CurrentPin->m_PinLen : LastPinSize;
	msg = ReturnStringFromValue(g_UnitMetric, pinsize, m_Parent->m_InternalUnits);
	m_PinSizeCtrl->SetValue(msg);
    m_PinSizeIncDecButton->SetValue(pinsize);

    /* init pin options */
	if ( CurrentPin )
		{
		if ( CurrentPin->m_Unit == 0 ) m_CommonUnit->SetValue(TRUE);
		}
	else m_CommonUnit->SetValue(LastPinCommonUnit);
	if ( CurrentPin )
		{
		if ( CurrentPin->m_Convert == 0 ) m_CommonConvert->SetValue(TRUE);
		}
	else m_CommonConvert->SetValue(LastPinCommonConvert);
	if ( CurrentPin )
		{
		if ( CurrentPin->m_Attributs & PINNOTDRAW ) m_NoDraw->SetValue(TRUE);
		}
	else m_NoDraw->SetValue(LastPinNoDraw);

	tmp = CurrentPin ? CurrentPin->m_Orient : LastPinOrient;
	switch ( tmp )
	{
		case PIN_RIGHT:
			m_PinOrient->SetSelection(0);
			break;

		case PIN_LEFT:
			m_PinOrient->SetSelection(1);
			break;

		case PIN_UP:
			m_PinOrient->SetSelection(2);
			break;

		case PIN_DOWN:
			m_PinOrient->SetSelection(3);
			break;
	}

	tmp = CurrentPin ? CurrentPin->m_PinShape : LastPinShape;
	m_PinShape->SetSelection( 0 );
	for ( ii = 0; ii < NBSHAPES; ii++ )
	{
		if ( CodeShape[ii] == tmp )
		{
			m_PinShape->SetSelection( ii ); break ;
		}
	}

	tmp = CurrentPin ? CurrentPin->m_PinShape : LastPinShape;
	m_PinShape->SetSelection( 0 );
	for ( ii = 0; ii < NBSHAPES; ii++ )
	{
		if ( CodeShape[ii] == tmp )
		{
			m_PinShape->SetSelection( ii ); break ;
		}
	}

	m_PinElectricalType->SetSelection( CurrentPin ? CurrentPin->m_PinType : LastPinType);
}


/*!
 * wxEVT_SCROLL_LINEUP event handler for ID_SPINBUTTON_INC_DEC_PINSIZE
 */

void WinEDA_PinPropertiesFrame::OnSpinbuttonIncDecPinsizeUp( wxSpinEvent& event )
{
int pinsize;
wxString msg;

    // Get the new value, which can be edited by hand, so the value can not match the spin button value
    msg = m_PinSizeCtrl->GetValue();
    pinsize   = ReturnValueFromString( g_UnitMetric, msg, m_Parent->m_InternalUnits );
    pinsize += 10;
    if ( pinsize < 0 ) pinsize = 0;
    if ( pinsize > 2000 ) pinsize = 2000;
	msg = ReturnStringFromValue(g_UnitMetric, pinsize, m_Parent->m_InternalUnits);
	m_PinSizeCtrl->SetValue(msg);
    m_PinSizeIncDecButton->SetValue(pinsize);
}


/*!
 * wxEVT_SCROLL_LINEDOWN event handler for ID_SPINBUTTON_INC_DEC_PINSIZE
 */

void WinEDA_PinPropertiesFrame::OnSpinbuttonIncDecPinsizeDown( wxSpinEvent& event )
{
int pinsize;
wxString msg;

    // Get the new value, which can be edited by hand, so the value can not match the spin button value
    msg = m_PinSizeCtrl->GetValue();
    pinsize   = ReturnValueFromString( g_UnitMetric, msg, m_Parent->m_InternalUnits );
    pinsize -= 10;
    if ( pinsize < 0 ) pinsize = 0;
    if ( pinsize > 2000 ) pinsize = 2000;
	msg = ReturnStringFromValue(g_UnitMetric, pinsize, m_Parent->m_InternalUnits);
	m_PinSizeCtrl->SetValue(msg);
    m_PinSizeIncDecButton->SetValue(pinsize);
}
+26 −16
Original line number Diff line number Diff line
@@ -33,7 +33,7 @@
#include "protos.h"

////@begin includes
#include "wx/spinctrl.h"
#include "wx/spinbutt.h"
////@end includes

/*!
@@ -41,7 +41,7 @@
 */

////@begin forward declarations
class wxSpinCtrl;
class wxSpinButton;
////@end forward declarations

/*!
@@ -50,14 +50,15 @@ class wxSpinCtrl;

////@begin control identifiers
#define ID_DIALOG 10000
#define ID_TEXTCTRL 10001
#define ID_TEXTCTRL1 10002
#define ID_SPINCTRL 10003
#define ID_CHECKBOX 10004
#define ID_CHECKBOX1 10005
#define ID_CHECKBOX2 10006
#define ID_TEXTCTRL2 10007
#define ID_TEXTCTRL3 10008
#define ID_TEXTCTRL_PINNAME 10001
#define ID_TEXTCTRL_PINNUM 10002
#define ID_TEXTCTRL_PINSIZE 10003
#define ID_SPINBUTTON_INC_DEC_PINSIZE 10010
#define ID_CHECKBOX_COMMON_UNITS 10004
#define ID_CHECKBOX_COMMON_CONVERT 10005
#define ID_CHECKBOX_NOT_DRAWN 10006
#define ID_TEXTCTRL_PINNAME_SIZE 10007
#define ID_TEXTCTRL_PINNUM_SIZE 10008
#define ID_RADIOBOX 10009
#define ID_RADIOBOX1 10012
#define ID_RADIOBOX2 10013
@@ -98,6 +99,12 @@ public:

////@begin WinEDA_PinPropertiesFrame event handler declarations

    /// wxEVT_SCROLL_LINEUP event handler for ID_SPINBUTTON_INC_DEC_PINSIZE
    void OnSpinbuttonIncDecPinsizeUp( wxSpinEvent& event );

    /// wxEVT_SCROLL_LINEDOWN event handler for ID_SPINBUTTON_INC_DEC_PINSIZE
    void OnSpinbuttonIncDecPinsizeDown( wxSpinEvent& event );

    /// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
    void OnCancelClick( wxCommandEvent& event );

@@ -118,6 +125,7 @@ public:
    /// Should we show tooltips?
    static bool ShowToolTips();

    void SetValuesInDialog(void);
	void PinPropertiesAccept(wxCommandEvent& event);
	void SetPinName(const wxString & newname, int newsize);
	void SetPinNum(const wxString & newnum, int newsize);
@@ -130,7 +138,9 @@ public:
////@begin WinEDA_PinPropertiesFrame member variables
    wxTextCtrl* m_PinNameCtrl;
    wxTextCtrl* m_PinNumCtrl;
    wxSpinCtrl* m_PinSize;
    wxTextCtrl* m_PinSizeCtrl;
    wxSpinButton* m_PinSizeIncDecButton;
    wxStaticText* m_PinSizeText;
    wxCheckBox* m_CommonUnit;
    wxCheckBox* m_CommonConvert;
    wxCheckBox* m_NoDraw;
+199 −91

File changed.

Preview size limit exceeded, changes collapsed.

Loading