Change dialog to edit fields in libedit (see CHANGELOG.txt)
This commit is contained in:
parent
cbb5159a07
commit
930a777eb7
|
@ -5,6 +5,19 @@ Started 2007-June-11
|
||||||
Please add newer entries at the top, list the date and your name with
|
Please add newer entries at the top, list the date and your name with
|
||||||
email address.
|
email address.
|
||||||
|
|
||||||
|
2008-Dec-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
|
||||||
|
================================================================================
|
||||||
|
++Eeschema:
|
||||||
|
Note: this is a work in progress!
|
||||||
|
Change dialog to edit fields in libedit.
|
||||||
|
Most of code created by Dick to edit fields in shematic is reused (this was the goal).
|
||||||
|
Component dialog properties -in libedit) is not modified, and fields can be also edited with it.
|
||||||
|
New dialog box is similar to the component dialog box used in schematic.
|
||||||
|
But all features do not work (work in progress!)
|
||||||
|
TODO (by me):
|
||||||
|
use vector to handle fields in libraries, like schematic.
|
||||||
|
Finish work, and test it.
|
||||||
|
|
||||||
2008-Dec-29 UPDATE Dick Hollenbeck <dick@softplc.com>
|
2008-Dec-29 UPDATE Dick Hollenbeck <dick@softplc.com>
|
||||||
================================================================================
|
================================================================================
|
||||||
++all
|
++all
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
#include "wx/generic/aboutdlgg.h"
|
#include "wx/generic/aboutdlgg.h"
|
||||||
|
|
||||||
#include "fctsys.h"
|
#include "fctsys.h"
|
||||||
#include "gr_basic.h"
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
extern wxString g_Main_Title; // Import program title
|
extern wxString g_Main_Title; // Import program title
|
||||||
|
|
|
@ -580,11 +580,21 @@ void WinEDA_DrawPanel::EraseScreen( wxDC* DC )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//#define USE_GCDC_IN_KICAD
|
||||||
|
#ifdef USE_GCDC_IN_KICAD
|
||||||
|
#include <wx/dcgraph.h>
|
||||||
|
#endif
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
void WinEDA_DrawPanel::OnPaint( wxPaintEvent& event )
|
void WinEDA_DrawPanel::OnPaint( wxPaintEvent& event )
|
||||||
/***************************************************/
|
/***************************************************/
|
||||||
{
|
{
|
||||||
|
#ifdef USE_GCDC_IN_KICAD
|
||||||
|
wxPaintDC pDC( this );
|
||||||
|
wxGCDC paintDC(pDC); // Following line should be disabled on MSW and OS X
|
||||||
|
paintDC.GetGraphicsContext()->Translate(0.5, 0.5); // Fix for pixel offset bug http://trac.wxwidgets.org/ticket/4187
|
||||||
|
#else
|
||||||
wxPaintDC paintDC( this );
|
wxPaintDC paintDC( this );
|
||||||
|
#endif
|
||||||
EDA_Rect tmp;
|
EDA_Rect tmp;
|
||||||
wxRect PaintClipBox;
|
wxRect PaintClipBox;
|
||||||
wxPoint org;
|
wxPoint org;
|
||||||
|
|
|
@ -41,6 +41,8 @@ set(EESCHEMA_SRCS
|
||||||
dialog_edit_component_in_schematic.cpp
|
dialog_edit_component_in_schematic.cpp
|
||||||
dialog_edit_label.cpp
|
dialog_edit_label.cpp
|
||||||
dialog_edit_label_base.cpp
|
dialog_edit_label_base.cpp
|
||||||
|
dialog_edit_libentry_fields_in_lib.cpp
|
||||||
|
dialog_edit_libentry_fields_in_lib_base.cpp
|
||||||
dialog_eeschema_config.cpp
|
dialog_eeschema_config.cpp
|
||||||
dialog_erc.cpp
|
dialog_erc.cpp
|
||||||
# dialog_find.cpp
|
# dialog_find.cpp
|
||||||
|
|
|
@ -410,8 +410,11 @@ LibDrawField* LibDrawField::GenCopy()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// copie du field dans le field Target
|
/** Function Copy
|
||||||
void LibDrawField::Copy( LibDrawField* Target )
|
* copy parameters of this to Target. Pointers are not copied
|
||||||
|
* @param Target = the LibDrawField to set with "this" values
|
||||||
|
*/
|
||||||
|
void LibDrawField::Copy( LibDrawField* Target ) const
|
||||||
{
|
{
|
||||||
Target->m_Pos = m_Pos;
|
Target->m_Pos = m_Pos;
|
||||||
Target->m_Size = m_Size;
|
Target->m_Size = m_Size;
|
||||||
|
|
|
@ -137,6 +137,12 @@ public:
|
||||||
* @return bool - true if success writing else false.
|
* @return bool - true if success writing else false.
|
||||||
*/
|
*/
|
||||||
bool Save( FILE* aFile );
|
bool Save( FILE* aFile );
|
||||||
|
|
||||||
|
/** Function SetFields
|
||||||
|
* initialize fields from a vector of fields
|
||||||
|
* @param aFields a std::vector <LibDrawField> to import.
|
||||||
|
*/
|
||||||
|
void SetFields( const std::vector <LibDrawField> aFields );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -497,7 +497,14 @@ public:
|
||||||
|
|
||||||
|
|
||||||
LibDrawField* GenCopy();
|
LibDrawField* GenCopy();
|
||||||
void Copy( LibDrawField* Target );
|
|
||||||
|
/** Function Copy
|
||||||
|
* copy parameters of this to Target. Pointers are not copied
|
||||||
|
* @param Target = the LibDrawField to set with "this" values
|
||||||
|
*/
|
||||||
|
void Copy( LibDrawField* Target ) const;
|
||||||
|
|
||||||
|
void SetFields( const std::vector <LibDrawField> aFields );
|
||||||
|
|
||||||
void Draw( WinEDA_DrawPanel * aPanel, wxDC * aDC, const wxPoint &aOffset, int aColor,
|
void Draw( WinEDA_DrawPanel * aPanel, wxDC * aDC, const wxPoint &aOffset, int aColor,
|
||||||
int aDrawMode, void* aData, int aTransformMatrix[2][2] );
|
int aDrawMode, void* aData, int aTransformMatrix[2][2] );
|
||||||
|
|
|
@ -445,7 +445,7 @@ void DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copySelectedFieldToPanel()
|
||||||
fieldNameTextCtrl->SetValue( field.m_Name );
|
fieldNameTextCtrl->SetValue( field.m_Name );
|
||||||
|
|
||||||
// if fieldNdx == REFERENCE, VALUE, FOOTPRINT, or DATASHEET, then disable editing
|
// if fieldNdx == REFERENCE, VALUE, FOOTPRINT, or DATASHEET, then disable editing
|
||||||
// fieldNameTextCtrl->Enable( fieldNdx >= FIELD1 );
|
fieldNameTextCtrl->Enable( fieldNdx >= FIELD1 );
|
||||||
fieldNameTextCtrl->SetEditable( fieldNdx >= FIELD1 );
|
fieldNameTextCtrl->SetEditable( fieldNdx >= FIELD1 );
|
||||||
|
|
||||||
fieldValueTextCtrl->SetValue( field.m_Text );
|
fieldValueTextCtrl->SetValue( field.m_Text );
|
||||||
|
|
|
@ -0,0 +1,644 @@
|
||||||
|
/*******************************************************************************/
|
||||||
|
/* library editor: edition of fields of lib entries (components in libraries) */
|
||||||
|
/*******************************************************************************/
|
||||||
|
|
||||||
|
#include "fctsys.h"
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
|
||||||
|
#include "common.h"
|
||||||
|
#include "program.h"
|
||||||
|
#include "libcmp.h"
|
||||||
|
#include "general.h"
|
||||||
|
|
||||||
|
#include "protos.h"
|
||||||
|
|
||||||
|
#include "dialog_edit_libentry_fields_in_lib_base.h"
|
||||||
|
|
||||||
|
// Local variables:
|
||||||
|
static int s_SelectedRow;
|
||||||
|
|
||||||
|
/** @todo function to move in a file like class_libentry.cpp
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** Function SetFields
|
||||||
|
* initialize fields from a vector of fields
|
||||||
|
* @param aFields a std::vector <LibDrawField> to import.
|
||||||
|
*/
|
||||||
|
void EDA_LibComponentStruct::SetFields( const std::vector <LibDrawField> aFields )
|
||||||
|
{
|
||||||
|
// Init basic fields (Value = name in lib, and reference):
|
||||||
|
aFields[VALUE].Copy( &m_Name );
|
||||||
|
aFields[REFERENCE].Copy( &m_Prefix );
|
||||||
|
|
||||||
|
// Init others fields:
|
||||||
|
for( unsigned ii = FOOTPRINT; ii < aFields.size(); ii++ )
|
||||||
|
{
|
||||||
|
LibDrawField* Field = CurrentLibEntry->Fields;
|
||||||
|
LibDrawField* NextField, * previousField = NULL;
|
||||||
|
while( Field )
|
||||||
|
{
|
||||||
|
NextField = Field->Next();
|
||||||
|
if( Field->m_FieldId == (int) ii )
|
||||||
|
{
|
||||||
|
aFields[ii].Copy( Field );
|
||||||
|
|
||||||
|
// An old field exists; delete it if void
|
||||||
|
if( Field->m_Text.IsEmpty() )
|
||||||
|
{
|
||||||
|
if( ii < FIELD1 || Field->m_Name.IsEmpty() )
|
||||||
|
{
|
||||||
|
SAFE_DELETE( Field );
|
||||||
|
if( previousField )
|
||||||
|
previousField->SetNext( NextField );
|
||||||
|
else
|
||||||
|
Fields = NextField;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
previousField = Field;
|
||||||
|
Field = NextField;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( Field == NULL ) // Do not exists: must be created if not void
|
||||||
|
{
|
||||||
|
bool create = FALSE;
|
||||||
|
if( !aFields[ii].m_Text.IsEmpty() )
|
||||||
|
create = TRUE;
|
||||||
|
if( !aFields[ii].m_Name.IsEmpty()
|
||||||
|
&& ( aFields[ii].m_Name != ReturnDefaultFieldName( ii ) ) )
|
||||||
|
create = TRUE;
|
||||||
|
if( create )
|
||||||
|
{
|
||||||
|
Field = new LibDrawField( ii );
|
||||||
|
|
||||||
|
*Field = aFields[ii];
|
||||||
|
Field->SetNext( CurrentLibEntry->Fields );
|
||||||
|
Fields = Field;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* for a user field (FieldId >= FIELD1), if a field value is void,
|
||||||
|
* fill it with "~" because for a library component a void field is not a very good idea
|
||||||
|
* (we do not see anything...) and in schematic this text is like a void text
|
||||||
|
* and for not editable names, remove the name (thar is the default name
|
||||||
|
*/
|
||||||
|
for( LibDrawField* Field = Fields; Field; Field = Field->Next() )
|
||||||
|
{
|
||||||
|
if( Field->m_FieldId >= FIELD1 )
|
||||||
|
{
|
||||||
|
if( Field->m_Text.IsEmpty() )
|
||||||
|
Field->m_Text = wxT( "~" );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Field->m_Name.Empty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*****************************************************************************************/
|
||||||
|
class DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB : public DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE
|
||||||
|
/*****************************************************************************************/
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
WinEDA_LibeditFrame* m_Parent;
|
||||||
|
EDA_LibComponentStruct* m_LibEntry;
|
||||||
|
bool m_skipCopyFromPanel;
|
||||||
|
|
||||||
|
/// a copy of the edited component's LibDrawFields
|
||||||
|
std::vector <LibDrawField> m_FieldsBuf;
|
||||||
|
|
||||||
|
public:
|
||||||
|
DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB( WinEDA_LibeditFrame* aParent,
|
||||||
|
EDA_LibComponentStruct* aLibEntry );
|
||||||
|
~DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB();
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
// Events handlers:
|
||||||
|
void OnInitDialog( wxInitDialogEvent& event );
|
||||||
|
|
||||||
|
void OnListItemDeselected( wxListEvent& event );
|
||||||
|
void OnListItemSelected( wxListEvent& event );
|
||||||
|
void addFieldButtonHandler( wxCommandEvent& event );
|
||||||
|
void deleteFieldButtonHandler( wxCommandEvent& event );
|
||||||
|
void moveUpButtonHandler( wxCommandEvent& event );
|
||||||
|
void OnCancelButtonClick( wxCommandEvent& event );
|
||||||
|
void OnOKButtonClick( wxCommandEvent& event );
|
||||||
|
|
||||||
|
// internal functions:
|
||||||
|
void setSelectedFieldNdx( int aFieldNdx );
|
||||||
|
|
||||||
|
int getSelectedFieldNdx();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function InitBuffers
|
||||||
|
* sets up to edit the given component.
|
||||||
|
* @param aComponent The component to edit.
|
||||||
|
*/
|
||||||
|
void InitBuffers( void );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function copySelectedFieldToPanel
|
||||||
|
* sets the values displayed on the panel according to
|
||||||
|
* the currently selected field row
|
||||||
|
*/
|
||||||
|
void copySelectedFieldToPanel();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function copyPanelToSelectedField
|
||||||
|
* copies the values displayed on the panel fields to the currently selected field
|
||||||
|
* @return bool - true if all fields are OK, else false if the user has put
|
||||||
|
* bad data into a field, and this value can be used to deny a row change.
|
||||||
|
*/
|
||||||
|
bool copyPanelToSelectedField();
|
||||||
|
void setRowItem( int aFieldNdx, const LibDrawField& aField );
|
||||||
|
};
|
||||||
|
|
||||||
|
/*****************************************************************/
|
||||||
|
void WinEDA_LibeditFrame::InstallFieldsEditorDialog( void )
|
||||||
|
/*****************************************************************/
|
||||||
|
{
|
||||||
|
if( CurrentLibEntry == NULL )
|
||||||
|
return;
|
||||||
|
|
||||||
|
DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB* frame =
|
||||||
|
new DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB( this, CurrentLibEntry );
|
||||||
|
|
||||||
|
int IsModified = frame->ShowModal(); frame->Destroy();
|
||||||
|
|
||||||
|
if( IsModified )
|
||||||
|
Refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************/
|
||||||
|
DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB(
|
||||||
|
WinEDA_LibeditFrame* aParent,
|
||||||
|
EDA_LibComponentStruct* aLibEntry ) :
|
||||||
|
DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE( aParent )
|
||||||
|
{
|
||||||
|
m_Parent = aParent;
|
||||||
|
m_LibEntry = aLibEntry;
|
||||||
|
/***********************************************************************/
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************/
|
||||||
|
DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::~DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB()
|
||||||
|
/***********************************************************************/
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************************************************/
|
||||||
|
void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnInitDialog( wxInitDialogEvent& event )
|
||||||
|
/**********************************************************************************/
|
||||||
|
{
|
||||||
|
SetFont( *g_DialogFont );
|
||||||
|
m_skipCopyFromPanel = false;
|
||||||
|
wxListItem columnLabel;
|
||||||
|
|
||||||
|
columnLabel.SetImage( -1 );
|
||||||
|
|
||||||
|
columnLabel.SetText( _( "Name" ) );
|
||||||
|
fieldListCtrl->InsertColumn( 0, columnLabel );
|
||||||
|
|
||||||
|
columnLabel.SetText( _( "Value" ) );
|
||||||
|
fieldListCtrl->InsertColumn( 1, columnLabel );
|
||||||
|
|
||||||
|
wxString label = _( "Size" ) + ReturnUnitSymbol( g_UnitMetric );
|
||||||
|
textSizeLabel->SetLabel( label );
|
||||||
|
|
||||||
|
label = _( "Pos " );
|
||||||
|
label += _( "X" );
|
||||||
|
label += ReturnUnitSymbol( g_UnitMetric );
|
||||||
|
posXLabel->SetLabel( label );
|
||||||
|
|
||||||
|
label = _( "Pos " );
|
||||||
|
label += _( "Y" );
|
||||||
|
label += ReturnUnitSymbol( g_UnitMetric );
|
||||||
|
posYLabel->SetLabel( label );
|
||||||
|
|
||||||
|
InitBuffers();
|
||||||
|
copySelectedFieldToPanel();
|
||||||
|
|
||||||
|
if( GetSizer() )
|
||||||
|
{
|
||||||
|
GetSizer()->SetSizeHints( this );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************************************************/
|
||||||
|
void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnListItemDeselected( wxListEvent& event )
|
||||||
|
/**********************************************************************************/
|
||||||
|
{
|
||||||
|
if( !m_skipCopyFromPanel )
|
||||||
|
{
|
||||||
|
if( !copyPanelToSelectedField() )
|
||||||
|
event.Skip(); // do not go to the next row
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************************************************/
|
||||||
|
void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnListItemSelected( wxListEvent& event )
|
||||||
|
/**********************************************************************************/
|
||||||
|
{
|
||||||
|
// remember the selected row, statically
|
||||||
|
s_SelectedRow = event.GetIndex();
|
||||||
|
|
||||||
|
copySelectedFieldToPanel();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************************/
|
||||||
|
void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnCancelButtonClick( wxCommandEvent& event )
|
||||||
|
/***********************************************************************************/
|
||||||
|
{
|
||||||
|
EndModal( 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************************************************/
|
||||||
|
void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnOKButtonClick( wxCommandEvent& event )
|
||||||
|
/**********************************************************************************/
|
||||||
|
{
|
||||||
|
if( !copyPanelToSelectedField() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
/* A new name could be entered in VALUE field.
|
||||||
|
* Must not be an existing alias name in alias list box */
|
||||||
|
wxString* newvalue = &m_FieldsBuf[VALUE].m_Text;
|
||||||
|
for( unsigned ii = 0; ii < m_LibEntry->m_AliasList.GetCount(); ii += ALIAS_NEXT )
|
||||||
|
{
|
||||||
|
wxString* libname = &(m_LibEntry->m_AliasList[ii + ALIAS_NAME]);
|
||||||
|
if( newvalue->CmpNoCase( *libname ) == 0 )
|
||||||
|
{
|
||||||
|
wxString msg;
|
||||||
|
msg.Printf(
|
||||||
|
_(
|
||||||
|
"A new name is entered for this component\nAn alias %s already exists!\nCannot update this component" ),
|
||||||
|
newvalue->GetData() );
|
||||||
|
DisplayError( this, msg );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* save old cmp in undo list */
|
||||||
|
m_Parent->SaveCopyInUndoList( m_LibEntry, IS_CHANGED );
|
||||||
|
|
||||||
|
// delete any fields with no name
|
||||||
|
for( unsigned i = FIELD1; i<m_FieldsBuf.size(); )
|
||||||
|
{
|
||||||
|
if( m_FieldsBuf[i].m_Name.IsEmpty() )
|
||||||
|
{
|
||||||
|
m_FieldsBuf.erase( m_FieldsBuf.begin() + i );
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
|
||||||
|
// copy all the fields back, and change the length of m_Fields.
|
||||||
|
m_LibEntry->SetFields( m_FieldsBuf );
|
||||||
|
|
||||||
|
m_Parent->GetScreen()->SetModify();
|
||||||
|
|
||||||
|
m_Parent->DrawPanel->Refresh( TRUE );
|
||||||
|
|
||||||
|
EndModal( 0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************************/
|
||||||
|
void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::addFieldButtonHandler( wxCommandEvent& event )
|
||||||
|
/**************************************************************************************/
|
||||||
|
{
|
||||||
|
// in case m_FieldsBuf[REFERENCE].m_Orient has changed on screen only, grab
|
||||||
|
// screen contents.
|
||||||
|
if( !copyPanelToSelectedField() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
unsigned fieldNdx = m_FieldsBuf.size();
|
||||||
|
|
||||||
|
LibDrawField blank( fieldNdx );
|
||||||
|
|
||||||
|
blank.m_Orient = m_FieldsBuf[REFERENCE].m_Orient;
|
||||||
|
|
||||||
|
m_FieldsBuf.push_back( blank );
|
||||||
|
|
||||||
|
setRowItem( fieldNdx, m_FieldsBuf[fieldNdx] );
|
||||||
|
|
||||||
|
m_skipCopyFromPanel = true;
|
||||||
|
setSelectedFieldNdx( fieldNdx );
|
||||||
|
m_skipCopyFromPanel = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*****************************************************************************************/
|
||||||
|
void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::deleteFieldButtonHandler( wxCommandEvent& event )
|
||||||
|
/*****************************************************************************************/
|
||||||
|
{
|
||||||
|
unsigned fieldNdx = getSelectedFieldNdx();
|
||||||
|
|
||||||
|
if( fieldNdx >= m_FieldsBuf.size() ) // traps the -1 case too
|
||||||
|
return;
|
||||||
|
|
||||||
|
if( fieldNdx < FIELD1 )
|
||||||
|
{
|
||||||
|
wxBell();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_FieldsBuf.erase( m_FieldsBuf.begin() + fieldNdx );
|
||||||
|
fieldListCtrl->DeleteItem( fieldNdx );
|
||||||
|
|
||||||
|
if( fieldNdx >= m_FieldsBuf.size() )
|
||||||
|
--fieldNdx;
|
||||||
|
|
||||||
|
m_skipCopyFromPanel = true;
|
||||||
|
setSelectedFieldNdx( fieldNdx );
|
||||||
|
m_skipCopyFromPanel = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************************/
|
||||||
|
void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB:: moveUpButtonHandler( wxCommandEvent& event )
|
||||||
|
/*************************************************************************************/
|
||||||
|
{
|
||||||
|
unsigned fieldNdx = getSelectedFieldNdx();
|
||||||
|
|
||||||
|
if( fieldNdx >= m_FieldsBuf.size() ) // traps the -1 case too
|
||||||
|
return;
|
||||||
|
|
||||||
|
if( fieldNdx <= FIELD1 )
|
||||||
|
{
|
||||||
|
wxBell();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( !copyPanelToSelectedField() )
|
||||||
|
return;
|
||||||
|
|
||||||
|
// swap the fieldNdx field with the one before it, in both the vector
|
||||||
|
// and in the fieldListCtrl
|
||||||
|
LibDrawField tmp = m_FieldsBuf[fieldNdx - 1];
|
||||||
|
|
||||||
|
m_FieldsBuf[fieldNdx - 1] = m_FieldsBuf[fieldNdx];
|
||||||
|
setRowItem( fieldNdx - 1, m_FieldsBuf[fieldNdx] );
|
||||||
|
|
||||||
|
m_FieldsBuf[fieldNdx] = tmp;
|
||||||
|
setRowItem( fieldNdx, tmp );
|
||||||
|
|
||||||
|
m_skipCopyFromPanel = true;
|
||||||
|
setSelectedFieldNdx( fieldNdx - 1 );
|
||||||
|
m_skipCopyFromPanel = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::setSelectedFieldNdx( int aFieldNdx )
|
||||||
|
/****************************************************************************/
|
||||||
|
{
|
||||||
|
/* deselect old selection, but I think this is done by single selection flag within fieldListCtrl
|
||||||
|
* fieldListCtrl->SetItemState( s_SelectedRow, 0, wxLIST_STATE_SELECTED|wxLIST_STATE_FOCUSED);
|
||||||
|
*/
|
||||||
|
|
||||||
|
if( aFieldNdx >= (int) m_FieldsBuf.size() )
|
||||||
|
aFieldNdx = m_FieldsBuf.size() - 1;
|
||||||
|
|
||||||
|
if( aFieldNdx < 0 )
|
||||||
|
aFieldNdx = 0;
|
||||||
|
|
||||||
|
fieldListCtrl->SetItemState( aFieldNdx, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED );
|
||||||
|
fieldListCtrl->EnsureVisible( aFieldNdx );
|
||||||
|
|
||||||
|
s_SelectedRow = aFieldNdx;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::getSelectedFieldNdx()
|
||||||
|
{
|
||||||
|
return s_SelectedRow;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SortFieldsById(const LibDrawField& item1, const LibDrawField& item2)
|
||||||
|
{
|
||||||
|
return item1.m_FieldId < item2.m_FieldId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/***********************************************************/
|
||||||
|
void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::InitBuffers( void )
|
||||||
|
/***********************************************************/
|
||||||
|
{
|
||||||
|
// copy all the fields to a work area
|
||||||
|
m_FieldsBuf.reserve(NUMBER_OF_FIELDS);
|
||||||
|
|
||||||
|
m_FieldsBuf.push_back( m_LibEntry->m_Prefix );
|
||||||
|
m_FieldsBuf.push_back( m_LibEntry->m_Name );
|
||||||
|
|
||||||
|
for( LibDrawField* field = m_LibEntry->Fields; field != NULL; field = field->Next() )
|
||||||
|
m_FieldsBuf.push_back( *field );
|
||||||
|
|
||||||
|
// Display 12 fields (or more), and add missing fields
|
||||||
|
LibDrawField blank( 2 );
|
||||||
|
unsigned fcount = m_FieldsBuf.size();
|
||||||
|
for( unsigned ii = 2; ii < NUMBER_OF_FIELDS; ii++ )
|
||||||
|
{
|
||||||
|
unsigned jj;
|
||||||
|
for ( jj = 2; jj < fcount; jj ++ )
|
||||||
|
if ( m_FieldsBuf[jj].m_FieldId == (int)ii ) // Field id already exists, ok.
|
||||||
|
break;
|
||||||
|
if ( jj < fcount ) continue;
|
||||||
|
// Field id not found: add this field
|
||||||
|
blank.m_FieldId = ii;
|
||||||
|
m_FieldsBuf.push_back( blank );
|
||||||
|
}
|
||||||
|
|
||||||
|
m_FieldsBuf[VALUE].m_Name << wxT( "/" ) << _( "Chip Name" );
|
||||||
|
|
||||||
|
// Sort files by field id, because they are not entered by id
|
||||||
|
sort(m_FieldsBuf.begin(), m_FieldsBuf.end(), SortFieldsById);
|
||||||
|
|
||||||
|
// Now, all fields with Id 0 to NUMBER_OF_FIELDS-1 exist
|
||||||
|
// init default fields names
|
||||||
|
for( int ii = 0; ii < NUMBER_OF_FIELDS; ii++ )
|
||||||
|
{
|
||||||
|
if( m_FieldsBuf[ii].m_Name.IsEmpty() || ii < FIELD1 )
|
||||||
|
m_FieldsBuf[ii].m_Name = ReturnDefaultFieldName( ii );
|
||||||
|
}
|
||||||
|
|
||||||
|
for( unsigned ii = 0; ii < m_FieldsBuf.size(); ++ii )
|
||||||
|
{
|
||||||
|
setRowItem( ii, m_FieldsBuf[ii] );
|
||||||
|
}
|
||||||
|
|
||||||
|
// put focus on the list ctrl
|
||||||
|
fieldListCtrl->SetFocus();
|
||||||
|
|
||||||
|
// resume editing at the last row edited, last time dialog was up.
|
||||||
|
setSelectedFieldNdx( s_SelectedRow );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************************************/
|
||||||
|
void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::setRowItem( int aFieldNdx, const LibDrawField& aField )
|
||||||
|
/***********************************************************************************************/
|
||||||
|
{
|
||||||
|
wxASSERT( aFieldNdx >= 0 );
|
||||||
|
|
||||||
|
// insert blanks if aFieldNdx is referencing a "yet to be defined" row
|
||||||
|
while( aFieldNdx >= fieldListCtrl->GetItemCount() )
|
||||||
|
{
|
||||||
|
long ndx = fieldListCtrl->InsertItem( fieldListCtrl->GetItemCount(), wxEmptyString );
|
||||||
|
|
||||||
|
wxASSERT( ndx >= 0 );
|
||||||
|
|
||||||
|
fieldListCtrl->SetItem( ndx, 1, wxEmptyString );
|
||||||
|
}
|
||||||
|
|
||||||
|
fieldListCtrl->SetItem( aFieldNdx, 0, aField.m_Name );
|
||||||
|
fieldListCtrl->SetItem( aFieldNdx, 1, aField.m_Text );
|
||||||
|
|
||||||
|
// recompute the column widths here, after setting texts
|
||||||
|
fieldListCtrl->SetColumnWidth( 0, wxLIST_AUTOSIZE );
|
||||||
|
fieldListCtrl->SetColumnWidth( 1, wxLIST_AUTOSIZE );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************/
|
||||||
|
void DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::copySelectedFieldToPanel()
|
||||||
|
/****************************************************************/
|
||||||
|
{
|
||||||
|
unsigned fieldNdx = getSelectedFieldNdx();
|
||||||
|
|
||||||
|
if( fieldNdx >= m_FieldsBuf.size() ) // traps the -1 case too
|
||||||
|
return;
|
||||||
|
|
||||||
|
LibDrawField& field = m_FieldsBuf[fieldNdx];
|
||||||
|
|
||||||
|
showCheckBox->SetValue( !(field.m_Attributs & TEXT_NO_VISIBLE) );
|
||||||
|
|
||||||
|
rotateCheckBox->SetValue( field.m_Orient == TEXT_ORIENT_VERT );
|
||||||
|
|
||||||
|
int style = 0;
|
||||||
|
if( field.m_Italic )
|
||||||
|
style = 1;
|
||||||
|
if( field.m_Width > 1 )
|
||||||
|
style |= 2;
|
||||||
|
m_StyleRadioBox->SetSelection( style );
|
||||||
|
|
||||||
|
fieldNameTextCtrl->SetValue( field.m_Name );
|
||||||
|
|
||||||
|
// if fieldNdx == REFERENCE, VALUE, FOOTPRINT, or DATASHEET, then disable editing
|
||||||
|
fieldNameTextCtrl->Enable( fieldNdx >= FIELD1 );
|
||||||
|
fieldNameTextCtrl->SetEditable( fieldNdx >= FIELD1 );
|
||||||
|
|
||||||
|
fieldValueTextCtrl->SetValue( field.m_Text );
|
||||||
|
|
||||||
|
if( fieldNdx == VALUE && m_LibEntry && m_LibEntry->m_Options == ENTRY_POWER )
|
||||||
|
fieldValueTextCtrl->Enable( FALSE );
|
||||||
|
|
||||||
|
textSizeTextCtrl->SetValue(
|
||||||
|
WinEDA_GraphicTextCtrl::FormatSize( EESCHEMA_INTERNAL_UNIT, g_UnitMetric, field.m_Size.x ) );
|
||||||
|
|
||||||
|
wxPoint coord = field.m_Pos;
|
||||||
|
wxPoint zero;
|
||||||
|
|
||||||
|
// If the field value is empty and the position is at relative zero, we set the
|
||||||
|
// initial position as a small offset from the ref field, and orient
|
||||||
|
// it the same as the ref field. That is likely to put it at least
|
||||||
|
// close to the desired position.
|
||||||
|
if( coord == zero && field.m_Text.IsEmpty() )
|
||||||
|
{
|
||||||
|
rotateCheckBox->SetValue( m_FieldsBuf[REFERENCE].m_Orient == TEXT_ORIENT_VERT );
|
||||||
|
|
||||||
|
coord.x = m_FieldsBuf[REFERENCE].m_Pos.x + (fieldNdx - FIELD1 + 1) * 100;
|
||||||
|
coord.y = m_FieldsBuf[REFERENCE].m_Pos.y + (fieldNdx - FIELD1 + 1) * 100;
|
||||||
|
|
||||||
|
// coord can compute negative if field is < FIELD1, e.g. FOOTPRINT.
|
||||||
|
// That is ok, we basically don't want all the new empty fields on
|
||||||
|
// top of each other.
|
||||||
|
}
|
||||||
|
|
||||||
|
wxString coordText = ReturnStringFromValue( g_UnitMetric, coord.x, EESCHEMA_INTERNAL_UNIT );
|
||||||
|
posXTextCtrl->SetValue( coordText );
|
||||||
|
|
||||||
|
// Note: the Y axis for components in lib is from bottom to top
|
||||||
|
// and the screen axis is top to bottom: we must change the y coord sign for editing
|
||||||
|
NEGATE( coord.y );
|
||||||
|
coordText = ReturnStringFromValue( g_UnitMetric, coord.y, EESCHEMA_INTERNAL_UNIT );
|
||||||
|
posYTextCtrl->SetValue( coordText );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*****************************************************************/
|
||||||
|
bool DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::copyPanelToSelectedField()
|
||||||
|
/*****************************************************************/
|
||||||
|
{
|
||||||
|
unsigned fieldNdx = getSelectedFieldNdx();
|
||||||
|
|
||||||
|
if( fieldNdx >= m_FieldsBuf.size() ) // traps the -1 case too
|
||||||
|
return true;
|
||||||
|
|
||||||
|
LibDrawField& field = m_FieldsBuf[fieldNdx];
|
||||||
|
|
||||||
|
if( showCheckBox->GetValue() )
|
||||||
|
field.m_Attributs &= ~TEXT_NO_VISIBLE;
|
||||||
|
else
|
||||||
|
field.m_Attributs |= TEXT_NO_VISIBLE;
|
||||||
|
|
||||||
|
if( rotateCheckBox->GetValue() )
|
||||||
|
field.m_Orient = TEXT_ORIENT_VERT;
|
||||||
|
else
|
||||||
|
field.m_Orient = TEXT_ORIENT_HORIZ;
|
||||||
|
|
||||||
|
rotateCheckBox->SetValue( field.m_Orient == TEXT_ORIENT_VERT );
|
||||||
|
|
||||||
|
/* Void fields for REFERENCE and VALUE are not allowed
|
||||||
|
* chnage therm only for a new non void value
|
||||||
|
*/
|
||||||
|
if( !fieldValueTextCtrl->GetValue().IsEmpty() )
|
||||||
|
field.m_Text = fieldValueTextCtrl->GetValue();
|
||||||
|
|
||||||
|
if( !fieldNameTextCtrl->GetValue().IsEmpty() )
|
||||||
|
field.m_Name = fieldNameTextCtrl->GetValue();
|
||||||
|
|
||||||
|
setRowItem( fieldNdx, field ); // update fieldListCtrl
|
||||||
|
|
||||||
|
field.m_Size.x = WinEDA_GraphicTextCtrl::ParseSize(
|
||||||
|
textSizeTextCtrl->GetValue(), EESCHEMA_INTERNAL_UNIT, g_UnitMetric );
|
||||||
|
field.m_Size.y = field.m_Size.x;
|
||||||
|
|
||||||
|
int style = m_StyleRadioBox->GetSelection();
|
||||||
|
if( (style & 1 ) != 0 )
|
||||||
|
field.m_Italic = true;
|
||||||
|
else
|
||||||
|
field.m_Italic = false;
|
||||||
|
|
||||||
|
if( (style & 2 ) != 0 )
|
||||||
|
field.m_Width = field.m_Size.x / 4;
|
||||||
|
else
|
||||||
|
field.m_Width = 0;
|
||||||
|
|
||||||
|
double value;
|
||||||
|
|
||||||
|
posXTextCtrl->GetValue().ToDouble( &value );
|
||||||
|
field.m_Pos.x = From_User_Unit( g_UnitMetric, value, EESCHEMA_INTERNAL_UNIT );
|
||||||
|
|
||||||
|
posYTextCtrl->GetValue().ToDouble( &value );
|
||||||
|
field.m_Pos.y = From_User_Unit( g_UnitMetric, value, EESCHEMA_INTERNAL_UNIT );
|
||||||
|
|
||||||
|
// Note: the Y axis for components in lib is from bottom to top
|
||||||
|
// and the screen axis is top to bottom: we must change the y coord sign for editing
|
||||||
|
NEGATE( field.m_Pos.y );
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
|
@ -0,0 +1,217 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// C++ code generated with wxFormBuilder (version Apr 16 2008)
|
||||||
|
// http://www.wxformbuilder.org/
|
||||||
|
//
|
||||||
|
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "dialog_edit_libentry_fields_in_lib_base.h"
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE::DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
|
||||||
|
{
|
||||||
|
this->SetSizeHints( wxDefaultSize, wxDefaultSize );
|
||||||
|
|
||||||
|
wxBoxSizer* mainSizer;
|
||||||
|
mainSizer = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
|
wxStaticBoxSizer* fieldsSizer;
|
||||||
|
fieldsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Fields") ), wxHORIZONTAL );
|
||||||
|
|
||||||
|
wxStaticBoxSizer* gridStaticBoxSizer;
|
||||||
|
gridStaticBoxSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxEmptyString ), wxVERTICAL );
|
||||||
|
|
||||||
|
fieldListCtrl = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_HRULES|wxLC_REPORT|wxLC_SINGLE_SEL|wxLC_VRULES );
|
||||||
|
gridStaticBoxSizer->Add( fieldListCtrl, 1, wxALL|wxEXPAND, 8 );
|
||||||
|
|
||||||
|
addFieldButton = new wxButton( this, wxID_ANY, _("Add Field"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
addFieldButton->SetToolTip( _("Add a new custom field") );
|
||||||
|
|
||||||
|
gridStaticBoxSizer->Add( addFieldButton, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
deleteFieldButton = new wxButton( this, wxID_ANY, _("Delete Field"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
deleteFieldButton->SetToolTip( _("Delete one of the optional fields") );
|
||||||
|
|
||||||
|
gridStaticBoxSizer->Add( deleteFieldButton, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
moveUpButton = new wxButton( this, wxID_ANY, _("Move Up"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
moveUpButton->SetToolTip( _("Move the selected optional fields up one position") );
|
||||||
|
|
||||||
|
gridStaticBoxSizer->Add( moveUpButton, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
fieldsSizer->Add( gridStaticBoxSizer, 5, wxEXPAND|wxRIGHT, 8 );
|
||||||
|
|
||||||
|
wxBoxSizer* fieldEditBoxSizer;
|
||||||
|
fieldEditBoxSizer = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
|
wxStaticBoxSizer* optionsSizer;
|
||||||
|
optionsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Options") ), wxHORIZONTAL );
|
||||||
|
|
||||||
|
wxBoxSizer* orientationSizer;
|
||||||
|
orientationSizer = new wxBoxSizer( wxHORIZONTAL );
|
||||||
|
|
||||||
|
wxString m_FieldPositionCtrlChoices[] = { _("Align left"), _("Align center"), _("Align right") };
|
||||||
|
int m_FieldPositionCtrlNChoices = sizeof( m_FieldPositionCtrlChoices ) / sizeof( wxString );
|
||||||
|
m_FieldPositionCtrl = new wxRadioBox( this, wxID_ANY, _("Horiz. Justify"), wxDefaultPosition, wxDefaultSize, m_FieldPositionCtrlNChoices, m_FieldPositionCtrlChoices, 1, wxRA_SPECIFY_COLS );
|
||||||
|
m_FieldPositionCtrl->SetSelection( 1 );
|
||||||
|
m_FieldPositionCtrl->SetToolTip( _("Select if the component is to be rotated when drawn") );
|
||||||
|
|
||||||
|
orientationSizer->Add( m_FieldPositionCtrl, 1, wxALL, 8 );
|
||||||
|
|
||||||
|
optionsSizer->Add( orientationSizer, 1, wxLEFT|wxRIGHT|wxTOP|wxEXPAND|wxALIGN_CENTER_VERTICAL, 0 );
|
||||||
|
|
||||||
|
wxBoxSizer* mirrorSizer;
|
||||||
|
mirrorSizer = new wxBoxSizer( wxHORIZONTAL );
|
||||||
|
|
||||||
|
wxString m_FieldVJustifyCtrlChoices[] = { _("Align bottom"), _("Align center"), _("Align top") };
|
||||||
|
int m_FieldVJustifyCtrlNChoices = sizeof( m_FieldVJustifyCtrlChoices ) / sizeof( wxString );
|
||||||
|
m_FieldVJustifyCtrl = new wxRadioBox( this, wxID_ANY, _("Vert Justify"), wxDefaultPosition, wxDefaultSize, m_FieldVJustifyCtrlNChoices, m_FieldVJustifyCtrlChoices, 1, wxRA_SPECIFY_COLS );
|
||||||
|
m_FieldVJustifyCtrl->SetSelection( 1 );
|
||||||
|
m_FieldVJustifyCtrl->SetToolTip( _("Pick the graphical transformation to be used when displaying the component, if any") );
|
||||||
|
|
||||||
|
mirrorSizer->Add( m_FieldVJustifyCtrl, 1, wxALL, 8 );
|
||||||
|
|
||||||
|
optionsSizer->Add( mirrorSizer, 1, wxEXPAND|wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, 0 );
|
||||||
|
|
||||||
|
fieldEditBoxSizer->Add( optionsSizer, 0, wxALIGN_TOP|wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
wxStaticBoxSizer* visibilitySizer;
|
||||||
|
visibilitySizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Visibility") ), wxHORIZONTAL );
|
||||||
|
|
||||||
|
wxBoxSizer* bShowRotateSizer;
|
||||||
|
bShowRotateSizer = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
|
showCheckBox = new wxCheckBox( this, wxID_ANY, _("Show"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
|
||||||
|
showCheckBox->SetToolTip( _("Check if you want this field visible") );
|
||||||
|
|
||||||
|
bShowRotateSizer->Add( showCheckBox, 0, wxALL, 5 );
|
||||||
|
|
||||||
|
rotateCheckBox = new wxCheckBox( this, wxID_ANY, _("Rotate"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
|
||||||
|
rotateCheckBox->SetToolTip( _("Check if you want this field's text rotated 90 degrees") );
|
||||||
|
|
||||||
|
bShowRotateSizer->Add( rotateCheckBox, 0, wxALL, 5 );
|
||||||
|
|
||||||
|
visibilitySizer->Add( bShowRotateSizer, 1, wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
|
wxString m_StyleRadioBoxChoices[] = { _("Normal"), _("Italic"), _("Bold"), _("Bold Italic") };
|
||||||
|
int m_StyleRadioBoxNChoices = sizeof( m_StyleRadioBoxChoices ) / sizeof( wxString );
|
||||||
|
m_StyleRadioBox = new wxRadioBox( this, wxID_ANY, _("Style:"), wxDefaultPosition, wxDefaultSize, m_StyleRadioBoxNChoices, m_StyleRadioBoxChoices, 1, wxRA_SPECIFY_COLS );
|
||||||
|
m_StyleRadioBox->SetSelection( 0 );
|
||||||
|
visibilitySizer->Add( m_StyleRadioBox, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
|
fieldEditBoxSizer->Add( visibilitySizer, 0, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
wxBoxSizer* fieldNameBoxSizer;
|
||||||
|
fieldNameBoxSizer = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
|
fieldNameLabel = new wxStaticText( this, wxID_ANY, _("Field Name"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
fieldNameLabel->Wrap( -1 );
|
||||||
|
fieldNameBoxSizer->Add( fieldNameLabel, 0, 0, 5 );
|
||||||
|
|
||||||
|
fieldNameTextCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
fieldNameTextCtrl->SetToolTip( _("The text (or value) of the currently selected field") );
|
||||||
|
|
||||||
|
fieldNameBoxSizer->Add( fieldNameTextCtrl, 0, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
fieldEditBoxSizer->Add( fieldNameBoxSizer, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
wxBoxSizer* fieldTextBoxSizer;
|
||||||
|
fieldTextBoxSizer = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
|
fieldValueLabel = new wxStaticText( this, wxID_ANY, _("Field Value"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
fieldValueLabel->Wrap( -1 );
|
||||||
|
fieldTextBoxSizer->Add( fieldValueLabel, 0, 0, 5 );
|
||||||
|
|
||||||
|
fieldValueTextCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
fieldValueTextCtrl->SetToolTip( _("The text (or value) of the currently selected field") );
|
||||||
|
|
||||||
|
fieldTextBoxSizer->Add( fieldValueTextCtrl, 0, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
fieldEditBoxSizer->Add( fieldTextBoxSizer, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
wxBoxSizer* textSizeBoxSizer;
|
||||||
|
textSizeBoxSizer = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
|
textSizeLabel = new wxStaticText( this, wxID_ANY, _("Size(\")"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
textSizeLabel->Wrap( -1 );
|
||||||
|
textSizeBoxSizer->Add( textSizeLabel, 0, 0, 5 );
|
||||||
|
|
||||||
|
textSizeTextCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
textSizeTextCtrl->SetToolTip( _("The vertical height of the currently selected field's text in the schematic") );
|
||||||
|
|
||||||
|
textSizeBoxSizer->Add( textSizeTextCtrl, 0, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
fieldEditBoxSizer->Add( textSizeBoxSizer, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
wxBoxSizer* positionBoxSizer;
|
||||||
|
positionBoxSizer = new wxBoxSizer( wxHORIZONTAL );
|
||||||
|
|
||||||
|
wxBoxSizer* posXBoxSizer;
|
||||||
|
posXBoxSizer = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
|
posXLabel = new wxStaticText( this, wxID_ANY, _("PosX(\")"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
posXLabel->Wrap( -1 );
|
||||||
|
posXBoxSizer->Add( posXLabel, 0, 0, 5 );
|
||||||
|
|
||||||
|
posXTextCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
posXBoxSizer->Add( posXTextCtrl, 0, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
positionBoxSizer->Add( posXBoxSizer, 1, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
wxBoxSizer* posYBoxSizer;
|
||||||
|
posYBoxSizer = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
|
posYLabel = new wxStaticText( this, wxID_ANY, _("PosY(\")"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
posYLabel->Wrap( -1 );
|
||||||
|
posYBoxSizer->Add( posYLabel, 0, 0, 5 );
|
||||||
|
|
||||||
|
posYTextCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
posYTextCtrl->SetToolTip( _("The Y coordinate of the text relative to the component") );
|
||||||
|
|
||||||
|
posYBoxSizer->Add( posYTextCtrl, 0, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
positionBoxSizer->Add( posYBoxSizer, 1, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
fieldEditBoxSizer->Add( positionBoxSizer, 1, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
fieldsSizer->Add( fieldEditBoxSizer, 3, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
mainSizer->Add( fieldsSizer, 1, wxEXPAND|wxALL, 5 );
|
||||||
|
|
||||||
|
stdDialogButtonSizer = new wxStdDialogButtonSizer();
|
||||||
|
stdDialogButtonSizerOK = new wxButton( this, wxID_OK );
|
||||||
|
stdDialogButtonSizer->AddButton( stdDialogButtonSizerOK );
|
||||||
|
stdDialogButtonSizerCancel = new wxButton( this, wxID_CANCEL );
|
||||||
|
stdDialogButtonSizer->AddButton( stdDialogButtonSizerCancel );
|
||||||
|
stdDialogButtonSizer->Realize();
|
||||||
|
mainSizer->Add( stdDialogButtonSizer, 0, wxALL|wxEXPAND, 8 );
|
||||||
|
|
||||||
|
this->SetSizer( mainSizer );
|
||||||
|
this->Layout();
|
||||||
|
|
||||||
|
// Connect Events
|
||||||
|
this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE::OnInitDialog ) );
|
||||||
|
fieldListCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler( DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE::OnListItemDeselected ), NULL, this );
|
||||||
|
fieldListCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE::OnListItemSelected ), NULL, this );
|
||||||
|
addFieldButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE::addFieldButtonHandler ), NULL, this );
|
||||||
|
deleteFieldButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE::deleteFieldButtonHandler ), NULL, this );
|
||||||
|
moveUpButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE::moveUpButtonHandler ), NULL, this );
|
||||||
|
stdDialogButtonSizerCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE::OnCancelButtonClick ), NULL, this );
|
||||||
|
stdDialogButtonSizerOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE::OnOKButtonClick ), NULL, this );
|
||||||
|
}
|
||||||
|
|
||||||
|
DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE::~DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE()
|
||||||
|
{
|
||||||
|
// Disconnect Events
|
||||||
|
this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE::OnInitDialog ) );
|
||||||
|
fieldListCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler( DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE::OnListItemDeselected ), NULL, this );
|
||||||
|
fieldListCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE::OnListItemSelected ), NULL, this );
|
||||||
|
addFieldButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE::addFieldButtonHandler ), NULL, this );
|
||||||
|
deleteFieldButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE::deleteFieldButtonHandler ), NULL, this );
|
||||||
|
moveUpButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE::moveUpButtonHandler ), NULL, this );
|
||||||
|
stdDialogButtonSizerCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE::OnCancelButtonClick ), NULL, this );
|
||||||
|
stdDialogButtonSizerOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE::OnOKButtonClick ), NULL, this );
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,79 @@
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
// C++ code generated with wxFormBuilder (version Apr 16 2008)
|
||||||
|
// http://www.wxformbuilder.org/
|
||||||
|
//
|
||||||
|
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef __dialog_edit_libentry_fields_in_lib_base__
|
||||||
|
#define __dialog_edit_libentry_fields_in_lib_base__
|
||||||
|
|
||||||
|
#include <wx/intl.h>
|
||||||
|
|
||||||
|
#include <wx/listctrl.h>
|
||||||
|
#include <wx/gdicmn.h>
|
||||||
|
#include <wx/font.h>
|
||||||
|
#include <wx/colour.h>
|
||||||
|
#include <wx/settings.h>
|
||||||
|
#include <wx/string.h>
|
||||||
|
#include <wx/button.h>
|
||||||
|
#include <wx/sizer.h>
|
||||||
|
#include <wx/statbox.h>
|
||||||
|
#include <wx/radiobox.h>
|
||||||
|
#include <wx/checkbox.h>
|
||||||
|
#include <wx/stattext.h>
|
||||||
|
#include <wx/textctrl.h>
|
||||||
|
#include <wx/dialog.h>
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// Class DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
class DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE : public wxDialog
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
|
||||||
|
protected:
|
||||||
|
wxListCtrl* fieldListCtrl;
|
||||||
|
wxButton* addFieldButton;
|
||||||
|
wxButton* deleteFieldButton;
|
||||||
|
wxButton* moveUpButton;
|
||||||
|
wxRadioBox* m_FieldPositionCtrl;
|
||||||
|
wxRadioBox* m_FieldVJustifyCtrl;
|
||||||
|
wxCheckBox* showCheckBox;
|
||||||
|
wxCheckBox* rotateCheckBox;
|
||||||
|
wxRadioBox* m_StyleRadioBox;
|
||||||
|
wxStaticText* fieldNameLabel;
|
||||||
|
wxTextCtrl* fieldNameTextCtrl;
|
||||||
|
wxStaticText* fieldValueLabel;
|
||||||
|
wxTextCtrl* fieldValueTextCtrl;
|
||||||
|
wxStaticText* textSizeLabel;
|
||||||
|
wxTextCtrl* textSizeTextCtrl;
|
||||||
|
wxStaticText* posXLabel;
|
||||||
|
wxTextCtrl* posXTextCtrl;
|
||||||
|
wxStaticText* posYLabel;
|
||||||
|
wxTextCtrl* posYTextCtrl;
|
||||||
|
wxStdDialogButtonSizer* stdDialogButtonSizer;
|
||||||
|
wxButton* stdDialogButtonSizerOK;
|
||||||
|
wxButton* stdDialogButtonSizerCancel;
|
||||||
|
|
||||||
|
// Virtual event handlers, overide them in your derived class
|
||||||
|
virtual void OnInitDialog( wxInitDialogEvent& event ){ event.Skip(); }
|
||||||
|
virtual void OnListItemDeselected( wxListEvent& event ){ event.Skip(); }
|
||||||
|
virtual void OnListItemSelected( wxListEvent& event ){ event.Skip(); }
|
||||||
|
virtual void addFieldButtonHandler( wxCommandEvent& event ){ event.Skip(); }
|
||||||
|
virtual void deleteFieldButtonHandler( wxCommandEvent& event ){ event.Skip(); }
|
||||||
|
virtual void moveUpButtonHandler( wxCommandEvent& event ){ event.Skip(); }
|
||||||
|
virtual void OnCancelButtonClick( wxCommandEvent& event ){ event.Skip(); }
|
||||||
|
virtual void OnOKButtonClick( wxCommandEvent& event ){ event.Skip(); }
|
||||||
|
|
||||||
|
|
||||||
|
public:
|
||||||
|
DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Fields Properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 773,550 ), long style = wxCAPTION|wxCLOSE_BOX|wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU );
|
||||||
|
~DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB_BASE();
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif //__dialog_edit_libentry_fields_in_lib_base__
|
|
@ -63,8 +63,8 @@ WinEDA_LibeditFrame::WinEDA_LibeditFrame( wxWindow* father,
|
||||||
WinEDA_DrawFrame( father, LIBEDITOR_FRAME, title, pos, size, style )
|
WinEDA_DrawFrame( father, LIBEDITOR_FRAME, title, pos, size, style )
|
||||||
{
|
{
|
||||||
m_FrameName = wxT( "LibeditFrame" );
|
m_FrameName = wxT( "LibeditFrame" );
|
||||||
m_Draw_Axis = TRUE; // TRUE pour avoir les axes dessines
|
m_Draw_Axis = true; // true pour avoir les axes dessines
|
||||||
m_Draw_Grid = TRUE; // TRUE pour avoir la axes dessinee
|
m_Draw_Grid = true; // true pour avoir la axes dessinee
|
||||||
|
|
||||||
// Give an icon
|
// Give an icon
|
||||||
SetIcon( wxIcon( libedit_xpm ) );
|
SetIcon( wxIcon( libedit_xpm ) );
|
||||||
|
@ -73,12 +73,12 @@ WinEDA_LibeditFrame::WinEDA_LibeditFrame( wxWindow* father,
|
||||||
GetSettings();
|
GetSettings();
|
||||||
SetSize( m_FramePos.x, m_FramePos.y, m_FrameSize.x, m_FrameSize.y );
|
SetSize( m_FramePos.x, m_FramePos.y, m_FrameSize.x, m_FrameSize.y );
|
||||||
if( DrawPanel )
|
if( DrawPanel )
|
||||||
DrawPanel->m_Block_Enable = TRUE;
|
DrawPanel->m_Block_Enable = true;
|
||||||
ReCreateHToolbar();
|
ReCreateHToolbar();
|
||||||
ReCreateVToolbar();
|
ReCreateVToolbar();
|
||||||
DisplayLibInfos();
|
DisplayLibInfos();
|
||||||
BestZoom();
|
BestZoom();
|
||||||
Show( TRUE );
|
Show( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -141,82 +141,84 @@ void WinEDA_LibeditFrame::SetToolbars()
|
||||||
if( CurrentLib == NULL )
|
if( CurrentLib == NULL )
|
||||||
{
|
{
|
||||||
if( m_HToolBar )
|
if( m_HToolBar )
|
||||||
m_HToolBar->EnableTool( ID_LIBEDIT_SAVE_CURRENT_LIB, FALSE );
|
m_HToolBar->EnableTool( ID_LIBEDIT_SAVE_CURRENT_LIB, false );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( m_HToolBar )
|
if( m_HToolBar )
|
||||||
m_HToolBar->EnableTool( ID_LIBEDIT_SAVE_CURRENT_LIB, TRUE );
|
m_HToolBar->EnableTool( ID_LIBEDIT_SAVE_CURRENT_LIB, true );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( CurrentLibEntry == NULL )
|
if( CurrentLibEntry == NULL )
|
||||||
{
|
{
|
||||||
if( m_HToolBar )
|
if( m_HToolBar )
|
||||||
{
|
{
|
||||||
m_HToolBar->EnableTool( ID_LIBEDIT_IMPORT_PART, TRUE );
|
m_HToolBar->EnableTool( ID_LIBEDIT_IMPORT_PART, true );
|
||||||
m_HToolBar->EnableTool( ID_LIBEDIT_EXPORT_PART, FALSE );
|
m_HToolBar->EnableTool( ID_LIBEDIT_EXPORT_PART, false );
|
||||||
m_HToolBar->EnableTool( ID_LIBEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART, FALSE );
|
m_HToolBar->EnableTool( ID_LIBEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART, false );
|
||||||
m_HToolBar->EnableTool( ID_LIBEDIT_SAVE_CURRENT_PART, FALSE );
|
m_HToolBar->EnableTool( ID_LIBEDIT_SAVE_CURRENT_PART, false );
|
||||||
m_HToolBar->EnableTool( ID_DE_MORGAN_CONVERT_BUTT, FALSE );
|
m_HToolBar->EnableTool( ID_DE_MORGAN_CONVERT_BUTT, false );
|
||||||
m_HToolBar->EnableTool( ID_DE_MORGAN_NORMAL_BUTT, FALSE );
|
m_HToolBar->EnableTool( ID_DE_MORGAN_NORMAL_BUTT, false );
|
||||||
m_HToolBar->EnableTool( ID_LIBEDIT_EDIT_PIN_BY_PIN, FALSE );
|
m_HToolBar->EnableTool( ID_LIBEDIT_EDIT_PIN_BY_PIN, false );
|
||||||
m_HToolBar->EnableTool( ID_LIBEDIT_VIEW_DOC, FALSE );
|
m_HToolBar->EnableTool( ID_LIBEDIT_VIEW_DOC, false );
|
||||||
m_HToolBar->EnableTool( ID_LIBEDIT_CHECK_PART, FALSE );
|
m_HToolBar->EnableTool( ID_LIBEDIT_CHECK_PART, false );
|
||||||
m_SelpartBox->Enable( FALSE );
|
m_HToolBar->EnableTool( ID_LIBEDIT_GET_FRAME_EDIT_FIELDS, false );
|
||||||
m_HToolBar->EnableTool( ID_LIBEDIT_UNDO, FALSE );
|
m_SelpartBox->Enable( false );
|
||||||
m_HToolBar->EnableTool( ID_LIBEDIT_REDO, FALSE );
|
m_HToolBar->EnableTool( ID_LIBEDIT_UNDO, false );
|
||||||
|
m_HToolBar->EnableTool( ID_LIBEDIT_REDO, false );
|
||||||
}
|
}
|
||||||
g_EditPinByPinIsOn = FALSE;
|
g_EditPinByPinIsOn = false;
|
||||||
m_HToolBar->ToggleTool( ID_LIBEDIT_EDIT_PIN_BY_PIN, g_EditPinByPinIsOn );
|
m_HToolBar->ToggleTool( ID_LIBEDIT_EDIT_PIN_BY_PIN, g_EditPinByPinIsOn );
|
||||||
|
|
||||||
if( m_VToolBar )
|
if( m_VToolBar )
|
||||||
{
|
{
|
||||||
m_VToolBar->EnableTool( ID_LIBEDIT_BODY_TEXT_BUTT, FALSE );
|
m_VToolBar->EnableTool( ID_LIBEDIT_BODY_TEXT_BUTT, false );
|
||||||
m_VToolBar->EnableTool( ID_LIBEDIT_BODY_LINE_BUTT, FALSE );
|
m_VToolBar->EnableTool( ID_LIBEDIT_BODY_LINE_BUTT, false );
|
||||||
m_VToolBar->EnableTool( ID_LIBEDIT_BODY_RECT_BUTT, FALSE );
|
m_VToolBar->EnableTool( ID_LIBEDIT_BODY_RECT_BUTT, false );
|
||||||
m_VToolBar->EnableTool( ID_LIBEDIT_BODY_CIRCLE_BUTT, FALSE );
|
m_VToolBar->EnableTool( ID_LIBEDIT_BODY_CIRCLE_BUTT, false );
|
||||||
m_VToolBar->EnableTool( ID_LIBEDIT_BODY_ARC_BUTT, FALSE );
|
m_VToolBar->EnableTool( ID_LIBEDIT_BODY_ARC_BUTT, false );
|
||||||
m_VToolBar->EnableTool( ID_LIBEDIT_DELETE_ITEM_BUTT, FALSE );
|
m_VToolBar->EnableTool( ID_LIBEDIT_DELETE_ITEM_BUTT, false );
|
||||||
m_VToolBar->EnableTool( ID_LIBEDIT_ANCHOR_ITEM_BUTT, FALSE );
|
m_VToolBar->EnableTool( ID_LIBEDIT_ANCHOR_ITEM_BUTT, false );
|
||||||
m_VToolBar->EnableTool( ID_LIBEDIT_IMPORT_BODY_BUTT, FALSE );
|
m_VToolBar->EnableTool( ID_LIBEDIT_IMPORT_BODY_BUTT, false );
|
||||||
m_VToolBar->EnableTool( ID_LIBEDIT_EXPORT_BODY_BUTT, FALSE );
|
m_VToolBar->EnableTool( ID_LIBEDIT_EXPORT_BODY_BUTT, false );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else // if we have a current entry to edit:
|
||||||
{
|
{
|
||||||
if( m_HToolBar )
|
if( m_HToolBar )
|
||||||
{
|
{
|
||||||
m_HToolBar->EnableTool( ID_LIBEDIT_IMPORT_PART, TRUE );
|
m_HToolBar->EnableTool( ID_LIBEDIT_IMPORT_PART, true );
|
||||||
m_HToolBar->EnableTool( ID_LIBEDIT_EXPORT_PART, TRUE );
|
m_HToolBar->EnableTool( ID_LIBEDIT_EXPORT_PART, true );
|
||||||
m_HToolBar->EnableTool( ID_LIBEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART, TRUE );
|
m_HToolBar->EnableTool( ID_LIBEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART, true );
|
||||||
m_HToolBar->EnableTool( ID_LIBEDIT_SAVE_CURRENT_PART, TRUE );
|
m_HToolBar->EnableTool( ID_LIBEDIT_SAVE_CURRENT_PART, true );
|
||||||
|
m_HToolBar->EnableTool( ID_LIBEDIT_GET_FRAME_EDIT_FIELDS, true );
|
||||||
if( (CurrentLibEntry->m_UnitCount > 1) || g_AsDeMorgan )
|
if( (CurrentLibEntry->m_UnitCount > 1) || g_AsDeMorgan )
|
||||||
m_HToolBar->EnableTool( ID_LIBEDIT_EDIT_PIN_BY_PIN, TRUE );
|
m_HToolBar->EnableTool( ID_LIBEDIT_EDIT_PIN_BY_PIN, true );
|
||||||
else
|
else
|
||||||
m_HToolBar->EnableTool( ID_LIBEDIT_EDIT_PIN_BY_PIN, FALSE );
|
m_HToolBar->EnableTool( ID_LIBEDIT_EDIT_PIN_BY_PIN, false );
|
||||||
|
|
||||||
m_HToolBar->ToggleTool( ID_LIBEDIT_EDIT_PIN_BY_PIN, g_EditPinByPinIsOn );
|
m_HToolBar->ToggleTool( ID_LIBEDIT_EDIT_PIN_BY_PIN, g_EditPinByPinIsOn );
|
||||||
|
|
||||||
m_HToolBar->EnableTool( ID_DE_MORGAN_CONVERT_BUTT, g_AsDeMorgan );
|
m_HToolBar->EnableTool( ID_DE_MORGAN_CONVERT_BUTT, g_AsDeMorgan );
|
||||||
m_HToolBar->EnableTool( ID_DE_MORGAN_NORMAL_BUTT, g_AsDeMorgan );
|
m_HToolBar->EnableTool( ID_DE_MORGAN_NORMAL_BUTT, g_AsDeMorgan );
|
||||||
/* Enable the "get doc" tool */
|
/* Enable the "get doc" tool */
|
||||||
bool enable_dtool = FALSE;
|
bool enable_dtool = false;
|
||||||
if( !CurrentAliasName.IsEmpty() )
|
if( !CurrentAliasName.IsEmpty() )
|
||||||
{
|
{
|
||||||
int AliasLocation = LocateAlias( CurrentLibEntry->m_AliasList, CurrentAliasName );
|
int AliasLocation = LocateAlias( CurrentLibEntry->m_AliasList, CurrentAliasName );
|
||||||
if( AliasLocation >= 0 )
|
if( AliasLocation >= 0 )
|
||||||
if( !CurrentLibEntry->m_AliasList[AliasLocation +
|
if( !CurrentLibEntry->m_AliasList[AliasLocation +
|
||||||
ALIAS_DOC_FILENAME].IsEmpty() )
|
ALIAS_DOC_FILENAME].IsEmpty() )
|
||||||
enable_dtool = TRUE;
|
enable_dtool = true;
|
||||||
}
|
}
|
||||||
else if( !CurrentLibEntry->m_DocFile.IsEmpty() )
|
else if( !CurrentLibEntry->m_DocFile.IsEmpty() )
|
||||||
enable_dtool = TRUE;
|
enable_dtool = true;
|
||||||
if( enable_dtool )
|
if( enable_dtool )
|
||||||
m_HToolBar->EnableTool( ID_LIBEDIT_VIEW_DOC, TRUE );
|
m_HToolBar->EnableTool( ID_LIBEDIT_VIEW_DOC, true );
|
||||||
else
|
else
|
||||||
m_HToolBar->EnableTool( ID_LIBEDIT_VIEW_DOC, FALSE );
|
m_HToolBar->EnableTool( ID_LIBEDIT_VIEW_DOC, false );
|
||||||
m_HToolBar->EnableTool( ID_LIBEDIT_CHECK_PART, TRUE );
|
m_HToolBar->EnableTool( ID_LIBEDIT_CHECK_PART, true );
|
||||||
m_SelpartBox->Enable( (CurrentLibEntry->m_UnitCount > 1 ) ? TRUE : FALSE );
|
m_SelpartBox->Enable( (CurrentLibEntry->m_UnitCount > 1 ) ? true : false );
|
||||||
|
|
||||||
if( GetScreen() )
|
if( GetScreen() )
|
||||||
{
|
{
|
||||||
|
@ -227,15 +229,15 @@ void WinEDA_LibeditFrame::SetToolbars()
|
||||||
|
|
||||||
if( m_VToolBar )
|
if( m_VToolBar )
|
||||||
{
|
{
|
||||||
m_VToolBar->EnableTool( ID_LIBEDIT_BODY_TEXT_BUTT, TRUE );
|
m_VToolBar->EnableTool( ID_LIBEDIT_BODY_TEXT_BUTT, true );
|
||||||
m_VToolBar->EnableTool( ID_LIBEDIT_BODY_LINE_BUTT, TRUE );
|
m_VToolBar->EnableTool( ID_LIBEDIT_BODY_LINE_BUTT, true );
|
||||||
m_VToolBar->EnableTool( ID_LIBEDIT_BODY_RECT_BUTT, TRUE );
|
m_VToolBar->EnableTool( ID_LIBEDIT_BODY_RECT_BUTT, true );
|
||||||
m_VToolBar->EnableTool( ID_LIBEDIT_BODY_CIRCLE_BUTT, TRUE );
|
m_VToolBar->EnableTool( ID_LIBEDIT_BODY_CIRCLE_BUTT, true );
|
||||||
m_VToolBar->EnableTool( ID_LIBEDIT_BODY_ARC_BUTT, TRUE );
|
m_VToolBar->EnableTool( ID_LIBEDIT_BODY_ARC_BUTT, true );
|
||||||
m_VToolBar->EnableTool( ID_LIBEDIT_DELETE_ITEM_BUTT, TRUE );
|
m_VToolBar->EnableTool( ID_LIBEDIT_DELETE_ITEM_BUTT, true );
|
||||||
m_VToolBar->EnableTool( ID_LIBEDIT_ANCHOR_ITEM_BUTT, TRUE );
|
m_VToolBar->EnableTool( ID_LIBEDIT_ANCHOR_ITEM_BUTT, true );
|
||||||
m_VToolBar->EnableTool( ID_LIBEDIT_IMPORT_BODY_BUTT, TRUE );
|
m_VToolBar->EnableTool( ID_LIBEDIT_IMPORT_BODY_BUTT, true );
|
||||||
m_VToolBar->EnableTool( ID_LIBEDIT_EXPORT_BODY_BUTT, TRUE );
|
m_VToolBar->EnableTool( ID_LIBEDIT_EXPORT_BODY_BUTT, true );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -294,7 +296,7 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
|
||||||
|
|
||||||
wxClientDC dc( DrawPanel );
|
wxClientDC dc( DrawPanel );
|
||||||
|
|
||||||
DrawPanel->m_IgnoreMouseEvents = TRUE;
|
DrawPanel->m_IgnoreMouseEvents = true;
|
||||||
|
|
||||||
DrawPanel->PrepareGraphicContext( &dc );
|
DrawPanel->PrepareGraphicContext( &dc );
|
||||||
|
|
||||||
|
@ -347,7 +349,7 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
|
||||||
|
|
||||||
case ID_LIBEDIT_NEW_PART:
|
case ID_LIBEDIT_NEW_PART:
|
||||||
{
|
{
|
||||||
g_EditPinByPinIsOn = FALSE;
|
g_EditPinByPinIsOn = false;
|
||||||
LibItemToRepeat = NULL;
|
LibItemToRepeat = NULL;
|
||||||
CreateNewLibraryPart();
|
CreateNewLibraryPart();
|
||||||
GetScreen()->ClearUndoRedoList();
|
GetScreen()->ClearUndoRedoList();
|
||||||
|
@ -364,7 +366,7 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
|
||||||
LibItemToRepeat = NULL;
|
LibItemToRepeat = NULL;
|
||||||
if( LoadOneLibraryPart() )
|
if( LoadOneLibraryPart() )
|
||||||
{
|
{
|
||||||
g_EditPinByPinIsOn = FALSE;
|
g_EditPinByPinIsOn = false;
|
||||||
GetScreen()->ClearUndoRedoList();
|
GetScreen()->ClearUndoRedoList();
|
||||||
SetToolbars();
|
SetToolbars();
|
||||||
}
|
}
|
||||||
|
@ -379,6 +381,10 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
|
||||||
InstallLibeditFrame( pos );
|
InstallLibeditFrame( pos );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case ID_LIBEDIT_GET_FRAME_EDIT_FIELDS:
|
||||||
|
InstallFieldsEditorDialog( );
|
||||||
|
break;
|
||||||
|
|
||||||
case ID_LIBEDIT_DELETE_PART:
|
case ID_LIBEDIT_DELETE_PART:
|
||||||
LibItemToRepeat = NULL;
|
LibItemToRepeat = NULL;
|
||||||
DeleteOnePart();
|
DeleteOnePart();
|
||||||
|
@ -392,30 +398,30 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_LIBEDIT_EXPORT_PART:
|
case ID_LIBEDIT_EXPORT_PART:
|
||||||
ExportOnePart( FALSE );
|
ExportOnePart( false );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_LIBEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART:
|
case ID_LIBEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART:
|
||||||
ExportOnePart( TRUE );
|
ExportOnePart( true );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_LIBEDIT_CHECK_PART:
|
case ID_LIBEDIT_CHECK_PART:
|
||||||
if( CurrentLibEntry )
|
if( CurrentLibEntry )
|
||||||
if( TestPins( CurrentLibEntry ) == FALSE )
|
if( TestPins( CurrentLibEntry ) == false )
|
||||||
DisplayInfo( this, _( " Pins Test OK!" ) );
|
DisplayInfo( this, _( " Pins Test OK!" ) );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_DE_MORGAN_NORMAL_BUTT:
|
case ID_DE_MORGAN_NORMAL_BUTT:
|
||||||
m_HToolBar->ToggleTool( ID_DE_MORGAN_NORMAL_BUTT, TRUE );
|
m_HToolBar->ToggleTool( ID_DE_MORGAN_NORMAL_BUTT, true );
|
||||||
m_HToolBar->ToggleTool( ID_DE_MORGAN_CONVERT_BUTT, FALSE );
|
m_HToolBar->ToggleTool( ID_DE_MORGAN_CONVERT_BUTT, false );
|
||||||
LibItemToRepeat = NULL;
|
LibItemToRepeat = NULL;
|
||||||
CurrentConvert = 1;
|
CurrentConvert = 1;
|
||||||
DrawPanel->Refresh();
|
DrawPanel->Refresh();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_DE_MORGAN_CONVERT_BUTT:
|
case ID_DE_MORGAN_CONVERT_BUTT:
|
||||||
m_HToolBar->ToggleTool( ID_DE_MORGAN_NORMAL_BUTT, FALSE );
|
m_HToolBar->ToggleTool( ID_DE_MORGAN_NORMAL_BUTT, false );
|
||||||
m_HToolBar->ToggleTool( ID_DE_MORGAN_CONVERT_BUTT, TRUE );
|
m_HToolBar->ToggleTool( ID_DE_MORGAN_CONVERT_BUTT, true );
|
||||||
LibItemToRepeat = NULL;
|
LibItemToRepeat = NULL;
|
||||||
CurrentConvert = 2;
|
CurrentConvert = 2;
|
||||||
DrawPanel->Refresh();
|
DrawPanel->Refresh();
|
||||||
|
@ -440,7 +446,7 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_LIBEDIT_EDIT_PIN_BY_PIN:
|
case ID_LIBEDIT_EDIT_PIN_BY_PIN:
|
||||||
g_EditPinByPinIsOn = g_EditPinByPinIsOn ? FALSE : TRUE;
|
g_EditPinByPinIsOn = g_EditPinByPinIsOn ? false : true;
|
||||||
m_HToolBar->ToggleTool( ID_LIBEDIT_EDIT_PIN_BY_PIN, g_EditPinByPinIsOn );
|
m_HToolBar->ToggleTool( ID_LIBEDIT_EDIT_PIN_BY_PIN, g_EditPinByPinIsOn );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -602,7 +608,7 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
|
||||||
if( DrawPanel->ManageCurseur && DrawPanel->ForceCloseManageCurseur )
|
if( DrawPanel->ManageCurseur && DrawPanel->ForceCloseManageCurseur )
|
||||||
DrawPanel->ForceCloseManageCurseur( DrawPanel, &dc );
|
DrawPanel->ForceCloseManageCurseur( DrawPanel, &dc );
|
||||||
else
|
else
|
||||||
DeleteOneLibraryDrawStruct( DrawPanel, &dc, CurrentLibEntry, CurrentDrawItem, TRUE );
|
DeleteOneLibraryDrawStruct( DrawPanel, &dc, CurrentLibEntry, CurrentDrawItem, true );
|
||||||
}
|
}
|
||||||
|
|
||||||
CurrentDrawItem = NULL;
|
CurrentDrawItem = NULL;
|
||||||
|
@ -670,53 +676,53 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_ZOOM_BLOCK:
|
case ID_POPUP_ZOOM_BLOCK:
|
||||||
DrawPanel->m_AutoPAN_Request = FALSE;
|
DrawPanel->m_AutoPAN_Request = false;
|
||||||
GetScreen()->BlockLocate.m_Command = BLOCK_ZOOM;
|
GetScreen()->BlockLocate.m_Command = BLOCK_ZOOM;
|
||||||
HandleBlockEnd( &dc );
|
HandleBlockEnd( &dc );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_DELETE_BLOCK:
|
case ID_POPUP_DELETE_BLOCK:
|
||||||
DrawPanel->m_AutoPAN_Request = FALSE;
|
DrawPanel->m_AutoPAN_Request = false;
|
||||||
GetScreen()->BlockLocate.m_Command = BLOCK_DELETE;
|
GetScreen()->BlockLocate.m_Command = BLOCK_DELETE;
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
HandleBlockEnd( &dc );
|
HandleBlockEnd( &dc );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_COPY_BLOCK:
|
case ID_POPUP_COPY_BLOCK:
|
||||||
DrawPanel->m_AutoPAN_Request = FALSE;
|
DrawPanel->m_AutoPAN_Request = false;
|
||||||
GetScreen()->BlockLocate.m_Command = BLOCK_COPY;
|
GetScreen()->BlockLocate.m_Command = BLOCK_COPY;
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
HandleBlockPlace( &dc );
|
HandleBlockPlace( &dc );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_SELECT_ITEMS_BLOCK:
|
case ID_POPUP_SELECT_ITEMS_BLOCK:
|
||||||
DrawPanel->m_AutoPAN_Request = FALSE;
|
DrawPanel->m_AutoPAN_Request = false;
|
||||||
GetScreen()->BlockLocate.m_Command = BLOCK_SELECT_ITEMS_ONLY;
|
GetScreen()->BlockLocate.m_Command = BLOCK_SELECT_ITEMS_ONLY;
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
HandleBlockEnd( &dc );
|
HandleBlockEnd( &dc );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_INVERT_BLOCK:
|
case ID_POPUP_INVERT_BLOCK:
|
||||||
DrawPanel->m_AutoPAN_Request = FALSE;
|
DrawPanel->m_AutoPAN_Request = false;
|
||||||
GetScreen()->BlockLocate.m_Command = BLOCK_INVERT;
|
GetScreen()->BlockLocate.m_Command = BLOCK_INVERT;
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
HandleBlockPlace( &dc );
|
HandleBlockPlace( &dc );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_POPUP_PLACE_BLOCK:
|
case ID_POPUP_PLACE_BLOCK:
|
||||||
DrawPanel->m_AutoPAN_Request = FALSE;
|
DrawPanel->m_AutoPAN_Request = false;
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
HandleBlockPlace( &dc );
|
HandleBlockPlace( &dc );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_LIBEDIT_UNDO:
|
case ID_LIBEDIT_UNDO:
|
||||||
if( GetComponentFromUndoList() )
|
if( GetComponentFromUndoList() )
|
||||||
DrawPanel->Refresh( TRUE );
|
DrawPanel->Refresh( true );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_LIBEDIT_REDO:
|
case ID_LIBEDIT_REDO:
|
||||||
if( GetComponentFromRedoList() )
|
if( GetComponentFromRedoList() )
|
||||||
DrawPanel->Refresh( TRUE );
|
DrawPanel->Refresh( true );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -724,7 +730,7 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawPanel->m_IgnoreMouseEvents = FALSE;
|
DrawPanel->m_IgnoreMouseEvents = false;
|
||||||
|
|
||||||
if( m_ID_current_state == 0 )
|
if( m_ID_current_state == 0 )
|
||||||
LibItemToRepeat = NULL;
|
LibItemToRepeat = NULL;
|
||||||
|
|
|
@ -29,6 +29,8 @@ OBJECTS = eeschema.o\
|
||||||
component_class.o\
|
component_class.o\
|
||||||
class_library.o\
|
class_library.o\
|
||||||
dialog_options.o\
|
dialog_options.o\
|
||||||
|
dialog_edit_libentry_fields_in_lib.o\
|
||||||
|
dialog_edit_libentry_fields_in_lib_base.o\
|
||||||
tool_lib.o\
|
tool_lib.o\
|
||||||
tool_sch.o\
|
tool_sch.o\
|
||||||
tool_viewlib.o\
|
tool_viewlib.o\
|
||||||
|
|
|
@ -156,6 +156,12 @@ void WinEDA_LibeditFrame::ReCreateHToolbar()
|
||||||
-1, -1, (wxObject*) NULL,
|
-1, -1, (wxObject*) NULL,
|
||||||
_( "Edit component properties" ) );
|
_( "Edit component properties" ) );
|
||||||
|
|
||||||
|
m_HToolBar->AddTool( ID_LIBEDIT_GET_FRAME_EDIT_FIELDS, BITMAP( add_text_xpm ),
|
||||||
|
wxNullBitmap,
|
||||||
|
FALSE,
|
||||||
|
-1, -1, (wxObject*) NULL,
|
||||||
|
_( "Add, remove, edit fields properties" ) );
|
||||||
|
|
||||||
m_HToolBar->AddSeparator();
|
m_HToolBar->AddSeparator();
|
||||||
m_HToolBar->AddTool( ID_LIBEDIT_CHECK_PART, BITMAP( erc_xpm ),
|
m_HToolBar->AddTool( ID_LIBEDIT_CHECK_PART, BITMAP( erc_xpm ),
|
||||||
wxNullBitmap,
|
wxNullBitmap,
|
||||||
|
|
|
@ -9,7 +9,7 @@ COMMON_GLOBL wxString g_BuildVersion
|
||||||
# include "config.h"
|
# include "config.h"
|
||||||
(wxT(KICAD_SVN_VERSION))
|
(wxT(KICAD_SVN_VERSION))
|
||||||
# else
|
# else
|
||||||
(wxT("(20081221-unstable)")) /* main program version */
|
(wxT("(20081229-unstable)")) /* main program version */
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
|
@ -20,7 +20,7 @@ COMMON_GLOBL wxString g_BuildAboutVersion
|
||||||
# include "config.h"
|
# include "config.h"
|
||||||
(wxT(KICAD_ABOUT_VERSION))
|
(wxT(KICAD_ABOUT_VERSION))
|
||||||
# else
|
# else
|
||||||
(wxT("(20081221-unstable)")) /* svn date & rev (normally overridden) */
|
(wxT("(20081229-unstable)")) /* svn date & rev (normally overridden) */
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
|
|
|
@ -429,6 +429,7 @@ enum main_id {
|
||||||
ID_LIBEDIT_SAVE_CURRENT_PART,
|
ID_LIBEDIT_SAVE_CURRENT_PART,
|
||||||
ID_LIBEDIT_NEW_PART,
|
ID_LIBEDIT_NEW_PART,
|
||||||
ID_LIBEDIT_GET_FRAME_EDIT_PART,
|
ID_LIBEDIT_GET_FRAME_EDIT_PART,
|
||||||
|
ID_LIBEDIT_GET_FRAME_EDIT_FIELDS,
|
||||||
ID_LIBEDIT_DELETE_PART,
|
ID_LIBEDIT_DELETE_PART,
|
||||||
ID_LIBEDIT_IMPORT_PART,
|
ID_LIBEDIT_IMPORT_PART,
|
||||||
ID_LIBEDIT_EXPORT_PART,
|
ID_LIBEDIT_EXPORT_PART,
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
#define ABS( y ) ( (y) >= 0 ? (y) : ( -(y) ) )
|
#define ABS( y ) ( (y) >= 0 ? (y) : ( -(y) ) )
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define NEGATE(x) (x = -x)
|
||||||
/// # of elements in an arrray
|
/// # of elements in an arrray
|
||||||
#define DIM(x) (sizeof(x)/sizeof((x)[0]))
|
#define DIM(x) (sizeof(x)/sizeof((x)[0]))
|
||||||
|
|
||||||
|
|
|
@ -408,6 +408,7 @@ private:
|
||||||
// General editing
|
// General editing
|
||||||
public:
|
public:
|
||||||
void SaveCopyInUndoList( EDA_BaseStruct* ItemToCopy, int flag_type_command = 0 );
|
void SaveCopyInUndoList( EDA_BaseStruct* ItemToCopy, int flag_type_command = 0 );
|
||||||
|
void InstallFieldsEditorDialog( void );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool GetComponentFromUndoList();
|
bool GetComponentFromUndoList();
|
||||||
|
|
Binary file not shown.
|
@ -2,8 +2,8 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: kicad\n"
|
"Project-Id-Version: kicad\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2008-12-23 14:07+0100\n"
|
"POT-Creation-Date: 2008-12-29 09:07+0100\n"
|
||||||
"PO-Revision-Date: 2008-12-23 14:11+0100\n"
|
"PO-Revision-Date: 2008-12-29 16:04+0100\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: kicad team <jean-pierre.charras@ujf-grenoble.fr>\n"
|
"Language-Team: kicad team <jean-pierre.charras@ujf-grenoble.fr>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
|
@ -4989,6 +4989,8 @@ msgid ""
|
||||||
"Activates the display of relative coordinates from relative origin (set by the space key)\n"
|
"Activates the display of relative coordinates from relative origin (set by the space key)\n"
|
||||||
"to the cursor, in polar coordinates (angle and distance)"
|
"to the cursor, in polar coordinates (angle and distance)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Active l'affichage des coordonnées relatives à l'origine relative(positionnée par la touche espace)\n"
|
||||||
|
"au curseur, en coordonnées polaires (angle et distance)"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:32
|
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:32
|
||||||
msgid "Units"
|
msgid "Units"
|
||||||
|
@ -5000,7 +5002,7 @@ msgstr "Sélection des unités pour afficher les dimensions et positions des ite
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:38
|
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:38
|
||||||
msgid "Smass cross"
|
msgid "Smass cross"
|
||||||
msgstr "Petite crois"
|
msgstr "Petite croix"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:38
|
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:38
|
||||||
msgid "Full screen cursor"
|
msgid "Full screen cursor"
|
||||||
|
@ -5012,7 +5014,7 @@ msgstr "Curseur"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:42
|
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:42
|
||||||
msgid "Main cursor shape selection (small cross or large cursor)"
|
msgid "Main cursor shape selection (small cross or large cursor)"
|
||||||
msgstr ""
|
msgstr "Sélection de l'aspect du curseur principal (petite croix ou grand curseur)"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:51
|
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:51
|
||||||
msgid "1"
|
msgid "1"
|
||||||
|
@ -5060,7 +5062,7 @@ msgstr "Liens max:"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:64
|
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:64
|
||||||
msgid "Adjust the number of ratsnets shown from cursor to closest pads"
|
msgid "Adjust the number of ratsnets shown from cursor to closest pads"
|
||||||
msgstr ""
|
msgstr "Adjust the number of ratsnets shown from cursor to closest pads"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:68
|
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:68
|
||||||
msgid "Auto Save (minuts):"
|
msgid "Auto Save (minuts):"
|
||||||
|
@ -5068,7 +5070,7 @@ msgstr "Sauveg. Auto (min)"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:73
|
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:73
|
||||||
msgid "Delay after the first change to create a backup file of the board on disk."
|
msgid "Delay after the first change to create a backup file of the board on disk."
|
||||||
msgstr ""
|
msgstr "Délai après le premier changement pour créer un fichier de sauvegarde du circuit imprimé sur disque"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:82
|
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:82
|
||||||
msgid "Drc ON"
|
msgid "Drc ON"
|
||||||
|
@ -5079,6 +5081,8 @@ msgid ""
|
||||||
"Enable/disable the DRC control.\n"
|
"Enable/disable the DRC control.\n"
|
||||||
"When DRC is disable, all connections are allowed."
|
"When DRC is disable, all connections are allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Active/désactive le contrôle DRC (Design Rule Check).\n"
|
||||||
|
"Lorsque de DRC est désactivé, toutes les connexions sont autorisées."
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:89
|
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:89
|
||||||
msgid "Show Ratsnest"
|
msgid "Show Ratsnest"
|
||||||
|
@ -5097,6 +5101,8 @@ msgid ""
|
||||||
"Shows (or not) the local ratsnest relative to a footprint, when moving it.\n"
|
"Shows (or not) the local ratsnest relative to a footprint, when moving it.\n"
|
||||||
"This ratsnest is useful to place a footprint."
|
"This ratsnest is useful to place a footprint."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Montre (ou non) le chevelu local relatif a un module, lorsque on le déplace.\n"
|
||||||
|
"Ce chevelu est utile pour placer un module."
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:101
|
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:101
|
||||||
msgid "Tracks Auto Del"
|
msgid "Tracks Auto Del"
|
||||||
|
@ -5104,7 +5110,7 @@ msgstr "Auto Supp. Pistes"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:103
|
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:103
|
||||||
msgid "Enable/disable the automatic track deletion when recreating a track."
|
msgid "Enable/disable the automatic track deletion when recreating a track."
|
||||||
msgstr ""
|
msgstr "Active/désactive l'effacement de piste automatique lorsque l'on recrée une piste."
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:107
|
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:107
|
||||||
msgid "Track only 45 degrees"
|
msgid "Track only 45 degrees"
|
||||||
|
@ -5128,7 +5134,7 @@ msgstr "Auto PAN"
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:121
|
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:121
|
||||||
msgid "Allows auto pan when creating a track, or moving an item."
|
msgid "Allows auto pan when creating a track, or moving an item."
|
||||||
msgstr ""
|
msgstr "Autorise l'autopan en création de piste, ou lorsque on déplace un élément."
|
||||||
|
|
||||||
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:125
|
#: pcbnew/dialog_general_options_BoardEditor_base.cpp:125
|
||||||
msgid "Double Segm Track"
|
msgid "Double Segm Track"
|
||||||
|
@ -5406,12 +5412,12 @@ msgid "PinType"
|
||||||
msgstr "Type Pin"
|
msgstr "Type Pin"
|
||||||
|
|
||||||
#: eeschema/affiche.cpp:89
|
#: eeschema/affiche.cpp:89
|
||||||
#: eeschema/affiche.cpp:177
|
#: eeschema/affiche.cpp:184
|
||||||
msgid "no"
|
msgid "no"
|
||||||
msgstr "non"
|
msgstr "non"
|
||||||
|
|
||||||
#: eeschema/affiche.cpp:91
|
#: eeschema/affiche.cpp:91
|
||||||
#: eeschema/affiche.cpp:179
|
#: eeschema/affiche.cpp:186
|
||||||
msgid "yes"
|
msgid "yes"
|
||||||
msgstr "oui"
|
msgstr "oui"
|
||||||
|
|
||||||
|
@ -5439,20 +5445,20 @@ msgstr "Gauche"
|
||||||
msgid "Right"
|
msgid "Right"
|
||||||
msgstr "Droite"
|
msgstr "Droite"
|
||||||
|
|
||||||
#: eeschema/affiche.cpp:169
|
#: eeschema/affiche.cpp:176
|
||||||
#: eeschema/affiche.cpp:175
|
#: eeschema/affiche.cpp:182
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "Tout"
|
msgstr "Tout"
|
||||||
|
|
||||||
#: eeschema/affiche.cpp:172
|
#: eeschema/affiche.cpp:179
|
||||||
msgid "Unit"
|
msgid "Unit"
|
||||||
msgstr "Unité"
|
msgstr "Unité"
|
||||||
|
|
||||||
#: eeschema/affiche.cpp:182
|
#: eeschema/affiche.cpp:189
|
||||||
msgid "Convert"
|
msgid "Convert"
|
||||||
msgstr "Convert"
|
msgstr "Convert"
|
||||||
|
|
||||||
#: eeschema/affiche.cpp:187
|
#: eeschema/affiche.cpp:194
|
||||||
msgid "default"
|
msgid "default"
|
||||||
msgstr "Défaut"
|
msgstr "Défaut"
|
||||||
|
|
||||||
|
@ -6464,26 +6470,6 @@ msgstr "Pin de Feuille de Hiérarchie"
|
||||||
msgid "No New Hierarchal Label found"
|
msgid "No New Hierarchal Label found"
|
||||||
msgstr "Pas de nouveau Label Hiérarchique trouvé"
|
msgstr "Pas de nouveau Label Hiérarchique trouvé"
|
||||||
|
|
||||||
#: eeschema/symbtext.cpp:133
|
|
||||||
msgid " Text : "
|
|
||||||
msgstr " Texte : "
|
|
||||||
|
|
||||||
#: eeschema/symbtext.cpp:143
|
|
||||||
msgid "Component name:"
|
|
||||||
msgstr "Nom du Composant:"
|
|
||||||
|
|
||||||
#: eeschema/symbtext.cpp:152
|
|
||||||
msgid "Size:"
|
|
||||||
msgstr "Taille:"
|
|
||||||
|
|
||||||
#: eeschema/symbtext.cpp:158
|
|
||||||
msgid " Text Options : "
|
|
||||||
msgstr "Options du Texte: "
|
|
||||||
|
|
||||||
#: eeschema/symbtext.cpp:170
|
|
||||||
msgid "Vertical"
|
|
||||||
msgstr "Vertical"
|
|
||||||
|
|
||||||
#: eeschema/hotkeys.cpp:249
|
#: eeschema/hotkeys.cpp:249
|
||||||
msgid "Add Component"
|
msgid "Add Component"
|
||||||
msgstr "Ajout Composant"
|
msgstr "Ajout Composant"
|
||||||
|
@ -7017,7 +7003,7 @@ msgstr "Créer une nouvelle librairie et y sauver le composant"
|
||||||
|
|
||||||
#: eeschema/tool_lib.cpp:157
|
#: eeschema/tool_lib.cpp:157
|
||||||
msgid "Edit component properties"
|
msgid "Edit component properties"
|
||||||
msgstr "Editer ropriétés du composant"
|
msgstr "Editer propriétés du composant"
|
||||||
|
|
||||||
#: eeschema/tool_lib.cpp:164
|
#: eeschema/tool_lib.cpp:164
|
||||||
msgid "Test duplicate pins"
|
msgid "Test duplicate pins"
|
||||||
|
@ -7766,6 +7752,10 @@ msgstr "Champs"
|
||||||
msgid "Show Text"
|
msgid "Show Text"
|
||||||
msgstr "Texte visible"
|
msgstr "Texte visible"
|
||||||
|
|
||||||
|
#: eeschema/edit_component_in_lib.cpp:504
|
||||||
|
msgid "Vertical"
|
||||||
|
msgstr "Vertical"
|
||||||
|
|
||||||
#: eeschema/edit_component_in_lib.cpp:510
|
#: eeschema/edit_component_in_lib.cpp:510
|
||||||
msgid "Field Name:"
|
msgid "Field Name:"
|
||||||
msgstr "Nom Champ"
|
msgstr "Nom Champ"
|
||||||
|
@ -8039,58 +8029,62 @@ msgstr "Déplacer le champ optionnel sélectionné de une position vers le haut"
|
||||||
msgid "Visibility"
|
msgid "Visibility"
|
||||||
msgstr "Visibilité"
|
msgstr "Visibilité"
|
||||||
|
|
||||||
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:117
|
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:120
|
||||||
msgid "Show"
|
msgid "Show"
|
||||||
msgstr "Visible"
|
msgstr "Visible"
|
||||||
|
|
||||||
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:119
|
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:122
|
||||||
msgid "Check if you want this field visible"
|
msgid "Check if you want this field visible"
|
||||||
msgstr "Activer si vous voulez avoir ce champ visible"
|
msgstr "Activer si vous voulez avoir ce champ visible"
|
||||||
|
|
||||||
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:125
|
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:128
|
||||||
msgid "Check if you want this field's text rotated 90 degrees"
|
msgid "Check if you want this field's text rotated 90 degrees"
|
||||||
msgstr "Activer si vous voulez avoir le texte de ce champ turné à 90°"
|
msgstr "Activer si vous voulez avoir le texte de ce champ tourné à 90°"
|
||||||
|
|
||||||
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:134
|
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:136
|
||||||
|
msgid "Style:"
|
||||||
|
msgstr "Style:"
|
||||||
|
|
||||||
|
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:145
|
||||||
msgid "Field Name"
|
msgid "Field Name"
|
||||||
msgstr "Nom Champ"
|
msgstr "Nom Champ"
|
||||||
|
|
||||||
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:139
|
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:150
|
||||||
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:153
|
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:164
|
||||||
msgid "The text (or value) of the currently selected field"
|
msgid "The text (or value) of the currently selected field"
|
||||||
msgstr "The texte (ou la valeur) du champ actuellement sélectionné"
|
msgstr "The texte (ou la valeur) du champ actuellement sélectionné"
|
||||||
|
|
||||||
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:148
|
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:159
|
||||||
msgid "Field Value"
|
msgid "Field Value"
|
||||||
msgstr "Texte Champ"
|
msgstr "Texte Champ"
|
||||||
|
|
||||||
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:162
|
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:173
|
||||||
msgid "Size(\")"
|
msgid "Size(\")"
|
||||||
msgstr "Taille(\")"
|
msgstr "Taille(\")"
|
||||||
|
|
||||||
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:167
|
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:178
|
||||||
msgid "The vertical height of the currently selected field's text in the schematic"
|
msgid "The vertical height of the currently selected field's text in the schematic"
|
||||||
msgstr "La taille du texte du champ actuellement sélectionné"
|
msgstr "La taille du texte du champ actuellement sélectionné"
|
||||||
|
|
||||||
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:179
|
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:190
|
||||||
msgid "PosX(\")"
|
msgid "PosX(\")"
|
||||||
msgstr "PosX"
|
msgstr "PosX"
|
||||||
|
|
||||||
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:191
|
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:202
|
||||||
msgid "PosY(\")"
|
msgid "PosY(\")"
|
||||||
msgstr "PosY"
|
msgstr "PosY"
|
||||||
|
|
||||||
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:196
|
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:207
|
||||||
msgid "The Y coordinate of the text relative to the component"
|
msgid "The Y coordinate of the text relative to the component"
|
||||||
msgstr "La position Y du texte relativement au composant"
|
msgstr "La position Y du texte relativement au composant"
|
||||||
|
|
||||||
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:207
|
#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:218
|
||||||
msgid "Reset to Library Defaults"
|
msgid "Reset to Library Defaults"
|
||||||
msgstr "Remettre aux Valeurs par Défaut en Librairie"
|
msgstr "Remettre aux Valeurs par Défaut en Librairie"
|
||||||
|
|
||||||
#: eeschema/dialog_edit_component_in_lib.cpp:139
|
#: eeschema/dialog_edit_component_in_lib.cpp:139
|
||||||
msgid "General :"
|
msgid "General :"
|
||||||
msgstr " Général :"
|
msgstr "Général :"
|
||||||
|
|
||||||
#: eeschema/dialog_edit_component_in_lib.cpp:147
|
#: eeschema/dialog_edit_component_in_lib.cpp:147
|
||||||
msgid "Number of units:"
|
msgid "Number of units:"
|
||||||
|
@ -8375,6 +8369,18 @@ msgstr " a été créé par une version plus ancienne de Eeschema. Il sera enreg
|
||||||
msgid "Done Loading "
|
msgid "Done Loading "
|
||||||
msgstr "Chargement terminé"
|
msgstr "Chargement terminé"
|
||||||
|
|
||||||
|
#: eeschema/dialog_bodygraphictext_properties_base.cpp:32
|
||||||
|
msgid " Text Options : "
|
||||||
|
msgstr "Options du Texte: "
|
||||||
|
|
||||||
|
#: eeschema/dialog_bodygraphictext_properties_base.cpp:53
|
||||||
|
msgid "Size:"
|
||||||
|
msgstr "Taille:"
|
||||||
|
|
||||||
|
#: eeschema/dialog_bodygraphictext_properties_base.cpp:62
|
||||||
|
msgid "Text Shape:"
|
||||||
|
msgstr "Aspect Texte:"
|
||||||
|
|
||||||
#: eeschema/eelibs_read_libraryfiles.cpp:117
|
#: eeschema/eelibs_read_libraryfiles.cpp:117
|
||||||
msgid "Start loading schematic libs"
|
msgid "Start loading schematic libs"
|
||||||
msgstr "Demarre chargement des librairies schématiques"
|
msgstr "Demarre chargement des librairies schématiques"
|
||||||
|
@ -9034,6 +9040,7 @@ msgid "Create New Directory"
|
||||||
msgstr "Créer un nouveau Répertoire"
|
msgstr "Créer un nouveau Répertoire"
|
||||||
|
|
||||||
#: kicad/treeprj_frame.cpp:543
|
#: kicad/treeprj_frame.cpp:543
|
||||||
|
#: kicad/kicad.cpp:381
|
||||||
msgid "noname"
|
msgid "noname"
|
||||||
msgstr "noname"
|
msgstr "noname"
|
||||||
|
|
||||||
|
@ -10721,11 +10728,7 @@ msgstr "EESchema Tracé HPGL"
|
||||||
msgid "Sheet properties"
|
msgid "Sheet properties"
|
||||||
msgstr "Propriétés de la feuille"
|
msgstr "Propriétés de la feuille"
|
||||||
|
|
||||||
#: eeschema/symbtext.h:47
|
#: eeschema/dialog_edit_component_in_schematic_fbp.h:82
|
||||||
msgid "Graphic text properties"
|
|
||||||
msgstr "Propriétés du texte"
|
|
||||||
|
|
||||||
#: eeschema/dialog_edit_component_in_schematic_fbp.h:81
|
|
||||||
msgid "Component Properties"
|
msgid "Component Properties"
|
||||||
msgstr "Propriétés du Composant"
|
msgstr "Propriétés du Composant"
|
||||||
|
|
||||||
|
@ -10737,6 +10740,10 @@ msgstr "Propriétés des Pins"
|
||||||
msgid "EESchema Plot PS"
|
msgid "EESchema Plot PS"
|
||||||
msgstr "EESchema Tracé PS"
|
msgstr "EESchema Tracé PS"
|
||||||
|
|
||||||
|
#: eeschema/dialog_bodygraphictext_properties_base.h:55
|
||||||
|
msgid "Graphic text properties:"
|
||||||
|
msgstr "Propriétés du texte graphique:"
|
||||||
|
|
||||||
#: eeschema/component_wizard/dialog_component_setup.h:55
|
#: eeschema/component_wizard/dialog_component_setup.h:55
|
||||||
msgid "Component Builder"
|
msgid "Component Builder"
|
||||||
msgstr "Générateur de Composant"
|
msgstr "Générateur de Composant"
|
||||||
|
@ -10905,6 +10912,10 @@ msgstr "Imprimer"
|
||||||
msgid "Create SVG file"
|
msgid "Create SVG file"
|
||||||
msgstr "Créer Fichier SVG"
|
msgstr "Créer Fichier SVG"
|
||||||
|
|
||||||
|
#~ msgid " Text : "
|
||||||
|
#~ msgstr " Texte : "
|
||||||
|
#~ msgid "Component name:"
|
||||||
|
#~ msgstr "Nom du Composant:"
|
||||||
#~ msgid "show"
|
#~ msgid "show"
|
||||||
#~ msgstr "Visible"
|
#~ msgstr "Visible"
|
||||||
#~ msgid "no show"
|
#~ msgid "no show"
|
||||||
|
|
Loading…
Reference in New Issue