Enum refactoring and shiny icons in dialog_lib_edit_pin_table
This commit is contained in:
parent
a0fd827986
commit
4b103baa3a
|
@ -13,6 +13,7 @@ include_directories( BEFORE ${INC_BEFORE} )
|
||||||
include_directories(
|
include_directories(
|
||||||
./dialogs
|
./dialogs
|
||||||
./netlist_exporters
|
./netlist_exporters
|
||||||
|
./widgets
|
||||||
../common
|
../common
|
||||||
../common/dialogs
|
../common/dialogs
|
||||||
${INC_AFTER}
|
${INC_AFTER}
|
||||||
|
@ -72,6 +73,8 @@ set( EESCHEMA_DLGS
|
||||||
|
|
||||||
set( EESCHEMA_WIDGETS
|
set( EESCHEMA_WIDGETS
|
||||||
widgets/widget_eeschema_color_config.cpp
|
widgets/widget_eeschema_color_config.cpp
|
||||||
|
widgets/pin_shape_combobox.cpp
|
||||||
|
widgets/pin_type_combobox.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -137,6 +140,8 @@ set( EESCHEMA_SRCS
|
||||||
operations_on_items_lists.cpp
|
operations_on_items_lists.cpp
|
||||||
pinedit.cpp
|
pinedit.cpp
|
||||||
pin_number.cpp
|
pin_number.cpp
|
||||||
|
pin_shape.cpp
|
||||||
|
pin_type.cpp
|
||||||
plot_schematic_DXF.cpp
|
plot_schematic_DXF.cpp
|
||||||
plot_schematic_HPGL.cpp
|
plot_schematic_HPGL.cpp
|
||||||
plot_schematic_PS.cpp
|
plot_schematic_PS.cpp
|
||||||
|
|
|
@ -301,7 +301,8 @@ void DIALOG_LABEL_EDITOR::TextPropertiesAccept( wxCommandEvent& aEvent )
|
||||||
m_CurrentText->SetSize( wxSize( value, value ) );
|
m_CurrentText->SetSize( wxSize( value, value ) );
|
||||||
|
|
||||||
if( m_TextShape )
|
if( m_TextShape )
|
||||||
m_CurrentText->SetShape( m_TextShape->GetSelection() );
|
/// @todo move cast to widget
|
||||||
|
m_CurrentText->SetShape( static_cast<TypeSheetLabel>( m_TextShape->GetSelection() ) );
|
||||||
|
|
||||||
int style = m_TextStyle->GetSelection();
|
int style = m_TextStyle->GetSelection();
|
||||||
|
|
||||||
|
|
|
@ -49,8 +49,8 @@
|
||||||
#include <erc.h>
|
#include <erc.h>
|
||||||
#include <id.h>
|
#include <id.h>
|
||||||
|
|
||||||
extern int DiagErc[PIN_NMAX][PIN_NMAX];
|
extern int DiagErc[PINTYPE_COUNT][PINTYPE_COUNT];
|
||||||
extern int DefaultDiagErc[PIN_NMAX][PIN_NMAX];
|
extern int DefaultDiagErc[PINTYPE_COUNT][PINTYPE_COUNT];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ bool DIALOG_ERC::m_tstUniqueGlobalLabels = true; // saved only for the curren
|
||||||
#define ID_MATRIX_0 1800
|
#define ID_MATRIX_0 1800
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE( DIALOG_ERC, DIALOG_ERC_BASE )
|
BEGIN_EVENT_TABLE( DIALOG_ERC, DIALOG_ERC_BASE )
|
||||||
EVT_COMMAND_RANGE( ID_MATRIX_0, ID_MATRIX_0 + ( PIN_NMAX * PIN_NMAX ) - 1,
|
EVT_COMMAND_RANGE( ID_MATRIX_0, ID_MATRIX_0 + ( PINTYPE_COUNT * PINTYPE_COUNT ) - 1,
|
||||||
wxEVT_COMMAND_BUTTON_CLICKED, DIALOG_ERC::ChangeErrorLevel )
|
wxEVT_COMMAND_BUTTON_CLICKED, DIALOG_ERC::ChangeErrorLevel )
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
|
@ -91,9 +91,9 @@ void DIALOG_ERC::Init()
|
||||||
{
|
{
|
||||||
m_initialized = false;
|
m_initialized = false;
|
||||||
|
|
||||||
for( int ii = 0; ii < PIN_NMAX; ii++ )
|
for( int ii = 0; ii < PINTYPE_COUNT; ii++ )
|
||||||
{
|
{
|
||||||
for( int jj = 0; jj < PIN_NMAX; jj++ )
|
for( int jj = 0; jj < PINTYPE_COUNT; jj++ )
|
||||||
m_buttonList[ii][jj] = NULL;
|
m_buttonList[ii][jj] = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -290,7 +290,7 @@ void DIALOG_ERC::ReBuildMatrixPanel()
|
||||||
if( m_initialized == false )
|
if( m_initialized == false )
|
||||||
{
|
{
|
||||||
// Print row labels
|
// Print row labels
|
||||||
for( int ii = 0; ii < PIN_NMAX; ii++ )
|
for( int ii = 0; ii < PINTYPE_COUNT; ii++ )
|
||||||
{
|
{
|
||||||
int y = pos.y + (ii * bitmap_size.y);
|
int y = pos.y + (ii * bitmap_size.y);
|
||||||
text = new wxStaticText( m_matrixPanel, -1, CommentERC_H[ii],
|
text = new wxStaticText( m_matrixPanel, -1, CommentERC_H[ii],
|
||||||
|
@ -305,7 +305,7 @@ void DIALOG_ERC::ReBuildMatrixPanel()
|
||||||
else
|
else
|
||||||
pos = m_buttonList[0][0]->GetPosition();
|
pos = m_buttonList[0][0]->GetPosition();
|
||||||
|
|
||||||
for( int ii = 0; ii < PIN_NMAX; ii++ )
|
for( int ii = 0; ii < PINTYPE_COUNT; ii++ )
|
||||||
{
|
{
|
||||||
int y = pos.y + (ii * bitmap_size.y);
|
int y = pos.y + (ii * bitmap_size.y);
|
||||||
|
|
||||||
|
@ -323,7 +323,7 @@ void DIALOG_ERC::ReBuildMatrixPanel()
|
||||||
text = new wxStaticText( m_matrixPanel, -1, CommentERC_V[ii], txtpos );
|
text = new wxStaticText( m_matrixPanel, -1, CommentERC_V[ii], txtpos );
|
||||||
}
|
}
|
||||||
|
|
||||||
int event_id = ID_MATRIX_0 + ii + ( jj * PIN_NMAX );
|
int event_id = ID_MATRIX_0 + ii + ( jj * PINTYPE_COUNT );
|
||||||
BITMAP_DEF bitmap_butt = erc_green_xpm;
|
BITMAP_DEF bitmap_butt = erc_green_xpm;
|
||||||
|
|
||||||
delete m_buttonList[ii][jj];
|
delete m_buttonList[ii][jj];
|
||||||
|
@ -420,7 +420,7 @@ void DIALOG_ERC::ChangeErrorLevel( wxCommandEvent& event )
|
||||||
wxBitmapButton* butt = (wxBitmapButton*) event.GetEventObject();
|
wxBitmapButton* butt = (wxBitmapButton*) event.GetEventObject();
|
||||||
pos = butt->GetPosition();
|
pos = butt->GetPosition();
|
||||||
|
|
||||||
x = ii / PIN_NMAX; y = ii % PIN_NMAX;
|
x = ii / PINTYPE_COUNT; y = ii % PINTYPE_COUNT;
|
||||||
|
|
||||||
level = DiagErc[y][x];
|
level = DiagErc[y][x];
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
#include <wx/htmllbox.h>
|
#include <wx/htmllbox.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <lib_pin.h> // For PIN_NMAX definition
|
#include <lib_pin.h> // For PINTYPE_COUNT definition
|
||||||
|
|
||||||
#include <dialog_erc_base.h>
|
#include <dialog_erc_base.h>
|
||||||
#include "dialog_erc_listbox.h"
|
#include "dialog_erc_listbox.h"
|
||||||
|
@ -40,7 +40,7 @@ class DIALOG_ERC : public DIALOG_ERC_BASE
|
||||||
|
|
||||||
private:
|
private:
|
||||||
SCH_EDIT_FRAME* m_parent;
|
SCH_EDIT_FRAME* m_parent;
|
||||||
wxBitmapButton* m_buttonList[PIN_NMAX][PIN_NMAX];
|
wxBitmapButton* m_buttonList[PINTYPE_COUNT][PINTYPE_COUNT];
|
||||||
bool m_initialized;
|
bool m_initialized;
|
||||||
const SCH_MARKER* m_lastMarkerFound;
|
const SCH_MARKER* m_lastMarkerFound;
|
||||||
static bool m_writeErcFile;
|
static bool m_writeErcFile;
|
||||||
|
|
|
@ -133,7 +133,7 @@ void DIALOG_LIB_EDIT_PIN::OnPropertiesChange( wxCommandEvent& event )
|
||||||
int pinNumSize = ValueFromString( g_UserUnit, GetPadNameTextSize());
|
int pinNumSize = ValueFromString( g_UserUnit, GetPadNameTextSize());
|
||||||
int pinOrient = LIB_PIN::GetOrientationCode( GetOrientation() );
|
int pinOrient = LIB_PIN::GetOrientationCode( GetOrientation() );
|
||||||
int pinLength = ValueFromString( g_UserUnit, GetLength() );
|
int pinLength = ValueFromString( g_UserUnit, GetLength() );
|
||||||
int pinShape = LIB_PIN::GetStyleCode( GetStyle() );
|
GRAPHIC_PINSHAPE pinShape = GetStyle();
|
||||||
ELECTRICAL_PINTYPE pinType = GetElectricalType();
|
ELECTRICAL_PINTYPE pinType = GetElectricalType();
|
||||||
|
|
||||||
m_dummyPin->SetName( GetPinName() );
|
m_dummyPin->SetName( GetPinName() );
|
||||||
|
@ -161,28 +161,3 @@ void DIALOG_LIB_EDIT_PIN::SetOrientationList( const wxArrayString& list,
|
||||||
m_choiceOrientation->Insert( list[ii], KiBitmap( aBitmaps[ii] ), ii );
|
m_choiceOrientation->Insert( list[ii], KiBitmap( aBitmaps[ii] ), ii );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void DIALOG_LIB_EDIT_PIN::SetElectricalTypeList( const wxArrayString& list,
|
|
||||||
const BITMAP_DEF* aBitmaps )
|
|
||||||
{
|
|
||||||
for ( unsigned ii = 0; ii < list.GetCount(); ii++ )
|
|
||||||
{
|
|
||||||
if( aBitmaps == NULL )
|
|
||||||
m_choiceElectricalType->Append( list[ii] );
|
|
||||||
else
|
|
||||||
m_choiceElectricalType->Insert( list[ii], KiBitmap( aBitmaps[ii] ), ii );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void DIALOG_LIB_EDIT_PIN::SetStyleList( const wxArrayString& list, const BITMAP_DEF* aBitmaps )
|
|
||||||
{
|
|
||||||
for ( unsigned ii = 0; ii < list.GetCount(); ii++ )
|
|
||||||
{
|
|
||||||
if( aBitmaps == NULL )
|
|
||||||
m_choiceStyle->Append( list[ii] );
|
|
||||||
else
|
|
||||||
m_choiceStyle->Insert( list[ii], KiBitmap( aBitmaps[ii] ), ii );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -31,6 +31,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <wx/bmpcbox.h>
|
#include <wx/bmpcbox.h>
|
||||||
|
#include <pin_shape_combobox.h>
|
||||||
|
#include <pin_type_combobox.h>
|
||||||
|
|
||||||
#include <dialog_lib_edit_pin_base.h>
|
#include <dialog_lib_edit_pin_base.h>
|
||||||
|
|
||||||
|
@ -59,22 +61,18 @@ public:
|
||||||
}
|
}
|
||||||
int GetOrientation( void ) { return m_choiceOrientation->GetSelection(); }
|
int GetOrientation( void ) { return m_choiceOrientation->GetSelection(); }
|
||||||
|
|
||||||
void SetElectricalTypeList( const wxArrayString& list, const BITMAP_DEF* aBitmaps );
|
void SetElectricalType( ELECTRICAL_PINTYPE type )
|
||||||
void SetElectricalType( int type )
|
|
||||||
{
|
{
|
||||||
m_choiceElectricalType->SetSelection( type );
|
m_choiceElectricalType->SetSelection( type );
|
||||||
}
|
}
|
||||||
|
|
||||||
ELECTRICAL_PINTYPE GetElectricalType( void )
|
ELECTRICAL_PINTYPE GetElectricalType( void )
|
||||||
{
|
{
|
||||||
// m_choiceElectricalType is expected having the eletrical type names
|
return m_choiceElectricalType->GetSelection();
|
||||||
// order indentical to the ELECTRICAL_PINTYPE enum
|
|
||||||
return (ELECTRICAL_PINTYPE)m_choiceElectricalType->GetSelection();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetStyleList( const wxArrayString& list, const BITMAP_DEF* aBitmaps );
|
void SetStyle( GRAPHIC_PINSHAPE style ) { m_choiceStyle->SetSelection( style ); }
|
||||||
void SetStyle( int style ) { m_choiceStyle->SetSelection( style ); }
|
GRAPHIC_PINSHAPE GetStyle( void ) { return m_choiceStyle->GetSelection(); }
|
||||||
int GetStyle( void ) { return m_choiceStyle->GetSelection(); }
|
|
||||||
|
|
||||||
void SetPinName( const wxString& name ) { m_textPinName->SetValue( name ); }
|
void SetPinName( const wxString& name ) { m_textPinName->SetValue( name ); }
|
||||||
wxString GetPinName( void ) { return m_textPinName->GetValue(); }
|
wxString GetPinName( void ) { return m_textPinName->GetValue(); }
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "pin_shape_combobox.h"
|
||||||
|
#include "pin_type_combobox.h"
|
||||||
#include "wx/bmpcbox.h"
|
#include "wx/bmpcbox.h"
|
||||||
|
|
||||||
#include "dialog_lib_edit_pin_base.h"
|
#include "dialog_lib_edit_pin_base.h"
|
||||||
|
@ -61,14 +63,14 @@ DIALOG_LIB_EDIT_PIN_BASE::DIALOG_LIB_EDIT_PIN_BASE( wxWindow* parent, wxWindowID
|
||||||
|
|
||||||
fgSizerPins->Add( m_staticTextEType, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 );
|
fgSizerPins->Add( m_staticTextEType, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 );
|
||||||
|
|
||||||
m_choiceElectricalType = new wxBitmapComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
|
m_choiceElectricalType = new PinTypeComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
|
||||||
fgSizerPins->Add( m_choiceElectricalType, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
|
fgSizerPins->Add( m_choiceElectricalType, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
|
||||||
|
|
||||||
m_staticTextGstyle = new wxStaticText( this, wxID_ANY, _("Graphic &Style:"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_staticTextGstyle = new wxStaticText( this, wxID_ANY, _("Graphic &Style:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_staticTextGstyle->Wrap( -1 );
|
m_staticTextGstyle->Wrap( -1 );
|
||||||
fgSizerPins->Add( m_staticTextGstyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 );
|
fgSizerPins->Add( m_staticTextGstyle, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 );
|
||||||
|
|
||||||
m_choiceStyle = new wxBitmapComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
|
m_choiceStyle = new PinShapeComboBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
|
||||||
fgSizerPins->Add( m_choiceStyle, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
|
fgSizerPins->Add( m_choiceStyle, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -784,7 +784,7 @@
|
||||||
<property name="show">1</property>
|
<property name="show">1</property>
|
||||||
<property name="size"></property>
|
<property name="size"></property>
|
||||||
<property name="style">wxCB_READONLY</property>
|
<property name="style">wxCB_READONLY</property>
|
||||||
<property name="subclass">wxBitmapComboBox; wx/bmpcbox.h</property>
|
<property name="subclass">PinTypeComboBox; pin_type_combobox.h</property>
|
||||||
<property name="toolbar_pane">0</property>
|
<property name="toolbar_pane">0</property>
|
||||||
<property name="tooltip"></property>
|
<property name="tooltip"></property>
|
||||||
<property name="validator_data_type"></property>
|
<property name="validator_data_type"></property>
|
||||||
|
@ -958,7 +958,7 @@
|
||||||
<property name="show">1</property>
|
<property name="show">1</property>
|
||||||
<property name="size"></property>
|
<property name="size"></property>
|
||||||
<property name="style">wxCB_READONLY</property>
|
<property name="style">wxCB_READONLY</property>
|
||||||
<property name="subclass">wxBitmapComboBox; wx/bmpcbox.h</property>
|
<property name="subclass">PinShapeComboBox; pin_shape_combobox.h</property>
|
||||||
<property name="toolbar_pane">0</property>
|
<property name="toolbar_pane">0</property>
|
||||||
<property name="tooltip"></property>
|
<property name="tooltip"></property>
|
||||||
<property name="validator_data_type"></property>
|
<property name="validator_data_type"></property>
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
#include <wx/xrc/xmlres.h>
|
#include <wx/xrc/xmlres.h>
|
||||||
#include <wx/intl.h>
|
#include <wx/intl.h>
|
||||||
class DIALOG_SHIM;
|
class DIALOG_SHIM;
|
||||||
|
class PinShapeComboBox;
|
||||||
|
class PinTypeComboBox;
|
||||||
class wxBitmapComboBox;
|
class wxBitmapComboBox;
|
||||||
|
|
||||||
#include "dialog_shim.h"
|
#include "dialog_shim.h"
|
||||||
|
@ -64,9 +66,9 @@ class DIALOG_LIB_EDIT_PIN_BASE : public DIALOG_SHIM
|
||||||
wxStaticText* m_staticTextOrient;
|
wxStaticText* m_staticTextOrient;
|
||||||
wxBitmapComboBox* m_choiceOrientation;
|
wxBitmapComboBox* m_choiceOrientation;
|
||||||
wxStaticText* m_staticTextEType;
|
wxStaticText* m_staticTextEType;
|
||||||
wxBitmapComboBox* m_choiceElectricalType;
|
PinTypeComboBox* m_choiceElectricalType;
|
||||||
wxStaticText* m_staticTextGstyle;
|
wxStaticText* m_staticTextGstyle;
|
||||||
wxBitmapComboBox* m_choiceStyle;
|
PinShapeComboBox* m_choiceStyle;
|
||||||
wxCheckBox* m_checkApplyToAllParts;
|
wxCheckBox* m_checkApplyToAllParts;
|
||||||
wxCheckBox* m_checkApplyToAllConversions;
|
wxCheckBox* m_checkApplyToAllConversions;
|
||||||
wxCheckBox* m_checkShow;
|
wxCheckBox* m_checkShow;
|
||||||
|
|
|
@ -183,7 +183,7 @@ DIALOG_LIB_EDIT_PIN_TABLE::DIALOG_LIB_EDIT_PIN_TABLE( wxWindow* parent,
|
||||||
100,
|
100,
|
||||||
wxAlignment( wxALIGN_LEFT | wxALIGN_TOP ),
|
wxAlignment( wxALIGN_LEFT | wxALIGN_TOP ),
|
||||||
wxDATAVIEW_COL_RESIZABLE | wxDATAVIEW_COL_SORTABLE );
|
wxDATAVIEW_COL_RESIZABLE | wxDATAVIEW_COL_SORTABLE );
|
||||||
wxDataViewTextRenderer* rend2 = new wxDataViewTextRenderer( wxT( "string" ), wxDATAVIEW_CELL_INERT );
|
wxDataViewIconTextRenderer* rend2 = new wxDataViewIconTextRenderer( wxT( "wxDataViewIconText" ), wxDATAVIEW_CELL_INERT );
|
||||||
wxDataViewColumn* col2 = new wxDataViewColumn( _( "Type" ),
|
wxDataViewColumn* col2 = new wxDataViewColumn( _( "Type" ),
|
||||||
rend2,
|
rend2,
|
||||||
DataViewModel::PIN_TYPE,
|
DataViewModel::PIN_TYPE,
|
||||||
|
@ -255,7 +255,23 @@ unsigned int DIALOG_LIB_EDIT_PIN_TABLE::DataViewModel::GetColumnCount() const
|
||||||
|
|
||||||
wxString DIALOG_LIB_EDIT_PIN_TABLE::DataViewModel::GetColumnType( unsigned int aCol ) const
|
wxString DIALOG_LIB_EDIT_PIN_TABLE::DataViewModel::GetColumnType( unsigned int aCol ) const
|
||||||
{
|
{
|
||||||
return wxT( "string" );
|
switch( aCol )
|
||||||
|
{
|
||||||
|
case PIN_NUMBER:
|
||||||
|
return wxT( "string" );
|
||||||
|
|
||||||
|
case PIN_NAME:
|
||||||
|
return wxT( "string" );
|
||||||
|
|
||||||
|
case PIN_TYPE:
|
||||||
|
return wxT( "wxDataViewIconText" );
|
||||||
|
|
||||||
|
case PIN_POSITION:
|
||||||
|
return wxT( "string" );
|
||||||
|
}
|
||||||
|
|
||||||
|
assert( ! "Unhandled column" );
|
||||||
|
return wxT( "" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -431,8 +447,20 @@ void DIALOG_LIB_EDIT_PIN_TABLE::DataViewModel::Group::GetValue( wxVariant& aValu
|
||||||
if( aCol == m_GroupingColumn )
|
if( aCol == m_GroupingColumn )
|
||||||
// shortcut
|
// shortcut
|
||||||
m_Members.front()->GetValue( aValue, aCol );
|
m_Members.front()->GetValue( aValue, aCol );
|
||||||
else
|
else if( aCol != PIN_TYPE )
|
||||||
aValue = GetString( aCol );
|
aValue = GetString( aCol );
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PinNumbers values;
|
||||||
|
|
||||||
|
for( std::list<Pin*>::const_iterator i = m_Members.begin(); i != m_Members.end(); ++i )
|
||||||
|
values.insert( (*i)->GetString( aCol ) );
|
||||||
|
|
||||||
|
if( values.size() > 1 )
|
||||||
|
aValue << wxDataViewIconText( boost::algorithm::join( values, "," ), wxNullIcon );
|
||||||
|
else
|
||||||
|
m_Members.front()->GetValue( aValue, aCol );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -476,7 +504,22 @@ void DIALOG_LIB_EDIT_PIN_TABLE::DataViewModel::Group::Add( Pin* aPin )
|
||||||
void DIALOG_LIB_EDIT_PIN_TABLE::DataViewModel::Pin::GetValue( wxVariant& aValue,
|
void DIALOG_LIB_EDIT_PIN_TABLE::DataViewModel::Pin::GetValue( wxVariant& aValue,
|
||||||
unsigned int aCol ) const
|
unsigned int aCol ) const
|
||||||
{
|
{
|
||||||
aValue = GetString( aCol );
|
switch( aCol )
|
||||||
|
{
|
||||||
|
case PIN_NUMBER:
|
||||||
|
case PIN_NAME:
|
||||||
|
case PIN_POSITION:
|
||||||
|
aValue = GetString( aCol );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PIN_TYPE:
|
||||||
|
{
|
||||||
|
wxIcon icon;
|
||||||
|
icon.CopyFromBitmap( KiBitmap ( GetBitmap( m_Backing->GetType() ) ) );
|
||||||
|
aValue << wxDataViewIconText( m_Backing->GetElectricalTypeName(), icon );
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -34,6 +34,9 @@
|
||||||
|
|
||||||
#include <dialog_sch_edit_sheet_pin_base.h>
|
#include <dialog_sch_edit_sheet_pin_base.h>
|
||||||
|
|
||||||
|
// enum TypeSheetLabel
|
||||||
|
#include <sch_text.h>
|
||||||
|
|
||||||
|
|
||||||
class DIALOG_SCH_EDIT_SHEET_PIN : public DIALOG_SCH_EDIT_SHEET_PIN_BASE
|
class DIALOG_SCH_EDIT_SHEET_PIN : public DIALOG_SCH_EDIT_SHEET_PIN_BASE
|
||||||
{
|
{
|
||||||
|
@ -49,8 +52,9 @@ public:
|
||||||
void SetTextWidth( const wxString& aWidth ) { m_textWidth->SetValue( aWidth ); }
|
void SetTextWidth( const wxString& aWidth ) { m_textWidth->SetValue( aWidth ); }
|
||||||
wxString GetTextWidth() const { return m_textWidth->GetValue(); }
|
wxString GetTextWidth() const { return m_textWidth->GetValue(); }
|
||||||
|
|
||||||
void SetConnectionType( int aType ) { m_choiceConnectionType->SetSelection( aType ); }
|
void SetConnectionType( TypeSheetLabel aType ) { m_choiceConnectionType->SetSelection( aType ); }
|
||||||
int GetConnectionType() const { return m_choiceConnectionType->GetCurrentSelection(); }
|
/// @todo move cast to widget
|
||||||
|
TypeSheetLabel GetConnectionType() const { return static_cast<TypeSheetLabel>( m_choiceConnectionType->GetCurrentSelection() ); }
|
||||||
|
|
||||||
void SetTextHeightUnits( const wxString& aUnit ) { m_staticHeightUnits->SetLabel( aUnit ); }
|
void SetTextHeightUnits( const wxString& aUnit ) { m_staticHeightUnits->SetLabel( aUnit ); }
|
||||||
void SetTextWidthUnits( const wxString& aUnit ) { m_staticWidthUnits->SetLabel( aUnit ); }
|
void SetTextWidthUnits( const wxString& aUnit ) { m_staticWidthUnits->SetLabel( aUnit ); }
|
||||||
|
|
|
@ -41,10 +41,10 @@
|
||||||
#include <eeschema_id.h>
|
#include <eeschema_id.h>
|
||||||
|
|
||||||
|
|
||||||
static int lastGlobalLabelShape = (int) NET_INPUT;
|
static TypeSheetLabel lastGlobalLabelShape = NET_INPUT;
|
||||||
static int lastTextOrientation = 0;
|
static int lastTextOrientation = 0;
|
||||||
static bool lastTextBold = false;
|
static bool lastTextBold = false;
|
||||||
static bool lastTextItalic = false;
|
static bool lastTextItalic = false;
|
||||||
|
|
||||||
|
|
||||||
void SCH_EDIT_FRAME::ChangeTextOrient( SCH_TEXT* aTextItem, wxDC* aDC )
|
void SCH_EDIT_FRAME::ChangeTextOrient( SCH_TEXT* aTextItem, wxDC* aDC )
|
||||||
|
|
|
@ -121,7 +121,7 @@ const wxString CommentERC_V[] =
|
||||||
* at start up: must be loaded by DefaultDiagErc
|
* at start up: must be loaded by DefaultDiagErc
|
||||||
* Can be modified in dialog ERC
|
* Can be modified in dialog ERC
|
||||||
*/
|
*/
|
||||||
int DiagErc[PIN_NMAX][PIN_NMAX];
|
int DiagErc[PINTYPE_COUNT][PINTYPE_COUNT];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default Look up table which gives the ERC error level for a pair of connected pins
|
* Default Look up table which gives the ERC error level for a pair of connected pins
|
||||||
|
@ -130,7 +130,7 @@ int DiagErc[PIN_NMAX][PIN_NMAX];
|
||||||
* note also, to avoid inconsistancy:
|
* note also, to avoid inconsistancy:
|
||||||
* DefaultDiagErc[i][j] = DefaultDiagErc[j][i]
|
* DefaultDiagErc[i][j] = DefaultDiagErc[j][i]
|
||||||
*/
|
*/
|
||||||
int DefaultDiagErc[PIN_NMAX][PIN_NMAX] =
|
int DefaultDiagErc[PINTYPE_COUNT][PINTYPE_COUNT] =
|
||||||
{
|
{
|
||||||
/* I, O, Bi, 3S, Pas, UnS, PwrI, PwrO, OC, OE, NC */
|
/* I, O, Bi, 3S, Pas, UnS, PwrI, PwrO, OC, OE, NC */
|
||||||
/* I */ { OK, OK, OK, OK, OK, WAR, OK, OK, OK, OK, ERR },
|
/* I */ { OK, OK, OK, OK, OK, WAR, OK, OK, OK, OK, ERR },
|
||||||
|
@ -157,7 +157,7 @@ int DefaultDiagErc[PIN_NMAX][PIN_NMAX] =
|
||||||
* in net. Nets are OK when their final state is NET_NC or DRV. Nets with the state
|
* in net. Nets are OK when their final state is NET_NC or DRV. Nets with the state
|
||||||
* NOD have no valid source signal.
|
* NOD have no valid source signal.
|
||||||
*/
|
*/
|
||||||
static int MinimalReq[PIN_NMAX][PIN_NMAX] =
|
static int MinimalReq[PINTYPE_COUNT][PINTYPE_COUNT] =
|
||||||
{
|
{
|
||||||
/* In Out, Bi, 3S, Pas, UnS, PwrI,PwrO,OC, OE, NC */
|
/* In Out, Bi, 3S, Pas, UnS, PwrI,PwrO,OC, OE, NC */
|
||||||
/* In*/ { NOD, DRV, DRV, DRV, DRV, DRV, NOD, DRV, DRV, DRV, NPI },
|
/* In*/ { NOD, DRV, DRV, DRV, DRV, DRV, NOD, DRV, DRV, DRV, NPI },
|
||||||
|
@ -228,9 +228,9 @@ int TestDuplicateSheetNames( bool aCreateMarker )
|
||||||
void Diagnose( NETLIST_OBJECT* aNetItemRef, NETLIST_OBJECT* aNetItemTst,
|
void Diagnose( NETLIST_OBJECT* aNetItemRef, NETLIST_OBJECT* aNetItemTst,
|
||||||
int aMinConn, int aDiag )
|
int aMinConn, int aDiag )
|
||||||
{
|
{
|
||||||
SCH_MARKER* marker = NULL;
|
SCH_MARKER* marker = NULL;
|
||||||
SCH_SCREEN* screen;
|
SCH_SCREEN* screen;
|
||||||
int ii, jj;
|
ELECTRICAL_PINTYPE ii, jj;
|
||||||
|
|
||||||
if( aDiag == OK )
|
if( aDiag == OK )
|
||||||
return;
|
return;
|
||||||
|
@ -297,7 +297,7 @@ void Diagnose( NETLIST_OBJECT* aNetItemRef, NETLIST_OBJECT* aNetItemTst,
|
||||||
{
|
{
|
||||||
msg.Printf( _( "Pin %s (%s) of component %s is unconnected." ),
|
msg.Printf( _( "Pin %s (%s) of component %s is unconnected." ),
|
||||||
GetChars( string_pinnum ),
|
GetChars( string_pinnum ),
|
||||||
GetChars( LIB_PIN::GetElectricalTypeName( ii ) ),
|
GetChars( GetText( ii ) ),
|
||||||
GetChars( cmp_ref ) );
|
GetChars( cmp_ref ) );
|
||||||
marker->SetData( ERCE_PIN_NOT_CONNECTED,
|
marker->SetData( ERCE_PIN_NOT_CONNECTED,
|
||||||
aNetItemRef->m_Start,
|
aNetItemRef->m_Start,
|
||||||
|
@ -314,7 +314,7 @@ void Diagnose( NETLIST_OBJECT* aNetItemRef, NETLIST_OBJECT* aNetItemTst,
|
||||||
|
|
||||||
msg.Printf( _( "Pin %s (%s) of component %s is not driven (Net %d)." ),
|
msg.Printf( _( "Pin %s (%s) of component %s is not driven (Net %d)." ),
|
||||||
GetChars( string_pinnum ),
|
GetChars( string_pinnum ),
|
||||||
GetChars( LIB_PIN::GetElectricalTypeName( ii ) ),
|
GetChars( GetText( ii ) ),
|
||||||
GetChars( cmp_ref ),
|
GetChars( cmp_ref ),
|
||||||
aNetItemRef->GetNet() );
|
aNetItemRef->GetNet() );
|
||||||
marker->SetData( ERCE_PIN_NOT_DRIVEN,
|
marker->SetData( ERCE_PIN_NOT_DRIVEN,
|
||||||
|
@ -356,12 +356,12 @@ void Diagnose( NETLIST_OBJECT* aNetItemRef, NETLIST_OBJECT* aNetItemTst,
|
||||||
|
|
||||||
msg.Printf( _( "Pin %s (%s) of component %s is connected to " ),
|
msg.Printf( _( "Pin %s (%s) of component %s is connected to " ),
|
||||||
GetChars( string_pinnum ),
|
GetChars( string_pinnum ),
|
||||||
GetChars( LIB_PIN::GetElectricalTypeName( ii ) ),
|
GetChars( GetText( ii ) ),
|
||||||
GetChars( cmp_ref ) );
|
GetChars( cmp_ref ) );
|
||||||
marker->SetData( errortype, aNetItemRef->m_Start, msg, aNetItemRef->m_Start );
|
marker->SetData( errortype, aNetItemRef->m_Start, msg, aNetItemRef->m_Start );
|
||||||
msg.Printf( _( "pin %s (%s) of component %s (net %d)." ),
|
msg.Printf( _( "pin %s (%s) of component %s (net %d)." ),
|
||||||
GetChars( alt_string_pinnum ),
|
GetChars( alt_string_pinnum ),
|
||||||
GetChars( LIB_PIN::GetElectricalTypeName( jj ) ),
|
GetChars( GetText( jj ) ),
|
||||||
GetChars( alt_cmp ),
|
GetChars( alt_cmp ),
|
||||||
aNetItemRef->GetNet() );
|
aNetItemRef->GetNet() );
|
||||||
marker->SetAuxiliaryData( msg, aNetItemTst->m_Start );
|
marker->SetAuxiliaryData( msg, aNetItemTst->m_Start );
|
||||||
|
@ -374,7 +374,7 @@ void TestOthersItems( NETLIST_OBJECT_LIST* aList,
|
||||||
int* aMinConnexion )
|
int* aMinConnexion )
|
||||||
{
|
{
|
||||||
unsigned netItemTst = aNetStart;
|
unsigned netItemTst = aNetStart;
|
||||||
int jj;
|
ELECTRICAL_PINTYPE jj;
|
||||||
int erc = OK;
|
int erc = OK;
|
||||||
|
|
||||||
/* Analysis of the table of connections. */
|
/* Analysis of the table of connections. */
|
||||||
|
|
|
@ -70,60 +70,10 @@ static const BITMAP_DEF iconsPinsOrientations[] =
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// bitmaps to show pins shapes in dialog editor
|
const wxString LIB_PIN::GetCanonicalElectricalTypeName( ELECTRICAL_PINTYPE aType )
|
||||||
// must have same order than pin_style_names
|
|
||||||
static BITMAP_DEF iconsPinsShapes[] =
|
|
||||||
{
|
{
|
||||||
pinshape_normal_xpm,
|
assert( aType >= 0 && aType < (int) PINTYPE_COUNT );
|
||||||
pinshape_invert_xpm,
|
|
||||||
pinshape_clock_normal_xpm,
|
|
||||||
pinshape_clock_invert_xpm,
|
|
||||||
pinshape_active_low_input_xpm,
|
|
||||||
pinshape_clock_active_low_xpm,
|
|
||||||
pinshape_active_low_output_xpm,
|
|
||||||
pinshape_clock_fall_xpm,
|
|
||||||
pinshape_nonlogic_xpm
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static const int pin_style_codes[] =
|
|
||||||
{
|
|
||||||
NONE,
|
|
||||||
INVERT,
|
|
||||||
CLOCK,
|
|
||||||
CLOCK | INVERT,
|
|
||||||
LOWLEVEL_IN,
|
|
||||||
LOWLEVEL_IN | CLOCK,
|
|
||||||
LOWLEVEL_OUT,
|
|
||||||
CLOCK_FALL,
|
|
||||||
NONLOGIC
|
|
||||||
};
|
|
||||||
|
|
||||||
#define PIN_STYLE_CNT DIM( pin_style_codes )
|
|
||||||
|
|
||||||
// bitmaps to show pins electrical type in dialog editor
|
|
||||||
// must have same order than enum ELECTRICAL_PINTYPE (see lib_pin.h)
|
|
||||||
static const BITMAP_DEF iconsPinsElectricalType[] =
|
|
||||||
{
|
|
||||||
pintype_input_xpm,
|
|
||||||
pintype_output_xpm,
|
|
||||||
pintype_bidi_xpm,
|
|
||||||
pintype_3states_xpm,
|
|
||||||
pintype_passive_xpm,
|
|
||||||
pintype_notspecif_xpm,
|
|
||||||
pintype_powerinput_xpm,
|
|
||||||
pintype_poweroutput_xpm,
|
|
||||||
pintype_opencoll_xpm,
|
|
||||||
pintype_openemit_xpm,
|
|
||||||
pintype_noconnect_xpm
|
|
||||||
};
|
|
||||||
|
|
||||||
#define PIN_ELECTRICAL_TYPE_CNT DIM( iconsPinsElectricalType )
|
|
||||||
|
|
||||||
|
|
||||||
const wxString LIB_PIN::GetCanonicalElectricalTypeName( unsigned aType )
|
|
||||||
{
|
|
||||||
// These strings are the canonical name of the electrictal type
|
// These strings are the canonical name of the electrictal type
|
||||||
// Not translated, no space in name, only ASCII chars.
|
// Not translated, no space in name, only ASCII chars.
|
||||||
// to use when the string name must be known and well defined
|
// to use when the string name must be known and well defined
|
||||||
|
@ -140,12 +90,11 @@ const wxString LIB_PIN::GetCanonicalElectricalTypeName( unsigned aType )
|
||||||
wxT( "power_out" ),
|
wxT( "power_out" ),
|
||||||
wxT( "openCol" ),
|
wxT( "openCol" ),
|
||||||
wxT( "openEm" ),
|
wxT( "openEm" ),
|
||||||
wxT( "NotConnected" ),
|
wxT( "NotConnected" )
|
||||||
wxT( "???" )
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if( aType > PIN_NMAX )
|
if( aType > (int) PINTYPE_COUNT )
|
||||||
aType = PIN_NMAX;
|
return wxT( "???" );
|
||||||
|
|
||||||
return msgPinElectricType[ aType ];
|
return msgPinElectricType[ aType ];
|
||||||
}
|
}
|
||||||
|
@ -176,53 +125,6 @@ static const wxString getPinOrientationName( unsigned aPinOrientationCode )
|
||||||
return pin_orientation_names[ aPinOrientationCode ];
|
return pin_orientation_names[ aPinOrientationCode ];
|
||||||
}
|
}
|
||||||
|
|
||||||
const wxString LIB_PIN::GetElectricalTypeName( unsigned aPinsElectricalType )
|
|
||||||
{
|
|
||||||
const wxString pin_electrical_type_names[] =
|
|
||||||
{ // Keep these translated strings not static
|
|
||||||
_( "Input" ),
|
|
||||||
_( "Output" ),
|
|
||||||
_( "Bidirectional" ),
|
|
||||||
_( "Tri-state" ),
|
|
||||||
_( "Passive" ),
|
|
||||||
_( "Unspecified" ),
|
|
||||||
_( "Power input" ),
|
|
||||||
_( "Power output" ),
|
|
||||||
_( "Open collector" ),
|
|
||||||
_( "Open emitter" ),
|
|
||||||
_( "Not connected" ),
|
|
||||||
wxT( "???" )
|
|
||||||
};
|
|
||||||
|
|
||||||
if( aPinsElectricalType > PIN_ELECTRICAL_TYPE_CNT )
|
|
||||||
aPinsElectricalType = PIN_ELECTRICAL_TYPE_CNT;
|
|
||||||
|
|
||||||
return pin_electrical_type_names[ aPinsElectricalType ];
|
|
||||||
}
|
|
||||||
|
|
||||||
static const wxString getPinStyleName( unsigned aPinsStyle )
|
|
||||||
{
|
|
||||||
const wxString pin_style_names[] =
|
|
||||||
{ // Keep these translated strings not static
|
|
||||||
_( "Line" ),
|
|
||||||
_( "Inverted" ),
|
|
||||||
_( "Clock" ),
|
|
||||||
_( "Inverted clock" ),
|
|
||||||
_( "Input low" ),
|
|
||||||
_( "Clock low" ),
|
|
||||||
_( "Output low" ),
|
|
||||||
_( "Falling edge clock" ),
|
|
||||||
_( "NonLogic" ),
|
|
||||||
wxT( "???" )
|
|
||||||
};
|
|
||||||
|
|
||||||
if( aPinsStyle > PIN_STYLE_CNT )
|
|
||||||
aPinsStyle = PIN_STYLE_CNT;
|
|
||||||
|
|
||||||
return pin_style_names[ aPinsStyle ];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// Utility for getting the size of the 'internal' pin decorators (as a radius)
|
/// Utility for getting the size of the 'internal' pin decorators (as a radius)
|
||||||
// i.e. the clock symbols (falling clock is actually external but is of
|
// i.e. the clock symbols (falling clock is actually external but is of
|
||||||
// the same kind)
|
// the same kind)
|
||||||
|
@ -241,11 +143,11 @@ static int ExternalPinDecoSize( const LIB_PIN &aPin )
|
||||||
}
|
}
|
||||||
|
|
||||||
LIB_PIN::LIB_PIN( LIB_PART* aParent ) :
|
LIB_PIN::LIB_PIN( LIB_PART* aParent ) :
|
||||||
LIB_ITEM( LIB_PIN_T, aParent )
|
LIB_ITEM( LIB_PIN_T, aParent ),
|
||||||
|
m_shape( PINSHAPE_LINE )
|
||||||
{
|
{
|
||||||
m_length = LIB_EDIT_FRAME::GetDefaultPinLength();
|
m_length = LIB_EDIT_FRAME::GetDefaultPinLength();
|
||||||
m_orientation = PIN_RIGHT; // Pin orient: Up, Down, Left, Right
|
m_orientation = PIN_RIGHT; // Pin orient: Up, Down, Left, Right
|
||||||
m_shape = NONE; // Pin shape, bitwise.
|
|
||||||
m_type = PIN_UNSPECIFIED; // electrical type of pin
|
m_type = PIN_UNSPECIFIED; // electrical type of pin
|
||||||
m_attributes = 0; // bit 0 != 0: pin invisible
|
m_attributes = 0; // bit 0 != 0: pin invisible
|
||||||
m_number = 0; // pin number (i.e. 4 ASCII chars)
|
m_number = 0; // pin number (i.e. 4 ASCII chars)
|
||||||
|
@ -378,8 +280,10 @@ void LIB_PIN::SetOrientation( int orientation )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void LIB_PIN::SetShape( int aShape )
|
void LIB_PIN::SetShape( GRAPHIC_PINSHAPE aShape )
|
||||||
{
|
{
|
||||||
|
assert( aShape >= 0 && aShape < int( PINSHAPE_COUNT ) );
|
||||||
|
|
||||||
if( m_shape != aShape )
|
if( m_shape != aShape )
|
||||||
{
|
{
|
||||||
m_shape = aShape;
|
m_shape = aShape;
|
||||||
|
@ -407,10 +311,12 @@ void LIB_PIN::SetShape( int aShape )
|
||||||
|
|
||||||
void LIB_PIN::SetType( ELECTRICAL_PINTYPE aType )
|
void LIB_PIN::SetType( ELECTRICAL_PINTYPE aType )
|
||||||
{
|
{
|
||||||
|
assert( aType >= 0 && aType < (int) PINTYPE_COUNT );
|
||||||
|
|
||||||
if( aType < PIN_INPUT )
|
if( aType < PIN_INPUT )
|
||||||
aType = PIN_INPUT;
|
aType = PIN_INPUT;
|
||||||
|
|
||||||
if( aType >= PIN_NMAX )
|
if( aType >= PINTYPE_COUNT )
|
||||||
aType = PIN_NC;
|
aType = PIN_NC;
|
||||||
|
|
||||||
if( m_type != aType )
|
if( m_type != aType )
|
||||||
|
@ -691,23 +597,55 @@ bool LIB_PIN::Save( OUTPUTFORMATTER& aFormatter )
|
||||||
if( !IsVisible() && aFormatter.Print( 0, "N" ) < 0 )
|
if( !IsVisible() && aFormatter.Print( 0, "N" ) < 0 )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if( m_shape & INVERT && aFormatter.Print( 0, "I" ) < 0 )
|
switch( m_shape )
|
||||||
return false;
|
{
|
||||||
|
case PINSHAPE_LINE:
|
||||||
|
break;
|
||||||
|
|
||||||
if( m_shape & CLOCK && aFormatter.Print( 0, "C" ) < 0 )
|
case PINSHAPE_INVERTED:
|
||||||
return false;
|
if( aFormatter.Print( 0, "I" ) < 0 )
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
|
||||||
if( m_shape & LOWLEVEL_IN && aFormatter.Print( 0, "L" ) < 0 )
|
case PINSHAPE_CLOCK:
|
||||||
return false;
|
if( aFormatter.Print( 0, "C" ) < 0 )
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
|
||||||
if( m_shape & LOWLEVEL_OUT && aFormatter.Print( 0, "V" ) < 0 )
|
case PINSHAPE_INVERTED_CLOCK:
|
||||||
return false;
|
if( aFormatter.Print( 0, "IC" ) < 0 )
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
|
||||||
if( m_shape & CLOCK_FALL && aFormatter.Print( 0, "F" ) < 0 )
|
case PINSHAPE_INPUT_LOW:
|
||||||
return false;
|
if( aFormatter.Print( 0, "L" ) < 0 )
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
|
||||||
if( m_shape & NONLOGIC && aFormatter.Print( 0, "X" ) < 0 )
|
case PINSHAPE_CLOCK_LOW:
|
||||||
|
if( aFormatter.Print( 0, "CL" ) < 0 )
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PINSHAPE_OUTPUT_LOW:
|
||||||
|
if( aFormatter.Print( 0, "V" ) < 0 )
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PINSHAPE_FALLING_EDGE_CLOCK:
|
||||||
|
if( aFormatter.Print( 0, "F" ) < 0 )
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PINSHAPE_NONLOGIC:
|
||||||
|
if( aFormatter.Print( 0, "X" ) < 0 )
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
assert( !"Invalid pin shape" );
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if( aFormatter.Print( 0, "\n" ) < 0 )
|
if( aFormatter.Print( 0, "\n" ) < 0 )
|
||||||
return false;
|
return false;
|
||||||
|
@ -831,6 +769,18 @@ bool LIB_PIN::Load( LINE_READER& aLineReader, wxString& aErrorMsg )
|
||||||
|
|
||||||
if( prms_count >= 12 ) /* Special Symbol defined */
|
if( prms_count >= 12 ) /* Special Symbol defined */
|
||||||
{
|
{
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
INVERTED = 1 << 0,
|
||||||
|
CLOCK = 1 << 1,
|
||||||
|
LOWLEVEL_IN = 1 << 2,
|
||||||
|
LOWLEVEL_OUT = 1 << 3,
|
||||||
|
FALLING_EDGE = 1 << 4,
|
||||||
|
NONLOGIC = 1 << 5
|
||||||
|
};
|
||||||
|
|
||||||
|
int flags = 0;
|
||||||
|
|
||||||
for( int j = strlen( pinAttrs ); j > 0; )
|
for( int j = strlen( pinAttrs ); j > 0; )
|
||||||
{
|
{
|
||||||
switch( pinAttrs[--j] )
|
switch( pinAttrs[--j] )
|
||||||
|
@ -843,27 +793,27 @@ bool LIB_PIN::Load( LINE_READER& aLineReader, wxString& aErrorMsg )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'I':
|
case 'I':
|
||||||
m_shape |= INVERT;
|
flags |= INVERTED;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'C':
|
case 'C':
|
||||||
m_shape |= CLOCK;
|
flags |= CLOCK;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'L':
|
case 'L':
|
||||||
m_shape |= LOWLEVEL_IN;
|
flags |= LOWLEVEL_IN;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'V':
|
case 'V':
|
||||||
m_shape |= LOWLEVEL_OUT;
|
flags |= LOWLEVEL_OUT;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'F':
|
case 'F':
|
||||||
m_shape |= CLOCK_FALL;
|
flags |= FALLING_EDGE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'X':
|
case 'X':
|
||||||
m_shape |= NONLOGIC;
|
flags |= NONLOGIC;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -871,6 +821,49 @@ bool LIB_PIN::Load( LINE_READER& aLineReader, wxString& aErrorMsg )
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch( flags )
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
m_shape = PINSHAPE_LINE;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case INVERTED:
|
||||||
|
m_shape = PINSHAPE_INVERTED;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CLOCK:
|
||||||
|
m_shape = PINSHAPE_CLOCK;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case INVERTED | CLOCK:
|
||||||
|
m_shape = PINSHAPE_INVERTED_CLOCK;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case LOWLEVEL_IN:
|
||||||
|
m_shape = PINSHAPE_INPUT_LOW;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case LOWLEVEL_IN | CLOCK:
|
||||||
|
m_shape = PINSHAPE_CLOCK_LOW;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case LOWLEVEL_OUT:
|
||||||
|
m_shape = PINSHAPE_OUTPUT_LOW;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case FALLING_EDGE:
|
||||||
|
m_shape = PINSHAPE_FALLING_EDGE_CLOCK;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NONLOGIC:
|
||||||
|
m_shape = PINSHAPE_NONLOGIC;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
aErrorMsg.Printf( wxT( "pin attributes do not give a valid pin shape [%s]" ), pinAttrs );
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -1021,7 +1014,7 @@ void LIB_PIN::DrawPinSymbol( EDA_DRAW_PANEL* aPanel,
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
||||||
if( m_shape & INVERT )
|
if( m_shape == PINSHAPE_INVERTED || m_shape == PINSHAPE_INVERTED_CLOCK )
|
||||||
{
|
{
|
||||||
const int radius = ExternalPinDecoSize( *this );
|
const int radius = ExternalPinDecoSize( *this );
|
||||||
GRCircle( clipbox, aDC, MapX1 * radius + x1,
|
GRCircle( clipbox, aDC, MapX1 * radius + x1,
|
||||||
|
@ -1032,7 +1025,7 @@ void LIB_PIN::DrawPinSymbol( EDA_DRAW_PANEL* aPanel,
|
||||||
MapY1 * radius * 2 + y1 );
|
MapY1 * radius * 2 + y1 );
|
||||||
GRLineTo( clipbox, aDC, posX, posY, width, color );
|
GRLineTo( clipbox, aDC, posX, posY, width, color );
|
||||||
}
|
}
|
||||||
else if( m_shape & CLOCK_FALL ) /* an alternative for Inverted Clock */
|
else if( m_shape == PINSHAPE_FALLING_EDGE_CLOCK ) /* an alternative for Inverted Clock */
|
||||||
{
|
{
|
||||||
const int clock_size = InternalPinDecoSize( *this );
|
const int clock_size = InternalPinDecoSize( *this );
|
||||||
if( MapY1 == 0 ) /* MapX1 = +- 1 */
|
if( MapY1 == 0 ) /* MapX1 = +- 1 */
|
||||||
|
@ -1059,7 +1052,7 @@ void LIB_PIN::DrawPinSymbol( EDA_DRAW_PANEL* aPanel,
|
||||||
GRLineTo( clipbox, aDC, posX, posY, width, color );
|
GRLineTo( clipbox, aDC, posX, posY, width, color );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( m_shape & CLOCK )
|
if( m_shape == PINSHAPE_CLOCK || m_shape == PINSHAPE_INVERTED_CLOCK || m_shape == PINSHAPE_CLOCK_LOW )
|
||||||
{
|
{
|
||||||
const int clock_size = InternalPinDecoSize( *this );
|
const int clock_size = InternalPinDecoSize( *this );
|
||||||
if( MapY1 == 0 ) /* MapX1 = +- 1 */
|
if( MapY1 == 0 ) /* MapX1 = +- 1 */
|
||||||
|
@ -1080,7 +1073,7 @@ void LIB_PIN::DrawPinSymbol( EDA_DRAW_PANEL* aPanel,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( m_shape & LOWLEVEL_IN ) /* IEEE symbol "Active Low Input" */
|
if( m_shape == PINSHAPE_INPUT_LOW || m_shape == PINSHAPE_CLOCK_LOW )
|
||||||
{
|
{
|
||||||
const int symbol_size = ExternalPinDecoSize( *this );
|
const int symbol_size = ExternalPinDecoSize( *this );
|
||||||
if( MapY1 == 0 ) /* MapX1 = +- 1 */
|
if( MapY1 == 0 ) /* MapX1 = +- 1 */
|
||||||
|
@ -1101,7 +1094,7 @@ void LIB_PIN::DrawPinSymbol( EDA_DRAW_PANEL* aPanel,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if( m_shape & LOWLEVEL_OUT ) /* IEEE symbol "Active Low Output" */
|
if( m_shape == PINSHAPE_OUTPUT_LOW ) /* IEEE symbol "Active Low Output" */
|
||||||
{
|
{
|
||||||
const int symbol_size = ExternalPinDecoSize( *this );
|
const int symbol_size = ExternalPinDecoSize( *this );
|
||||||
if( MapY1 == 0 ) /* MapX1 = +- 1 */
|
if( MapY1 == 0 ) /* MapX1 = +- 1 */
|
||||||
|
@ -1121,7 +1114,7 @@ void LIB_PIN::DrawPinSymbol( EDA_DRAW_PANEL* aPanel,
|
||||||
width, color );
|
width, color );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if( m_shape & NONLOGIC ) /* NonLogic pin symbol */
|
else if( m_shape == PINSHAPE_NONLOGIC ) /* NonLogic pin symbol */
|
||||||
{
|
{
|
||||||
const int symbol_size = ExternalPinDecoSize( *this );
|
const int symbol_size = ExternalPinDecoSize( *this );
|
||||||
GRMoveTo( x1 - (MapX1 + MapY1) * symbol_size,
|
GRMoveTo( x1 - (MapX1 + MapY1) * symbol_size,
|
||||||
|
@ -1397,7 +1390,7 @@ void LIB_PIN::PlotSymbol( PLOTTER* aPlotter, const wxPoint& aPosition, int aOrie
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( m_shape & INVERT )
|
if( m_shape == PINSHAPE_INVERTED || m_shape == PINSHAPE_INVERTED_CLOCK )
|
||||||
{
|
{
|
||||||
const int radius = ExternalPinDecoSize( *this );
|
const int radius = ExternalPinDecoSize( *this );
|
||||||
aPlotter->Circle( wxPoint( MapX1 * radius + x1,
|
aPlotter->Circle( wxPoint( MapX1 * radius + x1,
|
||||||
|
@ -1410,7 +1403,7 @@ void LIB_PIN::PlotSymbol( PLOTTER* aPlotter, const wxPoint& aPosition, int aOrie
|
||||||
MapY1 * radius * 2 + y1 ) );
|
MapY1 * radius * 2 + y1 ) );
|
||||||
aPlotter->FinishTo( aPosition );
|
aPlotter->FinishTo( aPosition );
|
||||||
}
|
}
|
||||||
else if( m_shape & CLOCK_FALL )
|
else if( m_shape == PINSHAPE_FALLING_EDGE_CLOCK )
|
||||||
{
|
{
|
||||||
const int clock_size = InternalPinDecoSize( *this );
|
const int clock_size = InternalPinDecoSize( *this );
|
||||||
if( MapY1 == 0 ) /* MapX1 = +- 1 */
|
if( MapY1 == 0 ) /* MapX1 = +- 1 */
|
||||||
|
@ -1436,7 +1429,8 @@ void LIB_PIN::PlotSymbol( PLOTTER* aPlotter, const wxPoint& aPosition, int aOrie
|
||||||
aPlotter->FinishTo( aPosition );
|
aPlotter->FinishTo( aPosition );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( m_shape & CLOCK )
|
if( m_shape == PINSHAPE_CLOCK || m_shape == PINSHAPE_INVERTED_CLOCK ||
|
||||||
|
m_shape == PINSHAPE_CLOCK_LOW )
|
||||||
{
|
{
|
||||||
const int clock_size = InternalPinDecoSize( *this );
|
const int clock_size = InternalPinDecoSize( *this );
|
||||||
if( MapY1 == 0 ) /* MapX1 = +- 1 */
|
if( MapY1 == 0 ) /* MapX1 = +- 1 */
|
||||||
|
@ -1453,7 +1447,7 @@ void LIB_PIN::PlotSymbol( PLOTTER* aPlotter, const wxPoint& aPosition, int aOrie
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( m_shape & LOWLEVEL_IN ) /* IEEE symbol "Active Low Input" */
|
if( m_shape == PINSHAPE_INPUT_LOW || m_shape == PINSHAPE_CLOCK_LOW ) /* IEEE symbol "Active Low Input" */
|
||||||
{
|
{
|
||||||
const int symbol_size = ExternalPinDecoSize( *this );
|
const int symbol_size = ExternalPinDecoSize( *this );
|
||||||
|
|
||||||
|
@ -1474,7 +1468,7 @@ void LIB_PIN::PlotSymbol( PLOTTER* aPlotter, const wxPoint& aPosition, int aOrie
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if( m_shape & LOWLEVEL_OUT ) /* IEEE symbol "Active Low Output" */
|
if( m_shape == PINSHAPE_OUTPUT_LOW ) /* IEEE symbol "Active Low Output" */
|
||||||
{
|
{
|
||||||
const int symbol_size = ExternalPinDecoSize( *this );
|
const int symbol_size = ExternalPinDecoSize( *this );
|
||||||
|
|
||||||
|
@ -1489,7 +1483,7 @@ void LIB_PIN::PlotSymbol( PLOTTER* aPlotter, const wxPoint& aPosition, int aOrie
|
||||||
aPlotter->FinishTo( wxPoint( x1, y1 + MapY1 * symbol_size * 2 ) );
|
aPlotter->FinishTo( wxPoint( x1, y1 + MapY1 * symbol_size * 2 ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if( m_shape & NONLOGIC ) /* NonLogic pin symbol */
|
else if( m_shape == PINSHAPE_NONLOGIC ) /* NonLogic pin symbol */
|
||||||
{
|
{
|
||||||
const int symbol_size = ExternalPinDecoSize( *this );
|
const int symbol_size = ExternalPinDecoSize( *this );
|
||||||
aPlotter->MoveTo( wxPoint( x1 - (MapX1 + MapY1) * symbol_size,
|
aPlotter->MoveTo( wxPoint( x1 - (MapX1 + MapY1) * symbol_size,
|
||||||
|
@ -1984,15 +1978,10 @@ void LIB_PIN::GetMsgPanelInfo( MSG_PANEL_ITEMS& aList )
|
||||||
aList.push_back( MSG_PANEL_ITEM( _( "Number" ), text, DARKCYAN ) );
|
aList.push_back( MSG_PANEL_ITEM( _( "Number" ), text, DARKCYAN ) );
|
||||||
|
|
||||||
aList.push_back( MSG_PANEL_ITEM( _( "Type" ),
|
aList.push_back( MSG_PANEL_ITEM( _( "Type" ),
|
||||||
LIB_PIN::GetElectricalTypeName( m_type ),
|
GetText( m_type ),
|
||||||
RED ) );
|
RED ) );
|
||||||
|
|
||||||
int styleCodeIndex = GetStyleCodeIndex( m_shape );
|
text = GetText( m_shape );
|
||||||
|
|
||||||
if( styleCodeIndex >= 0 )
|
|
||||||
text = getPinStyleName( styleCodeIndex );
|
|
||||||
else
|
|
||||||
text = wxT( "?" );
|
|
||||||
|
|
||||||
aList.push_back( MSG_PANEL_ITEM( _( "Style" ), text, BLUE ) );
|
aList.push_back( MSG_PANEL_ITEM( _( "Style" ), text, BLUE ) );
|
||||||
|
|
||||||
|
@ -2042,7 +2031,7 @@ const EDA_RECT LIB_PIN::GetBoundingBox( bool aIncludeInvisibles ) const
|
||||||
// Actual text height is bigger than text size
|
// Actual text height is bigger than text size
|
||||||
int numberTextHeight = showNum ? KiROUND( m_numTextSize * 1.1 ) : 0;
|
int numberTextHeight = showNum ? KiROUND( m_numTextSize * 1.1 ) : 0;
|
||||||
|
|
||||||
if( m_shape & INVERT )
|
if( m_shape == PINSHAPE_INVERTED || m_shape == PINSHAPE_INVERTED_CLOCK )
|
||||||
minsizeV = std::max( TARGET_PIN_RADIUS, ExternalPinDecoSize( *this ) );
|
minsizeV = std::max( TARGET_PIN_RADIUS, ExternalPinDecoSize( *this ) );
|
||||||
|
|
||||||
// calculate top left corner position
|
// calculate top left corner position
|
||||||
|
@ -2187,72 +2176,15 @@ void LIB_PIN::Rotate()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
wxArrayString LIB_PIN::GetStyleNames( void )
|
|
||||||
{
|
|
||||||
wxArrayString tmp;
|
|
||||||
|
|
||||||
for( unsigned ii = 0; ii < PIN_STYLE_CNT; ii++ )
|
|
||||||
tmp.Add( getPinStyleName( ii ) );
|
|
||||||
|
|
||||||
return tmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int LIB_PIN::GetStyleCode( int index )
|
|
||||||
{
|
|
||||||
if( index >= 0 && index < (int) PIN_STYLE_CNT )
|
|
||||||
return pin_style_codes[ index ];
|
|
||||||
|
|
||||||
return NONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int LIB_PIN::GetStyleCodeIndex( int code )
|
|
||||||
{
|
|
||||||
size_t i;
|
|
||||||
|
|
||||||
for( i = 0; i < PIN_STYLE_CNT; i++ )
|
|
||||||
{
|
|
||||||
if( pin_style_codes[i] == code )
|
|
||||||
return (int) i;
|
|
||||||
}
|
|
||||||
|
|
||||||
return wxNOT_FOUND;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
wxArrayString LIB_PIN::GetElectricalTypeNames( void )
|
|
||||||
{
|
|
||||||
wxArrayString tmp;
|
|
||||||
|
|
||||||
for( unsigned ii = 0; ii < PIN_ELECTRICAL_TYPE_CNT; ii++ )
|
|
||||||
tmp.Add( LIB_PIN::GetElectricalTypeName( ii ) );
|
|
||||||
|
|
||||||
return tmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
const BITMAP_DEF* LIB_PIN::GetElectricalTypeSymbols()
|
|
||||||
{
|
|
||||||
return iconsPinsElectricalType;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
const BITMAP_DEF* LIB_PIN::GetOrientationSymbols()
|
const BITMAP_DEF* LIB_PIN::GetOrientationSymbols()
|
||||||
{
|
{
|
||||||
return iconsPinsOrientations;
|
return iconsPinsOrientations;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const BITMAP_DEF* LIB_PIN::GetStyleSymbols()
|
|
||||||
{
|
|
||||||
return iconsPinsShapes;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
BITMAP_DEF LIB_PIN::GetMenuImage() const
|
BITMAP_DEF LIB_PIN::GetMenuImage() const
|
||||||
{
|
{
|
||||||
return iconsPinsElectricalType[m_type];
|
return GetBitmap( m_type );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2261,12 +2193,7 @@ wxString LIB_PIN::GetSelectMenuText() const
|
||||||
wxString tmp;
|
wxString tmp;
|
||||||
wxString style;
|
wxString style;
|
||||||
|
|
||||||
int styleCode = GetStyleCodeIndex( m_shape );
|
style = GetText( m_shape );
|
||||||
|
|
||||||
if( styleCode >= 0 )
|
|
||||||
style = getPinStyleName( styleCode );
|
|
||||||
else
|
|
||||||
style = wxT( "?" );
|
|
||||||
|
|
||||||
tmp.Printf( _( "Pin %s, %s, %s" ),
|
tmp.Printf( _( "Pin %s, %s, %s" ),
|
||||||
GetChars( GetNumberString() ),
|
GetChars( GetNumberString() ),
|
||||||
|
|
|
@ -32,46 +32,15 @@
|
||||||
|
|
||||||
#include <lib_draw_item.h>
|
#include <lib_draw_item.h>
|
||||||
|
|
||||||
|
#include "pin_shape.h"
|
||||||
|
#include "pin_type.h"
|
||||||
|
|
||||||
#define TARGET_PIN_RADIUS 12 // Circle diameter drawn at the active end of pins
|
#define TARGET_PIN_RADIUS 12 // Circle diameter drawn at the active end of pins
|
||||||
|
|
||||||
/**
|
|
||||||
* The component library pin object electrical types used in ERC tests.
|
|
||||||
*/
|
|
||||||
enum ELECTRICAL_PINTYPE {
|
|
||||||
PIN_INPUT,
|
|
||||||
PIN_OUTPUT,
|
|
||||||
PIN_BIDI,
|
|
||||||
PIN_TRISTATE,
|
|
||||||
PIN_PASSIVE,
|
|
||||||
PIN_UNSPECIFIED,
|
|
||||||
PIN_POWER_IN,
|
|
||||||
PIN_POWER_OUT,
|
|
||||||
PIN_OPENCOLLECTOR,
|
|
||||||
PIN_OPENEMITTER,
|
|
||||||
PIN_NC, /* No connect */
|
|
||||||
PIN_NMAX /* End of List (not used as pin type) */
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/* Pin visibility flag bit. */
|
/* Pin visibility flag bit. */
|
||||||
#define PIN_INVISIBLE 1 /* Set makes pin invisible */
|
#define PIN_INVISIBLE 1 /* Set makes pin invisible */
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The component library pin object drawing shapes.
|
|
||||||
*/
|
|
||||||
enum DrawPinShape {
|
|
||||||
NONE = 0,
|
|
||||||
INVERT = 1,
|
|
||||||
CLOCK = 2,
|
|
||||||
LOWLEVEL_IN = 4,
|
|
||||||
LOWLEVEL_OUT = 8,
|
|
||||||
CLOCK_FALL = 0x10, /* this is common form for inverted clock in Eastern Block */
|
|
||||||
NONLOGIC = 0x20
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The component library pin object orientations.
|
* The component library pin object orientations.
|
||||||
*/
|
*/
|
||||||
|
@ -94,7 +63,7 @@ class LIB_PIN : public LIB_ITEM
|
||||||
wxPoint m_position; ///< Position of the pin.
|
wxPoint m_position; ///< Position of the pin.
|
||||||
int m_length; ///< Length of the pin.
|
int m_length; ///< Length of the pin.
|
||||||
int m_orientation; ///< Pin orientation (Up, Down, Left, Right)
|
int m_orientation; ///< Pin orientation (Up, Down, Left, Right)
|
||||||
int m_shape; ///< Bitwise ORed of pin shapes (see enum DrawPinShape)
|
GRAPHIC_PINSHAPE m_shape; ///< Shape drawn around pin
|
||||||
int m_width; ///< Line width of the pin.
|
int m_width; ///< Line width of the pin.
|
||||||
ELECTRICAL_PINTYPE m_type; ///< Electrical type of the pin. See enum ELECTRICAL_PINTYPE.
|
ELECTRICAL_PINTYPE m_type; ///< Electrical type of the pin. See enum ELECTRICAL_PINTYPE.
|
||||||
int m_attributes; ///< Set bit 0 to indicate pin is invisible.
|
int m_attributes; ///< Set bit 0 to indicate pin is invisible.
|
||||||
|
@ -263,21 +232,21 @@ public:
|
||||||
|
|
||||||
void Rotate();
|
void Rotate();
|
||||||
|
|
||||||
int GetShape() const { return m_shape; }
|
GRAPHIC_PINSHAPE GetShape() const { return m_shape; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the shape of the pin to \a aShape.
|
* Set the shape of the pin to \a aShape.
|
||||||
*
|
*
|
||||||
* This will also update the draw style of the pins marked by EnableEditMode().
|
* This will also update the draw style of the pins marked by EnableEditMode().
|
||||||
*
|
*
|
||||||
* @param aShape - The draw shape of the pin. See enum DrawPinShape.
|
* @param aShape - The draw shape of the pin. See enum GRAPHIC_PINSHAPE.
|
||||||
*/
|
*/
|
||||||
void SetShape( int aShape );
|
void SetShape( GRAPHIC_PINSHAPE aShape );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the electrical type of the pin.
|
* Get the electrical type of the pin.
|
||||||
*
|
*
|
||||||
* @return The electrical type of the pin (see enun ELECTRICAL_PINTYPE for values).
|
* @return The electrical type of the pin (see enum ELECTRICAL_PINTYPE for values).
|
||||||
*/
|
*/
|
||||||
ELECTRICAL_PINTYPE GetType() const { return m_type; }
|
ELECTRICAL_PINTYPE GetType() const { return m_type; }
|
||||||
|
|
||||||
|
@ -287,7 +256,7 @@ public:
|
||||||
* @param aType is the electrical type (see enum ELECTRICAL_PINTYPE )
|
* @param aType is the electrical type (see enum ELECTRICAL_PINTYPE )
|
||||||
* @return The electrical name for a pin type (see enun MsgPinElectricType for names).
|
* @return The electrical name for a pin type (see enun MsgPinElectricType for names).
|
||||||
*/
|
*/
|
||||||
static const wxString GetCanonicalElectricalTypeName( unsigned aType );
|
static const wxString GetCanonicalElectricalTypeName( ELECTRICAL_PINTYPE aType );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* return a string giving the electrical type of the pin.
|
* return a string giving the electrical type of the pin.
|
||||||
|
@ -299,20 +268,13 @@ public:
|
||||||
return GetCanonicalElectricalTypeName( m_type );
|
return GetCanonicalElectricalTypeName( m_type );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* return a translated string for messages giving the electrical type of a pin.
|
|
||||||
* @param aType is the electrical type (see enum ELECTRICAL_PINTYPE )
|
|
||||||
* @return The electrical name of the pin (see enun MsgPinElectricType for names).
|
|
||||||
*/
|
|
||||||
static const wxString GetElectricalTypeName( unsigned aType );
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* return a translated string for messages giving the electrical type of the pin.
|
* return a translated string for messages giving the electrical type of the pin.
|
||||||
* @return The electrical name of the pin.
|
* @return The electrical name of the pin.
|
||||||
*/
|
*/
|
||||||
wxString const GetElectricalTypeName() const
|
wxString const GetElectricalTypeName() const
|
||||||
{
|
{
|
||||||
return GetElectricalTypeName( m_type );
|
return GetText( m_type );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -478,52 +440,6 @@ public:
|
||||||
*/
|
*/
|
||||||
static int GetOrientationCodeIndex( int aCode );
|
static int GetOrientationCodeIndex( int aCode );
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a list of pin draw style names.
|
|
||||||
*
|
|
||||||
* @return List of valid pin draw style names.
|
|
||||||
*/
|
|
||||||
static wxArrayString GetStyleNames();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a list of pin styles bitmaps for menus and dialogs.
|
|
||||||
*
|
|
||||||
* @return List of valid pin electrical type bitmaps symbols in .xpm format.
|
|
||||||
*/
|
|
||||||
static const BITMAP_DEF* GetStyleSymbols();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the pin draw style code by index used to set the pin draw style.
|
|
||||||
*
|
|
||||||
* @param aIndex - The index of the pin draw style code to look up.
|
|
||||||
* @return Pin draw style code if index is valid. Returns NONE
|
|
||||||
* style on index error.
|
|
||||||
*/
|
|
||||||
static int GetStyleCode( int aIndex );
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the index of the pin draw style code.
|
|
||||||
*
|
|
||||||
* @param aCode - The pin draw style code to look up.
|
|
||||||
* @return The index of the pin draw style code if found. Otherwise,
|
|
||||||
* return wxNOT_FOUND.
|
|
||||||
*/
|
|
||||||
static int GetStyleCodeIndex( int aCode );
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a list of pin electrical type names.
|
|
||||||
*
|
|
||||||
* @return List of valid pin electrical type names.
|
|
||||||
*/
|
|
||||||
static wxArrayString GetElectricalTypeNames();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a list of pin electrical bitmaps for menus and dialogs.
|
|
||||||
*
|
|
||||||
* @return List of valid pin electrical type bitmaps symbols in .xpm format
|
|
||||||
*/
|
|
||||||
static const BITMAP_DEF* GetElectricalTypeSymbols();
|
|
||||||
|
|
||||||
void SetOffset( const wxPoint& aOffset );
|
void SetOffset( const wxPoint& aOffset );
|
||||||
|
|
||||||
bool Inside( EDA_RECT& aRect ) const;
|
bool Inside( EDA_RECT& aRect ) const;
|
||||||
|
|
|
@ -0,0 +1,104 @@
|
||||||
|
/*
|
||||||
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2004-2015 KiCad Developers, see change_log.txt for contributors.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, you may find one here:
|
||||||
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||||
|
* or you may search the http://www.gnu.org website for the version 2 license,
|
||||||
|
* or you may write to the Free Software Foundation, Inc.,
|
||||||
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file pin_shape.cpp
|
||||||
|
* @brief Pin shape handling
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "pin_shape.h"
|
||||||
|
|
||||||
|
#include <macros.h>
|
||||||
|
|
||||||
|
wxString GetText( GRAPHIC_PINSHAPE shape )
|
||||||
|
{
|
||||||
|
switch( shape )
|
||||||
|
{
|
||||||
|
case PINSHAPE_LINE:
|
||||||
|
return _( "Line" );
|
||||||
|
|
||||||
|
case PINSHAPE_INVERTED:
|
||||||
|
return _( "Inverted" );
|
||||||
|
|
||||||
|
case PINSHAPE_CLOCK:
|
||||||
|
return _( "Clock" );
|
||||||
|
|
||||||
|
case PINSHAPE_INVERTED_CLOCK:
|
||||||
|
return _( "Inverted clock" );
|
||||||
|
|
||||||
|
case PINSHAPE_INPUT_LOW:
|
||||||
|
return _( "Input low" );
|
||||||
|
|
||||||
|
case PINSHAPE_CLOCK_LOW:
|
||||||
|
return _( "Clock low" );
|
||||||
|
|
||||||
|
case PINSHAPE_OUTPUT_LOW:
|
||||||
|
return _( "Output low" );
|
||||||
|
|
||||||
|
case PINSHAPE_FALLING_EDGE_CLOCK:
|
||||||
|
return _( "Falling edge clock" );
|
||||||
|
|
||||||
|
case PINSHAPE_NONLOGIC:
|
||||||
|
return _( "NonLogic" );
|
||||||
|
}
|
||||||
|
|
||||||
|
assert( !"Invalid pin shape" );
|
||||||
|
return wxT( "?" );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BITMAP_DEF GetBitmap( GRAPHIC_PINSHAPE shape )
|
||||||
|
{
|
||||||
|
switch( shape )
|
||||||
|
{
|
||||||
|
case PINSHAPE_LINE:
|
||||||
|
return pinshape_normal_xpm;
|
||||||
|
|
||||||
|
case PINSHAPE_INVERTED:
|
||||||
|
return pinshape_invert_xpm;
|
||||||
|
|
||||||
|
case PINSHAPE_CLOCK:
|
||||||
|
return pinshape_clock_normal_xpm;
|
||||||
|
|
||||||
|
case PINSHAPE_INVERTED_CLOCK:
|
||||||
|
return pinshape_clock_invert_xpm;
|
||||||
|
|
||||||
|
case PINSHAPE_INPUT_LOW:
|
||||||
|
return pinshape_active_low_input_xpm;
|
||||||
|
|
||||||
|
case PINSHAPE_CLOCK_LOW:
|
||||||
|
return pinshape_clock_active_low_xpm;
|
||||||
|
|
||||||
|
case PINSHAPE_OUTPUT_LOW:
|
||||||
|
return pinshape_active_low_output_xpm;
|
||||||
|
|
||||||
|
case PINSHAPE_FALLING_EDGE_CLOCK:
|
||||||
|
return pinshape_clock_fall_xpm;
|
||||||
|
|
||||||
|
case PINSHAPE_NONLOGIC:
|
||||||
|
return pinshape_nonlogic_xpm;
|
||||||
|
}
|
||||||
|
|
||||||
|
assert( !"Invalid pin shape" );
|
||||||
|
return 0;
|
||||||
|
};
|
|
@ -0,0 +1,57 @@
|
||||||
|
/*
|
||||||
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2004-2015 KiCad Developers, see change_log.txt for contributors.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, you may find one here:
|
||||||
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||||
|
* or you may search the http://www.gnu.org website for the version 2 license,
|
||||||
|
* or you may write to the Free Software Foundation, Inc.,
|
||||||
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file pin_shape.h
|
||||||
|
* @brief Pin shape handling
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _PIN_SHAPE_H_
|
||||||
|
#define _PIN_SHAPE_H_
|
||||||
|
|
||||||
|
#include <wx/string.h>
|
||||||
|
#include <bitmaps.h>
|
||||||
|
|
||||||
|
enum GRAPHIC_PINSHAPE
|
||||||
|
{
|
||||||
|
PINSHAPE_LINE,
|
||||||
|
PINSHAPE_INVERTED,
|
||||||
|
PINSHAPE_CLOCK,
|
||||||
|
PINSHAPE_INVERTED_CLOCK,
|
||||||
|
PINSHAPE_INPUT_LOW,
|
||||||
|
PINSHAPE_CLOCK_LOW,
|
||||||
|
PINSHAPE_OUTPUT_LOW,
|
||||||
|
PINSHAPE_FALLING_EDGE_CLOCK,
|
||||||
|
PINSHAPE_NONLOGIC
|
||||||
|
};
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
PINSHAPE_COUNT = PINSHAPE_NONLOGIC + 1
|
||||||
|
};
|
||||||
|
|
||||||
|
// UI
|
||||||
|
wxString GetText( GRAPHIC_PINSHAPE shape );
|
||||||
|
BITMAP_DEF GetBitmap( GRAPHIC_PINSHAPE shape );
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,116 @@
|
||||||
|
/*
|
||||||
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2004-2015 KiCad Developers, see change_log.txt for contributors.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, you may find one here:
|
||||||
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||||
|
* or you may search the http://www.gnu.org website for the version 2 license,
|
||||||
|
* or you may write to the Free Software Foundation, Inc.,
|
||||||
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file pin_type.cpp
|
||||||
|
* @brief Electrical pin type handling
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "pin_type.h"
|
||||||
|
|
||||||
|
#include <macros.h>
|
||||||
|
|
||||||
|
wxString GetText( ELECTRICAL_PINTYPE aType )
|
||||||
|
{
|
||||||
|
switch( aType )
|
||||||
|
{
|
||||||
|
case PIN_INPUT:
|
||||||
|
return _( "Input" );
|
||||||
|
|
||||||
|
case PIN_OUTPUT:
|
||||||
|
return _( "Output" );
|
||||||
|
|
||||||
|
case PIN_BIDI:
|
||||||
|
return _( "Bidirectional" );
|
||||||
|
|
||||||
|
case PIN_TRISTATE:
|
||||||
|
return _( "Tri-state" );
|
||||||
|
|
||||||
|
case PIN_PASSIVE:
|
||||||
|
return _( "Passive" );
|
||||||
|
|
||||||
|
case PIN_UNSPECIFIED:
|
||||||
|
return _( "Unspecified" );
|
||||||
|
|
||||||
|
case PIN_POWER_IN:
|
||||||
|
return _( "Power input" );
|
||||||
|
|
||||||
|
case PIN_POWER_OUT:
|
||||||
|
return _( "Power output" );
|
||||||
|
|
||||||
|
case PIN_OPENCOLLECTOR:
|
||||||
|
return _( "Open collector" );
|
||||||
|
|
||||||
|
case PIN_OPENEMITTER:
|
||||||
|
return _( "Open emitter" );
|
||||||
|
|
||||||
|
case PIN_NC:
|
||||||
|
return _( "Not connected" );
|
||||||
|
};
|
||||||
|
|
||||||
|
assert( !"invalid pin type" );
|
||||||
|
return wxT( "???" );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BITMAP_DEF GetBitmap( ELECTRICAL_PINTYPE aType )
|
||||||
|
{
|
||||||
|
switch( aType )
|
||||||
|
{
|
||||||
|
case PIN_INPUT:
|
||||||
|
return pintype_input_xpm;
|
||||||
|
|
||||||
|
case PIN_OUTPUT:
|
||||||
|
return pintype_output_xpm;
|
||||||
|
|
||||||
|
case PIN_BIDI:
|
||||||
|
return pintype_bidi_xpm;
|
||||||
|
|
||||||
|
case PIN_TRISTATE:
|
||||||
|
return pintype_3states_xpm;
|
||||||
|
|
||||||
|
case PIN_PASSIVE:
|
||||||
|
return pintype_passive_xpm;
|
||||||
|
|
||||||
|
case PIN_UNSPECIFIED:
|
||||||
|
return pintype_notspecif_xpm;
|
||||||
|
|
||||||
|
case PIN_POWER_IN:
|
||||||
|
return pintype_powerinput_xpm;
|
||||||
|
|
||||||
|
case PIN_POWER_OUT:
|
||||||
|
return pintype_poweroutput_xpm;
|
||||||
|
|
||||||
|
case PIN_OPENCOLLECTOR:
|
||||||
|
return pintype_opencoll_xpm;
|
||||||
|
|
||||||
|
case PIN_OPENEMITTER:
|
||||||
|
return pintype_openemit_xpm;
|
||||||
|
|
||||||
|
case PIN_NC:
|
||||||
|
return pintype_noconnect_xpm;
|
||||||
|
};
|
||||||
|
|
||||||
|
assert( !"invalid pin type" );
|
||||||
|
return NULL;
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
/*
|
||||||
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2004-2015 KiCad Developers, see change_log.txt for contributors.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, you may find one here:
|
||||||
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||||
|
* or you may search the http://www.gnu.org website for the version 2 license,
|
||||||
|
* or you may write to the Free Software Foundation, Inc.,
|
||||||
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file pin_type.h
|
||||||
|
* @brief Electrical pin type handling
|
||||||
|
*/
|
||||||
|
#ifndef PIN_TYPE_H_
|
||||||
|
#define PIN_TYPE_H_
|
||||||
|
|
||||||
|
#include <wx/string.h>
|
||||||
|
#include <bitmaps.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The component library pin object electrical types used in ERC tests.
|
||||||
|
*/
|
||||||
|
enum ELECTRICAL_PINTYPE {
|
||||||
|
PIN_INPUT,
|
||||||
|
PIN_OUTPUT,
|
||||||
|
PIN_BIDI,
|
||||||
|
PIN_TRISTATE,
|
||||||
|
PIN_PASSIVE,
|
||||||
|
PIN_UNSPECIFIED,
|
||||||
|
PIN_POWER_IN,
|
||||||
|
PIN_POWER_OUT,
|
||||||
|
PIN_OPENCOLLECTOR,
|
||||||
|
PIN_OPENEMITTER,
|
||||||
|
PIN_NC /* No connect */
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
PINTYPE_COUNT = PIN_NC + 1
|
||||||
|
};
|
||||||
|
|
||||||
|
// UI
|
||||||
|
wxString GetText( ELECTRICAL_PINTYPE );
|
||||||
|
BITMAP_DEF GetBitmap( ELECTRICAL_PINTYPE );
|
||||||
|
|
||||||
|
#endif
|
|
@ -57,7 +57,7 @@ static wxPoint OldPos;
|
||||||
static wxPoint PinPreviousPos;
|
static wxPoint PinPreviousPos;
|
||||||
static ELECTRICAL_PINTYPE LastPinType = PIN_INPUT;
|
static ELECTRICAL_PINTYPE LastPinType = PIN_INPUT;
|
||||||
static int LastPinOrient = PIN_RIGHT;
|
static int LastPinOrient = PIN_RIGHT;
|
||||||
static int LastPinShape = NONE;
|
static GRAPHIC_PINSHAPE LastPinShape = PINSHAPE_LINE;
|
||||||
static bool LastPinCommonConvert = false;
|
static bool LastPinCommonConvert = false;
|
||||||
static bool LastPinCommonUnit = false;
|
static bool LastPinCommonUnit = false;
|
||||||
static bool LastPinVisible = true;
|
static bool LastPinVisible = true;
|
||||||
|
@ -104,10 +104,7 @@ void LIB_EDIT_FRAME::OnEditPin( wxCommandEvent& event )
|
||||||
wxString units = GetUnitsLabel( g_UserUnit );
|
wxString units = GetUnitsLabel( g_UserUnit );
|
||||||
dlg.SetOrientationList( LIB_PIN::GetOrientationNames(), LIB_PIN::GetOrientationSymbols() );
|
dlg.SetOrientationList( LIB_PIN::GetOrientationNames(), LIB_PIN::GetOrientationSymbols() );
|
||||||
dlg.SetOrientation( LIB_PIN::GetOrientationCodeIndex( pin->GetOrientation() ) );
|
dlg.SetOrientation( LIB_PIN::GetOrientationCodeIndex( pin->GetOrientation() ) );
|
||||||
dlg.SetStyleList( LIB_PIN::GetStyleNames(), LIB_PIN::GetStyleSymbols() );
|
dlg.SetStyle( pin->GetShape() );
|
||||||
dlg.SetStyle( LIB_PIN::GetStyleCodeIndex( pin->GetShape() ) );
|
|
||||||
dlg.SetElectricalTypeList( LIB_PIN::GetElectricalTypeNames(),
|
|
||||||
LIB_PIN::GetElectricalTypeSymbols() );
|
|
||||||
dlg.SetElectricalType( pin->GetType() );
|
dlg.SetElectricalType( pin->GetType() );
|
||||||
dlg.SetPinName( pin->GetName() );
|
dlg.SetPinName( pin->GetName() );
|
||||||
dlg.SetPinNameTextSize( StringFromValue( g_UserUnit, pin->GetNameTextSize() ) );
|
dlg.SetPinNameTextSize( StringFromValue( g_UserUnit, pin->GetNameTextSize() ) );
|
||||||
|
@ -147,7 +144,7 @@ void LIB_EDIT_FRAME::OnEditPin( wxCommandEvent& event )
|
||||||
LastPinNumSize = ValueFromString( g_UserUnit, dlg.GetPadNameTextSize() );
|
LastPinNumSize = ValueFromString( g_UserUnit, dlg.GetPadNameTextSize() );
|
||||||
LastPinOrient = LIB_PIN::GetOrientationCode( dlg.GetOrientation() );
|
LastPinOrient = LIB_PIN::GetOrientationCode( dlg.GetOrientation() );
|
||||||
LastPinLength = ValueFromString( g_UserUnit, dlg.GetLength() );
|
LastPinLength = ValueFromString( g_UserUnit, dlg.GetLength() );
|
||||||
LastPinShape = LIB_PIN::GetStyleCode( dlg.GetStyle() );
|
LastPinShape = dlg.GetStyle();
|
||||||
LastPinType = dlg.GetElectricalType();
|
LastPinType = dlg.GetElectricalType();
|
||||||
LastPinCommonConvert = dlg.GetAddToAllBodyStyles();
|
LastPinCommonConvert = dlg.GetAddToAllBodyStyles();
|
||||||
LastPinCommonUnit = dlg.GetAddToAllParts();
|
LastPinCommonUnit = dlg.GetAddToAllParts();
|
||||||
|
|
|
@ -466,7 +466,7 @@ void SCH_SHEET_PIN::CreateGraphicShape( std::vector <wxPoint>& aPoints, const wx
|
||||||
* for INPUT type the icon is the OUTPUT shape of SCH_HIERLABEL
|
* for INPUT type the icon is the OUTPUT shape of SCH_HIERLABEL
|
||||||
* for OUTPUT type the icon is the INPUT shape of SCH_HIERLABEL
|
* for OUTPUT type the icon is the INPUT shape of SCH_HIERLABEL
|
||||||
*/
|
*/
|
||||||
int tmp = m_shape;
|
TypeSheetLabel tmp = m_shape;
|
||||||
|
|
||||||
switch( m_shape )
|
switch( m_shape )
|
||||||
{
|
{
|
||||||
|
|
|
@ -102,11 +102,11 @@ static int* TemplateShape[5][4] =
|
||||||
|
|
||||||
SCH_TEXT::SCH_TEXT( const wxPoint& pos, const wxString& text, KICAD_T aType ) :
|
SCH_TEXT::SCH_TEXT( const wxPoint& pos, const wxString& text, KICAD_T aType ) :
|
||||||
SCH_ITEM( NULL, aType ),
|
SCH_ITEM( NULL, aType ),
|
||||||
EDA_TEXT( text )
|
EDA_TEXT( text ),
|
||||||
|
m_shape( NET_INPUT )
|
||||||
{
|
{
|
||||||
m_Layer = LAYER_NOTES;
|
m_Layer = LAYER_NOTES;
|
||||||
m_Pos = pos;
|
m_Pos = pos;
|
||||||
m_shape = 0;
|
|
||||||
m_isDangling = false;
|
m_isDangling = false;
|
||||||
m_MultilineAllowed = true;
|
m_MultilineAllowed = true;
|
||||||
m_schematicOrientation = 0;
|
m_schematicOrientation = 0;
|
||||||
|
|
|
@ -58,7 +58,7 @@ extern const char* SheetLabelType[]; /* names of types of labels */
|
||||||
class SCH_TEXT : public SCH_ITEM, public EDA_TEXT
|
class SCH_TEXT : public SCH_ITEM, public EDA_TEXT
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
int m_shape;
|
TypeSheetLabel m_shape;
|
||||||
|
|
||||||
/// True if not connected to another object if the object derive from SCH_TEXT
|
/// True if not connected to another object if the object derive from SCH_TEXT
|
||||||
/// supports connections.
|
/// supports connections.
|
||||||
|
@ -120,9 +120,9 @@ public:
|
||||||
|
|
||||||
int GetOrientation() { return m_schematicOrientation; }
|
int GetOrientation() { return m_schematicOrientation; }
|
||||||
|
|
||||||
int GetShape() const { return m_shape; }
|
TypeSheetLabel GetShape() const { return m_shape; }
|
||||||
|
|
||||||
void SetShape( int aShape ) { m_shape = aShape; }
|
void SetShape( TypeSheetLabel aShape ) { m_shape = aShape; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetSchematicTextOffset (virtual)
|
* Function GetSchematicTextOffset (virtual)
|
||||||
|
|
|
@ -38,6 +38,8 @@
|
||||||
#include <class_sch_screen.h>
|
#include <class_sch_screen.h>
|
||||||
#include <sch_collectors.h>
|
#include <sch_collectors.h>
|
||||||
|
|
||||||
|
// enum TypeSheetLabel
|
||||||
|
#include <sch_text.h>
|
||||||
|
|
||||||
class LIB_EDIT_FRAME;
|
class LIB_EDIT_FRAME;
|
||||||
class LIB_VIEW_FRAME;
|
class LIB_VIEW_FRAME;
|
||||||
|
@ -173,7 +175,7 @@ private:
|
||||||
wxArrayString m_componentLibFiles;
|
wxArrayString m_componentLibFiles;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int m_lastSheetPinType; ///< Last sheet pin type.
|
static TypeSheetLabel m_lastSheetPinType; ///< Last sheet pin type.
|
||||||
static wxSize m_lastSheetPinTextSize; ///< Last sheet pin text size.
|
static wxSize m_lastSheetPinTextSize; ///< Last sheet pin text size.
|
||||||
static wxPoint m_lastSheetPinPosition; ///< Last sheet pin position.
|
static wxPoint m_lastSheetPinPosition; ///< Last sheet pin position.
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@
|
||||||
#include <dialogs/dialog_sch_edit_sheet_pin.h>
|
#include <dialogs/dialog_sch_edit_sheet_pin.h>
|
||||||
|
|
||||||
|
|
||||||
int SCH_EDIT_FRAME::m_lastSheetPinType = NET_INPUT;
|
TypeSheetLabel SCH_EDIT_FRAME::m_lastSheetPinType = NET_INPUT;
|
||||||
wxSize SCH_EDIT_FRAME::m_lastSheetPinTextSize( -1, -1 );
|
wxSize SCH_EDIT_FRAME::m_lastSheetPinTextSize( -1, -1 );
|
||||||
wxPoint SCH_EDIT_FRAME::m_lastSheetPinPosition;
|
wxPoint SCH_EDIT_FRAME::m_lastSheetPinPosition;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,69 @@
|
||||||
|
/*
|
||||||
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015 Simon Richter <Simon.Richter@hogyros.de>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, you may find one here:
|
||||||
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||||
|
* or you may search the http://www.gnu.org website for the version 2 license,
|
||||||
|
* or you may write to the Free Software Foundation, Inc.,
|
||||||
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file pin_shape_combobox.cpp
|
||||||
|
* @brief ComboBox widget for pin shape
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "pin_shape_combobox.h"
|
||||||
|
|
||||||
|
#include <lib_pin.h>
|
||||||
|
|
||||||
|
PinShapeComboBox::PinShapeComboBox( wxWindow* parent,
|
||||||
|
wxWindowID id,
|
||||||
|
const wxString& value,
|
||||||
|
const wxPoint& pos,
|
||||||
|
const wxSize& size,
|
||||||
|
int n,
|
||||||
|
const wxString choices[],
|
||||||
|
long style,
|
||||||
|
const wxValidator& validator,
|
||||||
|
const wxString& name ) :
|
||||||
|
wxBitmapComboBox( parent, id, value, pos, size, n, choices, style, validator, name )
|
||||||
|
{
|
||||||
|
for( unsigned ii = 0; ii < PINSHAPE_COUNT; ++ii )
|
||||||
|
{
|
||||||
|
GRAPHIC_PINSHAPE shape = static_cast<GRAPHIC_PINSHAPE>( ii );
|
||||||
|
|
||||||
|
wxString text = GetText( shape );
|
||||||
|
BITMAP_DEF bitmap = GetBitmap( shape );
|
||||||
|
|
||||||
|
if( bitmap == NULL )
|
||||||
|
Append( text );
|
||||||
|
else
|
||||||
|
Insert( text, KiBitmap( bitmap ), ii );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
GRAPHIC_PINSHAPE PinShapeComboBox::GetSelection()
|
||||||
|
{
|
||||||
|
return static_cast<GRAPHIC_PINSHAPE>( wxBitmapComboBox::GetSelection() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PinShapeComboBox::SetSelection( GRAPHIC_PINSHAPE aShape )
|
||||||
|
{
|
||||||
|
wxBitmapComboBox::SetSelection( aShape );
|
||||||
|
}
|
|
@ -0,0 +1,51 @@
|
||||||
|
/*
|
||||||
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015 Simon Richter <Simon.Richter@hogyros.de>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, you may find one here:
|
||||||
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||||
|
* or you may search the http://www.gnu.org website for the version 2 license,
|
||||||
|
* or you may write to the Free Software Foundation, Inc.,
|
||||||
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file pin_shape_combobox.h
|
||||||
|
* @brief ComboBox widget for pin shape
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <wx/bmpcbox.h>
|
||||||
|
|
||||||
|
#include <pin_shape.h>
|
||||||
|
|
||||||
|
class PinShapeComboBox : public wxBitmapComboBox
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/// @todo C++11: replace with forwarder
|
||||||
|
|
||||||
|
PinShapeComboBox( wxWindow* parent,
|
||||||
|
wxWindowID id = wxID_ANY,
|
||||||
|
const wxString& value = wxEmptyString,
|
||||||
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
|
const wxSize& size = wxDefaultSize,
|
||||||
|
int n = 0,
|
||||||
|
const wxString choices[] = NULL,
|
||||||
|
long style = 0,
|
||||||
|
const wxValidator& validator = wxDefaultValidator,
|
||||||
|
const wxString& name = wxBitmapComboBoxNameStr );
|
||||||
|
|
||||||
|
GRAPHIC_PINSHAPE GetSelection();
|
||||||
|
void SetSelection( GRAPHIC_PINSHAPE aShape );
|
||||||
|
};
|
|
@ -0,0 +1,69 @@
|
||||||
|
/*
|
||||||
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015 Simon Richter <Simon.Richter@hogyros.de>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, you may find one here:
|
||||||
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||||
|
* or you may search the http://www.gnu.org website for the version 2 license,
|
||||||
|
* or you may write to the Free Software Foundation, Inc.,
|
||||||
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file pin_type_combobox.cpp
|
||||||
|
* @brief ComboBox widget for pin type
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "pin_type_combobox.h"
|
||||||
|
|
||||||
|
#include <lib_pin.h>
|
||||||
|
|
||||||
|
PinTypeComboBox::PinTypeComboBox( wxWindow* parent,
|
||||||
|
wxWindowID id,
|
||||||
|
const wxString& value,
|
||||||
|
const wxPoint& pos,
|
||||||
|
const wxSize& size,
|
||||||
|
int n,
|
||||||
|
const wxString choices[],
|
||||||
|
long style,
|
||||||
|
const wxValidator& validator,
|
||||||
|
const wxString& name ) :
|
||||||
|
wxBitmapComboBox( parent, id, value, pos, size, n, choices, style, validator, name )
|
||||||
|
{
|
||||||
|
for( unsigned ii = 0; ii < PINTYPE_COUNT; ++ii )
|
||||||
|
{
|
||||||
|
ELECTRICAL_PINTYPE type = static_cast<ELECTRICAL_PINTYPE>( ii );
|
||||||
|
|
||||||
|
wxString text = GetText( type );
|
||||||
|
BITMAP_DEF bitmap = GetBitmap( type );
|
||||||
|
|
||||||
|
if( bitmap == NULL )
|
||||||
|
Append( text );
|
||||||
|
else
|
||||||
|
Insert( text, KiBitmap( bitmap ), ii );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ELECTRICAL_PINTYPE PinTypeComboBox::GetSelection()
|
||||||
|
{
|
||||||
|
return static_cast<ELECTRICAL_PINTYPE>( wxBitmapComboBox::GetSelection() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PinTypeComboBox::SetSelection( ELECTRICAL_PINTYPE aType )
|
||||||
|
{
|
||||||
|
wxBitmapComboBox::SetSelection( aType );
|
||||||
|
}
|
|
@ -0,0 +1,51 @@
|
||||||
|
/*
|
||||||
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015 Simon Richter <Simon.Richter@hogyros.de>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, you may find one here:
|
||||||
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||||
|
* or you may search the http://www.gnu.org website for the version 2 license,
|
||||||
|
* or you may write to the Free Software Foundation, Inc.,
|
||||||
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file pin_type_combobox.h
|
||||||
|
* @brief ComboBox widget for pin type
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <wx/bmpcbox.h>
|
||||||
|
|
||||||
|
#include <pin_type.h>
|
||||||
|
|
||||||
|
class PinTypeComboBox : public wxBitmapComboBox
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/// @todo C++11: replace with forwarder
|
||||||
|
|
||||||
|
PinTypeComboBox( wxWindow* parent,
|
||||||
|
wxWindowID id = wxID_ANY,
|
||||||
|
const wxString& value = wxEmptyString,
|
||||||
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
|
const wxSize& size = wxDefaultSize,
|
||||||
|
int n = 0,
|
||||||
|
const wxString choices[] = NULL,
|
||||||
|
long style = 0,
|
||||||
|
const wxValidator& validator = wxDefaultValidator,
|
||||||
|
const wxString& name = wxBitmapComboBoxNameStr );
|
||||||
|
|
||||||
|
ELECTRICAL_PINTYPE GetSelection();
|
||||||
|
void SetSelection( ELECTRICAL_PINTYPE aType );
|
||||||
|
};
|
Loading…
Reference in New Issue