Command ID refactoring and other minor improvements.

* Split out application specific command IDs to prevent unnecessary rebuilding.
* Eliminate duplicate menu and tool bar command IDs.
* Split component library editor and viewer definitions to separate header files.
* More component library and document file merge code.
* A bunch of minor string readability and consistency fixes.
This commit is contained in:
stambaughw 2009-09-22 12:27:57 +00:00
parent dcc3463bf1
commit 43d6c685b5
125 changed files with 2169 additions and 2105 deletions

View File

@ -21,7 +21,6 @@
#include "wx/dataobj.h" #include "wx/dataobj.h"
#include "wx/clipbrd.h" #include "wx/clipbrd.h"
#include "id.h"
#include "gestfich.h" #include "gestfich.h"
#include "3d_viewer.h" #include "3d_viewer.h"
@ -30,23 +29,6 @@
/* Tool and button Bitmaps */ /* Tool and button Bitmaps */
#include "bitmaps.h" #include "bitmaps.h"
enum onrclick_id {
ID_POPUP_3D_VIEW_START = 2000,
ID_POPUP_ZOOMIN,
ID_POPUP_ZOOMOUT,
ID_POPUP_VIEW_XPOS,
ID_POPUP_VIEW_XNEG,
ID_POPUP_VIEW_YPOS,
ID_POPUP_VIEW_YNEG,
ID_POPUP_VIEW_ZPOS,
ID_POPUP_VIEW_ZNEG,
ID_POPUP_MOVE3D_LEFT,
ID_POPUP_MOVE3D_RIGHT,
ID_POPUP_MOVE3D_UP,
ID_POPUP_MOVE3D_DOWN,
ID_POPUP_3D_VIEW_END
};
/* /*
* Pcb3D_GLCanvas implementation * Pcb3D_GLCanvas implementation

View File

@ -18,7 +18,6 @@
#endif #endif
#include "bitmaps.h" #include "bitmaps.h"
#include "id.h"
#include "3d_viewer.h" #include "3d_viewer.h"
#include "trackball.h" #include "trackball.h"

View File

@ -4,11 +4,8 @@
#include "fctsys.h" #include "fctsys.h"
#include "macros.h" #include "macros.h"
#include "bitmaps.h" #include "bitmaps.h"
#include "id.h"
#include "3d_viewer.h" #include "3d_viewer.h"

View File

@ -23,12 +23,68 @@
#include "pcbstruct.h" #include "pcbstruct.h"
#include "3d_struct.h" #include "3d_struct.h"
#include "id.h"
#define KICAD_DEFAULT_3D_DRAWFRAME_STYLE wxDEFAULT_FRAME_STYLE|wxWANTS_CHARS #define KICAD_DEFAULT_3D_DRAWFRAME_STYLE wxDEFAULT_FRAME_STYLE|wxWANTS_CHARS
#define LIB3D_PATH wxT("packages3d") #define LIB3D_PATH wxT("packages3d")
/**
* Command IDs for the 3D viewer.
*
* Please add IDs that are unique to the 3D viewer here and not in the global
* id.h file. This will prevent the entire project from being rebuilt when
* adding new commands to the 3D viewer.
*/
enum id_3dview_frm
{
ID_START_COMMAND_3D = ID_END_LIST,
ID_ROTATE3D_X_NEG,
ID_ROTATE3D_X_POS,
ID_ROTATE3D_Y_NEG,
ID_ROTATE3D_Y_POS,
ID_ROTATE3D_Z_NEG,
ID_ROTATE3D_Z_POS,
ID_RELOAD3D_BOARD,
ID_TOOL_SCREENCOPY_TOCLIBBOARD,
ID_MOVE3D_LEFT,
ID_MOVE3D_RIGHT,
ID_MOVE3D_UP,
ID_MOVE3D_DOWN,
ID_MENU3D_BGCOLOR_SELECTION,
ID_MENU3D_AXIS_ONOFF,
ID_MENU3D_MODULE_ONOFF,
ID_MENU3D_UNUSED,
ID_MENU3D_ZONE_ONOFF,
ID_MENU3D_DRAWINGS_ONOFF,
ID_MENU3D_COMMENTS_ONOFF,
ID_MENU3D_ECO1_ONOFF,
ID_MENU3D_ECO2_ONOFF,
ID_END_COMMAND_3D,
ID_MENU_SCREENCOPY_PNG,
ID_MENU_SCREENCOPY_JPEG,
ID_MENU_SCREENCOPY_TOCLIBBOARD,
ID_POPUP_3D_VIEW_START,
ID_POPUP_ZOOMIN,
ID_POPUP_ZOOMOUT,
ID_POPUP_VIEW_XPOS,
ID_POPUP_VIEW_XNEG,
ID_POPUP_VIEW_YPOS,
ID_POPUP_VIEW_YNEG,
ID_POPUP_VIEW_ZPOS,
ID_POPUP_VIEW_ZNEG,
ID_POPUP_MOVE3D_LEFT,
ID_POPUP_MOVE3D_RIGHT,
ID_POPUP_MOVE3D_UP,
ID_POPUP_MOVE3D_DOWN,
ID_POPUP_3D_VIEW_END
};
class Pcb3D_GLCanvas; class Pcb3D_GLCanvas;
class WinEDA3D_DrawFrame; class WinEDA3D_DrawFrame;
class Info_3D_Visu; class Info_3D_Visu;

View File

@ -81,6 +81,8 @@ const wxString ModuleFileExtension( wxT( "mod" ) );
const wxString ModuleFileWildcard( const wxString ModuleFileWildcard(
_( "Kicad footprint library files (*.mod)|*.mod" ) _( "Kicad footprint library files (*.mod)|*.mod" )
); );
const wxString PcbFileWildcard(
_( "Printed circuit board files (*.brd)|*.brd" ) );
int g_CurrentVersionPCB = 1; int g_CurrentVersionPCB = 1;

View File

@ -5,7 +5,6 @@
#include "fctsys.h" #include "fctsys.h"
#include "wxstruct.h" #include "wxstruct.h"
#include "common.h" #include "common.h"
#include "id.h"
#include "cvpcb.h" #include "cvpcb.h"
#include "protos.h" #include "protos.h"
@ -33,8 +32,8 @@ COMPONENTS_LISTBOX::~COMPONENTS_LISTBOX()
*/ */
BEGIN_EVENT_TABLE( COMPONENTS_LISTBOX, ITEMS_LISTBOX_BASE ) BEGIN_EVENT_TABLE( COMPONENTS_LISTBOX, ITEMS_LISTBOX_BASE )
EVT_SIZE( ITEMS_LISTBOX_BASE::OnSize ) EVT_SIZE( ITEMS_LISTBOX_BASE::OnSize )
EVT_CHAR( COMPONENTS_LISTBOX::OnChar ) EVT_CHAR( COMPONENTS_LISTBOX::OnChar )
END_EVENT_TABLE() END_EVENT_TABLE()

View File

@ -5,7 +5,6 @@
#include "fctsys.h" #include "fctsys.h"
#include "wxstruct.h" #include "wxstruct.h"
#include "common.h" #include "common.h"
#include "id.h"
#include "cvpcb.h" #include "cvpcb.h"
#include "protos.h" #include "protos.h"

View File

@ -8,7 +8,6 @@
#include "confirm.h" #include "confirm.h"
#include "eda_doc.h" #include "eda_doc.h"
#include "gestfich.h" #include "gestfich.h"
#include "id.h"
#include "param_config.h" #include "param_config.h"
#include "bitmaps.h" #include "bitmaps.h"

View File

@ -8,7 +8,6 @@
#include "common.h" #include "common.h"
#include "confirm.h" #include "confirm.h"
#include "gestfich.h" #include "gestfich.h"
#include "id.h"
#include "cvpcb.h" #include "cvpcb.h"
#include "zones.h" #include "zones.h"

View File

@ -17,10 +17,40 @@ class COMPONENTS_LISTBOX;
class WinEDA_DisplayFrame; class WinEDA_DisplayFrame;
/******************************************************/ #include "id.h"
/* classe derivee pour la Fenetre principale de cvpcb */
/******************************************************/
/**
* Command IDs for the component library viewer.
*
* Please add IDs that are unique to the component library viewer here and
* not in the global id.h file. This will prevent the entire project from
* being rebuilt when adding new commands to the component library viewer.
*/
enum id_cvpcb_frm
{
ID_CVPCB_QUIT = ID_END_LIST,
ID_CVPCB_READ_INPUT_NETLIST,
ID_CVPCB_SAVEQUITCVPCB,
ID_CVPCB_CREATE_CONFIGWINDOW,
ID_CVPCB_CREATE_SCREENCMP,
ID_CVPCB_GOTO_FIRSTNA,
ID_CVPCB_GOTO_PREVIOUSNA,
ID_CVPCB_DEL_ASSOCIATIONS,
ID_CVPCB_AUTO_ASSOCIE,
ID_CVPCB_COMPONENT_LIST,
ID_CVPCB_FOOTPRINT_LIST,
ID_CVPCB_CREATE_STUFF_FILE,
ID_CVPCB_SHOW3D_FRAME,
ID_CVPCB_FOOTPRINT_DISPLAY_FULL_LIST,
ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST,
ID_CVPCB_CONFIG_KEEP_OPEN_ON_SAVE
};
/**
* The CVPcb application main window.
*/
class WinEDA_CvpcbFrame : public WinEDA_BasicFrame class WinEDA_CvpcbFrame : public WinEDA_BasicFrame
{ {
public: public:
@ -241,7 +271,8 @@ public:
* @param aTypeCommand = command type (see enum UndoRedoOpType) * @param aTypeCommand = command type (see enum UndoRedoOpType)
* @param aTransformPoint = the reference point of the transformation, for commands like move * @param aTransformPoint = the reference point of the transformation, for commands like move
*/ */
virtual void SaveCopyInUndoList( PICKED_ITEMS_LIST& aItemsList, UndoRedoOpType aTypeCommand, virtual void SaveCopyInUndoList( PICKED_ITEMS_LIST& aItemsList,
UndoRedoOpType aTypeCommand,
const wxPoint& aTransformPoint = wxPoint( 0, 0 ) ) const wxPoint& aTransformPoint = wxPoint( 0, 0 ) )
{ {
// currently: do nothing in cvpcb. // currently: do nothing in cvpcb.

View File

@ -6,7 +6,6 @@
#include "appl_wxstruct.h" #include "appl_wxstruct.h"
#include "common.h" #include "common.h"
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "id.h"
#include "confirm.h" #include "confirm.h"
#include "macros.h" #include "macros.h"

View File

@ -8,7 +8,6 @@
#include "confirm.h" #include "confirm.h"
#include "gr_basic.h" #include "gr_basic.h"
#include "gestfich.h" #include "gestfich.h"
#include "id.h"
#include "appl_wxstruct.h" #include "appl_wxstruct.h"
#include "cvpcb.h" #include "cvpcb.h"

View File

@ -5,7 +5,6 @@
#include "fctsys.h" #include "fctsys.h"
#include "wxstruct.h" #include "wxstruct.h"
#include "common.h" #include "common.h"
#include "id.h"
#include "cvpcb.h" #include "cvpcb.h"
#include "protos.h" #include "protos.h"

View File

@ -13,8 +13,6 @@
#include "bitmaps.h" #include "bitmaps.h"
#include "id.h"
/*******************************************/ /*******************************************/
void WinEDA_CvpcbFrame::ReCreateMenuBar() void WinEDA_CvpcbFrame::ReCreateMenuBar()

View File

@ -5,7 +5,6 @@
#include "fctsys.h" #include "fctsys.h"
#include "common.h" #include "common.h"
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "id.h"
#include "bitmaps.h" #include "bitmaps.h"
#include "cvpcb.h" #include "cvpcb.h"

View File

@ -5,7 +5,6 @@
#include "fctsys.h" #include "fctsys.h"
#include "appl_wxstruct.h" #include "appl_wxstruct.h"
#include "common.h" #include "common.h"
#include "id.h"
#include "trigo.h" #include "trigo.h"
#include "bitmaps.h" #include "bitmaps.h"

View File

@ -14,6 +14,7 @@
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "protos.h" #include "protos.h"
#include "libeditfrm.h"
static void DrawMovingBlockOutlines( WinEDA_DrawPanel* panel, wxDC* DC, static void DrawMovingBlockOutlines( WinEDA_DrawPanel* panel, wxDC* DC,
@ -183,7 +184,7 @@ int WinEDA_LibeditFrame::HandleBlockEnd( wxDC* DC )
case BLOCK_DRAG: /* Drag */ case BLOCK_DRAG: /* Drag */
case BLOCK_MOVE: /* Move */ case BLOCK_MOVE: /* Move */
case BLOCK_COPY: /* Copy */ case BLOCK_COPY: /* Copy */
ItemsCount = MarkItemsInBloc( CurrentLibEntry, ItemsCount = MarkItemsInBloc( m_currentComponent,
GetScreen()->m_BlockLocate ); GetScreen()->m_BlockLocate );
if( ItemsCount ) if( ItemsCount )
{ {
@ -206,11 +207,11 @@ int WinEDA_LibeditFrame::HandleBlockEnd( wxDC* DC )
break; break;
case BLOCK_DELETE: /* Delete */ case BLOCK_DELETE: /* Delete */
ItemsCount = MarkItemsInBloc( CurrentLibEntry, ItemsCount = MarkItemsInBloc( m_currentComponent,
GetScreen()->m_BlockLocate ); GetScreen()->m_BlockLocate );
if( ItemsCount ) if( ItemsCount )
SaveCopyInUndoList( CurrentLibEntry ); SaveCopyInUndoList( m_currentComponent );
DeleteMarkedItems( CurrentLibEntry ); DeleteMarkedItems( m_currentComponent );
break; break;
case BLOCK_SAVE: /* Save */ case BLOCK_SAVE: /* Save */
@ -222,11 +223,11 @@ int WinEDA_LibeditFrame::HandleBlockEnd( wxDC* DC )
case BLOCK_MIRROR_Y: case BLOCK_MIRROR_Y:
ItemsCount = MarkItemsInBloc( CurrentLibEntry, ItemsCount = MarkItemsInBloc( m_currentComponent,
GetScreen()->m_BlockLocate ); GetScreen()->m_BlockLocate );
if( ItemsCount ) if( ItemsCount )
SaveCopyInUndoList( CurrentLibEntry ); SaveCopyInUndoList( m_currentComponent );
MirrorMarkedItems( CurrentLibEntry, MirrorMarkedItems( m_currentComponent,
GetScreen()->m_BlockLocate.Centre() ); GetScreen()->m_BlockLocate.Centre() );
break; break;
@ -245,7 +246,7 @@ int WinEDA_LibeditFrame::HandleBlockEnd( wxDC* DC )
{ {
if( GetScreen()->m_BlockLocate.m_Command != BLOCK_SELECT_ITEMS_ONLY ) if( GetScreen()->m_BlockLocate.m_Command != BLOCK_SELECT_ITEMS_ONLY )
{ {
ClearMarkItems( CurrentLibEntry ); ClearMarkItems( m_currentComponent );
} }
GetScreen()->m_BlockLocate.m_Flags = 0; GetScreen()->m_BlockLocate.m_Flags = 0;
GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK; GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK;
@ -291,16 +292,16 @@ void WinEDA_LibeditFrame::HandleBlockPlace( wxDC* DC )
case BLOCK_MOVE: /* Move */ case BLOCK_MOVE: /* Move */
case BLOCK_PRESELECT_MOVE: /* Move with preselection list*/ case BLOCK_PRESELECT_MOVE: /* Move with preselection list*/
GetScreen()->m_BlockLocate.ClearItemsList(); GetScreen()->m_BlockLocate.ClearItemsList();
SaveCopyInUndoList( CurrentLibEntry ); SaveCopyInUndoList( m_currentComponent );
MoveMarkedItems( CurrentLibEntry, MoveMarkedItems( m_currentComponent,
GetScreen()->m_BlockLocate.m_MoveVector ); GetScreen()->m_BlockLocate.m_MoveVector );
DrawPanel->Refresh( TRUE ); DrawPanel->Refresh( TRUE );
break; break;
case BLOCK_COPY: /* Copy */ case BLOCK_COPY: /* Copy */
GetScreen()->m_BlockLocate.ClearItemsList(); GetScreen()->m_BlockLocate.ClearItemsList();
SaveCopyInUndoList( CurrentLibEntry ); SaveCopyInUndoList( m_currentComponent );
CopyMarkedItems( CurrentLibEntry, CopyMarkedItems( m_currentComponent,
GetScreen()->m_BlockLocate.m_MoveVector ); GetScreen()->m_BlockLocate.m_MoveVector );
break; break;
@ -309,8 +310,8 @@ void WinEDA_LibeditFrame::HandleBlockPlace( wxDC* DC )
break; break;
case BLOCK_MIRROR_Y: /* Invert by popup menu, from block move */ case BLOCK_MIRROR_Y: /* Invert by popup menu, from block move */
SaveCopyInUndoList( CurrentLibEntry ); SaveCopyInUndoList( m_currentComponent );
MirrorMarkedItems( CurrentLibEntry, MirrorMarkedItems( m_currentComponent,
GetScreen()->m_BlockLocate.Centre() ); GetScreen()->m_BlockLocate.Centre() );
break; break;
@ -342,8 +343,7 @@ void WinEDA_LibeditFrame::HandleBlockPlace( wxDC* DC )
* Retrace le contour du block de recherche de structures * Retrace le contour du block de recherche de structures
* L'ensemble du block suit le curseur * L'ensemble du block suit le curseur
*/ */
static void DrawMovingBlockOutlines( WinEDA_DrawPanel* panel, wxDC* DC, void DrawMovingBlockOutlines( WinEDA_DrawPanel* panel, wxDC* DC, bool erase )
bool erase )
{ {
BLOCK_SELECTOR* PtBlock; BLOCK_SELECTOR* PtBlock;
BASE_SCREEN* screen = panel->GetScreen(); BASE_SCREEN* screen = panel->GetScreen();
@ -351,19 +351,22 @@ static void DrawMovingBlockOutlines( WinEDA_DrawPanel* panel, wxDC* DC,
PtBlock = &screen->m_BlockLocate; PtBlock = &screen->m_BlockLocate;
/* Effacement ancien cadre */ WinEDA_LibeditFrame* parent = ( WinEDA_LibeditFrame* ) panel->GetParent();
wxASSERT( parent != NULL );
LIB_COMPONENT* component = parent->GetCurrentComponent();
if( component == NULL )
return;
if( erase ) if( erase )
{ {
PtBlock->Draw( panel, DC, PtBlock->m_MoveVector, g_XorMode, PtBlock->Draw( panel, DC, PtBlock->m_MoveVector, g_XorMode,
PtBlock->m_Color ); PtBlock->m_Color );
if( CurrentLibEntry ) component->Draw( panel, DC, PtBlock->m_MoveVector, CurrentUnit,
{ CurrentConvert, g_XorMode, -1, DefaultTransformMatrix,
CurrentLibEntry->Draw( panel, DC, PtBlock->m_MoveVector, true, false, true );
CurrentUnit, CurrentConvert, g_XorMode,
-1, DefaultTransformMatrix, true, false,
true );
}
} }
/* Redessin nouvel affichage */ /* Redessin nouvel affichage */
@ -376,13 +379,9 @@ static void DrawMovingBlockOutlines( WinEDA_DrawPanel* panel, wxDC* DC,
PtBlock->Draw( panel, DC, PtBlock->m_MoveVector, g_XorMode, PtBlock->Draw( panel, DC, PtBlock->m_MoveVector, g_XorMode,
PtBlock->m_Color ); PtBlock->m_Color );
if( CurrentLibEntry ) component->Draw( panel, DC, PtBlock->m_MoveVector, CurrentUnit,
{ CurrentConvert, g_XorMode, -1, DefaultTransformMatrix,
CurrentLibEntry->Draw( panel, DC, PtBlock->m_MoveVector, true, false, true );
CurrentUnit, CurrentConvert, g_XorMode,
-1, DefaultTransformMatrix, true, false,
true );
}
} }

View File

@ -6,7 +6,7 @@
#include "gr_basic.h" #include "gr_basic.h"
#include "common.h" #include "common.h"
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "id.h" #include "eeschema_id.h"
#include "confirm.h" #include "confirm.h"
#include "program.h" #include "program.h"

View File

@ -416,6 +416,37 @@ bool LibDrawField::DoTestInside( EDA_Rect& rect )
} }
/*
* If the field is the reference, return reference like schematic,
* i.e U -> U? or U?A or the field text for others
*
* @fixme This should be handled by the field object.
*/
wxString LibDrawField::GetFullText( void )
{
if( m_FieldId != REFERENCE )
return m_Text;
wxString text = m_Text;
if( GetParent()->m_UnitCount > 1 )
{
#if defined(KICAD_GOST)
text.Printf( wxT( "%s?.%c" ),
m_Text.GetData(), CurrentUnit + '1' - 1 );
#else
text.Printf( wxT( "%s?%c" ),
m_Text.GetData(), CurrentUnit + 'A' - 1 );
#endif
}
else
text << wxT( "?" );
return text;
}
/** /**
* Function ReturnDefaultFieldName * Function ReturnDefaultFieldName
* Return the default field name from its index (REFERENCE, VALUE ..) * Return the default field name from its index (REFERENCE, VALUE ..)

View File

@ -103,6 +103,8 @@ public:
m_Parent = field.m_Parent; m_Parent = field.m_Parent;
} }
wxString GetFullText( void );
protected: protected:
virtual LibEDA_BaseStruct* DoGenCopy(); virtual LibEDA_BaseStruct* DoGenCopy();
virtual bool DoCompare( const LibEDA_BaseStruct& other ) const; virtual bool DoCompare( const LibEDA_BaseStruct& other ) const;

View File

@ -514,8 +514,8 @@ information." );
{ {
wxLogWarning( _( "The component library <%s> header version \ wxLogWarning( _( "The component library <%s> header version \
number is invalid.\n\nIn future versions of EESchema this library may not \ number is invalid.\n\nIn future versions of EESchema this library may not \
load correctly.\nTo resolve this problem open the library in the library \ load correctly. To resolve this problem open the library in the library \
editor and save it.\nIf this library is the project cache library, save \ editor and save it. If this library is the project cache library, save \
the current schematic." ), the current schematic." ),
(const wxChar*) GetName() ); (const wxChar*) GetName() );
} }
@ -636,7 +636,7 @@ bool CMP_LIBRARY::LoadDocs( wxString& errMsg )
if( f == NULL ) if( f == NULL )
{ {
errMsg.Printf( _( "Could not open component document libray file\n<%s>." ), errMsg.Printf( _( "Could not open component document libray file <%s>." ),
(const wxChar*) fn.GetFullPath() ); (const wxChar*) fn.GetFullPath() );
return false; return false;
} }

View File

@ -9,11 +9,14 @@
#include "common.h" #include "common.h"
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "drawtxt.h" #include "drawtxt.h"
#include "plot_common.h"
#include "program.h" #include "program.h"
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "plot_common.h"
#include "protos.h" #include "protos.h"
#include "libeditfrm.h"
const wxChar* MsgPinElectricType[] = const wxChar* MsgPinElectricType[] =
{ {

View File

@ -2,7 +2,7 @@
#include "fctsys.h" #include "fctsys.h"
#include "gr_basic.h" #include "gr_basic.h"
#include "common.h" #include "common.h"
#include "id.h" #include "eeschema_id.h"
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "program.h" #include "program.h"
#include "libcmp.h" #include "libcmp.h"

View File

@ -6,7 +6,7 @@
#include "gr_basic.h" #include "gr_basic.h"
#include "common.h" #include "common.h"
#include "trigo.h" #include "trigo.h"
#include "id.h" #include "eeschema_id.h"
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "drawtxt.h" #include "drawtxt.h"

View File

@ -7,12 +7,14 @@
#include "common.h" #include "common.h"
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "eda_dde.h" #include "eda_dde.h"
#include "id.h" #include "eeschema_id.h"
#include "program.h" #include "program.h"
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "protos.h" #include "protos.h"
#include "libeditfrm.h"
#include "libviewfrm.h"
#include "class_marker_sch.h" #include "class_marker_sch.h"

View File

@ -11,7 +11,7 @@
#include "eda_dde.h" #include "eda_dde.h"
#include "id.h" #include "eeschema_id.h"
#include "protos.h" #include "protos.h"

View File

@ -5,7 +5,6 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#include "fctsys.h" #include "fctsys.h"
#include "appl_wxstruct.h"
#include "common.h" #include "common.h"
#include "confirm.h" #include "confirm.h"
#include "gestfich.h" #include "gestfich.h"
@ -13,10 +12,11 @@
#include "program.h" #include "program.h"
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "protos.h"
#include "libeditfrm.h"
#include "dialog_edit_component_in_lib.h" #include "dialog_edit_component_in_lib.h"
#include "protos.h"
DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY( WinEDA_LibeditFrame* aParent): DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY( WinEDA_LibeditFrame* aParent):
DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE(aParent) DIALOG_EDIT_COMPONENT_IN_LIBRARY_BASE(aParent)
@ -45,7 +45,9 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::Init( )
SetFocus(); SetFocus();
m_AliasLocation = -1; m_AliasLocation = -1;
if( CurrentLibEntry == NULL ) LIB_COMPONENT* component = m_Parent->GetCurrentComponent();
if( component == NULL )
{ {
SetTitle( _( "Library Component Properties" ) ); SetTitle( _( "Library Component Properties" ) );
return; return;
@ -56,16 +58,15 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::Init( )
if( !CurrentAliasName.IsEmpty() ) if( !CurrentAliasName.IsEmpty() )
{ {
title += CurrentAliasName + _( " (alias of " ) + title += CurrentAliasName + _( " (alias of " ) +
wxString( CurrentLibEntry->m_Name.m_Text )+ wxT( ")" ); component->GetName() + wxT( ")" );
} }
else else
{ {
title += CurrentLibEntry->m_Name.m_Text; title += component->GetName();
CurrentAliasName.Empty(); CurrentAliasName.Empty();
} }
SetTitle( title ); SetTitle( title );
InitPanelDoc(); InitPanelDoc();
InitBasicPanel(); InitBasicPanel();
@ -73,26 +74,18 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::Init( )
m_ButtonDeleteAllAlias->Enable( false ); m_ButtonDeleteAllAlias->Enable( false );
/* Place list of alias names in listbox */ /* Place list of alias names in listbox */
if( CurrentLibEntry ) m_PartAliasList->Append( component->m_AliasList );
{
m_PartAliasList->Append( CurrentLibEntry->m_AliasList );
}
if( ( CurrentLibEntry == NULL ) if( component->m_AliasList.GetCount() == 0 )
|| ( CurrentLibEntry->m_AliasList.GetCount() == 0 ) )
{ {
m_ButtonDeleteAllAlias->Enable( false ); m_ButtonDeleteAllAlias->Enable( false );
m_ButtonDeleteOneAlias->Enable( false ); m_ButtonDeleteOneAlias->Enable( false );
} }
/* Read the Footprint Filter list */ /* Read the Footprint Filter list */
if( CurrentLibEntry ) m_FootprintFilterListBox->Append( component->m_FootprintList );
{
m_FootprintFilterListBox->Append( CurrentLibEntry->m_FootprintList );
}
if( ( CurrentLibEntry == NULL ) if( component->m_FootprintList.GetCount() == 0 )
|| ( CurrentLibEntry->m_FootprintList.GetCount() == 0 ) )
{ {
m_ButtonDeleteAllFootprintFilter->Enable( false ); m_ButtonDeleteAllFootprintFilter->Enable( false );
m_ButtonDeleteOneFootprintFilter->Enable( false ); m_ButtonDeleteOneFootprintFilter->Enable( false );

View File

@ -2,17 +2,18 @@
/* library editor: edition of fields of lib entries (components in libraries) */ /* library editor: edition of fields of lib entries (components in libraries) */
/*******************************************************************************/ /*******************************************************************************/
#include "fctsys.h"
#include <algorithm> #include <algorithm>
#include "fctsys.h"
#include "common.h" #include "common.h"
#include "confirm.h" #include "confirm.h"
#include "class_drawpanel.h"
#include "program.h" #include "program.h"
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "protos.h" #include "protos.h"
#include "libeditfrm.h"
#include "dialog_edit_libentry_fields_in_lib_base.h" #include "dialog_edit_libentry_fields_in_lib_base.h"
@ -97,25 +98,25 @@ private:
void reinitializeFieldsIdAndDefaultNames(); void reinitializeFieldsIdAndDefaultNames();
}; };
/*****************************************************************/
void WinEDA_LibeditFrame::InstallFieldsEditorDialog( void ) void WinEDA_LibeditFrame::InstallFieldsEditorDialog( wxCommandEvent& event )
/*****************************************************************/
{ {
if( CurrentLibEntry == NULL ) if( m_currentComponent == NULL )
return; return;
DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB* frame = DrawPanel->UnManageCursor( 0, wxCURSOR_ARROW );
new DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB( this, CurrentLibEntry );
int abort = frame->ShowModal(); frame->Destroy(); DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB dlg( this, m_currentComponent );
if( ! abort ) int abort = dlg.ShowModal();
{
ReCreateHToolbar();
Refresh();
}
if( abort )
return;
UpdateAliasSelectList();
UpdatePartSelectList();
DisplayLibInfos(); DisplayLibInfos();
Refresh();
} }

View File

@ -8,7 +8,6 @@
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#include "fctsys.h" #include "fctsys.h"
#include <wx/tokenzr.h>
#include "appl_wxstruct.h" #include "appl_wxstruct.h"
#include "common.h" #include "common.h"
#include "confirm.h" #include "confirm.h"
@ -17,11 +16,11 @@
#include "program.h" #include "program.h"
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "protos.h" #include "protos.h"
#include "netlist.h" #include "netlist.h"
#include "libviewfrm.h"
#include "id.h" #include <wx/tokenzr.h>
#include "dialog_eeschema_config_fbp.h" #include "dialog_eeschema_config_fbp.h"

View File

@ -19,7 +19,7 @@
#include "fctsys.h" #include "fctsys.h"
#include "gr_basic.h" #include "gr_basic.h"
#include "common.h" #include "common.h"
#include "id.h" #include "eeschema_id.h"
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "confirm.h" #include "confirm.h"

View File

@ -11,8 +11,8 @@
#include "program.h" #include "program.h"
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "protos.h" #include "protos.h"
#include "libeditfrm.h"
extern int CurrentUnit; extern int CurrentUnit;
@ -38,7 +38,7 @@ void WinEDA_LibeditFrame::OnEditComponentProperties( wxCommandEvent& event )
void WinEDA_LibeditFrame::EditComponentProperties() void WinEDA_LibeditFrame::EditComponentProperties()
{ {
wxASSERT( CurrentLibEntry != NULL && CurrentLib != NULL ); wxASSERT( m_currentComponent != NULL && CurrentLib != NULL );
DIALOG_EDIT_COMPONENT_IN_LIBRARY dlg( this ); DIALOG_EDIT_COMPONENT_IN_LIBRARY dlg( this );
@ -48,8 +48,9 @@ void WinEDA_LibeditFrame::EditComponentProperties()
UpdateAliasSelectList(); UpdateAliasSelectList();
UpdatePartSelectList(); UpdatePartSelectList();
DisplayLibInfos(); DisplayLibInfos();
DisplayCmpDoc();
GetScreen()->SetModify(); GetScreen()->SetModify();
SaveCopyInUndoList( CurrentLibEntry ); SaveCopyInUndoList( m_currentComponent );
} }
@ -57,13 +58,14 @@ void WinEDA_LibeditFrame::EditComponentProperties()
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::InitPanelDoc() void DIALOG_EDIT_COMPONENT_IN_LIBRARY::InitPanelDoc()
{ {
CMP_LIB_ENTRY* entry; CMP_LIB_ENTRY* entry;
LIB_COMPONENT* component = m_Parent->GetCurrentComponent();
if( CurrentLibEntry == NULL ) if( component == NULL )
return; return;
if( CurrentAliasName.IsEmpty() ) if( CurrentAliasName.IsEmpty() )
{ {
entry = CurrentLibEntry; entry = component;
} }
else else
{ {
@ -84,51 +86,31 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::InitPanelDoc()
*/ */
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::InitBasicPanel() void DIALOG_EDIT_COMPONENT_IN_LIBRARY::InitBasicPanel()
{ {
LIB_COMPONENT* component = m_Parent->GetCurrentComponent();
if( g_AsDeMorgan ) if( g_AsDeMorgan )
m_AsConvertButt->SetValue( TRUE ); m_AsConvertButt->SetValue( true );
if( CurrentLibEntry )
/* Default values for a new component. */
if( component == NULL )
{ {
if( CurrentLibEntry->m_DrawPinNum ) m_ShowPinNumButt->SetValue( true );
m_ShowPinNumButt->SetValue( TRUE ); m_ShowPinNameButt->SetValue( true );
m_PinsNameInsideButt->SetValue( true );
m_SelNumberOfUnits->SetValue( 1 );
m_SetSkew->SetValue( 40 );
m_OptionPower->SetValue( false );
m_OptionPartsLocked->SetValue( false );
return;
} }
else
m_ShowPinNumButt->SetValue( TRUE );
if( CurrentLibEntry ) m_ShowPinNumButt->SetValue( component->m_DrawPinNum );
{ m_ShowPinNameButt->SetValue( component->m_DrawPinName );
if( CurrentLibEntry->m_DrawPinName ) m_PinsNameInsideButt->SetValue( component->m_TextInside != 0 );
m_ShowPinNameButt->SetValue( TRUE ); m_SelNumberOfUnits->SetValue( component->m_UnitCount );
} m_SetSkew->SetValue( component->m_TextInside );
else m_OptionPower->SetValue( component->m_Options == ENTRY_POWER );
m_ShowPinNameButt->SetValue( TRUE ); m_OptionPartsLocked->SetValue( component->m_UnitSelectionLocked );
if( CurrentLibEntry )
{
if( CurrentLibEntry->m_TextInside )
m_PinsNameInsideButt->SetValue( TRUE );
}
else
m_PinsNameInsideButt->SetValue( TRUE );
int number, number_of_units;
if( CurrentLibEntry )
number_of_units = CurrentLibEntry->m_UnitCount;
else
number_of_units = 1;
m_SelNumberOfUnits->SetValue( number_of_units );
if( CurrentLibEntry && CurrentLibEntry->m_TextInside )
number = CurrentLibEntry->m_TextInside;
else
number = 40;
m_SetSkew->SetValue( number );
if( CurrentLibEntry && CurrentLibEntry->m_Options == ENTRY_POWER )
m_OptionPower->SetValue( TRUE );
if( CurrentLibEntry && CurrentLibEntry->m_UnitSelectionLocked )
m_OptionPartsLocked->SetValue( TRUE );
} }
@ -139,10 +121,11 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnOkClick( wxCommandEvent& event )
size_t i; size_t i;
int index; int index;
CMP_LIB_ENTRY* entry; CMP_LIB_ENTRY* entry;
LIB_COMPONENT* component = m_Parent->GetCurrentComponent();
if( CurrentAliasName.IsEmpty() ) if( CurrentAliasName.IsEmpty() )
{ {
entry = CurrentLibEntry; entry = (CMP_LIB_ENTRY*) component;
} }
else else
{ {
@ -152,9 +135,10 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnOkClick( wxCommandEvent& event )
if( entry == NULL ) if( entry == NULL )
{ {
wxString msg; wxString msg;
msg.Printf( _( "Alias <%s> not found for component <%s> in library <%s>." ), msg.Printf( _( "Alias <%s> not found for component <%s> in library \
<%s>." ),
(const wxChar*) CurrentAliasName, (const wxChar*) CurrentAliasName,
(const wxChar*) CurrentLibEntry->GetName(), (const wxChar*) component->GetName(),
(const wxChar*) CurrentLib->GetName() ); (const wxChar*) CurrentLib->GetName() );
wxMessageBox( msg, _( "Component Library Error" ), wxMessageBox( msg, _( "Component Library Error" ),
wxID_OK | wxICON_ERROR, this ); wxID_OK | wxICON_ERROR, this );
@ -166,7 +150,7 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnOkClick( wxCommandEvent& event )
entry->m_DocFile = m_Docfile->GetValue(); entry->m_DocFile = m_Docfile->GetValue();
} }
if( m_PartAliasList->GetStrings() != CurrentLibEntry->m_AliasList ) if( m_PartAliasList->GetStrings() != component->m_AliasList )
{ {
LIB_ALIAS* alias; LIB_ALIAS* alias;
wxArrayString aliases = m_PartAliasList->GetStrings(); wxArrayString aliases = m_PartAliasList->GetStrings();
@ -174,12 +158,12 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnOkClick( wxCommandEvent& event )
/* Add names not existing in the old alias list. */ /* Add names not existing in the old alias list. */
for( i = 0; i < aliases.GetCount(); i++ ) for( i = 0; i < aliases.GetCount(); i++ )
{ {
index = CurrentLibEntry->m_AliasList.Index( aliases[ i ], false ); index = component->m_AliasList.Index( aliases[ i ], false );
if( index != wxNOT_FOUND ) if( index != wxNOT_FOUND )
continue; continue;
alias = new LIB_ALIAS( aliases[ i ], CurrentLibEntry ); alias = new LIB_ALIAS( aliases[ i ], component );
if( !CurrentLib->AddAlias( alias ) ) if( !CurrentLib->AddAlias( alias ) )
{ {
@ -189,20 +173,20 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnOkClick( wxCommandEvent& event )
} }
/* Remove names and library alias entries not in the new alias list. */ /* Remove names and library alias entries not in the new alias list. */
for( i = 0; CurrentLibEntry->m_AliasList.GetCount(); i++ ) for( i = 0; component->m_AliasList.GetCount(); i++ )
{ {
index = aliases.Index( CurrentLibEntry->m_AliasList[ i ], false ); index = aliases.Index( component->m_AliasList[ i ], false );
if( index == wxNOT_FOUND ) if( index == wxNOT_FOUND )
continue; continue;
CMP_LIB_ENTRY* alias = CMP_LIB_ENTRY* alias =
CurrentLib->FindAlias( CurrentLibEntry->m_AliasList[ i ] ); CurrentLib->FindAlias( component->m_AliasList[ i ] );
if( alias != NULL ) if( alias != NULL )
CurrentLib->RemoveEntry( alias ); CurrentLib->RemoveEntry( alias );
} }
CurrentLibEntry->m_AliasList = aliases; component->m_AliasList = aliases;
} }
index = m_SelNumberOfUnits->GetValue(); index = m_SelNumberOfUnits->GetValue();
@ -225,28 +209,28 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnOkClick( wxCommandEvent& event )
} }
} }
CurrentLibEntry->m_DrawPinNum = m_ShowPinNumButt->GetValue() ? 1 : 0; component->m_DrawPinNum = m_ShowPinNumButt->GetValue() ? 1 : 0;
CurrentLibEntry->m_DrawPinName = m_ShowPinNameButt->GetValue() ? 1 : 0; component->m_DrawPinName = m_ShowPinNameButt->GetValue() ? 1 : 0;
if( m_PinsNameInsideButt->GetValue() == FALSE ) if( m_PinsNameInsideButt->GetValue() == FALSE )
CurrentLibEntry->m_TextInside = 0; component->m_TextInside = 0;
else else
CurrentLibEntry->m_TextInside = m_SetSkew->GetValue(); component->m_TextInside = m_SetSkew->GetValue();
if( m_OptionPower->GetValue() == TRUE ) if( m_OptionPower->GetValue() == TRUE )
CurrentLibEntry->m_Options = ENTRY_POWER; component->m_Options = ENTRY_POWER;
else else
CurrentLibEntry->m_Options = ENTRY_NORMAL; component->m_Options = ENTRY_NORMAL;
/* Set the option "Units locked". /* Set the option "Units locked".
* Obviously, cannot be TRUE if there is only one part */ * Obviously, cannot be TRUE if there is only one part */
CurrentLibEntry->m_UnitSelectionLocked = m_OptionPartsLocked->GetValue(); component->m_UnitSelectionLocked = m_OptionPartsLocked->GetValue();
if( CurrentLibEntry->m_UnitCount <= 1 ) if( component->m_UnitCount <= 1 )
CurrentLibEntry->m_UnitSelectionLocked = FALSE; component->m_UnitSelectionLocked = FALSE;
/* Update the footprint filter list */ /* Update the footprint filter list */
CurrentLibEntry->m_FootprintList.Clear(); component->m_FootprintList.Clear();
CurrentLibEntry->m_FootprintList = m_FootprintFilterListBox->GetStrings(); component->m_FootprintList = m_FootprintFilterListBox->GetStrings();
EndModal( wxID_OK ); EndModal( wxID_OK );
} }
@ -256,12 +240,14 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnOkClick( wxCommandEvent& event )
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::CopyDocToAlias( wxCommandEvent& WXUNUSED (event) ) void DIALOG_EDIT_COMPONENT_IN_LIBRARY::CopyDocToAlias( wxCommandEvent& WXUNUSED (event) )
/******************************************************************************/ /******************************************************************************/
{ {
if( CurrentLibEntry == NULL || CurrentAliasName.IsEmpty() ) LIB_COMPONENT* component = m_Parent->GetCurrentComponent();
if( component == NULL || CurrentAliasName.IsEmpty() )
return; return;
m_Doc->SetValue( CurrentLibEntry->m_Doc ); m_Doc->SetValue( component->m_Doc );
m_Docfile->SetValue( CurrentLibEntry->m_DocFile ); m_Docfile->SetValue( component->m_DocFile );
m_Keywords->SetValue( CurrentLibEntry->m_KeyWord ); m_Keywords->SetValue( component->m_KeyWord );
} }
@ -301,8 +287,9 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::AddAliasOfPart( wxCommandEvent& WXUNUSED
{ {
wxString Line; wxString Line;
wxString aliasname; wxString aliasname;
LIB_COMPONENT* component = m_Parent->GetCurrentComponent();
if( CurrentLibEntry == NULL ) if( component == NULL )
return; return;
if( Get_Message( _( "New alias:" ), _( "Component Alias" ), Line, this ) != 0 ) if( Get_Message( _( "New alias:" ), _( "Component Alias" ), Line, this ) != 0 )
@ -367,25 +354,26 @@ bool DIALOG_EDIT_COMPONENT_IN_LIBRARY::ChangeNbUnitsPerPackage( int MaxUnit )
{ {
int OldNumUnits, ii, FlagDel = -1; int OldNumUnits, ii, FlagDel = -1;
LibEDA_BaseStruct* DrawItem, * NextDrawItem; LibEDA_BaseStruct* DrawItem, * NextDrawItem;
LIB_COMPONENT* component = m_Parent->GetCurrentComponent();
if( CurrentLibEntry == NULL ) if( component == NULL )
return FALSE; return FALSE;
/* Si pas de changement: termine */ /* Si pas de changement: termine */
if( CurrentLibEntry->m_UnitCount == MaxUnit ) if( component->m_UnitCount == MaxUnit )
return FALSE; return FALSE;
OldNumUnits = CurrentLibEntry->m_UnitCount; OldNumUnits = component->m_UnitCount;
if( OldNumUnits < 1 ) if( OldNumUnits < 1 )
OldNumUnits = 1; OldNumUnits = 1;
CurrentLibEntry->m_UnitCount = MaxUnit; component->m_UnitCount = MaxUnit;
/* Traitement des unites enlevees ou rajoutees */ /* Traitement des unites enlevees ou rajoutees */
if( OldNumUnits > CurrentLibEntry->m_UnitCount ) if( OldNumUnits > component->m_UnitCount )
{ {
DrawItem = CurrentLibEntry->m_Drawings; DrawItem = component->m_Drawings;
for( ; DrawItem != NULL; DrawItem = NextDrawItem ) for( ; DrawItem != NULL; DrawItem = NextDrawItem )
{ {
NextDrawItem = DrawItem->Next(); NextDrawItem = DrawItem->Next();
@ -404,21 +392,21 @@ bool DIALOG_EDIT_COMPONENT_IN_LIBRARY::ChangeNbUnitsPerPackage( int MaxUnit )
{ {
FlagDel = 0; FlagDel = 0;
MaxUnit = OldNumUnits; MaxUnit = OldNumUnits;
CurrentLibEntry->m_UnitCount = MaxUnit; component->m_UnitCount = MaxUnit;
return FALSE; return FALSE;
} }
} }
CurrentLibEntry->RemoveDrawItem( DrawItem ); component->RemoveDrawItem( DrawItem );
} }
} }
return TRUE; return TRUE;
} }
if( OldNumUnits < CurrentLibEntry->m_UnitCount ) if( OldNumUnits < component->m_UnitCount )
{ {
DrawItem = CurrentLibEntry->m_Drawings; DrawItem = component->m_Drawings;
for( ; DrawItem != NULL; DrawItem = DrawItem->Next() ) for( ; DrawItem != NULL; DrawItem = DrawItem->Next() )
{ {
/* Duplication des items pour autres elements */ /* Duplication des items pour autres elements */
@ -427,8 +415,8 @@ bool DIALOG_EDIT_COMPONENT_IN_LIBRARY::ChangeNbUnitsPerPackage( int MaxUnit )
for( ii = OldNumUnits + 1; ii <= MaxUnit; ii++ ) for( ii = OldNumUnits + 1; ii <= MaxUnit; ii++ )
{ {
NextDrawItem = DrawItem->GenCopy(); NextDrawItem = DrawItem->GenCopy();
NextDrawItem->SetNext( CurrentLibEntry->m_Drawings ); NextDrawItem->SetNext( component->m_Drawings );
CurrentLibEntry->m_Drawings = NextDrawItem; component->m_Drawings = NextDrawItem;
NextDrawItem->m_Unit = ii; NextDrawItem->m_Unit = ii;
} }
} }
@ -448,12 +436,13 @@ bool DIALOG_EDIT_COMPONENT_IN_LIBRARY::SetUnsetConvert()
{ {
int FlagDel = 0; int FlagDel = 0;
LibEDA_BaseStruct* DrawItem = NULL, * NextDrawItem; LibEDA_BaseStruct* DrawItem = NULL, * NextDrawItem;
LIB_COMPONENT* component = m_Parent->GetCurrentComponent();
if( g_AsDeMorgan ) /* Representation convertie a creer */ if( g_AsDeMorgan ) /* Representation convertie a creer */
{ {
/* Traitement des elements a ajouter ( pins seulement ) */ /* Traitement des elements a ajouter ( pins seulement ) */
if( CurrentLibEntry ) if( component )
DrawItem = CurrentLibEntry->m_Drawings; DrawItem = component->m_Drawings;
for( ; DrawItem != NULL; DrawItem = DrawItem->Next() ) for( ; DrawItem != NULL; DrawItem = DrawItem->Next() )
{ {
/* Duplication des items pour autres elements */ /* Duplication des items pour autres elements */
@ -474,8 +463,8 @@ bool DIALOG_EDIT_COMPONENT_IN_LIBRARY::SetUnsetConvert()
} }
} }
NextDrawItem = DrawItem->GenCopy(); NextDrawItem = DrawItem->GenCopy();
NextDrawItem->SetNext( CurrentLibEntry->m_Drawings ); NextDrawItem->SetNext( component->m_Drawings );
CurrentLibEntry->m_Drawings = NextDrawItem; component->m_Drawings = NextDrawItem;
NextDrawItem->m_Convert = 2; NextDrawItem->m_Convert = 2;
} }
} }
@ -483,8 +472,8 @@ bool DIALOG_EDIT_COMPONENT_IN_LIBRARY::SetUnsetConvert()
else /* Representation convertie a supprimer */ else /* Representation convertie a supprimer */
{ {
/* Traitement des elements <20> supprimer */ /* Traitement des elements <20> supprimer */
if( CurrentLibEntry ) if( component )
DrawItem = CurrentLibEntry->m_Drawings; DrawItem = component->m_Drawings;
for( ; DrawItem != NULL; DrawItem = NextDrawItem ) for( ; DrawItem != NULL; DrawItem = NextDrawItem )
{ {
NextDrawItem = DrawItem->Next(); NextDrawItem = DrawItem->Next();
@ -505,7 +494,7 @@ bool DIALOG_EDIT_COMPONENT_IN_LIBRARY::SetUnsetConvert()
} }
m_Parent->GetScreen()->SetModify(); m_Parent->GetScreen()->SetModify();
CurrentLibEntry->RemoveDrawItem( DrawItem ); component->RemoveDrawItem( DrawItem );
} }
} }
} }
@ -572,8 +561,9 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::AddFootprintFilter( wxCommandEvent& WXUNU
*/ */
{ {
wxString Line; wxString Line;
LIB_COMPONENT* component = m_Parent->GetCurrentComponent();
if( CurrentLibEntry == NULL ) if( component == NULL )
return; return;
if( Get_Message( _( "Add Footprint Filter" ), _( "Footprint Filter" ), if( Get_Message( _( "Add Footprint Filter" ), _( "Footprint Filter" ),
@ -606,11 +596,12 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::DeleteOneFootprintFilter(
wxCommandEvent& WXUNUSED (event) ) wxCommandEvent& WXUNUSED (event) )
/********************************************************/ /********************************************************/
{ {
LIB_COMPONENT* component = m_Parent->GetCurrentComponent();
int ii = m_FootprintFilterListBox->GetSelection(); int ii = m_FootprintFilterListBox->GetSelection();
m_FootprintFilterListBox->Delete( ii ); m_FootprintFilterListBox->Delete( ii );
if( !CurrentLibEntry || (m_FootprintFilterListBox->GetCount() == 0) ) if( !component || (m_FootprintFilterListBox->GetCount() == 0) )
{ {
m_ButtonDeleteAllFootprintFilter->Enable( FALSE ); m_ButtonDeleteAllFootprintFilter->Enable( FALSE );
m_ButtonDeleteOneFootprintFilter->Enable( FALSE ); m_ButtonDeleteOneFootprintFilter->Enable( FALSE );

View File

@ -15,11 +15,11 @@
#include "program.h" #include "program.h"
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "protos.h"
#include "libeditfrm.h"
#include "dialog_bodygraphictext_properties_base.h" #include "dialog_bodygraphictext_properties_base.h"
#include "protos.h"
class Dialog_BodyGraphicText_Properties : public Dialog_BodyGraphicText_Properties_base class Dialog_BodyGraphicText_Properties : public Dialog_BodyGraphicText_Properties_base
{ {

View File

@ -6,7 +6,7 @@
#include "appl_wxstruct.h" #include "appl_wxstruct.h"
#include "gr_basic.h" #include "gr_basic.h"
#include "common.h" #include "common.h"
#include "id.h" #include "eeschema_id.h"
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "confirm.h" #include "confirm.h"
#include "gestfich.h" #include "gestfich.h"

View File

@ -12,7 +12,7 @@
#include "fctsys.h" #include "fctsys.h"
#include "gr_basic.h" #include "gr_basic.h"
#include "common.h" #include "common.h"
#include "id.h" #include "eeschema_id.h"
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "program.h" #include "program.h"

View File

@ -102,7 +102,6 @@ LibEDA_BaseStruct* LibItemToRepeat = NULL; /* pointer on a graphic item than
* can be duplicated by the Ins key * can be duplicated by the Ins key
* (usually the last created item */ * (usually the last created item */
CMP_LIBRARY* CurrentLib = NULL; /* Current opened library */ CMP_LIBRARY* CurrentLib = NULL; /* Current opened library */
LIB_COMPONENT* CurrentLibEntry = NULL; /* Current component */
LibEDA_BaseStruct* CurrentDrawItem = NULL; /* current edited item */ LibEDA_BaseStruct* CurrentDrawItem = NULL; /* current edited item */
// Current selected alias (for components which have aliases) // Current selected alias (for components which have aliases)

196
eeschema/eeschema_id.h Normal file
View File

@ -0,0 +1,196 @@
#ifndef __EESCHEMA_ID_H__
#define __EESCHEMA_ID_H__
#include "id.h"
/**
* Command IDs for the schematic editor.
*
* Please add IDs that are unique to the schematic editor (EESchema) here and
* not in the global id.h file. This will prevent the entire project from
* being rebuilt when adding new command to EESchema.
*/
enum id_eeschema_frm
{
/* Schecmatic editor horizontal toolbar IDs */
ID_SCHEMATIC_UNDO = ID_END_LIST,
ID_SCHEMATIC_REDO,
ID_HIERARCHY,
ID_TO_LIBVIEW,
ID_GET_ANNOTATE,
ID_GET_ERC,
ID_BACKANNO_ITEMS,
/* Schematic editor veritcal toolbar IDs */
ID_SCHEMATIC_VERTICAL_TOOLBAR_START,
ID_HIERARCHY_PUSH_POP_BUTT,
ID_PLACE_POWER_BUTT,
ID_BUS_BUTT,
ID_WIRE_BUTT,
ID_BUSTOBUS_ENTRY_BUTT,
ID_WIRETOBUS_ENTRY_BUTT,
ID_LABEL_BUTT,
ID_GLABEL_BUTT,
ID_HIERLABEL_BUTT,
ID_IMPORT_HLABEL_BUTT,
ID_SHEET_LABEL_BUTT,
ID_NOCONN_BUTT,
ID_JUNCTION_BUTT,
ID_SHEET_SYMBOL_BUTT,
ID_TEXT_COMMENT_BUTT,
ID_LINE_COMMENT_BUTT,
ID_SCHEMATIC_DELETE_ITEM_BUTT,
ID_SCHEMATIC_VERTICAL_TOOLBAR_END,
/* Schematic editor context menu IDs. */
ID_POPUP_START_RANGE,
ID_POPUP_SCH_DELETE,
ID_POPUP_SCH_BREAK_WIRE,
ID_POPUP_SCH_DELETE_CONNECTION,
ID_POPUP_SCH_MOVE_ITEM_REQUEST,
ID_POPUP_SCH_DELETE_NODE,
ID_POPUP_SCH_MOVE_CMP_REQUEST,
ID_POPUP_SCH_DELETE_CMP,
ID_POPUP_SCH_DRAG_CMP_REQUEST,
ID_POPUP_SCH_DRAG_WIRE_REQUEST,
ID_POPUP_SCH_UNUSED_2,
ID_POPUP_SCH_ENTRY_SELECT_SLASH,
ID_POPUP_SCH_ENTRY_SELECT_ANTISLASH,
ID_POPUP_SCH_EDIT_CMP,
ID_POPUP_SCH_MIROR_X_CMP,
ID_POPUP_SCH_MIROR_Y_CMP,
ID_POPUP_SCH_ROTATE_CMP_CLOCKWISE,
ID_POPUP_SCH_ROTATE_CMP_COUNTERCLOCKWISE,
ID_POPUP_SCH_ORIENT_NORMAL_CMP,
ID_POPUP_SCH_INIT_CMP,
ID_POPUP_SCH_EDIT_TEXT,
ID_POPUP_SCH_ROTATE_TEXT,
ID_POPUP_SCH_SET_SHAPE_TEXT,
ID_POPUP_END_LINE,
ID_POPUP_SCH_END_SHEET,
ID_POPUP_SCH_EDIT_SHEET,
ID_POPUP_SCH_RESIZE_SHEET,
ID_POPUP_SCH_CLEANUP_SHEET,
ID_POPUP_SCH_EDIT_PINSHEET,
ID_POPUP_SCH_MOVE_PINSHEET,
ID_POPUP_IMPORT_GLABEL,
ID_POPUP_SCH_GENERIC_ORIENT_CMP,
ID_POPUP_SCH_GENERIC_EDIT_CMP,
ID_POPUP_SCH_EDIT_VALUE_CMP,
ID_POPUP_SCH_EDIT_REF_CMP,
ID_POPUP_SCH_EDIT_FOOTPRINT_CMP,
ID_POPUP_SCH_EDIT_CONVERT_CMP,
ID_POPUP_SCH_COPY_COMPONENT_CMP,
ID_POPUP_SCH_SELECT_UNIT_CMP,
ID_POPUP_SCH_SELECT_UNIT1,
ID_POPUP_SCH_SELECT_UNIT2,
ID_POPUP_SCH_SELECT_UNIT3,
ID_POPUP_SCH_SELECT_UNIT4,
ID_POPUP_SCH_SELECT_UNIT5,
ID_POPUP_SCH_SELECT_UNIT6,
ID_POPUP_SCH_SELECT_UNIT7,
ID_POPUP_SCH_SELECT_UNIT8,
ID_POPUP_SCH_SELECT_UNIT9,
ID_POPUP_SCH_SELECT_UNIT10,
ID_POPUP_SCH_SELECT_UNIT11,
ID_POPUP_SCH_SELECT_UNIT12,
ID_POPUP_SCH_SELECT_UNIT13,
ID_POPUP_SCH_SELECT_UNIT14,
ID_POPUP_SCH_SELECT_UNIT15,
ID_POPUP_SCH_SELECT_UNIT16,
ID_POPUP_SCH_SELECT_UNIT17,
ID_POPUP_SCH_SELECT_UNIT18,
ID_POPUP_SCH_SELECT_UNIT19,
ID_POPUP_SCH_SELECT_UNIT20,
ID_POPUP_SCH_SELECT_UNIT21,
ID_POPUP_SCH_SELECT_UNIT22,
ID_POPUP_SCH_SELECT_UNIT23,
ID_POPUP_SCH_SELECT_UNIT24,
ID_POPUP_SCH_SELECT_UNIT25,
ID_POPUP_SCH_SELECT_UNIT26,
ID_POPUP_SCH_ROTATE_FIELD,
ID_POPUP_SCH_EDIT_FIELD,
ID_POPUP_SCH_CHANGE_TYPE_TEXT,
ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_LABEL,
ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_GLABEL,
ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_COMMENT,
ID_POPUP_SCH_DISPLAYDOC_CMP,
ID_POPUP_SCH_ENTER_SHEET,
ID_POPUP_SCH_LEAVE_SHEET,
ID_POPUP_SCH_ADD_JUNCTION,
ID_POPUP_SCH_ADD_LABEL,
ID_POPUP_SCH_ADD_GLABEL,
ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_HLABEL,
ID_POPUP_SCH_GETINFO_MARKER,
ID_POPUP_END_RANGE,
/* Library editor horizontal toolbar IDs. */
ID_LIBEDIT_SELECT_PART,
ID_LIBEDIT_SELECT_CURRENT_LIB,
ID_LIBEDIT_SAVE_CURRENT_LIB,
ID_LIBEDIT_SAVE_CURRENT_PART,
ID_LIBEDIT_NEW_PART,
ID_LIBEDIT_GET_FRAME_EDIT_PART,
ID_LIBEDIT_GET_FRAME_EDIT_FIELDS,
ID_LIBEDIT_DELETE_PART,
ID_LIBEDIT_UNDO,
ID_LIBEDIT_REDO,
ID_DE_MORGAN_NORMAL_BUTT,
ID_DE_MORGAN_CONVERT_BUTT,
ID_LIBEDIT_EDIT_PIN_BY_PIN,
ID_LIBEDIT_VIEW_DOC,
ID_LIBEDIT_CHECK_PART,
ID_LIBEDIT_SELECT_PART_NUMBER,
ID_LIBEDIT_SELECT_ALIAS,
/* Library editor vertical toolbar IDs. */
ID_LIBEDIT_PIN_BUTT,
ID_LIBEDIT_BODY_LINE_BUTT,
ID_LIBEDIT_BODY_ARC_BUTT,
ID_LIBEDIT_BODY_CIRCLE_BUTT,
ID_LIBEDIT_BODY_RECT_BUTT,
ID_LIBEDIT_BODY_TEXT_BUTT,
ID_LIBEDIT_DELETE_ITEM_BUTT,
ID_LIBEDIT_ANCHOR_ITEM_BUTT,
ID_LIBEDIT_IMPORT_BODY_BUTT,
ID_LIBEDIT_EXPORT_BODY_BUTT,
/* Library editor context menu IDs */
ID_POPUP_LIBEDIT_PIN_EDIT,
ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_ITEM,
ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINSIZE_ITEM,
ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINNAMESIZE_ITEM,
ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINNUMSIZE_ITEM,
ID_POPUP_LIBEDIT_BODY_EDIT_ITEM,
ID_POPUP_LIBEDIT_DELETE_ITEM,
ID_POPUP_LIBEDIT_END_CREATE_ITEM,
ID_POPUP_LIBEDIT_CANCEL_EDITING,
ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST,
ID_POPUP_LIBEDIT_FIELD_EDIT_ITEM,
ID_POPUP_LIBEDIT_FIELD_ROTATE_ITEM,
ID_POPUP_LIBEDIT_DELETE_CURRENT_POLY_SEGMENT,
ID_POPUP_LIBEDIT_ROTATE_GRAPHIC_TEXT,
/* Library viewer horizontal toolbar IDs */
ID_LIBVIEW_NEXT,
ID_LIBVIEW_PREVIOUS,
ID_LIBVIEW_SELECT_PART,
ID_LIBVIEW_SELECT_LIB,
ID_LIBVIEW_VIEWDOC,
ID_LIBVIEW_DE_MORGAN_NORMAL_BUTT,
ID_LIBVIEW_DE_MORGAN_CONVERT_BUTT,
ID_LIBVIEW_SELECT_PART_NUMBER,
ID_LIBVIEW_LIB_LIST,
ID_LIBVIEW_CMP_LIST,
ID_LIBVIEW_LIBWINDOW,
ID_LIBVIEW_CMPWINDOW,
ID_LIBVIEW_CMP_EXPORT_TO_SCHEMATIC
};
#endif /* __EESCHEMA_ID_H__ */

View File

@ -12,7 +12,7 @@
#include "general.h" #include "general.h"
#include "protos.h" #include "protos.h"
#include "id.h" #include "eeschema_id.h"
/****************************************************************/ /****************************************************************/

View File

@ -15,6 +15,7 @@
#include "general.h" #include "general.h"
#include "protos.h" #include "protos.h"
#include "class_library.h" #include "class_library.h"
#include "libviewfrm.h"
#include <boost/foreach.hpp> #include <boost/foreach.hpp>

View File

@ -3,17 +3,15 @@
/***************/ /***************/
#include "fctsys.h" #include "fctsys.h"
#include "common.h" #include "common.h"
#include "eeschema_id.h"
#include "hotkeys.h"
#include "program.h" #include "program.h"
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "id.h"
#include "hotkeys.h"
#include "protos.h" #include "protos.h"
#include "libeditfrm.h"
/* How to add a new hotkey: /* How to add a new hotkey:
* add a new id in the enum hotkey_id_commnand like MY_NEW_ID_FUNCTION (see * add a new id in the enum hotkey_id_commnand like MY_NEW_ID_FUNCTION (see

View File

@ -13,12 +13,13 @@
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "confirm.h" #include "confirm.h"
#include "gestfich.h" #include "gestfich.h"
#include "id.h" #include "eeschema_id.h"
#include "program.h" #include "program.h"
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "protos.h" #include "protos.h"
#include "libeditfrm.h"
#include <wx/filename.h> #include <wx/filename.h>
@ -95,13 +96,13 @@ void WinEDA_LibeditFrame::OnExportPart( wxCommandEvent& event )
CMP_LIBRARY* CurLibTmp; CMP_LIBRARY* CurLibTmp;
bool createLib = ( event.GetId() != ExportPartId ) ? false : true; bool createLib = ( event.GetId() != ExportPartId ) ? false : true;
if( CurrentLibEntry == NULL ) if( m_currentComponent == NULL )
{ {
DisplayError( this, _( "There is no component selected to save." ) ); DisplayError( this, _( "There is no component selected to save." ) );
return; return;
} }
fn = CurrentLibEntry->GetName().Lower(); fn = m_currentComponent->GetName().Lower();
fn.SetExt( CompLibFileExtension ); fn.SetExt( CompLibFileExtension );
title = createLib ? _( "New Library" ) : _( "Export Component" ); title = createLib ? _( "New Library" ) : _( "Export Component" );
@ -132,7 +133,7 @@ void WinEDA_LibeditFrame::OnExportPart( wxCommandEvent& event )
{ {
msg = fn.GetFullPath() + _( " - OK" ); msg = fn.GetFullPath() + _( " - OK" );
DisplayInfoMessage( this, _( "This library will not be available \ DisplayInfoMessage( this, _( "This library will not be available \
until it is loaded by EESchema.\nModify the EESchema library configuration \ until it is loaded by EESchema.\n\nModify the EESchema library configuration \
if you want to include it as part of this project." ) ); if you want to include it as part of this project." ) );
} }
else else

View File

@ -20,6 +20,15 @@
LIB_VERSION( LIB_VERSION_MAJOR, LIB_VERSION_MINOR) \ LIB_VERSION( LIB_VERSION_MAJOR, LIB_VERSION_MINOR) \
) )
/*
* Library versions 2.3 and lower use the old separate library (.lib) and
* document (.dcm) files. Component libraries after 2.3 merged the library
* and document files into a single library file. This macro checks if the
* library version supports the old format
*/
#define USE_OLD_DOC_FILE_FORMAT( major, minor ) \
( LIB_VERSION( major, minor ) < LIB_VERSION( 2, 3 )
/* Must be the first line of component library document (.dcm) files. */ /* Must be the first line of component library document (.dcm) files. */
#define DOCFILE_IDENT "EESchema-DOCLIB Version 2.0" #define DOCFILE_IDENT "EESchema-DOCLIB Version 2.0"
@ -48,7 +57,6 @@ extern LibEDA_BaseStruct* LibItemToRepeat; /* pointer on a graphic item than
* can be duplicated by the Ins key * can be duplicated by the Ins key
* (usually the last created item */ * (usually the last created item */
extern CMP_LIBRARY* CurrentLib; /* Current opened library */ extern CMP_LIBRARY* CurrentLib; /* Current opened library */
extern LIB_COMPONENT* CurrentLibEntry; /* Current component */
extern LibEDA_BaseStruct* CurrentDrawItem; /* current edited item */ extern LibEDA_BaseStruct* CurrentDrawItem; /* current edited item */
extern wxString CurrentAliasName; extern wxString CurrentAliasName;

View File

@ -13,12 +13,14 @@
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "confirm.h" #include "confirm.h"
#include "gestfich.h" #include "gestfich.h"
#include "eeschema_id.h"
#include "program.h" #include "program.h"
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "protos.h" #include "protos.h"
#include "libeditfrm.h"
#include "id.h"
#include "dialog_create_component.h" #include "dialog_create_component.h"
@ -64,30 +66,28 @@ bool WinEDA_LibeditFrame::LoadOneLibraryPart()
wxString CmpName; wxString CmpName;
CMP_LIB_ENTRY* LibEntry = NULL; CMP_LIB_ENTRY* LibEntry = NULL;
if( g_ScreenLib->IsModify() ) if( g_ScreenLib->IsModify() && !IsOK( this, _( "Current part not \
{ saved.\n\nDiscard current changes?" ) ) )
if( !IsOK( this, _( "Current part not saved.\nContinue?" ) ) ) return false;
return FALSE;
}
if( CurrentLib == NULL ) // No current lib, ask user for the library to use if( CurrentLib == NULL ) // No current lib, ask user for the library to use
{ {
SelectActiveLibrary(); SelectActiveLibrary();
if( CurrentLib == NULL ) if( CurrentLib == NULL )
return FALSE; return false;
} }
i = GetNameOfPartToLoad( this, CurrentLib, CmpName ); i = GetNameOfPartToLoad( this, CurrentLib, CmpName );
if( i == 0 ) if( i == 0 )
return FALSE; return false;
g_ScreenLib->ClrModify(); g_ScreenLib->ClrModify();
CurrentDrawItem = NULL; CurrentDrawItem = NULL;
// Delete previous library component, if any // Delete previous library component, if any
if( CurrentLibEntry ) if( m_currentComponent )
{ {
SAFE_DELETE( CurrentLibEntry ); SAFE_DELETE( m_currentComponent );
} }
/* Load the new library component */ /* Load the new library component */
@ -108,9 +108,9 @@ library \"%s\"." ),
if( !LoadOneLibraryPartAux( LibEntry, CurrentLib ) ) if( !LoadOneLibraryPartAux( LibEntry, CurrentLib ) )
return false; return false;
Zoom_Automatique( FALSE ); Zoom_Automatique( false );
DrawPanel->Refresh(); DrawPanel->Refresh();
return TRUE; return true;
} }
@ -119,7 +119,7 @@ library \"%s\"." ),
* retourne * retourne
* 0 si OK * 0 si OK
* 1 si err * 1 si err
* CurrentLibEntry pointe la copie ainsi creee * m_currentComponent pointe la copie ainsi creee
*/ */
bool WinEDA_LibeditFrame::LoadOneLibraryPartAux( CMP_LIB_ENTRY* LibEntry, bool WinEDA_LibeditFrame::LoadOneLibraryPartAux( CMP_LIB_ENTRY* LibEntry,
CMP_LIBRARY* Library ) CMP_LIBRARY* Library )
@ -158,12 +158,12 @@ bool WinEDA_LibeditFrame::LoadOneLibraryPartAux( CMP_LIB_ENTRY* LibEntry,
component = (LIB_COMPONENT*) LibEntry; component = (LIB_COMPONENT*) LibEntry;
} }
if( CurrentLibEntry ) if( m_currentComponent )
SAFE_DELETE( CurrentLibEntry ); SAFE_DELETE( m_currentComponent );
CurrentLibEntry = CopyLibEntryStruct( component ); m_currentComponent = CopyLibEntryStruct( component );
if( CurrentLibEntry == NULL ) if( m_currentComponent == NULL )
{ {
msg.Printf( _( "Could not create copy of part <%s> in library <%s>." ), msg.Printf( _( "Could not create copy of part <%s> in library <%s>." ),
(const wxChar*) LibEntry->GetName(), (const wxChar*) LibEntry->GetName(),
@ -177,7 +177,7 @@ bool WinEDA_LibeditFrame::LoadOneLibraryPartAux( CMP_LIB_ENTRY* LibEntry,
g_AsDeMorgan = 0; g_AsDeMorgan = 0;
if( LookForConvertPart( CurrentLibEntry ) > 1 ) if( LookForConvertPart( m_currentComponent ) > 1 )
g_AsDeMorgan = 1; g_AsDeMorgan = 1;
g_ScreenLib->ClrModify(); g_ScreenLib->ClrModify();
@ -208,7 +208,7 @@ void WinEDA_LibeditFrame::RedrawActiveWindow( wxDC* DC, bool EraseBg )
DrawPanel->CursorOff( DC ); // erase cursor DrawPanel->CursorOff( DC ); // erase cursor
if( DrawPanel->ManageCurseur ) if( DrawPanel->ManageCurseur )
{ {
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE ); DrawPanel->ManageCurseur( DrawPanel, DC, false );
} }
if( EraseBg ) if( EraseBg )
@ -216,15 +216,15 @@ void WinEDA_LibeditFrame::RedrawActiveWindow( wxDC* DC, bool EraseBg )
DrawPanel->DrawBackGround( DC ); DrawPanel->DrawBackGround( DC );
if( CurrentLibEntry ) if( m_currentComponent )
CurrentLibEntry->Draw( DrawPanel, DC, wxPoint( 0, 0 ), CurrentUnit, m_currentComponent->Draw( DrawPanel, DC, wxPoint( 0, 0 ), CurrentUnit,
CurrentConvert, GR_DEFAULT_DRAWMODE ); CurrentConvert, GR_DEFAULT_DRAWMODE );
DrawPanel->CursorOn( DC ); // redraw cursor DrawPanel->CursorOn( DC ); // redraw cursor
if( DrawPanel->ManageCurseur ) if( DrawPanel->ManageCurseur )
{ {
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE ); DrawPanel->ManageCurseur( DrawPanel, DC, false );
} }
GetScreen()->ClrRefreshReq(); GetScreen()->ClrRefreshReq();
@ -296,10 +296,10 @@ void WinEDA_LibeditFrame::DisplayCmpDoc()
MsgPanel->EraseMsgBox(); MsgPanel->EraseMsgBox();
if( CurrentLib == NULL && CurrentLibEntry == NULL ) if( CurrentLib == NULL || m_currentComponent == NULL )
return; return;
msg = CurrentLibEntry->GetName(); msg = m_currentComponent->GetName();
MsgPanel->AppendMessage( _( "Part" ), msg, BLUE, 8 ); MsgPanel->AppendMessage( _( "Part" ), msg, BLUE, 8 );
@ -327,7 +327,7 @@ void WinEDA_LibeditFrame::DisplayCmpDoc()
MsgPanel->AppendMessage( _( "Body" ), msg, GREEN, 8 ); MsgPanel->AppendMessage( _( "Body" ), msg, GREEN, 8 );
if( CurrentLibEntry->m_Options == ENTRY_POWER ) if( m_currentComponent->m_Options == ENTRY_POWER )
msg = _( "Power Symbol" ); msg = _( "Power Symbol" );
else else
msg = _( "Component" ); msg = _( "Component" );
@ -337,14 +337,14 @@ void WinEDA_LibeditFrame::DisplayCmpDoc()
if( alias != NULL ) if( alias != NULL )
msg = alias->m_Doc; msg = alias->m_Doc;
else else
msg = CurrentLibEntry->m_Doc; msg = m_currentComponent->m_Doc;
MsgPanel->AppendMessage( _( "Description" ), msg, CYAN, 8 ); MsgPanel->AppendMessage( _( "Description" ), msg, CYAN, 8 );
if( alias != NULL ) if( alias != NULL )
msg = alias->m_KeyWord; msg = alias->m_KeyWord;
else else
msg = CurrentLibEntry->m_KeyWord; msg = m_currentComponent->m_KeyWord;
MsgPanel->AppendMessage( _( "Key words" ), msg, DARKDARKGRAY ); MsgPanel->AppendMessage( _( "Key words" ), msg, DARKDARKGRAY );
} }
@ -362,13 +362,16 @@ void WinEDA_LibeditFrame::DisplayCmpDoc()
* Sinon le premier alias devient le composant de base, et les autres * Sinon le premier alias devient le composant de base, et les autres
* alias deviennent dependants de celui ci. * alias deviennent dependants de celui ci.
*/ */
void WinEDA_LibeditFrame::DeleteOnePart() void WinEDA_LibeditFrame::DeleteOnePart( wxCommandEvent& event )
{ {
wxString CmpName; wxString CmpName;
CMP_LIB_ENTRY* LibEntry; CMP_LIB_ENTRY* LibEntry;
wxArrayString ListNames; wxArrayString ListNames;
wxString msg; wxString msg;
DrawPanel->UnManageCursor( 0, wxCURSOR_ARROW );
LibItemToRepeat = NULL;
CurrentDrawItem = NULL; CurrentDrawItem = NULL;
if( CurrentLib == NULL ) if( CurrentLib == NULL )
@ -419,9 +422,9 @@ void WinEDA_LibeditFrame::DeleteOnePart()
if( !IsOK( this, msg ) ) if( !IsOK( this, msg ) )
return; return;
if( CurrentLibEntry == NULL if( m_currentComponent == NULL
|| ( CurrentLibEntry->GetName().CmpNoCase( LibEntry->GetName() ) != 0 || ( m_currentComponent->GetName().CmpNoCase( LibEntry->GetName() ) != 0
&& !CurrentLibEntry->HasAlias( LibEntry->GetName() ) ) ) && !m_currentComponent->HasAlias( LibEntry->GetName() ) ) )
{ {
CurrentLib->RemoveEntry( LibEntry ); CurrentLib->RemoveEntry( LibEntry );
return; return;
@ -444,23 +447,24 @@ All changes will be lost. Discard changes?" ) ) )
* in the library will be shown. If the current component has * in the library will be shown. If the current component has
* aliases, the updated component will be shown * aliases, the updated component will be shown
*/ */
if( CurrentLibEntry->GetName().CmpNoCase( LibEntry->GetName() ) == 0 ) if( m_currentComponent->GetName().CmpNoCase( LibEntry->GetName() ) == 0 )
{ {
if( CurrentLibEntry->m_AliasList.IsEmpty() ) if( m_currentComponent->m_AliasList.IsEmpty() )
{ {
nextEntry = CurrentLib->GetNextEntry( CurrentLibEntry->GetName() ); nextEntry =
CurrentLib->GetNextEntry( m_currentComponent->GetName() );
if( nextEntry != NULL ) if( nextEntry != NULL )
newCmpName = nextEntry->GetName(); newCmpName = nextEntry->GetName();
} }
else else
{ {
newCmpName = CurrentLibEntry->m_AliasList[ 0 ]; newCmpName = m_currentComponent->m_AliasList[ 0 ];
} }
} }
else else
{ {
newCmpName = CurrentLibEntry->GetName(); newCmpName = m_currentComponent->GetName();
} }
CurrentLib->RemoveEntry( LibEntry ); CurrentLib->RemoveEntry( LibEntry );
@ -482,18 +486,19 @@ All changes will be lost. Discard changes?" ) ) )
* *
* If an old component is currently in edit, it is deleted. * If an old component is currently in edit, it is deleted.
*/ */
void WinEDA_LibeditFrame::CreateNewLibraryPart() void WinEDA_LibeditFrame::CreateNewLibraryPart( wxCommandEvent& event )
{ {
int diag;
wxString msg; wxString msg;
LIB_COMPONENT* NewStruct; LIB_COMPONENT* NewStruct;
int diag;
if( CurrentLibEntry && GetScreen()->IsModify() if( m_currentComponent && GetScreen()->IsModify()
&& !IsOK( this, && !IsOK( this, _( "All changes to the current component will be \
_( "All changes to the current component will be lost!\n\n\ lost!\n\nClear the current component from the screen?" ) ) )
Clear the current component from the screen?" ) ) )
return; return;
DrawPanel->UnManageCursor( 0, wxCURSOR_ARROW );
CurrentDrawItem = NULL; CurrentDrawItem = NULL;
WinEDA_CreateCmpDialog Dialogbox( this ); WinEDA_CreateCmpDialog Dialogbox( this );
@ -512,7 +517,8 @@ Clear the current component from the screen?" ) ) )
if( CurrentLib->FindEntry( msg ) ) if( CurrentLib->FindEntry( msg ) )
{ {
wxString msg; wxString msg;
msg.Printf( _( "Component \"%s\" exists in library \"%s\"." ), msg.Printf( _( "Component \"%s\" already exists in \
library \"%s\"." ),
(const wxChar*) Dialogbox.ReturnCmpName(), (const wxChar*) Dialogbox.ReturnCmpName(),
(const wxChar*) CurrentLib->GetName() ); (const wxChar*) CurrentLib->GetName() );
DisplayError( this, msg ); DisplayError( this, msg );
@ -527,15 +533,21 @@ Clear the current component from the screen?" ) ) )
NewStruct->m_Prefix.m_Text.MakeUpper(); NewStruct->m_Prefix.m_Text.MakeUpper();
// Effacement ancien composant affich<63> // Effacement ancien composant affich<63>
if( CurrentLibEntry ) if( m_currentComponent )
{ {
SAFE_DELETE( CurrentLibEntry ); SAFE_DELETE( m_currentComponent );
} }
CurrentLibEntry = NewStruct; m_currentComponent = NewStruct;
CurrentUnit = 1; CurrentUnit = 1;
CurrentConvert = 1; CurrentConvert = 1;
DisplayLibInfos(); DisplayLibInfos();
DisplayCmpDoc(); DisplayCmpDoc();
UpdateAliasSelectList();
UpdatePartSelectList();
g_EditPinByPinIsOn = false;
LibItemToRepeat = NULL;
GetScreen()->ClearUndoRedoList();
DrawPanel->Refresh();
} }
@ -552,7 +564,7 @@ void WinEDA_LibeditFrame::SaveOnePartInMemory()
LIB_COMPONENT* Component; LIB_COMPONENT* Component;
wxString msg; wxString msg;
if( CurrentLibEntry == NULL ) if( m_currentComponent == NULL )
{ {
DisplayError( this, _( "No component to save." ) ); DisplayError( this, _( "No component to save." ) );
return; return;
@ -569,7 +581,7 @@ void WinEDA_LibeditFrame::SaveOnePartInMemory()
g_ScreenLib->ClrModify(); g_ScreenLib->ClrModify();
oldComponent = CurrentLib->FindComponent( CurrentLibEntry->GetName() ); oldComponent = CurrentLib->FindComponent( m_currentComponent->GetName() );
if( oldComponent != NULL ) if( oldComponent != NULL )
{ {
@ -579,13 +591,13 @@ void WinEDA_LibeditFrame::SaveOnePartInMemory()
return; return;
} }
wxASSERT( CurrentLibEntry->Type == ROOT ); wxASSERT( m_currentComponent->Type == ROOT );
if( oldComponent != NULL ) if( oldComponent != NULL )
Component = CurrentLib->ReplaceComponent( oldComponent, Component = CurrentLib->ReplaceComponent( oldComponent,
CurrentLibEntry ); m_currentComponent );
else else
Component = CurrentLib->AddComponent( CurrentLibEntry ); Component = CurrentLib->AddComponent( m_currentComponent );
if( Component == NULL ) if( Component == NULL )
return; return;

View File

@ -10,28 +10,27 @@
#include "common.h" #include "common.h"
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "confirm.h" #include "confirm.h"
#include "eeschema_id.h"
#include "program.h" #include "program.h"
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "protos.h" #include "protos.h"
#include "libeditfrm.h"
#include "id.h"
void WinEDA_LibeditFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos ) void WinEDA_LibeditFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
{ {
LibEDA_BaseStruct* DrawEntry = CurrentDrawItem; LibEDA_BaseStruct* DrawEntry = CurrentDrawItem;
if( CurrentLibEntry == NULL ) // No component loaded ! if( m_currentComponent == NULL ) // No component loaded !
return; return;
if( m_ID_current_state == 0 ) if( m_ID_current_state == 0 )
{ {
if( DrawEntry && DrawEntry->m_Flags ) if( DrawEntry && DrawEntry->m_Flags )
{ {
SaveCopyInUndoList( CurrentLibEntry ); SaveCopyInUndoList( m_currentComponent );
switch( DrawEntry->Type() ) switch( DrawEntry->Type() )
{ {
@ -51,25 +50,27 @@ void WinEDA_LibeditFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
} }
else else
{ {
DrawEntry = LocatePin( GetScreen()->m_MousePosition, CurrentLibEntry, DrawEntry = LocatePin( GetScreen()->m_MousePosition,
CurrentUnit, CurrentConvert ); m_currentComponent, CurrentUnit,
CurrentConvert );
if( DrawEntry == NULL ) if( DrawEntry == NULL )
{ {
DrawEntry = LocateDrawItem( (SCH_SCREEN*)GetScreen(), DrawEntry = LocateDrawItem( (SCH_SCREEN*)GetScreen(),
GetScreen()->m_MousePosition, GetScreen()->m_MousePosition,
CurrentLibEntry, CurrentUnit, m_currentComponent, CurrentUnit,
CurrentConvert, CurrentConvert,
LOCATE_ALL_DRAW_ITEM ); LOCATE_ALL_DRAW_ITEM );
} }
if( DrawEntry == NULL ) if( DrawEntry == NULL )
DrawEntry = LocatePin( GetScreen()->m_Curseur, CurrentLibEntry, DrawEntry = LocatePin( GetScreen()->m_Curseur,
CurrentUnit, CurrentConvert ); m_currentComponent, CurrentUnit,
CurrentConvert );
if( DrawEntry == NULL ) if( DrawEntry == NULL )
{ {
DrawEntry = LocateDrawItem( (SCH_SCREEN*)GetScreen(), DrawEntry = LocateDrawItem( (SCH_SCREEN*)GetScreen(),
GetScreen()->m_Curseur, GetScreen()->m_Curseur,
CurrentLibEntry, CurrentUnit, m_currentComponent, CurrentUnit,
CurrentConvert, CurrentConvert,
LOCATE_ALL_DRAW_ITEM ); LOCATE_ALL_DRAW_ITEM );
} }
@ -96,7 +97,7 @@ void WinEDA_LibeditFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
} }
else else
{ {
SaveCopyInUndoList( CurrentLibEntry ); SaveCopyInUndoList( m_currentComponent );
PlacePin( DC ); PlacePin( DC );
} }
break; break;
@ -108,7 +109,7 @@ void WinEDA_LibeditFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
case ID_LIBEDIT_BODY_TEXT_BUTT: case ID_LIBEDIT_BODY_TEXT_BUTT:
if( CurrentDrawItem == NULL || CurrentDrawItem->m_Flags == 0 ) if( CurrentDrawItem == NULL || CurrentDrawItem->m_Flags == 0 )
{ {
CurrentDrawItem = CreateGraphicItem( CurrentLibEntry, DC ); CurrentDrawItem = CreateGraphicItem( m_currentComponent, DC );
} }
else if( CurrentDrawItem ) else if( CurrentDrawItem )
{ {
@ -116,48 +117,50 @@ void WinEDA_LibeditFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
GraphicItemBeginDraw( DC ); GraphicItemBeginDraw( DC );
else else
{ {
SaveCopyInUndoList( CurrentLibEntry ); SaveCopyInUndoList( m_currentComponent );
EndDrawGraphicItem( DC ); EndDrawGraphicItem( DC );
} }
} }
break; break;
case ID_LIBEDIT_DELETE_ITEM_BUTT: case ID_LIBEDIT_DELETE_ITEM_BUTT:
DrawEntry = LocatePin( GetScreen()->m_MousePosition, CurrentLibEntry, DrawEntry = LocatePin( GetScreen()->m_MousePosition,
CurrentUnit, CurrentConvert ); m_currentComponent, CurrentUnit,
CurrentConvert );
if( DrawEntry == NULL ) if( DrawEntry == NULL )
{ {
DrawEntry = LocateDrawItem( (SCH_SCREEN*)GetScreen(), DrawEntry = LocateDrawItem( (SCH_SCREEN*)GetScreen(),
GetScreen()->m_MousePosition, GetScreen()->m_MousePosition,
CurrentLibEntry, CurrentUnit, m_currentComponent, CurrentUnit,
CurrentConvert, CurrentConvert,
LOCATE_ALL_DRAW_ITEM ); LOCATE_ALL_DRAW_ITEM );
} }
if( DrawEntry == NULL ) if( DrawEntry == NULL )
DrawEntry = LocatePin( GetScreen()->m_Curseur, CurrentLibEntry, DrawEntry = LocatePin( GetScreen()->m_Curseur,
CurrentUnit, CurrentConvert ); m_currentComponent, CurrentUnit,
CurrentConvert );
if( DrawEntry == NULL ) if( DrawEntry == NULL )
{ {
DrawEntry = LocateDrawItem( (SCH_SCREEN*)GetScreen(), DrawEntry = LocateDrawItem( (SCH_SCREEN*)GetScreen(),
GetScreen()->m_Curseur, GetScreen()->m_Curseur,
CurrentLibEntry, CurrentUnit, m_currentComponent, CurrentUnit,
CurrentConvert, CurrentConvert,
LOCATE_ALL_DRAW_ITEM ); LOCATE_ALL_DRAW_ITEM );
} }
if( DrawEntry == NULL ) if( DrawEntry == NULL )
DisplayCmpDoc(); DisplayCmpDoc();
SaveCopyInUndoList( CurrentLibEntry ); SaveCopyInUndoList( m_currentComponent );
if( DrawEntry->Type() == COMPONENT_PIN_DRAW_TYPE ) if( DrawEntry->Type() == COMPONENT_PIN_DRAW_TYPE )
DeletePin( DC, CurrentLibEntry, (LibDrawPin*) DrawEntry ); DeletePin( DC, m_currentComponent, (LibDrawPin*) DrawEntry );
else else
CurrentLibEntry->RemoveDrawItem( DrawEntry, DrawPanel, DC ); m_currentComponent->RemoveDrawItem( DrawEntry, DrawPanel, DC );
DrawEntry = NULL; DrawEntry = NULL;
GetScreen()->SetModify(); GetScreen()->SetModify();
break; break;
case ID_LIBEDIT_ANCHOR_ITEM_BUTT: case ID_LIBEDIT_ANCHOR_ITEM_BUTT:
SaveCopyInUndoList( CurrentLibEntry ); SaveCopyInUndoList( m_currentComponent );
PlaceAncre(); PlaceAncre();
SetToolID( 0, wxCURSOR_ARROW, wxEmptyString ); SetToolID( 0, wxCURSOR_ARROW, wxEmptyString );
break; break;
@ -183,22 +186,22 @@ void WinEDA_LibeditFrame::OnLeftDClick( wxDC* DC, const wxPoint& MousePos )
wxPoint pos = GetPosition(); wxPoint pos = GetPosition();
LibEDA_BaseStruct* DrawEntry = CurrentDrawItem; LibEDA_BaseStruct* DrawEntry = CurrentDrawItem;
if( CurrentLibEntry == NULL ) if( m_currentComponent == NULL )
return; return;
if( ( DrawEntry == NULL ) || ( DrawEntry->m_Flags == 0 ) ) if( ( DrawEntry == NULL ) || ( DrawEntry->m_Flags == 0 ) )
{ // We can locate an item { // We can locate an item
DrawEntry = LocatePin( GetScreen()->m_MousePosition, CurrentLibEntry, DrawEntry = LocatePin( GetScreen()->m_MousePosition, m_currentComponent,
CurrentUnit, CurrentConvert ); CurrentUnit, CurrentConvert );
if( DrawEntry == NULL ) if( DrawEntry == NULL )
DrawEntry = LocatePin( GetScreen()->m_Curseur, CurrentLibEntry, DrawEntry = LocatePin( GetScreen()->m_Curseur, m_currentComponent,
CurrentUnit, CurrentConvert ); CurrentUnit, CurrentConvert );
if( DrawEntry == NULL ) if( DrawEntry == NULL )
{ {
DrawEntry = CurrentDrawItem = DrawEntry = CurrentDrawItem =
LocateDrawItem( (SCH_SCREEN*) GetScreen(), LocateDrawItem( (SCH_SCREEN*) GetScreen(),
GetScreen()->m_MousePosition, GetScreen()->m_MousePosition,
CurrentLibEntry, CurrentUnit, m_currentComponent, CurrentUnit,
CurrentConvert, LOCATE_ALL_DRAW_ITEM ); CurrentConvert, LOCATE_ALL_DRAW_ITEM );
} }
if( DrawEntry == NULL ) if( DrawEntry == NULL )
@ -206,13 +209,13 @@ void WinEDA_LibeditFrame::OnLeftDClick( wxDC* DC, const wxPoint& MousePos )
DrawEntry = CurrentDrawItem = DrawEntry = CurrentDrawItem =
LocateDrawItem( (SCH_SCREEN*) GetScreen(), LocateDrawItem( (SCH_SCREEN*) GetScreen(),
GetScreen()->m_Curseur, GetScreen()->m_Curseur,
CurrentLibEntry, CurrentUnit, m_currentComponent, CurrentUnit,
CurrentConvert, LOCATE_ALL_DRAW_ITEM ); CurrentConvert, LOCATE_ALL_DRAW_ITEM );
} }
if( DrawEntry == NULL ) if( DrawEntry == NULL )
{ {
DrawEntry = CurrentDrawItem = DrawEntry = CurrentDrawItem =
(LibEDA_BaseStruct*) LocateField( CurrentLibEntry ); (LibEDA_BaseStruct*) LocateField( m_currentComponent );
} }
if( DrawEntry == NULL ) if( DrawEntry == NULL )
{ {

View File

@ -1,65 +1,69 @@
/****************************/ /****************************/
/* EESchema - libedit_onrightclick.cpp */ /* EESchema - libedit_onrightclick.cpp */
/****************************/ /****************************/
/* , In library editor, create the pop menu when clicking on mouse right button /* , In library editor, create the pop menu when clicking on mouse right button
*/ */
#include "fctsys.h" #include "fctsys.h"
#include "gr_basic.h" #include "gr_basic.h"
#include "common.h" #include "common.h"
#include "confirm.h" #include "confirm.h"
#include "bitmaps.h"
#include "eeschema_id.h"
#include "hotkeys.h"
#include "program.h" #include "program.h"
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "bitmaps.h"
#include "protos.h" #include "protos.h"
#include "libeditfrm.h"
#include "id.h"
#include "hotkeys.h"
/* functions to add commands and submenus depending on the item */ /* functions to add commands and submenus depending on the item */
static void AddMenusForBlock(wxMenu * PopMenu, WinEDA_LibeditFrame * frame); static void AddMenusForBlock( wxMenu* PopMenu, WinEDA_LibeditFrame* frame );
static void AddMenusForPin(wxMenu * PopMenu, LibDrawPin* Pin, WinEDA_LibeditFrame * frame); static void AddMenusForPin( wxMenu* PopMenu, LibDrawPin* Pin,
WinEDA_LibeditFrame* frame );
/********************************************************************************/ bool WinEDA_LibeditFrame::OnRightClick( const wxPoint& MousePos,
bool WinEDA_LibeditFrame::OnRightClick(const wxPoint& MousePos, wxMenu * PopMenu) wxMenu* PopMenu )
/********************************************************************************/
{ {
LibEDA_BaseStruct* DrawEntry = LocateItemUsingCursor(); LibEDA_BaseStruct* DrawEntry = LocateItemUsingCursor();
bool BlockActive = (GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE); bool BlockActive = (GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE);
if ( CurrentLibEntry == NULL ) return true; if( m_currentComponent == NULL )
return true;
// If Command in progresss: put the menu "cancel" and "end tool" // If Command in progresss: put the menu "cancel" and "end tool"
if ( m_ID_current_state ) if( m_ID_current_state )
{ {
if (DrawEntry && DrawEntry->m_Flags) if( DrawEntry && DrawEntry->m_Flags )
{ {
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_CANCEL_EDITING, ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_CANCEL_EDITING,
_("Cancel"), cancel_xpm); _( "Cancel" ), cancel_xpm );
} }
else else
{ {
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_CANCEL_EDITING, ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_CANCEL_EDITING,
_("End Tool"), cancel_tool_xpm); _( "End Tool" ), cancel_tool_xpm );
} }
PopMenu->AppendSeparator(); PopMenu->AppendSeparator();
} }
else else
{ {
if ( (DrawEntry && DrawEntry->m_Flags) || BlockActive ) if( (DrawEntry && DrawEntry->m_Flags) || BlockActive )
{ {
if ( BlockActive ) AddMenusForBlock( PopMenu, this); if( BlockActive )
else ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_CANCEL_EDITING, _("Cancel"), cancel_xpm); AddMenusForBlock( PopMenu, this );
else
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_CANCEL_EDITING,
_( "Cancel" ), cancel_xpm );
PopMenu->AppendSeparator(); PopMenu->AppendSeparator();
} }
} }
if ( DrawEntry ) if( DrawEntry )
DrawEntry->DisplayInfo( this ); DrawEntry->DisplayInfo( this );
else else
return true; return true;
@ -67,99 +71,121 @@ bool BlockActive = (GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE);
CurrentDrawItem = DrawEntry; CurrentDrawItem = DrawEntry;
wxString msg; wxString msg;
switch ( DrawEntry->Type() ) switch( DrawEntry->Type() )
{ {
case COMPONENT_PIN_DRAW_TYPE: case COMPONENT_PIN_DRAW_TYPE:
AddMenusForPin(PopMenu, (LibDrawPin*)DrawEntry, this); AddMenusForPin( PopMenu, (LibDrawPin*) DrawEntry, this );
break; break;
case COMPONENT_ARC_DRAW_TYPE: case COMPONENT_ARC_DRAW_TYPE:
if( DrawEntry->m_Flags == 0 ) if( DrawEntry->m_Flags == 0 )
{ {
msg = AddHotkeyName( _( "Move Arc " ), s_Libedit_Hokeys_Descr, HK_MOVE_PIN ); msg = AddHotkeyName( _( "Move Arc " ), s_Libedit_Hokeys_Descr,
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, move_arc_xpm); HK_MOVE_PIN );
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST,
msg, move_arc_xpm );
} }
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM, ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM,
_("Arc Options"), options_arc_xpm ); _( "Arc Options" ), options_arc_xpm );
if( DrawEntry->m_Flags == 0 ) if( DrawEntry->m_Flags == 0 )
{ {
msg = AddHotkeyName( _( "Delete Arc " ), s_Libedit_Hokeys_Descr, HK_DELETE_PIN ); msg = AddHotkeyName( _( "Delete Arc " ), s_Libedit_Hokeys_Descr,
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM, msg, delete_arc_xpm); HK_DELETE_PIN );
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM,
msg, delete_arc_xpm );
} }
break; break;
case COMPONENT_CIRCLE_DRAW_TYPE: case COMPONENT_CIRCLE_DRAW_TYPE:
if( DrawEntry->m_Flags == 0 ) if( DrawEntry->m_Flags == 0 )
{ {
msg = AddHotkeyName( _( "Move Circle " ), s_Libedit_Hokeys_Descr, HK_MOVE_PIN ); msg = AddHotkeyName( _( "Move Circle " ), s_Libedit_Hokeys_Descr,
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, move_circle_xpm); HK_MOVE_PIN );
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST,
msg, move_circle_xpm );
} }
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM, ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM,
_("Circle Options"), options_circle_xpm); _( "Circle Options" ), options_circle_xpm );
if( DrawEntry->m_Flags == 0 ) if( DrawEntry->m_Flags == 0 )
{ {
msg = AddHotkeyName( _( "Delete Circle " ), s_Libedit_Hokeys_Descr, HK_DELETE_PIN ); msg = AddHotkeyName( _( "Delete Circle " ),
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM,msg, delete_circle_xpm); s_Libedit_Hokeys_Descr, HK_DELETE_PIN );
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM,
msg, delete_circle_xpm );
} }
break; break;
case COMPONENT_RECT_DRAW_TYPE: case COMPONENT_RECT_DRAW_TYPE:
if( DrawEntry->m_Flags == 0 ) if( DrawEntry->m_Flags == 0 )
{ {
msg = AddHotkeyName( _( "Move Rect " ), s_Libedit_Hokeys_Descr, HK_MOVE_PIN ); msg = AddHotkeyName( _( "Move Rect " ), s_Libedit_Hokeys_Descr,
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, move_rectangle_xpm); HK_MOVE_PIN );
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST,
msg, move_rectangle_xpm );
} }
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM, ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM,
_("Rect Options"), options_rectangle_xpm); _( "Rect Options" ), options_rectangle_xpm );
if( DrawEntry->m_Flags == 0 ) if( DrawEntry->m_Flags == 0 )
{ {
msg = AddHotkeyName( _( "Delete Rect " ), s_Libedit_Hokeys_Descr, HK_DELETE_PIN ); msg = AddHotkeyName( _( "Delete Rect " ), s_Libedit_Hokeys_Descr,
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM, msg, delete_rectangle_xpm); HK_DELETE_PIN );
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM,
msg, delete_rectangle_xpm );
} }
break; break;
case COMPONENT_GRAPHIC_TEXT_DRAW_TYPE: case COMPONENT_GRAPHIC_TEXT_DRAW_TYPE:
if( DrawEntry->m_Flags == 0 ) if( DrawEntry->m_Flags == 0 )
{ {
msg = AddHotkeyName( _( "Move Text " ), s_Libedit_Hokeys_Descr, HK_MOVE_PIN ); msg = AddHotkeyName( _( "Move Text " ), s_Libedit_Hokeys_Descr,
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, move_text_xpm); HK_MOVE_PIN );
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST,
msg, move_text_xpm );
} }
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM, ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM,
_("Text Editor"), edit_text_xpm); _( "Text Editor" ), edit_text_xpm );
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_ROTATE_GRAPHIC_TEXT, ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_ROTATE_GRAPHIC_TEXT,
_("Rotate Text"), edit_text_xpm); _( "Rotate Text" ), edit_text_xpm );
if( DrawEntry->m_Flags == 0 ) if( DrawEntry->m_Flags == 0 )
{ {
msg = AddHotkeyName( _( "Delete Text " ), s_Libedit_Hokeys_Descr, HK_DELETE_PIN ); msg = AddHotkeyName( _( "Delete Text " ), s_Libedit_Hokeys_Descr,
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM, msg, delete_text_xpm); HK_DELETE_PIN );
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM,
msg, delete_text_xpm );
} }
break; break;
case COMPONENT_POLYLINE_DRAW_TYPE: case COMPONENT_POLYLINE_DRAW_TYPE:
if( DrawEntry->m_Flags == 0 ) if( DrawEntry->m_Flags == 0 )
{ {
msg = AddHotkeyName( _( "Move Line " ), s_Libedit_Hokeys_Descr, HK_MOVE_PIN ); msg = AddHotkeyName( _( "Move Line " ), s_Libedit_Hokeys_Descr,
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, move_line_xpm); HK_MOVE_PIN );
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST,
msg, move_line_xpm );
} }
if ( DrawEntry->m_Flags & IS_NEW ) if( DrawEntry->m_Flags & IS_NEW )
{ {
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_END_CREATE_ITEM, ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_END_CREATE_ITEM,
_("Line End"), apply_xpm); _( "Line End" ), apply_xpm );
} }
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM, ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM,
_("Line Options"), options_segment_xpm); _( "Line Options" ), options_segment_xpm );
if( DrawEntry->m_Flags == 0 ) if( DrawEntry->m_Flags == 0 )
{ {
msg = AddHotkeyName( _( "Delete Line " ), s_Libedit_Hokeys_Descr, HK_DELETE_PIN ); msg = AddHotkeyName( _( "Delete Line " ), s_Libedit_Hokeys_Descr,
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM, msg, delete_segment_xpm); HK_DELETE_PIN );
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM,
msg, delete_segment_xpm );
} }
else if( (DrawEntry->m_Flags & IS_NEW) ) else if( (DrawEntry->m_Flags & IS_NEW) )
{ {
if( ((LibDrawPolyline*)DrawEntry)->GetCornerCount() > 2 ) if( ( (LibDrawPolyline*) DrawEntry )->GetCornerCount() > 2 )
{ {
msg = AddHotkeyName( _( "Delete Segment " ), s_Libedit_Hokeys_Descr, HK_DELETE_PIN ); msg = AddHotkeyName( _( "Delete Segment " ),
ADD_MENUITEM(PopMenu, s_Libedit_Hokeys_Descr, HK_DELETE_PIN );
ID_POPUP_LIBEDIT_DELETE_CURRENT_POLY_SEGMENT, msg, delete_segment_xpm); ADD_MENUITEM( PopMenu,
ID_POPUP_LIBEDIT_DELETE_CURRENT_POLY_SEGMENT,
msg, delete_segment_xpm );
} }
} }
break; break;
@ -167,86 +193,100 @@ bool BlockActive = (GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE);
case COMPONENT_FIELD_DRAW_TYPE: case COMPONENT_FIELD_DRAW_TYPE:
if( DrawEntry->m_Flags == 0 ) if( DrawEntry->m_Flags == 0 )
{ {
msg = AddHotkeyName( _( "Move Field " ), s_Libedit_Hokeys_Descr, HK_MOVE_PIN ); msg = AddHotkeyName( _( "Move Field " ), s_Libedit_Hokeys_Descr,
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, move_field_xpm); HK_MOVE_PIN );
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST,
msg, move_field_xpm );
} }
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_FIELD_ROTATE_ITEM, ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_FIELD_ROTATE_ITEM,
_("Field Rotate"), rotate_field_xpm); _( "Field Rotate" ), rotate_field_xpm );
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_FIELD_EDIT_ITEM, ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_FIELD_EDIT_ITEM,
_("Field Edit"), edit_text_xpm); _( "Field Edit" ), edit_text_xpm );
break; break;
default: default:
wxString msg; wxString msg;
msg.Printf( msg.Printf( wxT( "WinEDA_LibeditFrame::OnRightClick Error: unknown \
wxT("WinEDA_LibeditFrame::OnRightClick Error: unknown StructType %d"), StructType %d" ),
DrawEntry->Type()); DrawEntry->Type() );
DisplayError(this, msg ); DisplayError( this, msg );
CurrentDrawItem = NULL; CurrentDrawItem = NULL;
break; break;
} }
PopMenu->AppendSeparator(); PopMenu->AppendSeparator();
return true; return true;
} }
/**********************************************************************************/
void AddMenusForPin(wxMenu * PopMenu, LibDrawPin* Pin, WinEDA_LibeditFrame * frame) void AddMenusForPin( wxMenu* PopMenu,
/**********************************************************************************/ LibDrawPin* Pin,
WinEDA_LibeditFrame* frame )
{ {
bool selected = (Pin->m_Selected & IS_SELECTED) != 0; bool selected = (Pin->m_Selected & IS_SELECTED) != 0;
bool not_in_move = (Pin->m_Flags == 0); bool not_in_move = (Pin->m_Flags == 0);
if( not_in_move ) if( not_in_move )
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, _("Move Pin"), move_xpm ); ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST,
_( "Move Pin" ), move_xpm );
wxString msg; wxString msg;
msg = AddHotkeyName( _( "Edit Pin " ), s_Libedit_Hokeys_Descr, HK_EDIT_PIN ); msg = AddHotkeyName( _( "Edit Pin " ), s_Libedit_Hokeys_Descr, HK_EDIT_PIN );
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_PIN_EDIT, msg, edit_xpm ); ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_PIN_EDIT, msg, edit_xpm );
if( not_in_move ) if( not_in_move )
{ {
msg = AddHotkeyName( _( "Delete Pin " ), s_Libedit_Hokeys_Descr, HK_DELETE_PIN ); msg = AddHotkeyName( _( "Delete Pin " ), s_Libedit_Hokeys_Descr,
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM, msg, delete_pin_xpm ); HK_DELETE_PIN );
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM,
msg, delete_pin_xpm );
} }
wxMenu * global_pin_change = new wxMenu; wxMenu* global_pin_change = new wxMenu;
ADD_MENUITEM_WITH_SUBMENU(PopMenu, global_pin_change, ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_ITEM, ADD_MENUITEM_WITH_SUBMENU( PopMenu, global_pin_change,
_("Global"), pin_to_xpm); ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_ITEM,
ADD_MENUITEM(global_pin_change, ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINSIZE_ITEM, _( "Global" ), pin_to_xpm );
selected ? _("Pin Size to selected pins"): _("Pin Size to Others"), ADD_MENUITEM( global_pin_change,
pin_size_to_xpm); ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINSIZE_ITEM,
ADD_MENUITEM(global_pin_change, ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINNAMESIZE_ITEM, selected ? _( "Pin Size to selected pins" ) :
selected ? _("Pin Name Size to selected pin") : _("Pin Name Size to Others"), _( "Pin Size to Others" ), pin_size_to_xpm );
pin_name_to_xpm); ADD_MENUITEM( global_pin_change,
ADD_MENUITEM(global_pin_change, ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINNUMSIZE_ITEM, ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINNAMESIZE_ITEM,
selected ?_("Pin Num Size to selected pin") : _("Pin Num Size to Others"), selected ? _( "Pin Name Size to selected pin" ) :
pin_number_to_xpm); _( "Pin Name Size to Others" ), pin_name_to_xpm );
ADD_MENUITEM( global_pin_change,
ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINNUMSIZE_ITEM,
selected ? _( "Pin Num Size to selected pin" ) :
_( "Pin Num Size to Others" ), pin_number_to_xpm );
} }
/**********************************************************************/ /* Add menu commands for block */
void AddMenusForBlock(wxMenu * PopMenu, WinEDA_LibeditFrame * frame)
/**********************************************************************/ void AddMenusForBlock( wxMenu* PopMenu, WinEDA_LibeditFrame* frame )
/* Add menu commands for block
*/
{ {
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_CANCEL_EDITING, _("Cancel Block"), cancel_xpm); ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_CANCEL_EDITING,
_( "Cancel Block" ), cancel_xpm );
if( frame->GetScreen()->m_BlockLocate.m_Command == BLOCK_MOVE ) if( frame->GetScreen()->m_BlockLocate.m_Command == BLOCK_MOVE )
ADD_MENUITEM(PopMenu, ID_POPUP_ZOOM_BLOCK, _("Zoom Block (drag middle mouse)"), zoom_selected_xpm); ADD_MENUITEM( PopMenu, ID_POPUP_ZOOM_BLOCK,
_( "Zoom Block (drag middle mouse)" ),
zoom_selected_xpm );
PopMenu->AppendSeparator(); PopMenu->AppendSeparator();
ADD_MENUITEM(PopMenu, ID_POPUP_PLACE_BLOCK, _("Place Block"), apply_xpm ); ADD_MENUITEM( PopMenu, ID_POPUP_PLACE_BLOCK, _( "Place Block" ),
apply_xpm );
if( frame->GetScreen()->m_BlockLocate.m_Command == BLOCK_MOVE ) if( frame->GetScreen()->m_BlockLocate.m_Command == BLOCK_MOVE )
{ {
ADD_MENUITEM(PopMenu, ID_POPUP_SELECT_ITEMS_BLOCK, _("Select Items"), green_xpm); ADD_MENUITEM( PopMenu, ID_POPUP_SELECT_ITEMS_BLOCK,
ADD_MENUITEM(PopMenu, ID_POPUP_COPY_BLOCK, _( "Select Items" ), green_xpm );
_("Copy Block"), copyblock_xpm); ADD_MENUITEM( PopMenu, ID_POPUP_COPY_BLOCK,
ADD_MENUITEM(PopMenu, ID_POPUP_MIRROR_Y_BLOCK, _("Mirror Block ||"), mirror_H_xpm ); _( "Copy Block" ), copyblock_xpm );
ADD_MENUITEM(PopMenu, ID_POPUP_DELETE_BLOCK, ADD_MENUITEM( PopMenu, ID_POPUP_MIRROR_Y_BLOCK,
_("Delete Block"), delete_xpm ); _( "Mirror Block ||" ), mirror_H_xpm );
ADD_MENUITEM( PopMenu, ID_POPUP_DELETE_BLOCK,
_( "Delete Block" ), delete_xpm );
} }
} }

View File

@ -9,9 +9,8 @@
#include "program.h" #include "program.h"
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
//#include "id.h"
#include "protos.h" #include "protos.h"
#include "libeditfrm.h"
/*************************************************************************/ /*************************************************************************/
@ -55,16 +54,16 @@ void WinEDA_LibeditFrame::GetComponentFromRedoList(wxCommandEvent& event)
return; return;
PICKED_ITEMS_LIST* lastcmd = new PICKED_ITEMS_LIST(); PICKED_ITEMS_LIST* lastcmd = new PICKED_ITEMS_LIST();
ITEM_PICKER wrapper(CurrentLibEntry, UR_LIBEDIT); ITEM_PICKER wrapper(m_currentComponent, UR_LIBEDIT);
lastcmd->PushItem(wrapper); lastcmd->PushItem(wrapper);
GetScreen()->PushCommandToUndoList( lastcmd ); GetScreen()->PushCommandToUndoList( lastcmd );
lastcmd = GetScreen()->PopCommandFromRedoList( ); lastcmd = GetScreen()->PopCommandFromRedoList( );
wrapper = lastcmd->PopItem(); wrapper = lastcmd->PopItem();
CurrentLibEntry = (LIB_COMPONENT*) wrapper.m_PickedItem; m_currentComponent = (LIB_COMPONENT*) wrapper.m_PickedItem;
if( CurrentLibEntry ) if( m_currentComponent )
CurrentLibEntry->SetNext( NULL ); m_currentComponent->SetNext( NULL );
CurrentDrawItem = NULL; CurrentDrawItem = NULL;
GetScreen()->SetModify(); GetScreen()->SetModify();
DrawPanel->Refresh(); DrawPanel->Refresh();
@ -85,17 +84,17 @@ void WinEDA_LibeditFrame::GetComponentFromUndoList(wxCommandEvent& event)
return; return;
PICKED_ITEMS_LIST* lastcmd = new PICKED_ITEMS_LIST(); PICKED_ITEMS_LIST* lastcmd = new PICKED_ITEMS_LIST();
ITEM_PICKER wrapper(CurrentLibEntry, UR_LIBEDIT); ITEM_PICKER wrapper(m_currentComponent, UR_LIBEDIT);
lastcmd->PushItem(wrapper); lastcmd->PushItem(wrapper);
GetScreen()->PushCommandToRedoList( lastcmd ); GetScreen()->PushCommandToRedoList( lastcmd );
lastcmd = GetScreen()->PopCommandFromUndoList( ); lastcmd = GetScreen()->PopCommandFromUndoList( );
wrapper = lastcmd->PopItem(); wrapper = lastcmd->PopItem();
CurrentLibEntry = (LIB_COMPONENT*) wrapper.m_PickedItem; m_currentComponent = (LIB_COMPONENT*) wrapper.m_PickedItem;
if( CurrentLibEntry ) if( m_currentComponent )
CurrentLibEntry->SetNext( NULL ); m_currentComponent->SetNext( NULL );
CurrentDrawItem = NULL; CurrentDrawItem = NULL;
GetScreen()->SetModify(); GetScreen()->SetModify();
DrawPanel->Refresh(); DrawPanel->Refresh();

160
eeschema/libeditfrm.h Normal file
View File

@ -0,0 +1,160 @@
/*****************************/
/* class WinEDA_LibeditFrame */
/*****************************/
#ifndef __LIBEDITFRM_H__
#define __LIBEDITFRM_H__
#include "wxstruct.h"
class SCH_SCREEN;
class CMP_LIBRARY;
class LIB_COMPONENT;
class LIB_ALIAS;
/**
* The component library editor main window.
*/
class WinEDA_LibeditFrame : public WinEDA_DrawFrame
{
public:
WinEDAChoiceBox* m_SelpartBox;
WinEDAChoiceBox* m_SelAliasBox;
public:
WinEDA_LibeditFrame( wxWindow* father,
const wxString& title,
const wxPoint& pos, const wxSize& size,
long style = KICAD_DEFAULT_DRAWFRAME_STYLE );
~WinEDA_LibeditFrame();
void Process_Special_Functions( wxCommandEvent& event );
void OnImportPart( wxCommandEvent& event );
void OnExportPart( wxCommandEvent& event );
void OnSelectAlias( wxCommandEvent& event );
void OnSelectPart( wxCommandEvent& event );
void DeleteOnePart( wxCommandEvent& event );
void CreateNewLibraryPart( wxCommandEvent& event );
void OnEditComponentProperties( wxCommandEvent& event );
void InstallFieldsEditorDialog( wxCommandEvent& event );
void OnUpdateEditingPart( wxUpdateUIEvent& event );
void OnUpdateNotEditingPart( wxUpdateUIEvent& event );
void OnUpdateUndo( wxUpdateUIEvent& event );
void OnUpdateRedo( wxUpdateUIEvent& event );
void OnUpdateSaveCurrentLib( wxUpdateUIEvent& event );
void OnUpdateViewDoc( wxUpdateUIEvent& event );
void OnUpdatePinByPin( wxUpdateUIEvent& event );
void OnUpdatePartNumber( wxUpdateUIEvent& event );
void OnUpdateDeMorganNormal( wxUpdateUIEvent& event );
void OnUpdateDeMorganConvert( wxUpdateUIEvent& event );
void OnUpdateSelectAlias( wxUpdateUIEvent& event );
void UpdateAliasSelectList();
void UpdatePartSelectList();
void DisplayLibInfos();
void RedrawActiveWindow( wxDC* DC, bool EraseBg );
void OnCloseWindow( wxCloseEvent& Event );
void ReCreateHToolbar();
void ReCreateVToolbar();
void OnLeftClick( wxDC* DC, const wxPoint& MousePos );
bool OnRightClick( const wxPoint& MousePos, wxMenu* PopMenu );
int BestZoom(); // Retourne le meilleur zoom
void OnLeftDClick( wxDC* DC, const wxPoint& MousePos );
SCH_SCREEN* GetScreen() { return (SCH_SCREEN*) GetBaseScreen(); }
void OnHotKey( wxDC* DC, int hotkey,
EDA_BaseStruct* DrawStruct );
void GeneralControle( wxDC* DC,
wxPoint MousePositionInPixels );
void LoadSettings();
void SaveSettings();
LIB_COMPONENT* GetCurrentComponent( void )
{
return m_currentComponent;
}
private:
// General:
void SaveOnePartInMemory();
void SelectActiveLibrary();
bool LoadOneLibraryPart();
void SaveActiveLibrary( wxCommandEvent& event );
bool LoadOneLibraryPartAux( CMP_LIB_ENTRY* LibEntry,
CMP_LIBRARY* Library );
void DisplayCmpDoc();
void EditComponentProperties();
// General editing
public:
void SaveCopyInUndoList( EDA_BaseStruct* ItemToCopy,
int flag_type_command = 0 );
private:
void GetComponentFromUndoList(wxCommandEvent& event);
void GetComponentFromRedoList(wxCommandEvent& event);
// Edition des Pins:
void CreatePin( wxDC* DC );
void DeletePin( wxDC* DC,
LIB_COMPONENT* LibEntry,
LibDrawPin* Pin );
void StartMovePin( wxDC* DC );
// Test des pins ( duplicates...)
bool TestPins( LIB_COMPONENT* LibEntry );
// Edition de l'ancre
void PlaceAncre();
// Edition des graphismes:
LibEDA_BaseStruct* CreateGraphicItem( LIB_COMPONENT* LibEntry, wxDC* DC );
void GraphicItemBeginDraw( wxDC* DC );
void StartMoveDrawSymbol( wxDC* DC );
void EndDrawGraphicItem( wxDC* DC );
void LoadOneSymbol();
void SaveOneSymbol();
void EditGraphicSymbol( wxDC* DC,
LibEDA_BaseStruct* DrawItem );
void EditSymbolText( wxDC* DC, LibEDA_BaseStruct* DrawItem );
void RotateSymbolText( wxDC* DC );
void DeleteDrawPoly( wxDC* DC );
LibDrawField* LocateField( LIB_COMPONENT* LibEntry );
LibEDA_BaseStruct* LocateItemUsingCursor();
void RotateField( wxDC* DC, LibDrawField* Field );
void PlaceField( wxDC* DC, LibDrawField* Field );
void EditField( wxDC* DC, LibDrawField* Field );
void StartMoveField( wxDC* DC, LibDrawField* field );
public:
/* Block commands: */
int ReturnBlockCommand( int key );
void HandleBlockPlace( wxDC* DC );
int HandleBlockEnd( wxDC* DC );
void PlacePin( wxDC* DC );
void InitEditOnePin();
void GlobalSetPins( wxDC* DC, LibDrawPin* MasterPin, int id );
// Repetition automatique de placement de pins
void RepeatPinItem( wxDC* DC, LibDrawPin* Pin );
protected:
wxString m_ConfigPath;
wxString m_LastLibImportPath;
wxString m_LastLibExportPath;
static LIB_COMPONENT* m_currentComponent;
DECLARE_EVENT_TABLE()
};
#endif /* __LIBEDITFRM_H__ */

View File

@ -11,19 +11,13 @@
#include "program.h" #include "program.h"
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "protos.h" #include "protos.h"
#include "libeditfrm.h"
/* Routines locales */ /* Routines locales */
static void ShowMoveField( WinEDA_DrawPanel* panel, wxDC* DC, bool erase ); static void ShowMoveField( WinEDA_DrawPanel* panel, wxDC* DC, bool erase );
/*
* if the field is the reference, return reference like schematic,
* i.e U -> U? or U?A or the field text for others
*/
static wxString ReturnFieldFullText( LibDrawField* aField );
/* Variables locales */ /* Variables locales */
extern int CurrentUnit; extern int CurrentUnit;
@ -55,7 +49,7 @@ void WinEDA_LibeditFrame::StartMoveField( wxDC* DC, LibDrawField* field )
{ {
wxPoint startPos; wxPoint startPos;
if( ( CurrentLibEntry == NULL ) || ( field == NULL ) ) if( ( m_currentComponent == NULL ) || ( field == NULL ) )
return; return;
CurrentDrawItem = field; CurrentDrawItem = field;
@ -77,37 +71,6 @@ void WinEDA_LibeditFrame::StartMoveField( wxDC* DC, LibDrawField* field )
} }
/*
* If the field is the reference, return reference like schematic,
* i.e U -> U? or U?A or the field text for others
*
* @fixme This should be handled by the field object.
*/
static wxString ReturnFieldFullText( LibDrawField* aField )
{
if( aField->m_FieldId != REFERENCE )
return aField->m_Text;
wxString text = aField->m_Text;
if( CurrentLibEntry->m_UnitCount > 1 )
{
#if defined(KICAD_GOST)
text.Printf( wxT( "%s?.%c" ),
aField->m_Text.GetData(), CurrentUnit + '1' - 1 );
#else
text.Printf( wxT( "%s?%c" ),
aField->m_Text.GetData(), CurrentUnit + 'A' - 1 );
#endif
}
else
text << wxT( "?" );
return text;
}
/*****************************************************************/ /*****************************************************************/
/* Routine d'affichage du texte 'Field' en cours de deplacement. */ /* Routine d'affichage du texte 'Field' en cours de deplacement. */
/* Routine normalement attachee au curseur */ /* Routine normalement attachee au curseur */
@ -116,10 +79,10 @@ static void ShowMoveField( WinEDA_DrawPanel* panel, wxDC* DC, bool erase )
{ {
LibDrawField* Field = (LibDrawField*) CurrentDrawItem; LibDrawField* Field = (LibDrawField*) CurrentDrawItem;
if( ( CurrentLibEntry == NULL ) || ( Field == NULL ) ) if( Field == NULL )
return; return;
wxString text = ReturnFieldFullText( Field ); wxString text = Field->GetFullText();
if( erase ) if( erase )
Field->Draw( panel, DC, wxPoint( 0, 0 ), -1, g_XorMode, &text, Field->Draw( panel, DC, wxPoint( 0, 0 ), -1, g_XorMode, &text,
@ -144,7 +107,7 @@ void WinEDA_LibeditFrame::PlaceField( wxDC* DC, LibDrawField* Field )
Field->m_Pos.y = -GetScreen()->m_Curseur.y; Field->m_Pos.y = -GetScreen()->m_Curseur.y;
DrawPanel->CursorOff( DC ); DrawPanel->CursorOff( DC );
wxString fieldText = ReturnFieldFullText( Field ); wxString fieldText = Field->GetFullText();
Field->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, GR_DEFAULT_DRAWMODE, Field->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, GR_DEFAULT_DRAWMODE,
&fieldText, DefaultTransformMatrix ); &fieldText, DefaultTransformMatrix );
@ -196,13 +159,13 @@ void WinEDA_LibeditFrame::EditField( wxDC* DC, LibDrawField* Field )
wxString msg; wxString msg;
/* Test for an existing name in the current components alias list. */ /* Test for an existing name in the current components alias list. */
if( CurrentLibEntry->m_AliasList.Index( Text, false ) != wxNOT_FOUND ) if( Field->GetParent()->m_AliasList.Index( Text, false ) != wxNOT_FOUND )
{ {
msg.Printf( _( "The field name <%s> is an existing alias of the \ msg.Printf( _( "The field name <%s> is an existing alias of the \
component <%s>.\nPlease choose another name that does not conflict with any \ component <%s>.\nPlease choose another name that does not conflict with any \
names in the alias list." ), names in the alias list." ),
(const wxChar*) Text, (const wxChar*) Text,
(const wxChar*) CurrentLibEntry->GetName() ); (const wxChar*) Field->GetParent()->GetName() );
DisplayError( this, msg ); DisplayError( this, msg );
return; return;
} }
@ -222,14 +185,14 @@ not conflict with any library entries." ),
} }
} }
wxString fieldText = ReturnFieldFullText( Field ); wxString fieldText = Field->GetFullText();
Field->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, g_XorMode, &fieldText, Field->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, g_XorMode, &fieldText,
DefaultTransformMatrix ); DefaultTransformMatrix );
if( !Text.IsEmpty() ) if( !Text.IsEmpty() )
{ {
SaveCopyInUndoList( CurrentLibEntry ); SaveCopyInUndoList( Field->GetParent() );
Field->m_Text = Text; Field->m_Text = Text;
} }
else else
@ -237,7 +200,7 @@ not conflict with any library entries." ),
DisplayError( this, _( "No new text: no change" ) ); DisplayError( this, _( "No new text: no change" ) );
} }
fieldText = ReturnFieldFullText( Field ); fieldText = Field->GetFullText();
int drawMode = g_XorMode; int drawMode = g_XorMode;
if( Field->m_Flags == 0 ) if( Field->m_Flags == 0 )
@ -266,7 +229,7 @@ void WinEDA_LibeditFrame::RotateField( wxDC* DC, LibDrawField* Field )
DrawPanel->CursorOff( DC ); DrawPanel->CursorOff( DC );
GRSetDrawMode( DC, g_XorMode ); GRSetDrawMode( DC, g_XorMode );
wxString fieldText = ReturnFieldFullText( Field ); wxString fieldText = Field->GetFullText();
Field->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, g_XorMode, &fieldText, Field->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, g_XorMode, &fieldText,
DefaultTransformMatrix ); DefaultTransformMatrix );
@ -324,33 +287,33 @@ LibEDA_BaseStruct* WinEDA_LibeditFrame::LocateItemUsingCursor()
{ {
LibEDA_BaseStruct* DrawEntry = CurrentDrawItem; LibEDA_BaseStruct* DrawEntry = CurrentDrawItem;
if( CurrentLibEntry == NULL ) if( m_currentComponent == NULL )
return NULL; return NULL;
if( ( DrawEntry == NULL ) || ( DrawEntry->m_Flags == 0 ) ) if( ( DrawEntry == NULL ) || ( DrawEntry->m_Flags == 0 ) )
{ {
DrawEntry = LocatePin( GetScreen()->m_Curseur, CurrentLibEntry, DrawEntry = LocatePin( GetScreen()->m_Curseur, m_currentComponent,
CurrentUnit, CurrentConvert ); CurrentUnit, CurrentConvert );
if( DrawEntry == NULL ) if( DrawEntry == NULL )
{ {
DrawEntry = CurrentDrawItem = DrawEntry = CurrentDrawItem =
LocateDrawItem( (SCH_SCREEN*) GetScreen(), LocateDrawItem( (SCH_SCREEN*) GetScreen(),
GetScreen()->m_MousePosition, GetScreen()->m_MousePosition,
CurrentLibEntry, CurrentUnit, m_currentComponent, CurrentUnit,
CurrentConvert, LOCATE_ALL_DRAW_ITEM ); CurrentConvert, LOCATE_ALL_DRAW_ITEM );
} }
if( DrawEntry == NULL ) if( DrawEntry == NULL )
{ {
DrawEntry = CurrentDrawItem = DrawEntry = CurrentDrawItem =
LocateDrawItem( (SCH_SCREEN*) GetScreen(), LocateDrawItem( (SCH_SCREEN*) GetScreen(),
GetScreen()->m_Curseur, CurrentLibEntry, GetScreen()->m_Curseur, m_currentComponent,
CurrentUnit, CurrentConvert, CurrentUnit, CurrentConvert,
LOCATE_ALL_DRAW_ITEM ); LOCATE_ALL_DRAW_ITEM );
} }
if( DrawEntry == NULL ) if( DrawEntry == NULL )
{ {
DrawEntry = CurrentDrawItem = DrawEntry = CurrentDrawItem =
(LibEDA_BaseStruct*) LocateField( CurrentLibEntry ); (LibEDA_BaseStruct*) LocateField( m_currentComponent );
} }
} }

View File

@ -11,13 +11,15 @@
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "confirm.h" #include "confirm.h"
#include "eda_doc.h" #include "eda_doc.h"
#include "program.h" #include "program.h"
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "bitmaps.h" #include "bitmaps.h"
#include "protos.h" #include "protos.h"
#include "id.h" #include "eeschema_id.h"
#include "class_library.h" #include "class_library.h"
#include "libeditfrm.h"
#include <boost/foreach.hpp> #include <boost/foreach.hpp>
@ -35,6 +37,9 @@ int ImportPartId = ::wxNewId();
int CreateNewLibAndSavePartId = ::wxNewId(); int CreateNewLibAndSavePartId = ::wxNewId();
LIB_COMPONENT* WinEDA_LibeditFrame::m_currentComponent = NULL;
/*****************************/ /*****************************/
/* class WinEDA_LibeditFrame */ /* class WinEDA_LibeditFrame */
/*****************************/ /*****************************/
@ -49,9 +54,9 @@ BEGIN_EVENT_TABLE( WinEDA_LibeditFrame, WinEDA_DrawFrame )
EVT_TOOL( ID_LIBEDIT_SELECT_CURRENT_LIB, EVT_TOOL( ID_LIBEDIT_SELECT_CURRENT_LIB,
WinEDA_LibeditFrame::Process_Special_Functions ) WinEDA_LibeditFrame::Process_Special_Functions )
EVT_TOOL( ID_LIBEDIT_DELETE_PART, EVT_TOOL( ID_LIBEDIT_DELETE_PART,
WinEDA_LibeditFrame::Process_Special_Functions ) WinEDA_LibeditFrame::DeleteOnePart )
EVT_TOOL( ID_LIBEDIT_NEW_PART, EVT_TOOL( ID_LIBEDIT_NEW_PART,
WinEDA_LibeditFrame::Process_Special_Functions ) WinEDA_LibeditFrame::CreateNewLibraryPart )
EVT_TOOL( ID_LIBEDIT_SELECT_PART, EVT_TOOL( ID_LIBEDIT_SELECT_PART,
WinEDA_LibeditFrame::Process_Special_Functions ) WinEDA_LibeditFrame::Process_Special_Functions )
EVT_TOOL( ID_LIBEDIT_SAVE_CURRENT_PART, EVT_TOOL( ID_LIBEDIT_SAVE_CURRENT_PART,
@ -63,7 +68,7 @@ BEGIN_EVENT_TABLE( WinEDA_LibeditFrame, WinEDA_DrawFrame )
EVT_TOOL( ID_LIBEDIT_GET_FRAME_EDIT_PART, EVT_TOOL( ID_LIBEDIT_GET_FRAME_EDIT_PART,
WinEDA_LibeditFrame::OnEditComponentProperties ) WinEDA_LibeditFrame::OnEditComponentProperties )
EVT_TOOL( ID_LIBEDIT_GET_FRAME_EDIT_FIELDS, EVT_TOOL( ID_LIBEDIT_GET_FRAME_EDIT_FIELDS,
WinEDA_LibeditFrame::Process_Special_Functions ) WinEDA_LibeditFrame::InstallFieldsEditorDialog )
EVT_TOOL( ID_LIBEDIT_CHECK_PART, EVT_TOOL( ID_LIBEDIT_CHECK_PART,
WinEDA_LibeditFrame::Process_Special_Functions ) WinEDA_LibeditFrame::Process_Special_Functions )
EVT_TOOL( ID_DE_MORGAN_NORMAL_BUTT, EVT_TOOL( ID_DE_MORGAN_NORMAL_BUTT,
@ -86,11 +91,12 @@ BEGIN_EVENT_TABLE( WinEDA_LibeditFrame, WinEDA_DrawFrame )
/* Right vertical toolbar. */ /* Right vertical toolbar. */
EVT_TOOL( ID_NO_SELECT_BUTT, WinEDA_LibeditFrame::Process_Special_Functions ) EVT_TOOL( ID_NO_SELECT_BUTT, WinEDA_LibeditFrame::Process_Special_Functions )
EVT_TOOL_RANGE( ID_LIBEDIT_START_V_TOOL, ID_LIBEDIT_END_V_TOOL, EVT_TOOL_RANGE( ID_LIBEDIT_PIN_BUTT, ID_LIBEDIT_EXPORT_BODY_BUTT,
WinEDA_LibeditFrame::Process_Special_Functions ) WinEDA_LibeditFrame::Process_Special_Functions )
/* Context menu events and commands. */ /* Context menu events and commands. */
EVT_MENU_RANGE( ID_POPUP_START_RANGE, ID_POPUP_END_RANGE, EVT_MENU_RANGE( ID_POPUP_LIBEDIT_PIN_EDIT,
ID_POPUP_LIBEDIT_ROTATE_GRAPHIC_TEXT,
WinEDA_LibeditFrame::Process_Special_Functions ) WinEDA_LibeditFrame::Process_Special_Functions )
EVT_MENU_RANGE( ID_POPUP_GENERAL_START_RANGE, ID_POPUP_GENERAL_END_RANGE, EVT_MENU_RANGE( ID_POPUP_GENERAL_START_RANGE, ID_POPUP_GENERAL_END_RANGE,
@ -246,9 +252,9 @@ int WinEDA_LibeditFrame::BestZoom()
wxSize size; wxSize size;
EDA_Rect BoundaryBox; EDA_Rect BoundaryBox;
if( CurrentLibEntry ) if( m_currentComponent )
{ {
BoundaryBox = CurrentLibEntry->GetBoundaryBox( CurrentUnit, BoundaryBox = m_currentComponent->GetBoundaryBox( CurrentUnit,
CurrentConvert ); CurrentConvert );
dx = BoundaryBox.GetWidth(); dx = BoundaryBox.GetWidth();
dy = BoundaryBox.GetHeight(); dy = BoundaryBox.GetHeight();
@ -266,7 +272,7 @@ int WinEDA_LibeditFrame::BestZoom()
bestzoom = MAX( ii, jj ) + 1; bestzoom = MAX( ii, jj ) + 1;
if( CurrentLibEntry ) if( m_currentComponent )
{ {
GetScreen()->m_Curseur = BoundaryBox.Centre(); GetScreen()->m_Curseur = BoundaryBox.Centre();
} }
@ -287,15 +293,15 @@ void WinEDA_LibeditFrame::UpdateAliasSelectList()
m_SelAliasBox->Clear(); m_SelAliasBox->Clear();
if( CurrentLibEntry == NULL ) if( m_currentComponent == NULL )
return; return;
m_SelAliasBox->Append( CurrentLibEntry->GetName() ); m_SelAliasBox->Append( m_currentComponent->GetName() );
m_SelAliasBox->SetSelection( 0 ); m_SelAliasBox->SetSelection( 0 );
if( !CurrentLibEntry->m_AliasList.IsEmpty() ) if( !m_currentComponent->m_AliasList.IsEmpty() )
{ {
m_SelAliasBox->Append( CurrentLibEntry->m_AliasList ); m_SelAliasBox->Append( m_currentComponent->m_AliasList );
int index = m_SelAliasBox->FindString( CurrentAliasName ); int index = m_SelAliasBox->FindString( CurrentAliasName );
@ -314,13 +320,13 @@ void WinEDA_LibeditFrame::UpdatePartSelectList()
if( m_SelpartBox->GetCount() != 0 ) if( m_SelpartBox->GetCount() != 0 )
m_SelpartBox->Clear(); m_SelpartBox->Clear();
if( CurrentLibEntry == NULL || CurrentLibEntry->m_UnitCount <= 1 ) if( m_currentComponent == NULL || m_currentComponent->m_UnitCount <= 1 )
{ {
m_SelpartBox->Append( wxEmptyString ); m_SelpartBox->Append( wxEmptyString );
} }
else else
{ {
for( int i = 0; i < CurrentLibEntry->m_UnitCount; i++ ) for( int i = 0; i < m_currentComponent->m_UnitCount; i++ )
{ {
wxString msg; wxString msg;
msg.Printf( _( "Part %c" ), 'A' + i ); msg.Printf( _( "Part %c" ), 'A' + i );
@ -334,26 +340,26 @@ void WinEDA_LibeditFrame::UpdatePartSelectList()
void WinEDA_LibeditFrame::OnUpdateEditingPart( wxUpdateUIEvent& event ) void WinEDA_LibeditFrame::OnUpdateEditingPart( wxUpdateUIEvent& event )
{ {
event.Enable( CurrentLibEntry != NULL ); event.Enable( m_currentComponent != NULL );
} }
void WinEDA_LibeditFrame::OnUpdateNotEditingPart( wxUpdateUIEvent& event ) void WinEDA_LibeditFrame::OnUpdateNotEditingPart( wxUpdateUIEvent& event )
{ {
event.Enable( CurrentLibEntry == NULL ); event.Enable( m_currentComponent == NULL );
} }
void WinEDA_LibeditFrame::OnUpdateUndo( wxUpdateUIEvent& event ) void WinEDA_LibeditFrame::OnUpdateUndo( wxUpdateUIEvent& event )
{ {
event.Enable( CurrentLibEntry != NULL && GetScreen() != NULL event.Enable( m_currentComponent != NULL && GetScreen() != NULL
&& GetScreen()->GetUndoCommandCount() != 0 ); && GetScreen()->GetUndoCommandCount() != 0 );
} }
void WinEDA_LibeditFrame::OnUpdateRedo( wxUpdateUIEvent& event ) void WinEDA_LibeditFrame::OnUpdateRedo( wxUpdateUIEvent& event )
{ {
event.Enable( CurrentLibEntry != NULL && GetScreen() != NULL event.Enable( m_currentComponent != NULL && GetScreen() != NULL
&& GetScreen()->GetRedoCommandCount() != 0 ); && GetScreen()->GetRedoCommandCount() != 0 );
} }
@ -369,7 +375,7 @@ void WinEDA_LibeditFrame::OnUpdateViewDoc( wxUpdateUIEvent& event )
{ {
bool enable = false; bool enable = false;
if( CurrentLibEntry != NULL && CurrentLib != NULL ) if( m_currentComponent != NULL && CurrentLib != NULL )
{ {
if( !CurrentAliasName.IsEmpty() ) if( !CurrentAliasName.IsEmpty() )
{ {
@ -378,7 +384,7 @@ void WinEDA_LibeditFrame::OnUpdateViewDoc( wxUpdateUIEvent& event )
if( entry != NULL ) if( entry != NULL )
enable = !entry->m_DocFile.IsEmpty(); enable = !entry->m_DocFile.IsEmpty();
} }
else if( !CurrentLibEntry->m_DocFile.IsEmpty() ) else if( !m_currentComponent->m_DocFile.IsEmpty() )
{ {
enable = true; enable = true;
} }
@ -390,8 +396,9 @@ void WinEDA_LibeditFrame::OnUpdateViewDoc( wxUpdateUIEvent& event )
void WinEDA_LibeditFrame::OnUpdatePinByPin( wxUpdateUIEvent& event ) void WinEDA_LibeditFrame::OnUpdatePinByPin( wxUpdateUIEvent& event )
{ {
event.Enable( ( CurrentLibEntry != NULL ) event.Enable( ( m_currentComponent != NULL )
&& ( ( CurrentLibEntry->m_UnitCount > 1 ) || g_AsDeMorgan ) ); && ( ( m_currentComponent->m_UnitCount > 1 )
|| g_AsDeMorgan ) );
if( m_HToolBar ) if( m_HToolBar )
m_HToolBar->ToggleTool( event.GetId(), g_EditPinByPinIsOn ); m_HToolBar->ToggleTool( event.GetId(), g_EditPinByPinIsOn );
@ -406,8 +413,8 @@ void WinEDA_LibeditFrame::OnUpdatePartNumber( wxUpdateUIEvent& event )
/* Using the typical event.Enable() call dosen't seem to work with wxGTK /* Using the typical event.Enable() call dosen't seem to work with wxGTK
* so use the pointer to alias combobox to directly enable or disable. * so use the pointer to alias combobox to directly enable or disable.
*/ */
m_SelpartBox->Enable( CurrentLibEntry != NULL m_SelpartBox->Enable( m_currentComponent != NULL
&& CurrentLibEntry->m_UnitCount > 1 ); && m_currentComponent->m_UnitCount > 1 );
} }
@ -416,7 +423,8 @@ void WinEDA_LibeditFrame::OnUpdateDeMorganNormal( wxUpdateUIEvent& event )
if( m_HToolBar == NULL ) if( m_HToolBar == NULL )
return; return;
event.Enable( CurrentLibEntry != NULL && CurrentLibEntry->HasConversion() ); event.Enable( m_currentComponent != NULL
&& m_currentComponent->HasConversion() );
m_HToolBar->ToggleTool( event.GetId(), CurrentConvert <= 1 ); m_HToolBar->ToggleTool( event.GetId(), CurrentConvert <= 1 );
} }
@ -426,7 +434,8 @@ void WinEDA_LibeditFrame::OnUpdateDeMorganConvert( wxUpdateUIEvent& event )
if( m_HToolBar == NULL ) if( m_HToolBar == NULL )
return; return;
event.Enable( CurrentLibEntry != NULL && CurrentLibEntry->HasConversion() ); event.Enable( m_currentComponent != NULL
&& m_currentComponent->HasConversion() );
m_HToolBar->ToggleTool( event.GetId(), CurrentConvert > 1 ); m_HToolBar->ToggleTool( event.GetId(), CurrentConvert > 1 );
} }
@ -439,8 +448,8 @@ void WinEDA_LibeditFrame::OnUpdateSelectAlias( wxUpdateUIEvent& event )
/* Using the typical event.Enable() call dosen't seem to work with wxGTK /* Using the typical event.Enable() call dosen't seem to work with wxGTK
* so use the pointer to alias combobox to directly enable or disable. * so use the pointer to alias combobox to directly enable or disable.
*/ */
m_SelAliasBox->Enable( CurrentLibEntry != NULL m_SelAliasBox->Enable( m_currentComponent != NULL
&& !CurrentLibEntry->m_AliasList.IsEmpty() ); && !m_currentComponent->m_AliasList.IsEmpty() );
} }
@ -452,7 +461,7 @@ void WinEDA_LibeditFrame::OnSelectAlias( wxCommandEvent& event )
LibItemToRepeat = NULL; LibItemToRepeat = NULL;
if( m_SelAliasBox->GetStringSelection().CmpNoCase(CurrentLibEntry->GetName() ) == 0 ) if( m_SelAliasBox->GetStringSelection().CmpNoCase(m_currentComponent->GetName() ) == 0 )
CurrentAliasName.Empty(); CurrentAliasName.Empty();
else else
CurrentAliasName = m_SelAliasBox->GetStringSelection(); CurrentAliasName = m_SelAliasBox->GetStringSelection();
@ -525,18 +534,6 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
switch( id ) switch( id )
{ {
case ID_LIBEDIT_NEW_PART:
{
g_EditPinByPinIsOn = false;
LibItemToRepeat = NULL;
CreateNewLibraryPart();
UpdateAliasSelectList();
UpdatePartSelectList();
GetScreen()->ClearUndoRedoList();
DrawPanel->Refresh();
break;
}
case ID_LIBEDIT_SELECT_CURRENT_LIB: case ID_LIBEDIT_SELECT_CURRENT_LIB:
SelectActiveLibrary(); SelectActiveLibrary();
break; break;
@ -555,19 +552,8 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
SaveOnePartInMemory(); SaveOnePartInMemory();
break; break;
case ID_LIBEDIT_GET_FRAME_EDIT_FIELDS:
InstallFieldsEditorDialog( );
UpdateAliasSelectList();
UpdatePartSelectList();
break;
case ID_LIBEDIT_DELETE_PART:
LibItemToRepeat = NULL;
DeleteOnePart();
break;
case ID_LIBEDIT_CHECK_PART: case ID_LIBEDIT_CHECK_PART:
if( CurrentLibEntry && TestPins( CurrentLibEntry ) == false ) if( m_currentComponent && TestPins( m_currentComponent ) == false )
DisplayInfoMessage( this, _( " Pins Test OK!" ) ); DisplayInfoMessage( this, _( " Pins Test OK!" ) );
break; break;
@ -584,7 +570,7 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
break; break;
case ID_LIBEDIT_VIEW_DOC: case ID_LIBEDIT_VIEW_DOC:
if( CurrentLibEntry ) if( m_currentComponent )
{ {
wxString docfilename; wxString docfilename;
if( !CurrentAliasName.IsEmpty() ) if( !CurrentAliasName.IsEmpty() )
@ -594,7 +580,7 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
docfilename = entry->m_DocFile; docfilename = entry->m_DocFile;
} }
else else
docfilename = CurrentLibEntry->m_DocFile; docfilename = m_currentComponent->m_DocFile;
if( !docfilename.IsEmpty() ) if( !docfilename.IsEmpty() )
GetAssociatedDocument( this, docfilename, GetAssociatedDocument( this, docfilename,
@ -611,7 +597,7 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
break; break;
case ID_LIBEDIT_PIN_BUTT: case ID_LIBEDIT_PIN_BUTT:
if( CurrentLibEntry ) if( m_currentComponent )
{ {
SetToolID( id, wxCURSOR_PENCIL, _( "Add Pin" ) ); SetToolID( id, wxCURSOR_PENCIL, _( "Add Pin" ) );
} }
@ -707,7 +693,7 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
case ID_LIBEDIT_DELETE_ITEM_BUTT: case ID_LIBEDIT_DELETE_ITEM_BUTT:
if( CurrentLibEntry == NULL ) if( m_currentComponent == NULL )
{ {
wxBell(); wxBell();
break; break;
@ -729,17 +715,17 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
break; break;
DrawPanel->MouseToCursorSchema(); DrawPanel->MouseToCursorSchema();
DrawPanel->CursorOff( &dc ); DrawPanel->CursorOff( &dc );
SaveCopyInUndoList( CurrentLibEntry ); SaveCopyInUndoList( m_currentComponent );
if( CurrentDrawItem->Type() == COMPONENT_PIN_DRAW_TYPE ) if( CurrentDrawItem->Type() == COMPONENT_PIN_DRAW_TYPE )
{ {
DeletePin( &dc, CurrentLibEntry, (LibDrawPin*) CurrentDrawItem ); DeletePin( &dc, m_currentComponent, (LibDrawPin*) CurrentDrawItem );
} }
else else
{ {
if( DrawPanel->ManageCurseur && DrawPanel->ForceCloseManageCurseur ) if( DrawPanel->ManageCurseur && DrawPanel->ForceCloseManageCurseur )
DrawPanel->ForceCloseManageCurseur( DrawPanel, &dc ); DrawPanel->ForceCloseManageCurseur( DrawPanel, &dc );
else else
CurrentLibEntry->RemoveDrawItem( CurrentDrawItem, DrawPanel, m_currentComponent->RemoveDrawItem( CurrentDrawItem, DrawPanel,
&dc ); &dc );
} }
@ -766,7 +752,7 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
DrawPanel->CursorOff( &dc ); DrawPanel->CursorOff( &dc );
DrawPanel->MouseToCursorSchema(); DrawPanel->MouseToCursorSchema();
if( (CurrentDrawItem->m_Flags & IS_NEW) == 0 ) if( (CurrentDrawItem->m_Flags & IS_NEW) == 0 )
SaveCopyInUndoList( CurrentLibEntry ); SaveCopyInUndoList( m_currentComponent );
RotateSymbolText( &dc ); RotateSymbolText( &dc );
DrawPanel->CursorOn( &dc ); DrawPanel->CursorOn( &dc );
break; break;
@ -778,7 +764,7 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
DrawPanel->MouseToCursorSchema(); DrawPanel->MouseToCursorSchema();
if( CurrentDrawItem->Type() == COMPONENT_FIELD_DRAW_TYPE ) if( CurrentDrawItem->Type() == COMPONENT_FIELD_DRAW_TYPE )
{ {
SaveCopyInUndoList( CurrentLibEntry ); SaveCopyInUndoList( m_currentComponent );
RotateField( &dc, (LibDrawField*) CurrentDrawItem ); RotateField( &dc, (LibDrawField*) CurrentDrawItem );
} }
DrawPanel->CursorOn( &dc ); DrawPanel->CursorOn( &dc );
@ -802,7 +788,7 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
if( (CurrentDrawItem == NULL ) if( (CurrentDrawItem == NULL )
|| (CurrentDrawItem->Type() != COMPONENT_PIN_DRAW_TYPE) ) || (CurrentDrawItem->Type() != COMPONENT_PIN_DRAW_TYPE) )
break; break;
SaveCopyInUndoList( CurrentLibEntry ); SaveCopyInUndoList( m_currentComponent );
GlobalSetPins( &dc, (LibDrawPin*) CurrentDrawItem, id ); GlobalSetPins( &dc, (LibDrawPin*) CurrentDrawItem, id );
DrawPanel->MouseToCursorSchema(); DrawPanel->MouseToCursorSchema();
break; break;

71
eeschema/libviewfrm.h Normal file
View File

@ -0,0 +1,71 @@
#ifndef __LIBVIEWFRM_H__
#define __LIBVIEWFRM_H__
class WinEDAChoiceBox;
class SCH_SCREEN;
class CMP_LIBRARY;
/**
* Component library viewer main window.
*/
class WinEDA_ViewlibFrame : public WinEDA_DrawFrame
{
private:
WinEDAChoiceBox* SelpartBox;
// List of libraries (for selection )
wxSashLayoutWindow* m_LibListWindow;
wxListBox* m_LibList; // The list of libs
wxSize m_LibListSize; // size of the window
// List of components in the selected library
wxSashLayoutWindow* m_CmpListWindow;
wxListBox* m_CmpList; // The list of components
wxSize m_CmpListSize; // size of the window
// Flags
wxSemaphore* m_Semaphore; // != NULL if the frame must emulate a modal dialog
wxString m_ConfigPath; // subpath for configuartion
public:
WinEDA_ViewlibFrame( wxWindow* father,
CMP_LIBRARY* Library = NULL,
wxSemaphore* semaphore = NULL );
~WinEDA_ViewlibFrame();
void OnSize( wxSizeEvent& event );
void OnSashDrag( wxSashEvent& event );
void ReCreateListLib();
void ReCreateListCmp();
void Process_Special_Functions( wxCommandEvent& event );
void DisplayLibInfos();
void RedrawActiveWindow( wxDC* DC, bool EraseBg );
void OnCloseWindow( wxCloseEvent& Event );
void ReCreateHToolbar();
void ReCreateVToolbar();
void OnLeftClick( wxDC* DC, const wxPoint& MousePos );
int BestZoom(); // Retourne le meilleur zoom
void ClickOnLibList( wxCommandEvent& event );
void ClickOnCmpList( wxCommandEvent& event );
SCH_SCREEN* GetScreen() { return (SCH_SCREEN*) GetBaseScreen(); }
void GeneralControle( wxDC* DC, wxPoint MousePositionInPixels );
void LoadSettings();
void SaveSettings();
private:
void SelectCurrentLibrary();
void SelectAndViewLibraryPart( int option );
void ExportToSchematicLibraryPart( wxCommandEvent& event );
void ViewOneLibraryContent( CMP_LIBRARY* Lib, int Flag );
bool OnRightClick( const wxPoint& MousePos, wxMenu* PopMenu );
DECLARE_EVENT_TABLE()
};
#endif /* __LIBVIEWFRM_H__ */

View File

@ -14,7 +14,7 @@
#include "general.h" #include "general.h"
#include "bitmaps.h" #include "bitmaps.h"
#include "protos.h" #include "protos.h"
#include "id.h" #include "eeschema_id.h"
#include "hotkeys.h" #include "hotkeys.h"

View File

@ -4,7 +4,7 @@
#include "fctsys.h" #include "fctsys.h"
#include "common.h" #include "common.h"
#include "id.h" #include "eeschema_id.h"
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "confirm.h" #include "confirm.h"

View File

@ -5,7 +5,7 @@
#include "fctsys.h" #include "fctsys.h"
#include "common.h" #include "common.h"
#include "id.h" #include "eeschema_id.h"
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "confirm.h" #include "confirm.h"

View File

@ -14,9 +14,9 @@
#ifndef _PINEDIT_DIALOG_H_ #ifndef _PINEDIT_DIALOG_H_
#define _PINEDIT_DIALOG_H_ #define _PINEDIT_DIALOG_H_
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) /* #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) */
#pragma interface "pinedit-dialog.h" /* #pragma interface "pinedit-dialog.h" */
#endif /* #endif */
/*! /*!
* Includes * Includes
@ -29,8 +29,8 @@
#include "program.h" #include "program.h"
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "id.h" #include "eeschema_id.h"
#include "libeditfrm.h"
#include "protos.h" #include "protos.h"
////@begin includes ////@begin includes

View File

@ -2,9 +2,11 @@
/* EESchema - PinEdit.cpp */ /* EESchema - PinEdit.cpp */
/***************************/ /***************************/
#if defined (__GNUG__) && !defined (NO_GCC_PRAGMA) #include "fctsys.h"
#pragma implementation "pinedit-dialog.h"
#endif #include "program.h"
#include "libeditfrm.h"
#include "eeschema_id.h"
#include "pinedit-dialog.h" #include "pinedit-dialog.h"
@ -83,7 +85,7 @@ void WinEDA_PinPropertiesFrame::PinPropertiesAccept( wxCommandEvent& event )
if( CurrentDrawItem ) // Set Pin Name & Num if( CurrentDrawItem ) // Set Pin Name & Num
{ {
if( !(CurrentDrawItem->m_Flags & IS_NEW) ) // if IS_NEW, copy for undo is done before place if( !(CurrentDrawItem->m_Flags & IS_NEW) ) // if IS_NEW, copy for undo is done before place
m_Parent->SaveCopyInUndoList( CurrentLibEntry ); m_Parent->SaveCopyInUndoList( CurrentDrawItem->GetParent() );
SetPinName( m_PinNameCtrl->GetValue(), LastPinNameSize ); SetPinName( m_PinNameCtrl->GetValue(), LastPinNameSize );
msg = m_PinNumCtrl->GetValue(); msg = m_PinNumCtrl->GetValue();
@ -117,13 +119,13 @@ void WinEDA_LibeditFrame::InitEditOnePin()
LibDrawPin* Pin; LibDrawPin* Pin;
LibDrawPin* CurrentPin = (LibDrawPin*) CurrentDrawItem; LibDrawPin* CurrentPin = (LibDrawPin*) CurrentDrawItem;
if( CurrentLibEntry == NULL ) if( m_currentComponent == NULL )
return; return;
if( CurrentPin == NULL ) if( CurrentPin == NULL )
return; return;
/* Marquage des pins a traiter,Si edition d'une pin non deja selectionnee */ /* Marquage des pins a traiter,Si edition d'une pin non deja selectionnee */
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings; Pin = (LibDrawPin*) m_currentComponent->m_Drawings;
for( ; Pin != NULL; Pin = Pin->Next() ) for( ; Pin != NULL; Pin = Pin->Next() )
{ {
if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE ) if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE )
@ -154,10 +156,10 @@ static void AbortPinMove( WinEDA_DrawPanel* Panel, wxDC* DC )
LibDrawPin* CurrentPin = (LibDrawPin*) CurrentDrawItem; LibDrawPin* CurrentPin = (LibDrawPin*) CurrentDrawItem;
if( CurrentPin && ( CurrentPin->m_Flags & IS_NEW ) ) if( CurrentPin && ( CurrentPin->m_Flags & IS_NEW ) )
CurrentLibEntry->RemoveDrawItem( CurrentPin, Panel, DC ); CurrentPin->GetParent()->RemoveDrawItem( CurrentPin, Panel, DC );
/* clear edit flags */ /* clear edit flags */
LibEDA_BaseStruct* item = CurrentLibEntry->m_Drawings; LibEDA_BaseStruct* item = CurrentPin->GetParent()->m_Drawings;
for( ; item != NULL; item = item->Next() ) for( ; item != NULL; item = item->Next() )
item->m_Flags = 0; item->m_Flags = 0;
@ -186,7 +188,7 @@ void WinEDA_LibeditFrame::PlacePin( wxDC* DC )
newpos.x = GetScreen()->m_Curseur.x; newpos.x = GetScreen()->m_Curseur.x;
newpos.y = -GetScreen()->m_Curseur.y; newpos.y = -GetScreen()->m_Curseur.y;
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings; Pin = (LibDrawPin*) m_currentComponent->m_Drawings;
// Tst for an other pin in same new position: // Tst for an other pin in same new position:
for( ; Pin != NULL; Pin = Pin->Next() ) for( ; Pin != NULL; Pin = Pin->Next() )
@ -227,7 +229,7 @@ void WinEDA_LibeditFrame::PlacePin( wxDC* DC )
} }
/* Put linked pins in new position, and clear flags */ /* Put linked pins in new position, and clear flags */
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings; Pin = (LibDrawPin*) m_currentComponent->m_Drawings;
for( ; Pin != NULL; Pin = Pin->Next() ) for( ; Pin != NULL; Pin = Pin->Next() )
{ {
if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE ) if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE )
@ -255,7 +257,7 @@ void WinEDA_PinPropertiesFrame::SetPinOrient( int neworient )
LibDrawPin* CurrentPin = (LibDrawPin*) CurrentDrawItem; LibDrawPin* CurrentPin = (LibDrawPin*) CurrentDrawItem;
LibDrawPin* Pin, * RefPin = CurrentPin; LibDrawPin* Pin, * RefPin = CurrentPin;
if( CurrentLibEntry == NULL ) if( CurrentPin == NULL || CurrentPin->GetParent() == NULL )
return; return;
if( RefPin == NULL ) if( RefPin == NULL )
return; return;
@ -265,7 +267,7 @@ void WinEDA_PinPropertiesFrame::SetPinOrient( int neworient )
/* Rotation */ /* Rotation */
RefPin->m_Orient = neworient; RefPin->m_Orient = neworient;
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings; Pin = (LibDrawPin*) CurrentPin->GetParent()->m_Drawings;
for( ; Pin != NULL; Pin = Pin->Next() ) for( ; Pin != NULL; Pin = Pin->Next() )
{ {
if( Pin->m_Flags == 0 ) if( Pin->m_Flags == 0 )
@ -291,7 +293,7 @@ void WinEDA_LibeditFrame::StartMovePin( wxDC* DC )
wxPoint startPos; wxPoint startPos;
/* Marquage des pins a traiter */ /* Marquage des pins a traiter */
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings; Pin = (LibDrawPin*) m_currentComponent->m_Drawings;
for( ; Pin != NULL; Pin = Pin->Next() ) for( ; Pin != NULL; Pin = Pin->Next() )
{ {
Pin->m_Flags = 0; Pin->m_Flags = 0;
@ -373,7 +375,7 @@ void WinEDA_PinPropertiesFrame::SetPinShape( int newshape )
m_Parent->GetScreen()->SetModify(); m_Parent->GetScreen()->SetModify();
CurrentPin->DisplayInfo( m_Parent ); CurrentPin->DisplayInfo( m_Parent );
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings; Pin = (LibDrawPin*) CurrentPin->GetParent()->m_Drawings;
for( ; Pin != NULL; Pin = Pin->Next() ) for( ; Pin != NULL; Pin = Pin->Next() )
{ {
if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE ) if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE )
@ -400,13 +402,13 @@ void WinEDA_PinPropertiesFrame::SetPinType( int newtype )
LibDrawPin* Pin; LibDrawPin* Pin;
LibDrawPin* CurrentPin = (LibDrawPin*) CurrentDrawItem; LibDrawPin* CurrentPin = (LibDrawPin*) CurrentDrawItem;
if( CurrentPin == NULL ) if( CurrentPin == NULL || CurrentPin->GetParent() == NULL )
return; return;
CurrentPin->m_PinType = newtype; CurrentPin->m_PinType = newtype;
m_Parent->GetScreen()->SetModify(); m_Parent->GetScreen()->SetModify();
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings; Pin = (LibDrawPin*) CurrentPin->GetParent()->m_Drawings;
for( ; Pin != NULL; Pin = Pin->Next() ) for( ; Pin != NULL; Pin = Pin->Next() )
{ {
if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE ) if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE )
@ -431,6 +433,9 @@ void WinEDA_PinPropertiesFrame::SetPinName( const wxString& newname, int newsize
LibDrawPin* CurrentPin = (LibDrawPin*) CurrentDrawItem; LibDrawPin* CurrentPin = (LibDrawPin*) CurrentDrawItem;
wxString buf; wxString buf;
if( CurrentPin == NULL || CurrentPin->GetParent() == NULL )
return;
buf = newname; buf = newname;
buf.Replace( wxT( " " ), wxT( "_" ) ); buf.Replace( wxT( " " ), wxT( "_" ) );
@ -442,7 +447,7 @@ void WinEDA_PinPropertiesFrame::SetPinName( const wxString& newname, int newsize
m_Parent->GetScreen()->SetModify(); m_Parent->GetScreen()->SetModify();
/* Traitement des autres pins */ /* Traitement des autres pins */
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings; Pin = (LibDrawPin*) CurrentPin->GetParent()->m_Drawings;
for( ; Pin != NULL; Pin = Pin->Next() ) for( ; Pin != NULL; Pin = Pin->Next() )
{ {
if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE ) if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE )
@ -474,7 +479,7 @@ void WinEDA_PinPropertiesFrame::SetPinNum( const wxString& newnum, int newsize )
buf = newnum; buf = newnum;
buf.Replace( wxT( " " ), wxT( "_" ) ); buf.Replace( wxT( " " ), wxT( "_" ) );
if( CurrentPin == NULL ) if( CurrentPin == NULL || CurrentPin->GetParent() == NULL )
return; return;
CurrentPin->m_PinNum = 0; CurrentPin->m_PinNum = 0;
@ -484,7 +489,7 @@ void WinEDA_PinPropertiesFrame::SetPinNum( const wxString& newnum, int newsize )
CurrentPin->SetPinNumFromString( buf ); CurrentPin->SetPinNumFromString( buf );
m_Parent->GetScreen()->SetModify(); m_Parent->GetScreen()->SetModify();
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings; Pin = (LibDrawPin*) CurrentPin->GetParent()->m_Drawings;
for( ; Pin != NULL; Pin = Pin->Next() ) for( ; Pin != NULL; Pin = Pin->Next() )
{ {
if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE ) if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE )
@ -552,15 +557,15 @@ void WinEDA_LibeditFrame::CreatePin( wxDC* DC )
LibDrawPin* CurrentPin; LibDrawPin* CurrentPin;
bool showPinText = true; bool showPinText = true;
if( CurrentLibEntry == NULL ) if( m_currentComponent == NULL )
return; return;
/* Effacement des flags */ /* Effacement des flags */
DrawItem = CurrentLibEntry->m_Drawings; DrawItem = m_currentComponent->m_Drawings;
for( ; DrawItem != NULL; DrawItem = DrawItem->Next() ) for( ; DrawItem != NULL; DrawItem = DrawItem->Next() )
DrawItem->m_Flags = 0; DrawItem->m_Flags = 0;
CurrentPin = new LibDrawPin(CurrentLibEntry); CurrentPin = new LibDrawPin(m_currentComponent);
CurrentDrawItem = CurrentPin; CurrentDrawItem = CurrentPin;
if( CurrentPin == NULL ) if( CurrentPin == NULL )
@ -594,9 +599,9 @@ void WinEDA_LibeditFrame::CreatePin( wxDC* DC )
else else
CurrentPin->m_Attributs &= ~PINNOTDRAW; CurrentPin->m_Attributs &= ~PINNOTDRAW;
CurrentPin->SetNext( CurrentLibEntry->m_Drawings ); CurrentPin->SetNext( m_currentComponent->m_Drawings );
CurrentLibEntry->m_Drawings = CurrentPin; m_currentComponent->m_Drawings = CurrentPin;
CurrentLibEntry->SortDrawItems(); m_currentComponent->SortDrawItems();
if( DC ) if( DC )
CurrentPin->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, g_XorMode, CurrentPin->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, g_XorMode,
@ -651,11 +656,11 @@ void WinEDA_PinPropertiesFrame::SetAttributsPin( bool draw,
else else
CurrentPin->m_Unit = CurrentUnit; CurrentPin->m_Unit = CurrentUnit;
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings; Pin = (LibDrawPin*) CurrentPin->GetParent()->m_Drawings;
if( CurrentPin->m_Unit == 0 ) if( CurrentPin->m_Unit == 0 )
{ {
DrawItem = CurrentLibEntry->m_Drawings; DrawItem = CurrentPin->GetParent()->m_Drawings;
for( ; DrawItem != NULL; ) for( ; DrawItem != NULL; )
{ {
Pin = (LibDrawPin*) DrawItem; Pin = (LibDrawPin*) DrawItem;
@ -674,7 +679,7 @@ void WinEDA_PinPropertiesFrame::SetAttributsPin( bool draw,
if( Pin->m_Orient != CurrentPin->m_Orient ) if( Pin->m_Orient != CurrentPin->m_Orient )
continue; continue;
CurrentLibEntry->RemoveDrawItem( (LibEDA_BaseStruct*) Pin ); CurrentPin->GetParent()->RemoveDrawItem( (LibEDA_BaseStruct*) Pin );
} }
} }
} // end if unit } // end if unit
@ -688,7 +693,7 @@ void WinEDA_PinPropertiesFrame::SetAttributsPin( bool draw,
if( CurrentPin->m_Convert == 0 ) /* Effacement des pins redondantes */ if( CurrentPin->m_Convert == 0 ) /* Effacement des pins redondantes */
{ {
DrawItem = CurrentLibEntry->m_Drawings; DrawItem = CurrentPin->GetParent()->m_Drawings;
for( ; DrawItem != NULL; ) for( ; DrawItem != NULL; )
{ {
Pin = (LibDrawPin*) DrawItem; Pin = (LibDrawPin*) DrawItem;
@ -706,7 +711,7 @@ void WinEDA_PinPropertiesFrame::SetAttributsPin( bool draw,
if( Pin->m_Orient != CurrentPin->m_Orient ) if( Pin->m_Orient != CurrentPin->m_Orient )
continue; continue;
CurrentLibEntry->RemoveDrawItem( (LibEDA_BaseStruct*) Pin ); CurrentPin->GetParent()->RemoveDrawItem( (LibEDA_BaseStruct*) Pin );
} }
} }
} // end if convert } // end if convert
@ -718,7 +723,7 @@ void WinEDA_PinPropertiesFrame::SetAttributsPin( bool draw,
else else
CurrentPin->m_Attributs &= ~PINNOTDRAW; CurrentPin->m_Attributs &= ~PINNOTDRAW;
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings; Pin = (LibDrawPin*) CurrentPin->GetParent()->m_Drawings;
for( ; Pin != NULL; Pin = Pin->Next() ) for( ; Pin != NULL; Pin = Pin->Next() )
{ {
if( Pin->m_Flags == 0 ) if( Pin->m_Flags == 0 )
@ -744,9 +749,7 @@ void WinEDA_PinPropertiesFrame::NewSizePin( int newsize )
{ {
LibDrawPin* RefPin, * Pin = (LibDrawPin*) CurrentDrawItem; LibDrawPin* RefPin, * Pin = (LibDrawPin*) CurrentDrawItem;
if( CurrentLibEntry == NULL ) if( Pin == NULL || Pin->GetParent() == NULL )
return;
if( Pin == NULL )
return; return;
m_Parent->GetScreen()->SetModify(); m_Parent->GetScreen()->SetModify();
@ -759,7 +762,7 @@ void WinEDA_PinPropertiesFrame::NewSizePin( int newsize )
if( g_EditPinByPinIsOn == false ) if( g_EditPinByPinIsOn == false )
{ {
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings; Pin = (LibDrawPin*) Pin->GetParent()->m_Drawings;
for( ; Pin != NULL; Pin = Pin->Next() ) for( ; Pin != NULL; Pin = Pin->Next() )
{ {
if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE ) if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE )
@ -787,10 +790,11 @@ static void CreateImagePins( LibDrawPin* Pin )
LibDrawPin* NewPin; LibDrawPin* NewPin;
bool CreateConv = false; bool CreateConv = false;
if( g_EditPinByPinIsOn ) if( g_EditPinByPinIsOn )
return; return;
if( g_AsDeMorgan && (Pin->m_Convert != 0 ) ) if( g_AsDeMorgan && ( Pin->m_Convert != 0 ) )
CreateConv = true; CreateConv = true;
/* Creation de la pin " convert " pour la part courante */ /* Creation de la pin " convert " pour la part courante */
@ -801,15 +805,13 @@ static void CreateImagePins( LibDrawPin* Pin )
NewPin->m_Convert = 1; NewPin->m_Convert = 1;
else else
NewPin->m_Convert = 2; NewPin->m_Convert = 2;
NewPin->SetNext( CurrentLibEntry->m_Drawings ); NewPin->SetNext( Pin->GetParent()->m_Drawings );
CurrentLibEntry->m_Drawings = NewPin; Pin->GetParent()->m_Drawings = NewPin;
} }
for( ii = 1; ii <= CurrentLibEntry->m_UnitCount; ii++ ) for( ii = 1; ii <= Pin->GetParent()->m_UnitCount; ii++ )
{ {
if( ii == CurrentUnit ) if( ii == CurrentUnit || Pin->m_Unit == 0 )
continue; /* Deja fait */
if( Pin->m_Unit == 0 )
continue; /* Pin commune a toutes les unites */ continue; /* Pin commune a toutes les unites */
/* Creation pour la representation "normale" */ /* Creation pour la representation "normale" */
@ -817,8 +819,8 @@ static void CreateImagePins( LibDrawPin* Pin )
if( CurrentConvert != 0 ) if( CurrentConvert != 0 )
NewPin->m_Convert = 1; NewPin->m_Convert = 1;
NewPin->m_Unit = ii; NewPin->m_Unit = ii;
NewPin->SetNext( CurrentLibEntry->m_Drawings ); NewPin->SetNext( Pin->GetParent()->m_Drawings );
CurrentLibEntry->m_Drawings = NewPin; Pin->GetParent()->m_Drawings = NewPin;
/* Creation pour la representation "Convert" */ /* Creation pour la representation "Convert" */
if( CreateConv == false ) if( CreateConv == false )
@ -828,8 +830,8 @@ static void CreateImagePins( LibDrawPin* Pin )
NewPin->m_Convert = 2; NewPin->m_Convert = 2;
if( Pin->m_Unit != 0 ) if( Pin->m_Unit != 0 )
NewPin->m_Unit = ii; NewPin->m_Unit = ii;
NewPin->SetNext( CurrentLibEntry->m_Drawings ); NewPin->SetNext( Pin->GetParent()->m_Drawings );
CurrentLibEntry->m_Drawings = NewPin; Pin->GetParent()->m_Drawings = NewPin;
} }
} }
@ -850,14 +852,14 @@ void WinEDA_LibeditFrame::GlobalSetPins( wxDC* DC,
bool selected = ( MasterPin->m_Selected & IS_SELECTED ) != 0; bool selected = ( MasterPin->m_Selected & IS_SELECTED ) != 0;
bool showPinText = true; bool showPinText = true;
if( ( CurrentLibEntry == NULL ) || ( MasterPin == NULL ) ) if( ( m_currentComponent == NULL ) || ( MasterPin == NULL ) )
return; return;
if( MasterPin->Type() != COMPONENT_PIN_DRAW_TYPE ) if( MasterPin->Type() != COMPONENT_PIN_DRAW_TYPE )
return; return;
GetScreen()->SetModify(); GetScreen()->SetModify();
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings; Pin = (LibDrawPin*) m_currentComponent->m_Drawings;
for( ; Pin != NULL; Pin = Pin->Next() ) for( ; Pin != NULL; Pin = Pin->Next() )
{ {
if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE ) if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE )
@ -902,16 +904,13 @@ void WinEDA_LibeditFrame::RepeatPinItem( wxDC* DC, LibDrawPin* SourcePin )
wxString msg; wxString msg;
int ox = 0, oy = 0; int ox = 0, oy = 0;
if( CurrentLibEntry == NULL ) if( m_currentComponent == NULL || SourcePin == NULL
return; || SourcePin->Type() != COMPONENT_PIN_DRAW_TYPE )
if( SourcePin == NULL )
return;
if( SourcePin->Type() != COMPONENT_PIN_DRAW_TYPE )
return; return;
Pin = (LibDrawPin*)SourcePin->GenCopy(); Pin = (LibDrawPin*)SourcePin->GenCopy();
Pin->SetNext( CurrentLibEntry->m_Drawings ); Pin->SetNext( m_currentComponent->m_Drawings );
CurrentLibEntry->m_Drawings = Pin; m_currentComponent->m_Drawings = Pin;
Pin->m_Flags = IS_NEW; Pin->m_Flags = IS_NEW;
Pin->m_Pos.x += g_RepeatStep.x; Pin->m_Pos.x += g_RepeatStep.x;
@ -966,11 +965,11 @@ bool WinEDA_LibeditFrame::TestPins( LIB_COMPONENT* LibEntry )
LibDrawPin** PinList; LibDrawPin** PinList;
wxString msg; wxString msg;
if( CurrentLibEntry == NULL ) if( m_currentComponent == NULL )
return false; return false;
// Construction de la liste des pins: // Construction de la liste des pins:
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings; Pin = (LibDrawPin*) m_currentComponent->m_Drawings;
for( nb_pins = 0; Pin != NULL; Pin = Pin->Next() ) for( nb_pins = 0; Pin != NULL; Pin = Pin->Next() )
{ {
if( Pin->Type() == COMPONENT_PIN_DRAW_TYPE ) if( Pin->Type() == COMPONENT_PIN_DRAW_TYPE )
@ -978,7 +977,7 @@ bool WinEDA_LibeditFrame::TestPins( LIB_COMPONENT* LibEntry )
} }
PinList = (LibDrawPin**) MyZMalloc( (nb_pins + 1) * sizeof(LibDrawPin*) ); PinList = (LibDrawPin**) MyZMalloc( (nb_pins + 1) * sizeof(LibDrawPin*) );
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings; Pin = (LibDrawPin*) m_currentComponent->m_Drawings;
for( ii = 0; Pin != NULL; Pin = Pin->Next() ) for( ii = 0; Pin != NULL; Pin = Pin->Next() )
{ {
if( Pin->Type() == COMPONENT_PIN_DRAW_TYPE ) if( Pin->Type() == COMPONENT_PIN_DRAW_TYPE )
@ -1012,7 +1011,7 @@ bool WinEDA_LibeditFrame::TestPins( LIB_COMPONENT* LibEntry )
curr_pin->m_Pos.x, -curr_pin->m_Pos.y, curr_pin->m_Pos.x, -curr_pin->m_Pos.y,
Pin->m_PinName.GetData(), Pin->m_Pos.x, -Pin->m_Pos.y ); Pin->m_PinName.GetData(), Pin->m_Pos.x, -Pin->m_Pos.y );
if( CurrentLibEntry->m_UnitCount > 1 ) if( m_currentComponent->m_UnitCount > 1 )
{ {
aux_msg.Printf( _( " Part %d" ), curr_pin->m_Unit ); aux_msg.Printf( _( " Part %d" ), curr_pin->m_Unit );
msg += aux_msg; msg += aux_msg;

View File

@ -15,7 +15,7 @@
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "id.h" #include "eeschema_id.h"
#include "protos.h" #include "protos.h"

View File

@ -17,7 +17,7 @@
#include "general.h" #include "general.h"
#include "bitmaps.h" #include "bitmaps.h"
#include "protos.h" #include "protos.h"
#include "id.h" #include "eeschema_id.h"
#include "netlist.h" #include "netlist.h"
#include "annotate_dialog.h" #include "annotate_dialog.h"
@ -26,6 +26,8 @@
#include "dialog_find.h" #include "dialog_find.h"
#include "netlist_control.h" #include "netlist_control.h"
#include "dialog_erc.h" #include "dialog_erc.h"
#include "libeditfrm.h"
#include "libviewfrm.h"
/*******************************/ /*******************************/
@ -92,6 +94,8 @@ BEGIN_EVENT_TABLE( WinEDA_SchematicFrame, WinEDA_DrawFrame )
EVT_TOOL( ID_GET_TOOLS, WinEDA_SchematicFrame::OnCreateBillOfMaterials ) EVT_TOOL( ID_GET_TOOLS, WinEDA_SchematicFrame::OnCreateBillOfMaterials )
EVT_TOOL( ID_FIND_ITEMS, WinEDA_SchematicFrame::OnFindItems ) EVT_TOOL( ID_FIND_ITEMS, WinEDA_SchematicFrame::OnFindItems )
EVT_TOOL( ID_BACKANNO_ITEMS, WinEDA_SchematicFrame::OnLoadStuffFile ) EVT_TOOL( ID_BACKANNO_ITEMS, WinEDA_SchematicFrame::OnLoadStuffFile )
EVT_TOOL( ID_COMPONENT_BUTT,
WinEDA_SchematicFrame::Process_Special_Functions )
EVT_MENU( ID_GENERAL_HELP, WinEDA_DrawFrame::GetKicadHelp ) EVT_MENU( ID_GENERAL_HELP, WinEDA_DrawFrame::GetKicadHelp )
EVT_MENU( ID_KICAD_ABOUT, WinEDA_DrawFrame::GetKicadAbout ) EVT_MENU( ID_KICAD_ABOUT, WinEDA_DrawFrame::GetKicadAbout )

View File

@ -10,12 +10,14 @@
#include "common.h" #include "common.h"
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "confirm.h" #include "confirm.h"
#include "eeschema_id.h"
#include "program.h" #include "program.h"
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "trigo.h" #include "trigo.h"
#include "protos.h" #include "protos.h"
#include "id.h" #include "libeditfrm.h"
/* Routines locales */ /* Routines locales */
static void SymbolDisplayDraw( WinEDA_DrawPanel* panel, wxDC* DC, bool erase ); static void SymbolDisplayDraw( WinEDA_DrawPanel* panel, wxDC* DC, bool erase );
@ -55,7 +57,7 @@ void WinEDA_bodygraphics_PropertiesFrame::bodygraphics_PropertiesAccept( wxComma
if( CurrentDrawItem ) if( CurrentDrawItem )
{ {
if( !(CurrentDrawItem->m_Flags & IS_NEW) ) // if IS_NEW, copy for undo is done before place if( !(CurrentDrawItem->m_Flags & IS_NEW) ) // if IS_NEW, copy for undo is done before place
m_Parent->SaveCopyInUndoList( CurrentLibEntry ); m_Parent->SaveCopyInUndoList( CurrentDrawItem->GetParent() );
wxClientDC dc( m_Parent->DrawPanel ); wxClientDC dc( m_Parent->DrawPanel );
m_Parent->DrawPanel->PrepareGraphicContext( &dc ); m_Parent->DrawPanel->PrepareGraphicContext( &dc );
@ -105,7 +107,8 @@ void WinEDA_bodygraphics_PropertiesFrame::bodygraphics_PropertiesAccept( wxComma
break; break;
} }
} }
CurrentLibEntry->SortDrawItems();
CurrentDrawItem->GetParent()->SortDrawItems();
m_Parent->GetScreen()->SetModify(); m_Parent->GetScreen()->SetModify();
@ -641,10 +644,10 @@ void WinEDA_LibeditFrame::EndDrawGraphicItem( wxDC* DC )
* courant, si elle existe et redessine toujours celle ci * courant, si elle existe et redessine toujours celle ci
* Parametres: (tous globaux) * Parametres: (tous globaux)
* CurrentDrawItem * CurrentDrawItem
* CurrentLibEntry * m_currentComponent
*/ */
{ {
if( CurrentLibEntry == NULL ) if( m_currentComponent == NULL )
return; return;
if( CurrentDrawItem == NULL ) if( CurrentDrawItem == NULL )
return; return;
@ -666,9 +669,9 @@ void WinEDA_LibeditFrame::EndDrawGraphicItem( wxDC* DC )
if( CurrentDrawItem->m_Flags & IS_NEW ) if( CurrentDrawItem->m_Flags & IS_NEW )
{ {
SaveCopyInUndoList( CurrentLibEntry ); SaveCopyInUndoList( m_currentComponent );
CurrentDrawItem->SetNext( CurrentLibEntry->m_Drawings ); CurrentDrawItem->SetNext( m_currentComponent->m_Drawings );
CurrentLibEntry->m_Drawings = CurrentDrawItem; m_currentComponent->m_Drawings = CurrentDrawItem;
switch( CurrentDrawItem->Type() ) switch( CurrentDrawItem->Type() )
{ {
@ -697,7 +700,7 @@ void WinEDA_LibeditFrame::EndDrawGraphicItem( wxDC* DC )
; ;
} }
CurrentLibEntry->SortDrawItems(); m_currentComponent->SortDrawItems();
} }
if( m_ID_current_state ) if( m_ID_current_state )
@ -713,7 +716,7 @@ void WinEDA_LibeditFrame::EndDrawGraphicItem( wxDC* DC )
MoveLibDrawItemAt( CurrentDrawItem, pos ); MoveLibDrawItemAt( CurrentDrawItem, pos );
} }
CurrentLibEntry->Draw( DrawPanel, DC, wxPoint( 0, 0 ), CurrentUnit, m_currentComponent->Draw( DrawPanel, DC, wxPoint( 0, 0 ), CurrentUnit,
CurrentConvert, GR_DEFAULT_DRAWMODE ); CurrentConvert, GR_DEFAULT_DRAWMODE );
CurrentDrawItem->m_Flags = 0; CurrentDrawItem->m_Flags = 0;

View File

@ -19,6 +19,7 @@
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "protos.h" #include "protos.h"
#include "libeditfrm.h"
/* /*
@ -37,7 +38,7 @@ void WinEDA_LibeditFrame::LoadOneSymbol( void )
CMP_LIBRARY* Lib; CMP_LIBRARY* Lib;
/* Exit if no library entry is selected or a command is in progress. */ /* Exit if no library entry is selected or a command is in progress. */
if( CurrentLibEntry == NULL if( m_currentComponent == NULL
|| ( CurrentDrawItem && CurrentDrawItem->m_Flags ) ) || ( CurrentDrawItem && CurrentDrawItem->m_Flags ) )
return; return;
@ -109,8 +110,8 @@ void WinEDA_LibeditFrame::LoadOneSymbol( void )
if( DrawEntry->Next() == NULL ) /* Fin de liste trouvee */ if( DrawEntry->Next() == NULL ) /* Fin de liste trouvee */
{ {
DrawEntry->SetNext( CurrentLibEntry->m_Drawings ); DrawEntry->SetNext( m_currentComponent->m_Drawings );
CurrentLibEntry->m_Drawings = Component->m_Drawings; m_currentComponent->m_Drawings = Component->m_Drawings;
Component->m_Drawings = NULL; Component->m_Drawings = NULL;
break; break;
} }
@ -119,10 +120,10 @@ void WinEDA_LibeditFrame::LoadOneSymbol( void )
} }
// Remove duplicated drawings: // Remove duplicated drawings:
CurrentLibEntry->RemoveDuplicateDrawItems(); m_currentComponent->RemoveDuplicateDrawItems();
// Clear flags // Clear flags
DrawEntry = CurrentLibEntry->m_Drawings; DrawEntry = m_currentComponent->m_Drawings;
while( DrawEntry ) while( DrawEntry )
{ {
DrawEntry->m_Flags = 0; DrawEntry->m_Flags = 0;
@ -151,14 +152,14 @@ void WinEDA_LibeditFrame::SaveOneSymbol()
wxString msg; wxString msg;
FILE* ExportFile; FILE* ExportFile;
if( CurrentLibEntry->m_Drawings == NULL ) if( m_currentComponent->m_Drawings == NULL )
return; return;
/* Creation du fichier symbole */ /* Creation du fichier symbole */
wxString default_path = wxGetApp().ReturnLastVisitedLibraryPath(); wxString default_path = wxGetApp().ReturnLastVisitedLibraryPath();
wxFileDialog dlg( this, _( "Export Symbol Drawings" ), default_path, wxFileDialog dlg( this, _( "Export Symbol Drawings" ), default_path,
CurrentLibEntry->m_Name.m_Text, SymbolFileWildcard, m_currentComponent->m_Name.m_Text, SymbolFileWildcard,
wxFD_SAVE | wxFD_OVERWRITE_PROMPT ); wxFD_SAVE | wxFD_OVERWRITE_PROMPT );
if( dlg.ShowModal() == wxID_CANCEL ) if( dlg.ShowModal() == wxID_CANCEL )
@ -194,28 +195,28 @@ void WinEDA_LibeditFrame::SaveOneSymbol()
/* Creation du commentaire donnant le nom du composant */ /* Creation du commentaire donnant le nom du composant */
fprintf( ExportFile, "# SYMBOL %s\n#\n", fprintf( ExportFile, "# SYMBOL %s\n#\n",
CONV_TO_UTF8( CurrentLibEntry->m_Name.m_Text ) ); CONV_TO_UTF8( m_currentComponent->m_Name.m_Text ) );
/* Generation des lignes utiles */ /* Generation des lignes utiles */
fprintf( ExportFile, "DEF %s", fprintf( ExportFile, "DEF %s",
CONV_TO_UTF8( CurrentLibEntry->m_Name.m_Text ) ); CONV_TO_UTF8( m_currentComponent->m_Name.m_Text ) );
if( !CurrentLibEntry->m_Prefix.m_Text.IsEmpty() ) if( !m_currentComponent->m_Prefix.m_Text.IsEmpty() )
fprintf( ExportFile, " %s", fprintf( ExportFile, " %s",
CONV_TO_UTF8( CurrentLibEntry->m_Prefix.m_Text ) ); CONV_TO_UTF8( m_currentComponent->m_Prefix.m_Text ) );
else else
fprintf( ExportFile, " ~" ); fprintf( ExportFile, " ~" );
fprintf( ExportFile, " %d %d %c %c %d %d %c\n", fprintf( ExportFile, " %d %d %c %c %d %d %c\n",
0, /* unused */ 0, /* unused */
CurrentLibEntry->m_TextInside, m_currentComponent->m_TextInside,
CurrentLibEntry->m_DrawPinNum ? 'Y' : 'N', m_currentComponent->m_DrawPinNum ? 'Y' : 'N',
CurrentLibEntry->m_DrawPinName ? 'Y' : 'N', m_currentComponent->m_DrawPinName ? 'Y' : 'N',
1, 0 /* unused */, 'N' ); 1, 0 /* unused */, 'N' );
/* Position / orientation / visibilite des champs */ /* Position / orientation / visibilite des champs */
CurrentLibEntry->m_Prefix.Save( ExportFile ); m_currentComponent->m_Prefix.Save( ExportFile );
CurrentLibEntry->m_Name.Save( ExportFile ); m_currentComponent->m_Name.Save( ExportFile );
DrawEntry = CurrentLibEntry->m_Drawings; DrawEntry = m_currentComponent->m_Drawings;
if( DrawEntry ) if( DrawEntry )
{ {
@ -250,14 +251,14 @@ void WinEDA_LibeditFrame::SaveOneSymbol()
/***************************************************************************/ /***************************************************************************/
void WinEDA_LibeditFrame::PlaceAncre() void WinEDA_LibeditFrame::PlaceAncre()
{ {
if( CurrentLibEntry == NULL ) if( m_currentComponent == NULL )
return; return;
wxPoint offset( -GetScreen()->m_Curseur.x, GetScreen()->m_Curseur.y ); wxPoint offset( -GetScreen()->m_Curseur.x, GetScreen()->m_Curseur.y );
GetScreen()->SetModify(); GetScreen()->SetModify();
CurrentLibEntry->SetOffset( offset ); m_currentComponent->SetOffset( offset );
/* Redraw the symbol */ /* Redraw the symbol */
GetScreen()->m_Curseur.x = GetScreen()->m_Curseur.y = 0; GetScreen()->m_Curseur.x = GetScreen()->m_Curseur.y = 0;

View File

@ -3,14 +3,16 @@
/********************************************/ /********************************************/
#include "fctsys.h" #include "fctsys.h"
#include "common.h" #include "common.h"
#include "hotkeys.h"
#include "bitmaps.h"
#include "eeschema_id.h"
#include "program.h" #include "program.h"
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "protos.h" #include "protos.h"
#include "hotkeys.h" #include "libeditfrm.h"
#ifdef __UNIX__ #ifdef __UNIX__
#define LISTBOX_WIDTH 140 #define LISTBOX_WIDTH 140
@ -18,9 +20,6 @@
#define LISTBOX_WIDTH 120 #define LISTBOX_WIDTH 120
#endif #endif
#include "bitmaps.h"
#include "id.h"
extern int ExportPartId; extern int ExportPartId;
extern int ImportPartId; extern int ImportPartId;
@ -42,7 +41,7 @@ void WinEDA_LibeditFrame::ReCreateVToolbar()
m_VToolBar->AddSeparator(); m_VToolBar->AddSeparator();
m_VToolBar->AddTool( ID_LIBEDIT_PIN_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LIBEDIT_PIN_BUTT, wxEmptyString,
wxBitmap( pin_xpm ), wxBitmap( pin_xpm ),
_( "Add Pins" ), wxITEM_CHECK ); _( "Add pin" ), wxITEM_CHECK );
m_VToolBar->AddTool( ID_LIBEDIT_BODY_TEXT_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_LIBEDIT_BODY_TEXT_BUTT, wxEmptyString,
wxBitmap( add_text_xpm ), wxBitmap( add_text_xpm ),

View File

@ -14,7 +14,7 @@
#include "hotkeys.h" #include "hotkeys.h"
#include "bitmaps.h" #include "bitmaps.h"
#include "id.h" #include "eeschema_id.h"
/**************************************************************/ /**************************************************************/

View File

@ -5,13 +5,14 @@
#include "fctsys.h" #include "fctsys.h"
#include "common.h" #include "common.h"
#include "bitmaps.h" #include "bitmaps.h"
#include "id.h" #include "eeschema_id.h"
#include "program.h" #include "program.h"
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "protos.h" #include "protos.h"
#include "class_library.h" #include "class_library.h"
#include "libviewfrm.h"
void WinEDA_ViewlibFrame::ReCreateHToolbar() void WinEDA_ViewlibFrame::ReCreateHToolbar()

View File

@ -5,7 +5,7 @@
#include "fctsys.h" #include "fctsys.h"
#include "appl_wxstruct.h" #include "appl_wxstruct.h"
#include "common.h" #include "common.h"
#include "id.h" #include "eeschema_id.h"
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "bitmaps.h" #include "bitmaps.h"
@ -13,6 +13,7 @@
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "protos.h" #include "protos.h"
#include "libviewfrm.h"
/*****************************/ /*****************************/
@ -30,8 +31,9 @@ BEGIN_EVENT_TABLE( WinEDA_ViewlibFrame, WinEDA_DrawFrame )
/* Toolbar events */ /* Toolbar events */
EVT_TOOL_RANGE( ID_LIBVIEW_START_H_TOOL, ID_LIBVIEW_END_H_TOOL, EVT_TOOL_RANGE( ID_LIBVIEW_NEXT, ID_LIBVIEW_DE_MORGAN_CONVERT_BUTT,
WinEDA_ViewlibFrame::Process_Special_Functions ) WinEDA_ViewlibFrame::Process_Special_Functions )
EVT_TOOL_RANGE( ID_ZOOM_IN, ID_ZOOM_PAGE, WinEDA_ViewlibFrame::OnZoom ) EVT_TOOL_RANGE( ID_ZOOM_IN, ID_ZOOM_PAGE, WinEDA_ViewlibFrame::OnZoom )
EVT_TOOL( ID_LIBVIEW_CMP_EXPORT_TO_SCHEMATIC, EVT_TOOL( ID_LIBVIEW_CMP_EXPORT_TO_SCHEMATIC,
WinEDA_ViewlibFrame::ExportToSchematicLibraryPart ) WinEDA_ViewlibFrame::ExportToSchematicLibraryPart )

View File

@ -9,12 +9,13 @@
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "confirm.h" #include "confirm.h"
#include "eda_doc.h" #include "eda_doc.h"
#include "id.h"
#include "program.h" #include "program.h"
#include "libcmp.h" #include "libcmp.h"
#include "general.h" #include "general.h"
#include "protos.h" #include "protos.h"
#include "libviewfrm.h"
#include "eeschema_id.h"
#define NEXT_PART 1 #define NEXT_PART 1

View File

@ -10,17 +10,12 @@
#include "fctsys.h" #include "fctsys.h"
#include "common.h" #include "common.h"
#include "id.h"
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "pcbnew.h" #include "pcbnew.h"
#include "gerbview.h" #include "gerbview.h"
#include "protos.h" #include "protos.h"
/* Routines Locales : */
/* Variables Locales */
/**********************************************************************/ /**********************************************************************/
BOARD_ITEM* WinEDA_GerberFrame::GerberGeneralLocateAndDisplay() BOARD_ITEM* WinEDA_GerberFrame::GerberGeneralLocateAndDisplay()

View File

@ -3,7 +3,6 @@
/******************************************************/ /******************************************************/
#include "fctsys.h" #include "fctsys.h"
#include "id.h"
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "confirm.h" #include "confirm.h"
#include "gestfich.h" #include "gestfich.h"
@ -13,6 +12,8 @@
#include "pcbplot.h" #include "pcbplot.h"
#include "protos.h" #include "protos.h"
/************************************************************************/ /************************************************************************/
void WinEDA_GerberFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos ) void WinEDA_GerberFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
/************************************************************************/ /************************************************************************/

View File

@ -11,7 +11,6 @@
#include "gerbview.h" #include "gerbview.h"
#include "pcbplot.h" #include "pcbplot.h"
#include "protos.h" #include "protos.h"
#include "id.h"
/* Routines locales */ /* Routines locales */
@ -50,7 +49,6 @@ void WinEDA_GerberFrame::Files_io( wxCommandEvent& event )
switch( id ) switch( id )
{ {
case ID_MENU_LOAD_FILE:
case ID_LOAD_FILE: case ID_LOAD_FILE:
if( Clear_Pcb( TRUE ) ) if( Clear_Pcb( TRUE ) )
{ {
@ -72,12 +70,10 @@ void WinEDA_GerberFrame::Files_io( wxCommandEvent& event )
} }
break; break;
case ID_MENU_APPEND_FILE:
case ID_APPEND_FILE: case ID_APPEND_FILE:
LoadOneGerberFile( wxEmptyString, &dc, 0 ); LoadOneGerberFile( wxEmptyString, &dc, 0 );
break; break;
case ID_MENU_NEW_BOARD:
case ID_NEW_BOARD: case ID_NEW_BOARD:
Clear_Pcb( TRUE ); Clear_Pcb( TRUE );
Zoom_Automatique( FALSE ); Zoom_Automatique( FALSE );
@ -93,11 +89,10 @@ void WinEDA_GerberFrame::Files_io( wxCommandEvent& event )
break; break;
case ID_SAVE_BOARD: case ID_SAVE_BOARD:
case ID_MENU_SAVE_BOARD:
SaveGerberFile( GetScreen()->m_FileName, &dc ); SaveGerberFile( GetScreen()->m_FileName, &dc );
break; break;
case ID_MENU_SAVE_BOARD_AS: case ID_SAVE_BOARD_AS:
SaveGerberFile( wxEmptyString, &dc ); SaveGerberFile( wxEmptyString, &dc );
break; break;

View File

@ -16,7 +16,6 @@
#include "pcbplot.h" #include "pcbplot.h"
#include "bitmaps.h" #include "bitmaps.h"
#include "protos.h" #include "protos.h"
#include "id.h"
/****************************************/ /****************************************/
@ -38,12 +37,12 @@ BEGIN_EVENT_TABLE( WinEDA_GerberFrame, WinEDA_BasePcbFrame )
EVT_TOOL( ID_SAVE_BOARD, WinEDA_GerberFrame::Files_io ) EVT_TOOL( ID_SAVE_BOARD, WinEDA_GerberFrame::Files_io )
// Menu Files: // Menu Files:
EVT_MENU( ID_MENU_LOAD_FILE, WinEDA_GerberFrame::Files_io ) EVT_MENU( ID_LOAD_FILE, WinEDA_GerberFrame::Files_io )
EVT_MENU( ID_MENU_APPEND_FILE, WinEDA_GerberFrame::Files_io ) EVT_MENU( ID_APPEND_FILE, WinEDA_GerberFrame::Files_io )
EVT_MENU( ID_MENU_INC_LAYER_AND_APPEND_FILE, WinEDA_GerberFrame::Files_io ) EVT_MENU( ID_MENU_INC_LAYER_AND_APPEND_FILE, WinEDA_GerberFrame::Files_io )
EVT_MENU( ID_MENU_NEW_BOARD, WinEDA_GerberFrame::Files_io ) EVT_MENU( ID_NEW_BOARD, WinEDA_GerberFrame::Files_io )
EVT_MENU( ID_MENU_SAVE_BOARD, WinEDA_GerberFrame::Files_io ) EVT_MENU( ID_SAVE_BOARD, WinEDA_GerberFrame::Files_io )
EVT_MENU( ID_MENU_SAVE_BOARD_AS, WinEDA_GerberFrame::Files_io ) EVT_MENU( ID_SAVE_BOARD_AS, WinEDA_GerberFrame::Files_io )
EVT_MENU( ID_GEN_PLOT, WinEDA_GerberFrame::ToPlotter ) EVT_MENU( ID_GEN_PLOT, WinEDA_GerberFrame::ToPlotter )
EVT_MENU( ID_GERBVIEW_EXPORT_TO_PCBNEW, EVT_MENU( ID_GERBVIEW_EXPORT_TO_PCBNEW,
WinEDA_GerberFrame::ExportDataInPcbnewFormat ) WinEDA_GerberFrame::ExportDataInPcbnewFormat )

View File

@ -13,8 +13,8 @@
#include "pcbcommon.h" #include "pcbcommon.h"
#include "gerbview.h" #include "gerbview.h"
#include "pcbplot.h" #include "pcbplot.h"
#include "id.h"
#include "hotkeys.h" #include "hotkeys.h"
#include "gerbview_config.h" #include "gerbview_config.h"
#include "protos.h" #include "protos.h"

View File

@ -4,10 +4,9 @@
#include "fctsys.h" #include "fctsys.h"
#include "common.h" #include "common.h"
#include "gerbview.h"
#include "id.h"
#include "hotkeys.h" #include "hotkeys.h"
#include "gerbview.h"
#include "protos.h" #include "protos.h"
/* How to add a new hotkey: /* How to add a new hotkey:

View File

@ -5,7 +5,6 @@
#include "fctsys.h" #include "fctsys.h"
#include "common.h" #include "common.h"
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "id.h"
#include "confirm.h" #include "confirm.h"
#include "gerbview.h" #include "gerbview.h"

View File

@ -14,12 +14,10 @@
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "confirm.h" #include "confirm.h"
#include "gerbview.h"
#include "pcbplot.h" #include "pcbplot.h"
#include "gerbview.h"
#include "id.h"
#include "protos.h" #include "protos.h"
#include <wx/spinctrl.h> #include <wx/spinctrl.h>

View File

@ -4,7 +4,6 @@
#include "fctsys.h" #include "fctsys.h"
#include "common.h" #include "common.h"
#include "id.h"
#include "gerbview.h" #include "gerbview.h"
#include "pcbplot.h" #include "pcbplot.h"

View File

@ -10,7 +10,6 @@
#include "pcbplot.h" #include "pcbplot.h"
#include "protos.h" #include "protos.h"
#include "bitmaps.h" #include "bitmaps.h"
#include "id.h"
#include "hotkeys.h" #include "hotkeys.h"
/***********************************************/ /***********************************************/
@ -30,11 +29,11 @@ void WinEDA_GerberFrame::ReCreateMenuBar( void )
menuBar = new wxMenuBar(); menuBar = new wxMenuBar();
wxMenu* filesMenu = new wxMenu; wxMenu* filesMenu = new wxMenu;
filesMenu->Append( ID_MENU_LOAD_FILE, _( "Clear and Load Gerber File" ), filesMenu->Append( ID_LOAD_FILE, _( "Clear and Load Gerber File" ),
_( "Clear all layers and Load new Gerber file" ), _( "Clear all layers and Load new Gerber file" ),
FALSE ); FALSE );
filesMenu->Append( ID_MENU_APPEND_FILE, _( "Load Gerber File" ), filesMenu->Append( ID_APPEND_FILE, _( "Load Gerber File" ),
_( "Load new Gerber file on currrent layer" ), _( "Load new Gerber file on currrent layer" ),
FALSE ); FALSE );
@ -50,7 +49,7 @@ void WinEDA_GerberFrame::ReCreateMenuBar( void )
_( "Load excellon drill file" ), FALSE ); _( "Load excellon drill file" ), FALSE );
#endif #endif
filesMenu->Append( ID_MENU_NEW_BOARD, _( "&New" ), filesMenu->Append( ID_NEW_BOARD, _( "&New" ),
_( "Clear all layers" ), FALSE ); _( "Clear all layers" ), FALSE );
filesMenu->AppendSeparator(); filesMenu->AppendSeparator();
@ -59,10 +58,10 @@ void WinEDA_GerberFrame::ReCreateMenuBar( void )
#if 0 #if 0
filesMenu->AppendSeparator(); filesMenu->AppendSeparator();
filesMenu->Append( ID_MENU_SAVE_BOARD, _( "&Save Layers" ), filesMenu->Append( ID_SAVE_BOARD, _( "&Save Layers" ),
_( "Save current layers (GERBER format)" ), FALSE ); _( "Save current layers (GERBER format)" ), FALSE );
filesMenu->Append( ID_MENU_SAVE_BOARD_AS, _( "Save Layers As..." ), filesMenu->Append( ID_SAVE_BOARD_AS, _( "Save Layers As..." ),
_( "Save current layers as.." ), FALSE ); _( "Save current layers as.." ), FALSE );
#endif #endif
@ -308,7 +307,7 @@ create or update the right vertical toolbar
_( "Add layer alignment target" ) ); _( "Add layer alignment target" ) );
m_VToolBar->AddSeparator(); m_VToolBar->AddSeparator();
m_VToolBar->AddTool( ID_TEXT_COMMENT_BUTT, wxEmptyString, m_VToolBar->AddTool( ID_PCB_ADD_TEXT_BUTT, wxEmptyString,
wxBitmap( tool_text_xpm ), wxBitmap( tool_text_xpm ),
_( "Add Text" ) ); _( "Add Text" ) );

View File

@ -5,6 +5,31 @@
#ifndef WX_GERBER_STRUCT_H #ifndef WX_GERBER_STRUCT_H
#define WX_GERBER_STRUCT_H #define WX_GERBER_STRUCT_H
#include "id.h"
/**
* Command IDs for the gerber file viewer.
*
* Please add IDs that are unique to the gerber file viewer here and not in the
* global id.h file. This will prevent the entire project from being rebuilt
* when adding new command to the gerber file viewer.
*/
enum id_gerbview_frm
{
ID_GERBVIEW_SHOW_LIST_DCODES,
ID_GERBVIEW_LOAD_DRILL_FILE,
ID_GERBVIEW_LOAD_DCODE_FILE,
ID_TOOLBARH_GERBER_SELECT_TOOL,
ID_MENU_INC_LAYER_AND_APPEND_FILE,
ID_INC_LAYER_AND_APPEND_FILE,
ID_GERBVIEW_SHOW_SOURCE,
ID_GERBVIEW_EXPORT_TO_PCBNEW,
ID_GERBVIEW_POPUP_DELETE_DCODE_ITEMS,
};
/****************************************************************** /******************************************************************
class WinEDA_GerberFrame: this is the main window used in gerbview class WinEDA_GerberFrame: this is the main window used in gerbview
******************************************************************/ ******************************************************************/
@ -64,18 +89,22 @@ public:
void Block_Delete( wxDC* DC ); void Block_Delete( wxDC* DC );
void Block_Rotate( wxDC* DC ); void Block_Rotate( wxDC* DC );
void Block_Invert( wxDC* DC ); void Block_Invert( wxDC* DC );
/** /**
* Function Block_Move * Function Block_Move
* moves all tracks and segments within the selected block. * moves all tracks and segments within the selected block.
* New location is determined by the current offset from the selected block's original location. * New location is determined by the current offset from the selected
* block's original location.
* Defined separately in pcbnew and gerbview * Defined separately in pcbnew and gerbview
* *
* @param DC A device context to draw on. * @param DC A device context to draw on.
*/ */
void Block_Move( wxDC* DC ); void Block_Move( wxDC* DC );
/** /**
* Function Block_Mirror_X * Function Block_Mirror_X
* mirrors all tracks and segments within the currently selected block in the X axis. * mirrors all tracks and segments within the currently selected block
* in the X axis.
* *
* @param DC A device context to draw on. * @param DC A device context to draw on.
*/ */
@ -83,7 +112,8 @@ public:
/** /**
* Function Block_Duplicate * Function Block_Duplicate
* copies-and-moves all tracks and segments within the selected block. * copies-and-moves all tracks and segments within the selected block.
* New location is determined by the current offset from the selected block's original location. * New location is determined by the current offset from the selected
* block's original location.
* Defined separately in pcbnew and gerbview * Defined separately in pcbnew and gerbview
* *
* @param DC A device context to draw on. * @param DC A device context to draw on.
@ -96,16 +126,20 @@ public:
void Genere_GERBER( const wxString& FullFileName, int Layers ); void Genere_GERBER( const wxString& FullFileName, int Layers );
void Genere_PS( const wxString& FullFileName, int Layers ); void Genere_PS( const wxString& FullFileName, int Layers );
void Plot_Layer_HPGL( FILE* File, int masque_layer, void Plot_Layer_HPGL( FILE* File, int masque_layer,
int garde, bool trace_via, GRTraceMode trace_mode ); int garde, bool trace_via,
GRTraceMode trace_mode );
void Plot_Layer_GERBER( FILE* File, int masque_layer, void Plot_Layer_GERBER( FILE* File, int masque_layer,
int garde, bool trace_via, GRTraceMode trace_mode ); int garde, bool trace_via,
GRTraceMode trace_mode );
int Gen_D_CODE_File( const wxString& Name_File ); int Gen_D_CODE_File( const wxString& Name_File );
void Plot_Layer_PS( FILE* File, int masque_layer, void Plot_Layer_PS( FILE* File, int masque_layer,
int garde, bool trace_via, GRTraceMode trace_mode ); int garde, bool trace_via,
GRTraceMode trace_mode );
void Files_io( wxCommandEvent& event ); void Files_io( wxCommandEvent& event );
void OnFileHistory( wxCommandEvent& event ); void OnFileHistory( wxCommandEvent& event );
bool LoadOneGerberFile( const wxString& FileName, wxDC* DC, int mode ); bool LoadOneGerberFile( const wxString& FileName, wxDC* DC,
int mode );
int ReadGerberFile( wxDC* DC, FILE* File, bool Append ); int ReadGerberFile( wxDC* DC, FILE* File, bool Append );
bool Read_GERBER_File( wxDC* DC, bool Read_GERBER_File( wxDC* DC,
const wxString& GERBER_FullFileName, const wxString& GERBER_FullFileName,
@ -117,7 +151,8 @@ public:
/** /**
* Function Read_D_Code_File * Function Read_D_Code_File
* reads in a dcode file assuming ALSPCB file format with ';' indicating comments. * reads in a dcode file assuming ALSPCB file format with ';' indicating
* comments.
* <p> * <p>
* Format is like CSV but with optional ';' delineated comments:<br> * Format is like CSV but with optional ';' delineated comments:<br>
* tool, Horiz, Vert, drill, vitesse, acc. ,Type ; [DCODE (commentaire)]<br> * tool, Horiz, Vert, drill, vitesse, acc. ,Type ; [DCODE (commentaire)]<br>
@ -132,7 +167,9 @@ public:
* @return int - <br> * @return int - <br>
* -1 = file not found<br> * -1 = file not found<br>
* -2 = parsing problem<br> * -2 = parsing problem<br>
* 0 = the \a D_Code_FullFileName is empty, no reading is done but an empty GERBER is put into g_GERBER_List[]<br> * 0 = the \a D_Code_FullFileName is empty, no reading
* is done but an empty GERBER is put into
* g_GERBER_List[]<br>
* 1 = read OK<br> * 1 = read OK<br>
*/ */
int Read_D_Code_File( const wxString& D_Code_FullFileName ); int Read_D_Code_File( const wxString& D_Code_FullFileName );
@ -170,19 +207,22 @@ public:
* currently: do nothing in gerbview. * currently: do nothing in gerbview.
* but but be defined because it is a pure virtual in WinEDA_BasePcbFrame * but but be defined because it is a pure virtual in WinEDA_BasePcbFrame
*/ */
virtual void SaveCopyInUndoList( BOARD_ITEM* aItemToCopy, virtual void SaveCopyInUndoList(
BOARD_ITEM* aItemToCopy,
UndoRedoOpType aTypeCommand = UR_UNSPECIFIED, UndoRedoOpType aTypeCommand = UR_UNSPECIFIED,
const wxPoint& aTransformPoint = wxPoint(0,0) ) const wxPoint& aTransformPoint = wxPoint(0,0) ) { }
{
}
/** Function SaveCopyInUndoList (overloaded). /** Function SaveCopyInUndoList (overloaded).
* Creates a new entry in undo list of commands. * Creates a new entry in undo list of commands.
* add a list of pickers to handle a list of items * add a list of pickers to handle a list of items
* @param aItemsList = the list of items modified by the command to undo * @param aItemsList = the list of items modified by the command to undo
* @param aTypeCommand = command type (see enum UndoRedoOpType) * @param aTypeCommand = command type (see enum UndoRedoOpType)
* @param aTransformPoint = the reference point of the transformation, for commands like move * @param aTransformPoint = the reference point of the transformation,
* for commands like move
*/ */
virtual void SaveCopyInUndoList( PICKED_ITEMS_LIST& aItemsList, UndoRedoOpType aTypeCommand, virtual void SaveCopyInUndoList(
PICKED_ITEMS_LIST& aItemsList,
UndoRedoOpType aTypeCommand,
const wxPoint& aTransformPoint = wxPoint(0,0) ) const wxPoint& aTransformPoint = wxPoint(0,0) )
{ {
// currently: do nothing in gerbview. // currently: do nothing in gerbview.

View File

@ -4,53 +4,30 @@
#define MAX_ITEMS_IN_PICKER 15 ///< max no. items in the popup menu for item selection #define MAX_ITEMS_IN_PICKER 15 ///< max no. items in the popup menu for item selection
enum main_id { /**
ID_MAIN_FRAME = 100, * Common command IDs shared by more than one of the kicad applications.
ID_LEFT_FRAME, *
ID_BOTTOM_FRAME, * Only place command IDs used in base window class event tables or shared
ID_MAIN_DIALOG, * across multple applications such as the zoom, grid, and language IDs.
ID_PROJECT_TREE, * Application specific IDs should be defined in the appropriate header
ID_PROJECT_TXTEDIT, * file to prevent the entire project from being rebuilt.
ID_PROJECT_TREE_REFRESH, */
ID_PROJECT_RUNPY,
ID_PROJECT_NEWFILE,
ID_PROJECT_UNUSED0,
ID_PROJECT_UNUSED1,
ID_PROJECT_NEWPY,
ID_PROJECT_UNUSED2,
ID_PROJECT_NEWTXT,
ID_PROJECT_UNUSED3,
ID_PROJECT_NEWDIR,
ID_PROJECT_DELETE,
ID_PROJECT_RENAME,
ID_PROJECT_OPEN_FILE_WITH_TEXT_EDITOR,
ID_PROJECT_UNUSED4,
ID_MAIN_COMMAND, enum main_id
ID_TO_EDITOR, {
ID_TO_EESCHEMA, ID_TO_PCB = wxID_HIGHEST,
ID_TO_GERBVIEW,
ID_TO_PCB,
ID_TO_CVPCB, ID_TO_CVPCB,
ID_RUN_PYTHON,
ID_MAIN_MENUBAR,
ID_ON_ZOOM_SELECT,
ID_ON_GRID_SELECT,
ID_BROWSE_AN_SELECT_FILE,
ID_SELECT_PREFERED_EDITOR,
ID_SELECT_PREFERED_PDF_BROWSER_NAME,
ID_SELECT_PREFERED_PDF_BROWSER,
ID_SELECT_DEFAULT_PDF_BROWSER,
ID_SAVE_AND_ZIP_FILES,
ID_READ_ZIP_ARCHIVE,
// ID du menu general
ID_LOAD_PROJECT, ID_LOAD_PROJECT,
ID_LOAD_ONE_SHEET, ID_LOAD_ONE_SHEET,
ID_NEW_PROJECT, ID_NEW_PROJECT,
ID_SAVE_PROJECT, ID_SAVE_PROJECT,
ID_SAVE_ONE_SHEET, ID_SAVE_ONE_SHEET,
ID_SAVE_ONE_SHEET_AS, ID_SAVE_ONE_SHEET_AS,
ID_LOAD_FILE,
ID_APPEND_FILE,
ID_NEW_BOARD,
ID_SAVE_BOARD,
ID_SAVE_BOARD_AS,
ID_CONFIG_AND_PREFERENCES_START, ID_CONFIG_AND_PREFERENCES_START,
ID_CONFIG_REQ, ID_CONFIG_REQ,
@ -134,45 +111,12 @@ enum main_id {
ID_LANGUAGE_DUTCH, ID_LANGUAGE_DUTCH,
ID_LANGUAGE_CHOICE_END, ID_LANGUAGE_CHOICE_END,
// ID du Main Toolbar de Schematique
ID_SCHEMATIC_UNDO,
ID_SCHEMATIC_REDO,
// ID du Vertical Toolbar de Schematique
ID_SCHEMATIC_VERTICAL_TOOLBAR_START,
ID_NO_SELECT_BUTT,
ID_HIERARCHY_PUSH_POP_BUTT,
ID_COMPONENT_BUTT,
ID_PLACE_POWER_BUTT,
ID_BUS_BUTT,
ID_WIRE_BUTT,
ID_BUSTOBUS_ENTRY_BUTT,
ID_WIRETOBUS_ENTRY_BUTT,
ID_LABEL_BUTT,
ID_GLABEL_BUTT,
ID_HIERLABEL_BUTT,
ID_IMPORT_HLABEL_BUTT,
ID_SHEET_LABEL_BUTT,
ID_NOCONN_BUTT,
ID_JUNCTION_BUTT,
ID_SHEET_SYMBOL_BUTT,
ID_TEXT_COMMENT_BUTT,
ID_LINE_COMMENT_BUTT,
ID_SCHEMATIC_DELETE_ITEM_BUTT,
ID_SCHEMATIC_UNUSED0,
ID_SCHEMATIC_UNUSED1,
ID_SCHEMATIC_UNUSED2,
ID_SCHEMATIC_VERTICAL_TOOLBAR_END,
// end ID Vertical Toolbar de Schematique
ID_SET_REPEAT_OPTION, ID_SET_REPEAT_OPTION,
// Popup Menu (mouse Right button) (id consecutifs) // Popup Menu (mouse Right button) (id consecutifs)
ID_POPUP_GENERAL_START_RANGE, // first number ID_POPUP_GENERAL_START_RANGE, // first number
ID_POPUP_CANCEL_CURRENT_COMMAND, // ID general annulation commande en cours ID_POPUP_CANCEL_CURRENT_COMMAND,
ID_POPUP_CLOSE_CURRENT_TOOL, ID_POPUP_CLOSE_CURRENT_TOOL,
ID_POPUP_MOVE_BLOCK, ID_POPUP_MOVE_BLOCK,
ID_POPUP_DRAG_BLOCK, ID_POPUP_DRAG_BLOCK,
@ -194,6 +138,7 @@ enum main_id {
ID_POPUP_ENTER_MENU, ID_POPUP_ENTER_MENU,
ID_ON_ZOOM_SELECT,
ID_POPUP_ZOOM_START_RANGE, // first zoom id ID_POPUP_ZOOM_START_RANGE, // first zoom id
ID_POPUP_CANCEL, ID_POPUP_CANCEL,
ID_POPUP_ZOOM_IN, ID_POPUP_ZOOM_IN,
@ -213,6 +158,7 @@ enum main_id {
ID_POPUP_ZOOM_LEVEL_END = ID_POPUP_ZOOM_LEVEL_START + 32, ID_POPUP_ZOOM_LEVEL_END = ID_POPUP_ZOOM_LEVEL_START + 32,
ID_POPUP_ZOOM_END_RANGE, // last zoom id ID_POPUP_ZOOM_END_RANGE, // last zoom id
ID_ON_GRID_SELECT,
ID_POPUP_GRID_PLUS, ID_POPUP_GRID_PLUS,
ID_POPUP_GRID_MOINS, ID_POPUP_GRID_MOINS,
ID_POPUP_GRID_SELECT, ID_POPUP_GRID_SELECT,
@ -235,120 +181,12 @@ enum main_id {
ID_POPUP_GRID_LEVEL_0_1MM, ID_POPUP_GRID_LEVEL_0_1MM,
ID_POPUP_GRID_USER, ID_POPUP_GRID_USER,
ID_POPUP_START_RANGE, // first number
ID_POPUP_LIBEDIT_PIN_EDIT, // Id pour menu PopUp de Libedit
ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_ITEM,
ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINSIZE_ITEM,
ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINNAMESIZE_ITEM,
ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINNUMSIZE_ITEM,
ID_POPUP_LIBEDIT_BODY_EDIT_ITEM, // Id pour menu PopUp de Libedit
ID_POPUP_LIBEDIT_DELETE_ITEM,
ID_POPUP_LIBEDIT_END_CREATE_ITEM,
ID_POPUP_LIBEDIT_CANCEL_EDITING,
ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST,
ID_POPUP_LIBEDIT_FIELD_EDIT_ITEM,
ID_POPUP_LIBEDIT_FIELD_ROTATE_ITEM,
ID_POPUP_LIBEDIT_DELETE_CURRENT_POLY_SEGMENT,
ID_POPUP_LIBEDIT_ROTATE_GRAPHIC_TEXT,
ID_POPUP_LIBEDIT_UNUSED2, // En attente d'affectation
ID_POPUP_LIBEDIT_UNUSED3, // En attente d'affectation
ID_POPUP_LIBEDIT_UNUSED4, // En attente d'affectation
ID_POPUP_LIBEDIT_UNUSED5, // En attente d'affectation
ID_POPUP_SCH_DELETE,
ID_POPUP_SCH_BREAK_WIRE,
ID_POPUP_SCH_DELETE_CONNECTION,
ID_POPUP_SCH_MOVE_ITEM_REQUEST,
ID_POPUP_SCH_DELETE_NODE,
ID_POPUP_SCH_MOVE_CMP_REQUEST,
ID_POPUP_SCH_DELETE_CMP,
ID_POPUP_SCH_DRAG_CMP_REQUEST,
ID_POPUP_SCH_DRAG_WIRE_REQUEST,
ID_POPUP_SCH_UNUSED_2,
ID_POPUP_SCH_ENTRY_SELECT_SLASH,
ID_POPUP_SCH_ENTRY_SELECT_ANTISLASH,
ID_POPUP_SCH_EDIT_CMP,
ID_POPUP_SCH_MIROR_X_CMP,
ID_POPUP_SCH_MIROR_Y_CMP,
ID_POPUP_SCH_ROTATE_CMP_CLOCKWISE,
ID_POPUP_SCH_ROTATE_CMP_COUNTERCLOCKWISE,
ID_POPUP_SCH_ORIENT_NORMAL_CMP,
ID_POPUP_SCH_INIT_CMP,
ID_POPUP_SCH_EDIT_TEXT,
ID_POPUP_SCH_ROTATE_TEXT,
ID_POPUP_SCH_SET_SHAPE_TEXT,
ID_POPUP_END_LINE,
ID_POPUP_SCH_END_SHEET,
ID_POPUP_SCH_EDIT_SHEET,
ID_POPUP_SCH_RESIZE_SHEET,
ID_POPUP_SCH_CLEANUP_SHEET,
ID_POPUP_SCH_EDIT_PINSHEET,
ID_POPUP_SCH_MOVE_PINSHEET,
ID_POPUP_IMPORT_GLABEL,
ID_POPUP_SCH_GENERIC_ORIENT_CMP,
ID_POPUP_SCH_GENERIC_EDIT_CMP,
ID_POPUP_SCH_EDIT_VALUE_CMP,
ID_POPUP_SCH_EDIT_REF_CMP,
ID_POPUP_SCH_EDIT_FOOTPRINT_CMP,
ID_POPUP_SCH_EDIT_CONVERT_CMP,
ID_POPUP_SCH_COPY_COMPONENT_CMP,
ID_POPUP_SCH_SELECT_UNIT_CMP,
ID_POPUP_SCH_SELECT_UNIT1,
ID_POPUP_SCH_SELECT_UNIT2,
ID_POPUP_SCH_SELECT_UNIT3,
ID_POPUP_SCH_SELECT_UNIT4,
ID_POPUP_SCH_SELECT_UNIT5,
ID_POPUP_SCH_SELECT_UNIT6,
ID_POPUP_SCH_SELECT_UNIT7,
ID_POPUP_SCH_SELECT_UNIT8,
ID_POPUP_SCH_SELECT_UNIT9,
ID_POPUP_SCH_SELECT_UNIT10,
ID_POPUP_SCH_SELECT_UNIT11,
ID_POPUP_SCH_SELECT_UNIT12,
ID_POPUP_SCH_SELECT_UNIT13,
ID_POPUP_SCH_SELECT_UNIT14,
ID_POPUP_SCH_SELECT_UNIT15,
ID_POPUP_SCH_SELECT_UNIT16,
ID_POPUP_SCH_SELECT_UNIT17,
ID_POPUP_SCH_SELECT_UNIT18,
ID_POPUP_SCH_SELECT_UNIT19,
ID_POPUP_SCH_SELECT_UNIT20,
ID_POPUP_SCH_SELECT_UNIT21,
ID_POPUP_SCH_SELECT_UNIT22,
ID_POPUP_SCH_SELECT_UNIT23,
ID_POPUP_SCH_SELECT_UNIT24,
ID_POPUP_SCH_SELECT_UNIT25,
ID_POPUP_SCH_SELECT_UNIT26,
ID_POPUP_SCH_ROTATE_FIELD,
ID_POPUP_SCH_EDIT_FIELD,
ID_POPUP_SCH_CHANGE_TYPE_TEXT,
ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_LABEL,
ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_GLABEL,
ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_COMMENT,
ID_POPUP_SCH_DISPLAYDOC_CMP,
ID_POPUP_SCH_ENTER_SHEET,
ID_POPUP_SCH_LEAVE_SHEET,
ID_POPUP_SCH_ADD_JUNCTION,
ID_POPUP_SCH_ADD_LABEL,
ID_POPUP_SCH_ADD_GLABEL,
ID_POPUP_SCH_CHANGE_TYPE_TEXT_TO_HLABEL,
ID_POPUP_SCH_GETINFO_MARKER,
ID_POPUP_SCH_UNUSED2,
ID_POPUP_SCH_UNUSED3,
ID_POPUP_END_RANGE, // last number
// Horizontal Toolbar de schematique
ID_SHEET_SET, ID_SHEET_SET,
ID_HIERARCHY,
ID_TO_LIBRARY, ID_TO_LIBRARY,
ID_TO_LIBVIEW, ID_NO_SELECT_BUTT,
ID_COMPONENT_BUTT,
ID_ZOOM_IN, // Gestion zoom: id consecutifs ID_ZOOM_IN,
ID_ZOOM_OUT, ID_ZOOM_OUT,
ID_ZOOM_REDRAW, ID_ZOOM_REDRAW,
ID_ZOOM_PAGE, ID_ZOOM_PAGE,
@ -359,424 +197,16 @@ enum main_id {
ID_PAN_LEFT, ID_PAN_LEFT,
ID_PAN_RIGHT, ID_PAN_RIGHT,
ID_GET_ANNOTATE, // Gestion fonctions : id consecutifs
ID_GET_ERC,
ID_GET_NETLIST, ID_GET_NETLIST,
ID_GET_TOOLS, ID_GET_TOOLS,
ID_FIND_ITEMS, ID_FIND_ITEMS,
ID_BACKANNO_ITEMS,
// Id pour HToolBar de Libview (Process_Special_Functions)
ID_LIBVIEW_START_H_TOOL,
ID_LIBVIEW_NEXT,
ID_LIBVIEW_PREVIOUS,
ID_LIBVIEW_SELECT_PART,
ID_LIBVIEW_SELECT_LIB,
ID_LIBVIEW_VIEWDOC,
ID_LIBVIEW_DE_MORGAN_NORMAL_BUTT,
ID_LIBVIEW_DE_MORGAN_CONVERT_BUTT,
ID_LIBVIEW_TOOL_UNUSED0,
ID_LIBVIEW_TOOL_UNUSED1,
ID_LIBVIEW_END_H_TOOL,
ID_LIBVIEW_SELECT_PART_NUMBER,
ID_LIBVIEW_LIB_LIST,
ID_LIBVIEW_CMP_LIST,
ID_LIBVIEW_LIBWINDOW,
ID_LIBVIEW_CMPWINDOW,
ID_LIBVIEW_UNUSED3,
ID_LIBVIEW_UNUSED4,
ID_LIBVIEW_CMP_EXPORT_TO_SCHEMATIC, // Used in Htoolbar, specific function
/* LibEdit: */
/* Id for HToolBar Tools( buttons) for Libedit (Process_Special_Functions) */
ID_LIBEDIT_START_H_TOOL,
ID_LIBEDIT_SELECT_PART,
ID_LIBEDIT_SELECT_CURRENT_LIB,
ID_LIBEDIT_SAVE_CURRENT_LIB,
ID_LIBEDIT_SAVE_CURRENT_PART,
ID_LIBEDIT_NEW_PART,
ID_LIBEDIT_GET_FRAME_EDIT_PART,
ID_LIBEDIT_GET_FRAME_EDIT_FIELDS,
ID_LIBEDIT_DELETE_PART,
ID_LIBEDIT_UNDO,
ID_LIBEDIT_REDO,
ID_DE_MORGAN_NORMAL_BUTT,
ID_DE_MORGAN_CONVERT_BUTT,
ID_LIBEDIT_EDIT_PIN_BY_PIN,
ID_LIBEDIT_VIEW_DOC,
ID_LIBEDIT_CHECK_PART,
ID_LIBEDIT_END_H_TOOL, // End Id for HToolBar (Libedit)
ID_LIBEDIT_SELECT_PART_NUMBER, // Id selection unit of part (HToolBar, combo box)
ID_LIBEDIT_SELECT_ALIAS, // Id selection alias of part (HToolBar, combo box)
ID_LIBEDIT_HTOOL_UNUSED1,
ID_LIBEDIT_HTOOL_UNUSED2,
ID_LIBEDIT_HTOOL_UNUSED3,
ID_LIBEDIT_HTOOL_UNUSED4,
/* Id pour VToolBar de Libedit */
ID_LIBEDIT_START_V_TOOL,
ID_LIBEDIT_PIN_BUTT,
ID_LIBEDIT_BODY_LINE_BUTT,
ID_LIBEDIT_BODY_ARC_BUTT,
ID_LIBEDIT_BODY_CIRCLE_BUTT,
ID_LIBEDIT_BODY_RECT_BUTT,
ID_LIBEDIT_BODY_TEXT_BUTT,
ID_LIBEDIT_DELETE_ITEM_BUTT,
ID_LIBEDIT_ANCHOR_ITEM_BUTT,
ID_LIBEDIT_IMPORT_BODY_BUTT,
ID_LIBEDIT_EXPORT_BODY_BUTT,
ID_LIBEDIT_VTOOL_UNUSED0,
ID_LIBEDIT_VTOOL_UNUSED1,
ID_LIBEDIT_VTOOL_UNUSED2,
ID_LIBEDIT_VTOOL_UNUSED3,
ID_LIBEDIT_VTOOL_UNUSED4,
ID_LIBEDIT_END_V_TOOL, // End Id pour VToolBar de Libedit
// ID pour CVPCB
ID_CVPCB_QUIT,
ID_CVPCB_READ_INPUT_NETLIST,
ID_CVPCB_SAVEQUITCVPCB,
ID_CVPCB_CREATE_CONFIGWINDOW,
ID_CVPCB_CREATE_SCREENCMP,
ID_CVPCB_GOTO_FIRSTNA,
ID_CVPCB_GOTO_PREVIOUSNA,
ID_CVPCB_DEL_ASSOCIATIONS,
ID_CVPCB_AUTO_ASSOCIE,
ID_CVPCB_COMPONENT_LIST,
ID_CVPCB_FOOTPRINT_LIST,
ID_CVPCB_CREATE_STUFF_FILE,
ID_CVPCB_SHOW3D_FRAME,
ID_CVPCB_FOOTPRINT_DISPLAY_FULL_LIST,
ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST,
ID_CVPCB_CONFIG_KEEP_OPEN_ON_SAVE,
ID_CVPCB_UNUSED0,
ID_CVPCB_UNUSED1,
// id specifiques pcbnew
ID_LOAD_FILE,
ID_APPEND_FILE,
ID_NEW_BOARD,
ID_OPEN_MODULE_EDITOR,
ID_UNNUSED_BUTT,
ID_TRACK_BUTT,
ID_PCB_ZONES_BUTT,
ID_PCB_DELETE_ITEM_BUTT,
ID_READ_NETLIST,
ID_DRC_CONTROL,
ID_PCB_CIRCLE_BUTT,
ID_PCB_ARC_BUTT,
ID_PCB_HIGHLIGHT_BUTT,
ID_PCB_MIRE_BUTT,
ID_PCB_SHOW_1_RATSNEST_BUTT,
ID_PCB_PLACE_OFFSET_COORD_BUTT,
ID_PCB_COPPER_LAYERS_SETUP,
ID_PCB_UNUSED_BUTT1,
ID_PCB_UNUSED_BUTT2,
ID_PCB_UNUSED_BUTT3,
ID_POPUP_PCB_START_RANGE,
ID_POPUP_PCB_MOVE_MODULE_REQUEST,
ID_POPUP_PCB_DRAG_MODULE_REQUEST,
ID_POPUP_PCB_EDIT_MODULE,
ID_POPUP_PCB_CHANGE_SIDE_MODULE,
ID_POPUP_PCB_DELETE_MODULE,
ID_POPUP_PCB_ROTATE_MODULE_CLOCKWISE,
ID_POPUP_PCB_ROTATE_MODULE_COUNTERCLOCKWISE,
ID_POPUP_PCB_EDIT_PAD,
ID_POPUP_PCB_EDIT_MORE_PAD,
ID_POPUP_PCB_EDIT_PADS_ON_MODULE,
ID_POPUP_PCB_DELETE_PAD,
ID_POPUP_PCB_ADD_PAD,
ID_POPUP_PCB_NEWSIZE_PAD,
ID_POPUP_PCB_ROTATE_PAD,
ID_POPUP_PCB_MOVE_PAD_REQUEST,
ID_POPUP_PCB_DRAG_PAD_REQUEST,
ID_POPUP_PCB_MOVE_TEXTMODULE_REQUEST,
ID_POPUP_PCB_ROTATE_TEXTMODULE,
ID_POPUP_PCB_EDIT_TEXTMODULE,
ID_POPUP_PCB_DELETE_TEXTMODULE,
ID_POPUP_PCB_MOVE_TEXTEPCB_REQUEST,
ID_POPUP_PCB_ROTATE_TEXTEPCB,
ID_POPUP_PCB_EDIT_TEXTEPCB,
ID_POPUP_PCB_DELETE_TEXTEPCB,
ID_POPUP_PCB_MOVE_DRAWING_REQUEST,
ID_POPUP_PCB_EDIT_DRAWING,
ID_POPUP_PCB_DELETE_DRAWING,
ID_POPUP_PCB_DELETE_DRAWING_LAYER,
ID_POPUP_PCB_EDIT_TRACK,
ID_POPUP_PCB_DELETE_TRACKSEG,
ID_POPUP_PCB_DELETE_TRACK,
ID_POPUP_PCB_DELETE_TRACKNET,
ID_POPUP_PCB_DELETE_TRACK_MNU,
ID_POPUP_PCB_MOVE_ZONE_CORNER,
ID_POPUP_PCB_ADD_ZONE_CORNER,
ID_POPUP_PCB_DELETE_ZONE_CORNER,
ID_POPUP_PCB_PLACE_ZONE_CORNER,
ID_POPUP_PCB_DELETE_ZONE_LAST_CREATED_CORNER,
ID_POPUP_PCB_EDIT_ZONE_PARAMS,
ID_POPUP_PCB_DELETE_ZONE,
ID_POPUP_PCB_STOP_CURRENT_EDGE_ZONE,
ID_POPUP_PCB_FILL_ALL_ZONES,
ID_POPUP_PCB_FILL_ZONE,
ID_POPUP_PCB_DELETE_ZONE_CONTAINER,
ID_POPUP_PCB_ZONE_ADD_SIMILAR_ZONE,
ID_POPUP_PCB_ZONE_ADD_CUTOUT_ZONE,
ID_POPUP_PCB_DELETE_ZONE_CUTOUT,
ID_POPUP_PCB_MOVE_ZONE_OUTLINES,
ID_POPUP_PCB_PLACE_ZONE_OUTLINES,
ID_POPUP_PCB_DRAG_ZONE_OUTLINE_SEGMENT,
ID_POPUP_PCB_PLACE_DRAGGED_ZONE_OUTLINE_SEGMENT,
ID_POPUP_PCB_REMOVE_FILLED_AREAS_IN_ALL_ZONES,
ID_POPUP_PCB_REMOVE_FILLED_AREAS_IN_CURRENT_ZONE,
ID_POPUP_PCB_DELETE_MARKER,
ID_POPUP_PCB_DELETE_COTATION,
ID_POPUP_PCB_MOVE_MIRE_REQUEST,
ID_POPUP_PCB_DELETE_MIRE,
ID_POPUP_PCB_EDIT_MIRE,
ID_POPUP_PCB_STOP_CURRENT_DRAWING,
ID_POPUP_PCB_EDIT_COTATION,
ID_POPUP_PCB_END_TRACK,
ID_POPUP_PCB_PLACE_VIA,
ID_POPUP_PCB_PLACE_MICROVIA,
ID_POPUP_PCB_IMPORT_PAD_SETTINGS,
ID_POPUP_PCB_EXPORT_PAD_SETTINGS,
ID_POPUP_PCB_SELECT_WIDTH,
ID_POPUP_PCB_SELECT_AUTO_WIDTH,
ID_POPUP_PCB_SELECT_WIDTH1,
ID_POPUP_PCB_SELECT_WIDTH2,
ID_POPUP_PCB_SELECT_WIDTH3,
ID_POPUP_PCB_SELECT_WIDTH4,
ID_POPUP_PCB_SELECT_WIDTH5,
ID_POPUP_PCB_SELECT_WIDTH6,
ID_POPUP_PCB_SELECT_WIDTH7,
ID_POPUP_PCB_SELECT_WIDTH8,
ID_POPUP_PCB_EDIT_TRACKSEG,
ID_POPUP_PCB_EDIT_TRACK_MNU,
ID_POPUP_PCB_EDIT_NET,
ID_POPUP_PCB_SELECT_LAYER,
ID_POPUP_PCB_SELECT_CU_LAYER,
ID_POPUP_PCB_SELECT_NO_CU_LAYER,
ID_POPUP_PCB_SELECT_LAYER_PAIR,
ID_POPUP_PCB_EDIT_EDGE,
ID_POPUP_PCB_DELETE_EDGE,
ID_POPUP_PCB_MOVE_EDGE,
ID_POPUP_PCB_PLACE_EDGE,
ID_POPUP_PCB_END_EDGE,
ID_POPUP_PCB_LOCK_ON_TRACKSEG,
ID_POPUP_PCB_LOCK_OFF_TRACKSEG,
ID_POPUP_PCB_LOCK_ON_TRACK,
ID_POPUP_PCB_LOCK_OFF_TRACK,
ID_POPUP_PCB_LOCK_ON_NET,
ID_POPUP_PCB_LOCK_OFF_NET,
ID_POPUP_PCB_SETFLAGS_TRACK_MNU,
ID_POPUP_PCB_AUTOROUTE_GET_AUTOROUTER,
ID_POPUP_PCB_AUTOROUTE_GET_AUTOROUTER_DATA,
ID_POPUP_PCB_EDIT_WIDTH_CURRENT_EDGE,
ID_POPUP_PCB_EDIT_WIDTH_ALL_EDGE,
ID_POPUP_PCB_EDIT_LAYER_CURRENT_EDGE,
ID_POPUP_PCB_EDIT_LAYER_ALL_EDGE,
ID_POPUP_PCB_ENTER_EDGE_WIDTH,
ID_POPUP_PCB_GLOBAL_IMPORT_PAD_SETTINGS,
ID_POPUP_PCB_EDIT_ALL_VIAS_AND_TRACK_SIZE,
ID_POPUP_PCB_EDIT_ALL_VIAS_SIZE,
ID_POPUP_PCB_EDIT_ALL_TRACK_SIZE,
ID_POPUP_PCB_DISPLAY_FOOTPRINT_DOC,
ID_POPUP_PCB_MOVE_TRACK_NODE,
ID_POPUP_PCB_BREAK_TRACK,
ID_POPUP_PCB_PLACE_MOVED_TRACK_NODE,
ID_POPUP_PCB_DRAG_TRACK_SEGMENT_KEEP_SLOPE,
ID_POPUP_PCB_DRAG_TRACK_SEGMENT,
ID_POPUP_PCB_MOVE_TRACK_SEGMENT,
ID_POPUP_PCB_GET_AND_MOVE_MODULE_REQUEST,
ID_POPUP_PCB_GETINFO_MARKER,
ID_POPUP_PCB_UNUSED6,
ID_POPUP_PCB_UNUSED7,
ID_POPUP_PCB_UNUSED8,
ID_POPUP_PCB_END_RANGE,
// Via edition
ID_POPUP_VIA_EDIT_START_RANGE,
ID_POPUP_PCB_SELECT_VIASIZE,
ID_POPUP_PCB_SELECT_VIASIZE1,
ID_POPUP_PCB_SELECT_VIASIZE2,
ID_POPUP_PCB_SELECT_VIASIZE3,
ID_POPUP_PCB_SELECT_VIASIZE4,
ID_POPUP_PCB_SELECT_VIASIZE5,
ID_POPUP_PCB_SELECT_VIASIZE6,
ID_POPUP_PCB_SELECT_VIASIZE7,
ID_POPUP_PCB_SELECT_VIASIZE8,
ID_POPUP_PCB_VIA_EDITING,
ID_POPUP_PCB_VIA_HOLE_TO_DEFAULT,
ID_POPUP_PCB_VIA_HOLE_TO_VALUE,
ID_POPUP_PCB_VIA_HOLE_ENTER_VALUE,
ID_POPUP_PCB_VIA_HOLE_EXPORT,
ID_POPUP_PCB_VIA_HOLE_RESET_TO_DEFAULT,
ID_POPUP_PCB_VIA_HOLE_EXPORT_TO_OTHERS,
ID_POPUP_VIA_EDIT_END_RANGE,
// reserve a block of MAX_ITEMS_IN_PICKER ids for the item selection popup
ID_POPUP_PCB_ITEM_SELECTION_START,
ID_POPUP_PCB_ITEM_SELECTION_END = MAX_ITEMS_IN_PICKER + ID_POPUP_PCB_ITEM_SELECTION_START,
ID_POPUP_PCB_AUTOPLACE_START_RANGE,
ID_POPUP_PCB_AUTOPLACE_FIXE_MODULE,
ID_POPUP_PCB_AUTOPLACE_FREE_MODULE,
ID_POPUP_PCB_AUTOPLACE_FREE_ALL_MODULES,
ID_POPUP_PCB_AUTOPLACE_FIXE_ALL_MODULES,
ID_POPUP_PCB_AUTOPLACE_CURRENT_MODULE,
ID_POPUP_PCB_AUTOMOVE_ALL_MODULES,
ID_POPUP_PCB_AUTOMOVE_NEW_MODULES,
ID_POPUP_PCB_AUTOPLACE_COMMANDS,
ID_POPUP_PCB_REORIENT_ALL_MODULES,
ID_POPUP_PCB_AUTOPLACE_ALL_MODULES,
ID_POPUP_PCB_AUTOPLACE_NEW_MODULES,
ID_POPUP_PCB_AUTOPLACE_NEXT_MODULE,
ID_POPUP_PCB_AUTOPLACE_UNUSED0,
ID_POPUP_PCB_AUTOPLACE_UNUSED1,
ID_POPUP_PCB_AUTOPLACE_UNUSED2,
ID_POPUP_PCB_AUTOPLACE_UNUSED3,
ID_POPUP_PCB_AUTOROUTE_COMMANDS,
ID_POPUP_PCB_AUTOROUTE_ALL_MODULES,
ID_POPUP_PCB_AUTOROUTE_MODULE,
ID_POPUP_PCB_AUTOROUTE_PAD,
ID_POPUP_PCB_AUTOROUTE_NET,
ID_POPUP_PCB_AUTOROUTE_RESET_UNROUTED,
ID_POPUP_PCB_AUTOROUTE_SELECT_LAYERS,
ID_POPUP_PCB_AUTOROUTE_UNUSED1,
ID_POPUP_PCB_AUTOROUTE_UNUSED2,
ID_POPUP_PCB_AUTOROUTE_UNUSED3,
ID_POPUP_PCB_AUTOROUTE_UNUSED4,
ID_POPUP_PCB_AUTOROUTE_UNUSED5,
ID_POPUP_PCB_AUTOROUTE_UNUSED6,
ID_POPUP_PCB_AUTOROUTE_UNUSED7,
ID_POPUP_PCB_AUTOPLACE_END_RANGE,
ID_SAVE_BOARD,
ID_MENU_SAVE_BOARD,
ID_MENU_SAVE_BOARD_AS,
ID_MENU_LOAD_FILE,
ID_MENU_APPEND_FILE,
ID_MENU_NEW_BOARD,
ID_MENU_RECOVER_BOARD,
ID_MENU_READ_LAST_SAVED_VERSION_BOARD,
ID_MENU_ARCHIVE_MODULES,
ID_MENU_ARCHIVE_NEW_MODULES,
ID_MENU_ARCHIVE_ALL_MODULES,
ID_MENU_MICELLANOUS,
ID_MENU_LIST_NETS,
ID_MENU_PCB_CLEAN,
ID_MENU_PCB_SWAP_LAYERS,
ID_MENU_PCB_UNUSED0,
ID_MENU_PCB_UNUSED1,
ID_MENU_PCB_UNUSED2,
ID_MENU_PCB_UNUSED3,
ID_MENU_PCB_UNUSED4,
ID_TOOLBARH_PCB_SELECT_LAYER,
ID_TOOLBARH_PCB_AUTOPLACE,
ID_TOOLBARH_PCB_AUTOROUTE,
ID_TOOLBARH_PCB_FREEROUTE_ACCESS,
ID_AUX_TOOLBAR_PCB_VIA_SIZE,
ID_AUX_TOOLBAR_PCB_TRACK_WIDTH,
ID_AUX_TOOLBAR_PCB_CLR_WIDTH,
ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR,
ID_AUX_TOOLBAR_PCB_SELECT_AUTO_WIDTH,
ID_AUX_TOOLBAR_PCB_UNUSED3,
ID_AUX_TOOLBAR_PCB_UNUSED4,
ID_AUX_TOOLBAR_PCB_UNUSED5,
ID_AUX_TOOLBAR_PCB_UNUSED6,
ID_AUX_TOOLBAR_PCB_UNUSED7,
ID_PCB_GEN_POS_MODULES_FILE,
ID_PCB_GEN_DRILL_FILE,
ID_PCB_DISPLAY_OPTIONS_SETUP,
ID_PCB_TRACK_SIZE_SETUP,
ID_PCB_PAD_SETUP,
ID_PCB_GLOBAL_DELETE,
ID_PCB_COTATION_BUTT,
ID_PCB_DRAWINGS_WIDTHS_SETUP,
ID_PCB_GEN_CMP_FILE,
ID_MENU_PCB_SHOW_3D_FRAME,
ID_PCB_USER_GRID_SETUP,
ID_PCB_DISPLAY_FOOTPRINT_DOC,
ID_PCB_GEN_BOM_FILE_FROM_BOARD,
ID_MENU_PCB_SHOW_DESIGN_RULES_DIALOG,
ID_PCBUNUSED4,
ID_PCBUNUSED5,
ID_PCBUNUSED6,
ID_PCBUNUSED7,
ID_MODEDIT_CHECK,
ID_MODEDIT_SAVE_LIBMODULE,
ID_MODEDIT_NEW_MODULE,
ID_MODEDIT_SHEET_SET,
ID_MODEDIT_LOAD_MODULE,
ID_MODEDIT_ADD_PAD,
ID_MODEDIT_PLACE_ANCHOR,
ID_MODEDIT_DELETE_ITEM_BUTT,
ID_MODEDIT_PAD_SETTINGS,
ID_MODEDIT_LOAD_MODULE_FROM_BOARD,
ID_MODEDIT_INSERT_MODULE_IN_BOARD,
ID_MODEDIT_UPDATE_MODULE_IN_BOARD,
ID_MODEDIT_EDIT_MODULE_PROPERTIES,
ID_MODEDIT_TRANSFORM_MODULE,
ID_MODEDIT_MODULE_ROTATE,
ID_MODEDIT_MODULE_MIRROR,
ID_MODEDIT_UNDO,
ID_MODEDIT_REDO,
ID_MODEDIT_IMPORT_PART,
ID_MODEDIT_EXPORT_PART,
ID_MODEDIT_CREATE_NEW_LIB_AND_SAVE_CURRENT_PART,
ID_MODEDIT_UNUSED0,
ID_MODEDIT_UNUSED1,
ID_MODEDIT_UNUSED2,
// For GERBVIEW only /////////////////
ID_GERBVIEW_SHOW_LIST_DCODES,
ID_GERBVIEW_LOAD_DRILL_FILE,
ID_GERBVIEW_LOAD_DCODE_FILE,
ID_TOOLBARH_GERBER_SELECT_TOOL,
ID_MENU_INC_LAYER_AND_APPEND_FILE,
ID_INC_LAYER_AND_APPEND_FILE,
ID_GERBVIEW_SHOW_SOURCE,
ID_GERBVIEW_EXPORT_TO_PCBNEW,
ID_GERBVIEW_POPUP_DELETE_DCODE_ITEMS,
ID_GERBVIEW_UNUSED2,
ID_GERBVIEW_UNUSED3,
ID_GERBVIEW_UNUSED4,
ID_GERBVIEW_UNUSED5,
ID_GERBVIEW_UNUSED6,
ID_GERBVIEW_UNUSED7,
ID_GERBVIEW_UNUSED8,
//////////////////////////////////////
ID_EDA_SOCKET_EVENT_SERV, ID_EDA_SOCKET_EVENT_SERV,
ID_EDA_SOCKET_EVENT, ID_EDA_SOCKET_EVENT,
/* Command IDs common to PCBNew and GerbView. */
ID_PCB_DISPLAY_FOOTPRINT_DOC,
ID_TB_OPTIONS_START, ID_TB_OPTIONS_START,
ID_TB_OPTIONS_DRC_OFF, ID_TB_OPTIONS_DRC_OFF,
@ -803,66 +233,18 @@ enum main_id {
ID_TB_OPTIONS_SHOW_EXTRA_VERTICAL_TOOLBAR1, ID_TB_OPTIONS_SHOW_EXTRA_VERTICAL_TOOLBAR1,
ID_TB_OPTIONS_SHOW_POLYGONS_SKETCH, ID_TB_OPTIONS_SHOW_POLYGONS_SKETCH,
ID_TB_OPTIONS_SHOW_INVISIBLE_TEXT_MODE, ID_TB_OPTIONS_SHOW_INVISIBLE_TEXT_MODE,
ID_TB_OPTIONS_UNUSED7,
ID_TB_OPTIONS_UNUSED8,
ID_TB_OPTIONS_END, ID_TB_OPTIONS_END,
ID_DRC_CONTROL,
ID_START_COMMAND_3D, ID_PCB_GLOBAL_DELETE,
ID_ROTATE3D_X_NEG, ID_TRACK_BUTT,
ID_ROTATE3D_X_POS, ID_PCB_ZONES_BUTT,
ID_ROTATE3D_Y_NEG, ID_PCB_DELETE_ITEM_BUTT,
ID_ROTATE3D_Y_POS, ID_POPUP_PCB_DELETE_TRACKSEG,
ID_ROTATE3D_Z_NEG, ID_TOOLBARH_PCB_SELECT_LAYER,
ID_ROTATE3D_Z_POS, ID_PCB_DISPLAY_OPTIONS_SETUP,
ID_RELOAD3D_BOARD, ID_PCB_TRACK_SIZE_SETUP,
ID_TOOL_SCREENCOPY_TOCLIBBOARD,
ID_MOVE3D_LEFT,
ID_MOVE3D_RIGHT,
ID_MOVE3D_UP,
ID_MOVE3D_DOWN,
ID_MENU3D_BGCOLOR_SELECTION,
ID_MENU3D_AXIS_ONOFF,
ID_MENU3D_MODULE_ONOFF,
ID_MENU3D_UNUSED,
ID_MENU3D_ZONE_ONOFF,
ID_MENU3D_DRAWINGS_ONOFF,
ID_MENU3D_COMMENTS_ONOFF,
ID_MENU3D_ECO1_ONOFF,
ID_MENU3D_ECO2_ONOFF,
ID_3D_UNUSED0,
ID_3D_UNUSED1,
ID_3D_UNUSED2,
ID_3D_UNUSED3,
ID_3D_UNUSED4,
ID_3D_UNUSED5,
ID_3D_UNUSED6,
ID_END_COMMAND_3D,
ID_MENU_SCREENCOPY_PNG,
ID_MENU_SCREENCOPY_JPEG,
ID_MENU_SCREENCOPY_TOCLIBBOARD,
ID_MENU_COMMAND3D_UNUSED2,
ID_MENU_COMMAND3D_UNUSED3,
ID_MENU_COMMAND3D_UNUSED4,
ID_MENU_COMMAND3D_UNUSED5,
ID_MENU_COMMAND3D_UNUSED6,
ID_PCB_MUWAVE_START_CMD,
ID_PCB_MUWAVE_TOOL_DISPLAY_TOOLS,
ID_PCB_MUWAVE_TOOL_SELF_CMD,
ID_PCB_MUWAVE_TOOL_GAP_CMD,
ID_PCB_MUWAVE_TOOL_STUB_CMD,
ID_PCB_MUWAVE_TOOL_STUB_ARC_CMD,
ID_PCB_MUWAVE_TOOL_FUNCTION_SHAPE_CMD,
ID_PCB_MUWAVE_UNUSED0,
ID_PCB_MUWAVE_UNUSED1,
ID_PCB_MUWAVE_UNUSED2,
ID_PCB_MUWAVE_END_CMD,
ID_TOGGLE_PRESENT_COMMAND,
ID_END_LIST ID_END_LIST
}; };

View File

@ -31,6 +31,7 @@ extern wxString NetCmpExtBuffer;
extern const wxString ModuleFileExtension; extern const wxString ModuleFileExtension;
extern const wxString ModuleFileWildcard; extern const wxString ModuleFileWildcard;
extern const wxString PcbFileWildcard;
extern wxString g_ViaType_Name[4]; extern wxString g_ViaType_Name[4];

View File

@ -36,13 +36,9 @@ class SCH_CMP_FIELD;
class LibDrawPin; class LibDrawPin;
class DrawJunctionStruct; class DrawJunctionStruct;
/*******************************/
/* class WinEDA_SchematicFrame */
/*******************************/
/* enum used in RotationMiroir() */ /* enum used in RotationMiroir() */
enum fl_rot_cmp { enum fl_rot_cmp
{
CMP_NORMAL, // orientation normale (O, pas de miroir) CMP_NORMAL, // orientation normale (O, pas de miroir)
CMP_ROTATE_CLOCKWISE, // nouvelle rotation de -90 CMP_ROTATE_CLOCKWISE, // nouvelle rotation de -90
CMP_ROTATE_COUNTERCLOCKWISE, // nouvelle rotation de +90 CMP_ROTATE_COUNTERCLOCKWISE, // nouvelle rotation de +90
@ -54,7 +50,9 @@ enum fl_rot_cmp {
CMP_MIROIR_Y = 0x200 // miroir selon axe Y CMP_MIROIR_Y = 0x200 // miroir selon axe Y
}; };
/**
* Schemitic editor (EESchema) main window.
*/
class WinEDA_SchematicFrame : public WinEDA_DrawFrame class WinEDA_SchematicFrame : public WinEDA_DrawFrame
{ {
public: public:
@ -137,22 +135,23 @@ public:
int BestZoom(); // Retourne le meilleur zoom int BestZoom(); // Retourne le meilleur zoom
SCH_ITEM* SchematicGeneralLocateAndDisplay( bool IncludePin = TRUE ); SCH_ITEM* SchematicGeneralLocateAndDisplay( bool IncludePin = TRUE );
SCH_ITEM* SchematicGeneralLocateAndDisplay( SCH_ITEM* SchematicGeneralLocateAndDisplay( const wxPoint& refpoint,
const wxPoint& refpoint, bool IncludePin );
bool
IncludePin );
/** /**
* Function FillFootprintFieldForAllInstancesofComponent * Function FillFootprintFieldForAllInstancesofComponent
* searches for component "aReference", and places a Footprint in Footprint field * searches for component "aReference", and places a Footprint in
* Footprint field
* @param aReference = reference of the component to initialise * @param aReference = reference of the component to initialise
* @param aFootPrint = new value for the filed Fottprint component * @param aFootPrint = new value for the filed Fottprint component
* @param aSetVisible = true to have the field visible, false to set the invisible flag * @param aSetVisible = true to have the field visible, false to set the
* invisible flag
* @return true if the given component is found * @return true if the given component is found
* Note: * Note:
* the component is searched in the whole schematic, and because some components * the component is searched in the whole schematic, and because some
* have more than one instance (multiple parts per package components) * components have more than one instance (multiple parts per package
* the search is not stopped when a reference is found (all instances must be found). * components) the search is not stopped when a reference is found
* (all instances must be found).
*/ */
bool FillFootprintFieldForAllInstancesofComponent( const wxString& aReference, bool FillFootprintFieldForAllInstancesofComponent( const wxString& aReference,
const wxString& aFootPrint, const wxString& aFootPrint,
@ -174,7 +173,9 @@ public:
/** /**
* Function DeleteAnnotation * Function DeleteAnnotation
* Remove current component annotations * Remove current component annotations
* @param aCurrentSheetOnly : if false: remove all annotations, else remove annotation relative to the current sheet only * @param aCurrentSheetOnly : if false: remove all annotations, else
* remove annotation relative to the current
* sheet only
* @param aRedraw : true to refresh display * @param aRedraw : true to refresh display
*/ */
void DeleteAnnotation( bool aCurrentSheetOnly, bool aRedraw ); void DeleteAnnotation( bool aCurrentSheetOnly, bool aRedraw );
@ -187,8 +188,9 @@ public:
* @return a filename that can be used in plot and print functions * @return a filename that can be used in plot and print functions
* for the current screen anad sheet path. * for the current screen anad sheet path.
* This filename is unique and must be used insteed of the sreen filename * This filename is unique and must be used insteed of the sreen filename
* (or scheen filename) when one must creates file for each sheet in the heierarchy. * (or scheen filename) when one must creates file for each sheet in the
* because in complex hierarchies a sheet and a SCH_SCREEN is used more than once * heierarchy. because in complex hierarchies a sheet and a SCH_SCREEN is
* used more than once
* Name is <root sheet filename>-<sheet path> * Name is <root sheet filename>-<sheet path>
* and has no extension. * and has no extension.
* However if filename is too long name is <sheet filename>-<sheet number> * However if filename is too long name is <sheet filename>-<sheet number>
@ -198,7 +200,8 @@ public:
/** /**
* Function SetSheetNumberAndCount * Function SetSheetNumberAndCount
* Set the m_ScreenNumber and m_NumberOfScreen members for screens * Set the m_ScreenNumber and m_NumberOfScreen members for screens
* must be called after a delete or add sheet command, and when entering a sheet * must be called after a delete or add sheet command, and when entering
* a sheet
*/ */
void SetSheetNumberAndCount(); void SetSheetNumberAndCount();
@ -212,15 +215,16 @@ public:
void Save_File( wxCommandEvent& event ); void Save_File( wxCommandEvent& event );
void SaveProject(); void SaveProject();
int LoadOneEEProject( const wxString& FileName, bool IsNew ); int LoadOneEEProject( const wxString& FileName, bool IsNew );
bool LoadOneEEFile( SCH_SCREEN* screen, const wxString& FullFileName ); bool LoadOneEEFile( SCH_SCREEN* screen,
const wxString& FullFileName );
bool ReadInputStuffFile(); bool ReadInputStuffFile();
/** /**
* Function ProcessStuffFile * Function ProcessStuffFile
* gets footprint info from each line in the Stuff File by Ref Desg * gets footprint info from each line in the Stuff File by Ref Desg
* @param aFilename The file to read from. * @param aFilename The file to read from.
* @param aSetFielsAttributeToVisible = true to set the footprint field flag to visible * @param aSetFielsAttributeToVisible = true to set the footprint field
flag to visible
* @return bool - true if success, else true. * @return bool - true if success, else true.
*/ */
bool ProcessStuffFile( FILE* aFilename, bool ProcessStuffFile( FILE* aFilename,
@ -281,7 +285,8 @@ private:
DrawBusEntryStruct* BusEntry, DrawBusEntryStruct* BusEntry,
int entry_type ); int entry_type );
int GetBusEntryShape( DrawBusEntryStruct* BusEntry ); int GetBusEntryShape( DrawBusEntryStruct* BusEntry );
void StartMoveBusEntry( DrawBusEntryStruct* DrawLibItem, wxDC* DC ); void StartMoveBusEntry( DrawBusEntryStruct* DrawLibItem,
wxDC* DC );
// NoConnect // NoConnect
DrawNoConnectStruct* CreateNewNoConnectStruct( wxDC* DC ); DrawNoConnectStruct* CreateNewNoConnectStruct( wxDC* DC );
@ -333,10 +338,12 @@ private:
wxDC* DC ); wxDC* DC );
void Place_PinSheet( Hierarchical_PIN_Sheet_Struct* SheetLabel, void Place_PinSheet( Hierarchical_PIN_Sheet_Struct* SheetLabel,
wxDC* DC ); wxDC* DC );
Hierarchical_PIN_Sheet_Struct* Import_PinSheet( DrawSheetStruct* Sheet, wxDC* DC ); Hierarchical_PIN_Sheet_Struct* Import_PinSheet( DrawSheetStruct* Sheet,
wxDC* DC );
public: public:
void DeleteSheetLabel( bool aRedraw, Hierarchical_PIN_Sheet_Struct* aSheetLabelToDel ); void DeleteSheetLabel( bool aRedraw,
Hierarchical_PIN_Sheet_Struct* aSheetLabelToDel );
private: private:
@ -376,9 +383,11 @@ public:
* add a picker to handle aItemToCopy * add a picker to handle aItemToCopy
* @param aItemToCopy = the schematic item modified by the command to undo * @param aItemToCopy = the schematic item modified by the command to undo
* @param aTypeCommand = command type (see enum UndoRedoOpType) * @param aTypeCommand = command type (see enum UndoRedoOpType)
* @param aTransformPoint = the reference point of the transformation, for commands like move * @param aTransformPoint = the reference point of the transformation,
* for commands like move
*/ */
void SaveCopyInUndoList( SCH_ITEM* aItemToCopy, UndoRedoOpType aTypeCommand, void SaveCopyInUndoList( SCH_ITEM* aItemToCopy,
UndoRedoOpType aTypeCommand,
const wxPoint& aTransformPoint = wxPoint(0,0) ); const wxPoint& aTransformPoint = wxPoint(0,0) );
/** Function SaveCopyInUndoList (overloaded). /** Function SaveCopyInUndoList (overloaded).
@ -386,19 +395,24 @@ public:
* add a list of pickers to handle a list of items * add a list of pickers to handle a list of items
* @param aItemsList = the list of items modified by the command to undo * @param aItemsList = the list of items modified by the command to undo
* @param aTypeCommand = command type (see enum UndoRedoOpType) * @param aTypeCommand = command type (see enum UndoRedoOpType)
* @param aTransformPoint = the reference point of the transformation, for commands like move * @param aTransformPoint = the reference point of the transformation,
* for commands like move
*/ */
void SaveCopyInUndoList( PICKED_ITEMS_LIST& aItemsList, UndoRedoOpType aTypeCommand, void SaveCopyInUndoList( PICKED_ITEMS_LIST& aItemsList,
UndoRedoOpType aTypeCommand,
const wxPoint& aTransformPoint = wxPoint(0,0) ); const wxPoint& aTransformPoint = wxPoint(0,0) );
private: private:
/** Function PutDataInPreviousState() /** Function PutDataInPreviousState()
* Used in undo or redo command. * Used in undo or redo command.
* Put data pointed by List in the previous state, i.e. the state memorised by List * Put data pointed by List in the previous state, i.e. the state
* @param aList = a PICKED_ITEMS_LIST pointer to the list of items to undo/redo * memorised by List
* @param aList = a PICKED_ITEMS_LIST pointer to the list of items to
* undo/redo
* @param aRedoCommand = a bool: true for redo, false for undo * @param aRedoCommand = a bool: true for redo, false for undo
*/ */
void PutDataInPreviousState( PICKED_ITEMS_LIST* aList, bool aRedoCommand ); void PutDataInPreviousState( PICKED_ITEMS_LIST* aList, bool aRedoCommand );
/** Function GetSchematicFromRedoList /** Function GetSchematicFromRedoList
* Redo the last edition: * Redo the last edition:
* - Save the current schematic in Undo list * - Save the current schematic in Undo list
@ -406,6 +420,7 @@ private:
* @return none * @return none
*/ */
void GetSchematicFromRedoList(wxCommandEvent& event); void GetSchematicFromRedoList(wxCommandEvent& event);
/** Function GetSchematicFromUndoList /** Function GetSchematicFromUndoList
* Undo the last edition: * Undo the last edition:
* - Save the current schematic in Redo list * - Save the current schematic in Redo list
@ -442,7 +457,8 @@ public:
* part number > number of parts * part number > number of parts
* different values between parts * different values between parts
* @return errors count * @return errors count
* @param aMessageList = a wxArrayString to store messages. If NULL, they are displayed in a wxMessageBox * @param aMessageList = a wxArrayString to store messages. If NULL,
* they are displayed in a wxMessageBox
* @param aOneSheetOnly : true = search is made only in the current sheet * @param aOneSheetOnly : true = search is made only in the current sheet
* false = search in whole hierarchy (usual search). * false = search in whole hierarchy (usual search).
*/ */
@ -458,200 +474,4 @@ public:
}; };
/*****************************/
/* class WinEDA_LibeditFrame */
/*****************************/
class WinEDA_LibeditFrame : public WinEDA_DrawFrame
{
public:
WinEDAChoiceBox* m_SelpartBox;
WinEDAChoiceBox* m_SelAliasBox;
public:
WinEDA_LibeditFrame( wxWindow* father,
const wxString& title,
const wxPoint& pos, const wxSize& size,
long style = KICAD_DEFAULT_DRAWFRAME_STYLE );
~WinEDA_LibeditFrame();
void Process_Special_Functions( wxCommandEvent& event );
void OnImportPart( wxCommandEvent& event );
void OnExportPart( wxCommandEvent& event );
void OnSelectAlias( wxCommandEvent& event );
void OnSelectPart( wxCommandEvent& event );
void OnEditComponentProperties( wxCommandEvent& event );
void OnUpdateEditingPart( wxUpdateUIEvent& event );
void OnUpdateNotEditingPart( wxUpdateUIEvent& event );
void OnUpdateUndo( wxUpdateUIEvent& event );
void OnUpdateRedo( wxUpdateUIEvent& event );
void OnUpdateSaveCurrentLib( wxUpdateUIEvent& event );
void OnUpdateViewDoc( wxUpdateUIEvent& event );
void OnUpdatePinByPin( wxUpdateUIEvent& event );
void OnUpdatePartNumber( wxUpdateUIEvent& event );
void OnUpdateDeMorganNormal( wxUpdateUIEvent& event );
void OnUpdateDeMorganConvert( wxUpdateUIEvent& event );
void OnUpdateSelectAlias( wxUpdateUIEvent& event );
void UpdateAliasSelectList();
void UpdatePartSelectList();
void DisplayLibInfos();
void RedrawActiveWindow( wxDC* DC, bool EraseBg );
void OnCloseWindow( wxCloseEvent& Event );
void ReCreateHToolbar();
void ReCreateVToolbar();
void OnLeftClick( wxDC* DC, const wxPoint& MousePos );
bool OnRightClick( const wxPoint& MousePos, wxMenu* PopMenu );
int BestZoom(); // Retourne le meilleur zoom
void OnLeftDClick( wxDC* DC, const wxPoint& MousePos );
SCH_SCREEN* GetScreen() { return (SCH_SCREEN*) GetBaseScreen(); }
void OnHotKey( wxDC* DC, int hotkey,
EDA_BaseStruct* DrawStruct );
void GeneralControle( wxDC* DC,
wxPoint MousePositionInPixels );
void LoadSettings();
void SaveSettings();
private:
// General:
void CreateNewLibraryPart();
void DeleteOnePart();
void SaveOnePartInMemory();
void SelectActiveLibrary();
bool LoadOneLibraryPart();
void SaveActiveLibrary( wxCommandEvent& event );
bool LoadOneLibraryPartAux( CMP_LIB_ENTRY* LibEntry,
CMP_LIBRARY* Library );
void DisplayCmpDoc();
void EditComponentProperties();
// General editing
public:
void SaveCopyInUndoList( EDA_BaseStruct* ItemToCopy, int flag_type_command = 0 );
void InstallFieldsEditorDialog( void );
private:
void GetComponentFromUndoList(wxCommandEvent& event);
void GetComponentFromRedoList(wxCommandEvent& event);
// Edition des Pins:
void CreatePin( wxDC* DC );
void DeletePin( wxDC* DC,
LIB_COMPONENT* LibEntry,
LibDrawPin* Pin );
void StartMovePin( wxDC* DC );
// Test des pins ( duplicates...)
bool TestPins( LIB_COMPONENT* LibEntry );
// Edition de l'ancre
void PlaceAncre();
// Edition des graphismes:
LibEDA_BaseStruct* CreateGraphicItem( LIB_COMPONENT* LibEntry, wxDC* DC );
void GraphicItemBeginDraw( wxDC* DC );
void StartMoveDrawSymbol( wxDC* DC );
void EndDrawGraphicItem( wxDC* DC );
void LoadOneSymbol();
void SaveOneSymbol();
void EditGraphicSymbol( wxDC* DC,
LibEDA_BaseStruct* DrawItem );
void EditSymbolText( wxDC* DC, LibEDA_BaseStruct* DrawItem );
void RotateSymbolText( wxDC* DC );
void DeleteDrawPoly( wxDC* DC );
LibDrawField* LocateField( LIB_COMPONENT* LibEntry );
LibEDA_BaseStruct* LocateItemUsingCursor();
void RotateField( wxDC* DC, LibDrawField* Field );
void PlaceField( wxDC* DC, LibDrawField* Field );
void EditField( wxDC* DC, LibDrawField* Field );
void StartMoveField( wxDC* DC, LibDrawField* field );
public:
/* Block commands: */
int ReturnBlockCommand( int key );
void HandleBlockPlace( wxDC* DC );
int HandleBlockEnd( wxDC* DC );
void PlacePin( wxDC* DC );
void InitEditOnePin();
void GlobalSetPins( wxDC* DC, LibDrawPin* MasterPin, int id );
// Repetition automatique de placement de pins
void RepeatPinItem( wxDC* DC, LibDrawPin* Pin );
protected:
wxString m_ConfigPath;
wxString m_LastLibImportPath;
wxString m_LastLibExportPath;
DECLARE_EVENT_TABLE()
};
class WinEDA_ViewlibFrame : public WinEDA_DrawFrame
{
private:
WinEDAChoiceBox* SelpartBox;
// List of libraries (for selection
wxSashLayoutWindow* m_LibListWindow; // The redimensionnable window to display the lib list
wxListBox* m_LibList; // The list of libs
wxSize m_LibListSize; // size of the window
// List of components in the selected library
wxSashLayoutWindow* m_CmpListWindow; // The redimensionnable window to display the component list
wxListBox* m_CmpList; // The list of components
wxSize m_CmpListSize; // size of the window
// Flags
wxSemaphore* m_Semaphore; // != NULL if the frame must emulate a modal dialog
wxString m_ConfigPath; // subpath for configuartion
public:
WinEDA_ViewlibFrame( wxWindow* father,
CMP_LIBRARY* Library = NULL,
wxSemaphore* semaphore = NULL );
~WinEDA_ViewlibFrame();
void OnSize( wxSizeEvent& event );
void OnSashDrag( wxSashEvent& event );
void ReCreateListLib();
void ReCreateListCmp();
void Process_Special_Functions( wxCommandEvent& event );
void DisplayLibInfos();
void RedrawActiveWindow( wxDC* DC, bool EraseBg );
void OnCloseWindow( wxCloseEvent& Event );
void ReCreateHToolbar();
void ReCreateVToolbar();
void OnLeftClick( wxDC* DC, const wxPoint& MousePos );
int BestZoom(); // Retourne le meilleur zoom
void ClickOnLibList( wxCommandEvent& event );
void ClickOnCmpList( wxCommandEvent& event );
SCH_SCREEN* GetScreen() { return (SCH_SCREEN*) GetBaseScreen(); }
void GeneralControle( wxDC* DC, wxPoint MousePositionInPixels );
void LoadSettings();
void SaveSettings();
private:
void SelectCurrentLibrary();
void SelectAndViewLibraryPart( int option );
void ExportToSchematicLibraryPart( wxCommandEvent& event );
void ViewOneLibraryContent( CMP_LIBRARY* Lib, int Flag );
bool OnRightClick( const wxPoint& MousePos, wxMenu* PopMenu );
DECLARE_EVENT_TABLE()
};
#endif // WX_EESCHEMA_STRUCT_H #endif // WX_EESCHEMA_STRUCT_H

View File

@ -249,7 +249,7 @@ public:
void OnFileHistory( wxCommandEvent& event ); void OnFileHistory( wxCommandEvent& event );
void Files_io( wxCommandEvent& event ); void Files_io( wxCommandEvent& event );
int LoadOnePcbFile( const wxString& FileName, bool Append ); bool LoadOnePcbFile( const wxString& FileName, bool Append );
int ReadPcbFile( FILE* File, bool Append ); int ReadPcbFile( FILE* File, bool Append );
bool SavePcbFile( const wxString& FileName ); bool SavePcbFile( const wxString& FileName );
int SavePcbFormatAscii( FILE* File ); int SavePcbFormatAscii( FILE* File );

View File

@ -12,7 +12,6 @@
#include "kicad.h" #include "kicad.h"
#include "macros.h" #include "macros.h"
#include "bitmaps.h" // Common bitmaps #include "bitmaps.h" // Common bitmaps
#include "id.h"
/*****************************************************************************/ /*****************************************************************************/

View File

@ -4,17 +4,10 @@
#include "fctsys.h" #include "fctsys.h"
#include "common.h" #include "common.h"
#include "bitmaps.h"
#include "kicad.h"
#include "macros.h" #include "macros.h"
// ---------------------------------------------------------------------------- #include "kicad.h"
// resources
// ----------------------------------------------------------------------------
// USE_XPM_BITMAPS
#include "bitmaps.h"
#include "id.h"
/************************************************************************************/ /************************************************************************************/

View File

@ -18,7 +18,6 @@
#include "bitmaps.h" #include "bitmaps.h"
#include "confirm.h" #include "confirm.h"
#include "gestfich.h" #include "gestfich.h"
#include "id.h"
#include "kicad.h" #include "kicad.h"
#include "prjconfig.h" #include "prjconfig.h"

View File

@ -15,6 +15,7 @@
#include <wx/dragimag.h> #include <wx/dragimag.h>
#include <wx/filename.h> #include <wx/filename.h>
#include "id.h"
#include "wxstruct.h" #include "wxstruct.h"
#include "appl_wxstruct.h" #include "appl_wxstruct.h"
@ -24,6 +25,44 @@ class WinEDA_TreePrj;
class WinEDA_PrjFrame; class WinEDA_PrjFrame;
/**
* Command IDs for Kicad.
*
* Please add IDs that are unique to Kica here and not in the global id.h
* file. This will prevent the entire project from being rebuilt when adding
* new commands to Kicad.
*/
enum id_kicad_frm
{
ID_LEFT_FRAME = ID_END_LIST,
ID_BOTTOM_FRAME,
ID_PROJECT_TREE,
ID_PROJECT_TXTEDIT,
ID_PROJECT_TREE_REFRESH,
ID_PROJECT_RUNPY,
ID_PROJECT_NEWFILE,
ID_PROJECT_NEWPY,
ID_PROJECT_NEWTXT,
ID_PROJECT_NEWDIR,
ID_PROJECT_DELETE,
ID_PROJECT_RENAME,
ID_PROJECT_OPEN_FILE_WITH_TEXT_EDITOR,
ID_MAIN_COMMAND,
ID_TO_EDITOR,
ID_TO_EESCHEMA,
ID_TO_GERBVIEW,
ID_RUN_PYTHON,
ID_BROWSE_AN_SELECT_FILE,
ID_SELECT_PREFERED_EDITOR,
ID_SELECT_PREFERED_PDF_BROWSER_NAME,
ID_SELECT_PREFERED_PDF_BROWSER,
ID_SELECT_DEFAULT_PDF_BROWSER,
ID_SAVE_AND_ZIP_FILES,
ID_READ_ZIP_ARCHIVE,
};
/*******************************************/ /*******************************************/
/* classe pour la Fenetre generale de kicad*/ /* classe pour la Fenetre generale de kicad*/
@ -140,19 +179,23 @@ enum TreeFileType {
/**************************************************************/ /**************************************************************/
/** class WinEDA_CommandFrame /** class WinEDA_CommandFrame
* This is the window handling the main tools to launch eeschema, cvpcb, pcbnew and gerbview * This is the window handling the main tools to launch eeschema, cvpcb,
* pcbnew and gerbview
*/ */
class WinEDA_CommandFrame : public wxSashLayoutWindow class WinEDA_CommandFrame : public wxSashLayoutWindow
{ {
public: public:
WinEDA_CommandFrame( wxWindow* parent, int id, wxPoint pos, wxSize size, long style ); WinEDA_CommandFrame( wxWindow* parent, int id, wxPoint pos, wxSize size,
long style );
~WinEDA_CommandFrame() ~WinEDA_CommandFrame()
{ } { }
/** Function AddFastLaunch /** Function AddFastLaunch
* add a Bitmap Button (fast launch button) to the window * add a Bitmap Button (fast launch button) to the window
*/ */
public: void AddFastLaunch( wxBitmapButton * button ); public:
void AddFastLaunch( wxBitmapButton * button );
private: private:
/** Function CreateCommandToolbar /** Function CreateCommandToolbar
@ -187,7 +230,8 @@ private:
public: public:
TreePrjItemData( TreeFileType type, const wxString& data, wxTreeCtrl* parent ); TreePrjItemData( TreeFileType type, const wxString& data,
wxTreeCtrl* parent );
TreePrjItemData() : m_Parent( NULL ) { } TreePrjItemData() : m_Parent( NULL ) { }
TreePrjItemData( const TreePrjItemData& src ) : TreePrjItemData( const TreePrjItemData& src ) :
@ -235,7 +279,8 @@ public:
#ifdef KICAD_PYTHON #ifdef KICAD_PYTHON
boost::python::object GetFileNamePy() const; boost::python::object GetFileNamePy() const;
bool RenamePy( const boost::python::str& newname, bool check = true ); bool RenamePy( const boost::python::str& newname,
bool check = true );
boost::python::object GetDirPy() const; boost::python::object GetDirPy() const;
@ -263,7 +308,8 @@ private:
protected: protected:
wxMenu* GetContextMenu( int type ); wxMenu* GetContextMenu( int type );
void NewFile( TreeFileType type ); void NewFile( TreeFileType type );
void NewFile( const wxString& name, TreeFileType type, wxTreeItemId& root ); void NewFile( const wxString& name, TreeFileType type,
wxTreeItemId& root );
TreePrjItemData* GetSelectedData(); TreePrjItemData* GetSelectedData();
public: public:
@ -330,7 +376,8 @@ public:
boost::python::object GetTreeCtrl(); boost::python::object GetTreeCtrl();
TreePrjItemData* GetItemData( const boost::python::object& item ); TreePrjItemData* GetItemData( const boost::python::object& item );
void AddFilePy( const boost::python::str& name, boost::python::object& root ); void AddFilePy( const boost::python::str& name,
boost::python::object& root );
void NewFilePy( const boost::python::str& name, void NewFilePy( const boost::python::str& name,
TreeFileType type, TreeFileType type,
boost::python::object& root ); boost::python::object& root );

View File

@ -16,7 +16,6 @@
#include "confirm.h" #include "confirm.h"
#include "gestfich.h" #include "gestfich.h"
#include "bitmaps.h" #include "bitmaps.h"
#include "id.h"
#include "kicad.h" #include "kicad.h"
@ -81,7 +80,7 @@ WinEDA_MainFrame::WinEDA_MainFrame( wxWindow* parent,
m_BottomWin->SetSashVisible( wxSASH_LEFT, TRUE ); m_BottomWin->SetSashVisible( wxSASH_LEFT, TRUE );
m_BottomWin->SetExtraBorderSize( 2 ); m_BottomWin->SetExtraBorderSize( 2 );
m_DialogWin = new wxTextCtrl( m_BottomWin, ID_MAIN_DIALOG, wxEmptyString, m_DialogWin = new wxTextCtrl( m_BottomWin, wxID_ANY, wxEmptyString,
wxDefaultPosition, wxDefaultSize, wxDefaultPosition, wxDefaultSize,
wxTE_MULTILINE | wxNO_BORDER | wxTE_READONLY ); wxTE_MULTILINE | wxNO_BORDER | wxTE_READONLY );

View File

@ -12,7 +12,6 @@
#include "confirm.h" #include "confirm.h"
#include "gestfich.h" #include "gestfich.h"
#include "bitmaps.h" #include "bitmaps.h"
#include "id.h"
#include "kicad.h" #include "kicad.h"

View File

@ -13,7 +13,6 @@
#include "confirm.h" #include "confirm.h"
#include "gestfich.h" #include "gestfich.h"
#include "prjconfig.h" #include "prjconfig.h"
#include "id.h"
#include "kicad.h" #include "kicad.h"
static const wxString GeneralGroupName( wxT( "/general" ) ); static const wxString GeneralGroupName( wxT( "/general" ) );

View File

@ -11,6 +11,7 @@
#include "common.h" #include "common.h"
#include "gestfich.h" #include "gestfich.h"
#include "appl_wxstruct.h" #include "appl_wxstruct.h"
#include "bitmaps.h"
#include "kicad.h" #include "kicad.h"
@ -20,10 +21,6 @@
#include "wx/regex.h" #include "wx/regex.h"
#include "wx/dir.h" #include "wx/dir.h"
#include "bitmaps.h"
#include "id.h"
/********************************************/ /********************************************/
/* Methodes pour l'arbre gestion du projet */ /* Methodes pour l'arbre gestion du projet */

View File

@ -14,6 +14,7 @@
#include "confirm.h" #include "confirm.h"
#include "gestfich.h" #include "gestfich.h"
#include "appl_wxstruct.h" #include "appl_wxstruct.h"
#include "bitmaps.h"
#include "kicad.h" #include "kicad.h"
@ -23,9 +24,6 @@
#include "wx/regex.h" #include "wx/regex.h"
#include "wx/dir.h" #include "wx/dir.h"
#include "bitmaps.h"
#include "id.h"
// Comment this if you do no want to load subdirs files in the tree project // Comment this if you do no want to load subdirs files in the tree project
// UnComment this to load subdirs files in the tree project // UnComment this to load subdirs files in the tree project

View File

@ -15,7 +15,7 @@
#include "wxPcbStruct.h" #include "wxPcbStruct.h"
#include "autorout.h" #include "autorout.h"
#include "cell.h" #include "cell.h"
#include "id.h" #include "pcbnew_id.h"
#include "protos.h" #include "protos.h"

View File

@ -15,7 +15,7 @@
#include "pcbnew.h" #include "pcbnew.h"
#include "bitmaps.h" #include "bitmaps.h"
#include "protos.h" #include "protos.h"
#include "id.h" #include "pcbnew_id.h"
#include "collectors.h" #include "collectors.h"
#include "class_drawpanel.h" #include "class_drawpanel.h"

View File

@ -8,7 +8,7 @@
#include "common.h" #include "common.h"
#include "pcbnew.h" #include "pcbnew.h"
#include "id.h" #include "pcbnew_id.h"
#include "collectors.h" #include "collectors.h"
#include "bitmaps.h" #include "bitmaps.h"

View File

@ -9,7 +9,7 @@
#include "pcbnew.h" #include "pcbnew.h"
#include "trigo.h" #include "trigo.h"
#include "id.h" // ID_TRACK_BUTT #include "pcbnew_id.h" // ID_TRACK_BUTT
/*******************************/ /*******************************/

View File

@ -6,7 +6,7 @@
#include "gr_basic.h" #include "gr_basic.h"
#include "common.h" #include "common.h"
#include "trigo.h" #include "trigo.h"
#include "id.h" // ID_TRACK_BUTT #include "pcbnew_id.h" // ID_TRACK_BUTT
#include "class_drawpanel.h" #include "class_drawpanel.h"
#include "drawtxt.h" #include "drawtxt.h"

View File

@ -9,7 +9,7 @@
#include "pcbnew.h" #include "pcbnew.h"
#include "trigo.h" #include "trigo.h"
#include "id.h" #include "pcbnew_id.h"
/* Default pcbnew zoom values. /* Default pcbnew zoom values.

View File

@ -11,7 +11,7 @@
#include "wxPcbStruct.h" #include "wxPcbStruct.h"
#include "protos.h" #include "protos.h"
#include "id.h" #include "pcbnew_id.h"
#include "collectors.h" #include "collectors.h"
#include "bitmaps.h" #include "bitmaps.h"

View File

@ -17,7 +17,7 @@
#include "pcbnew.h" #include "pcbnew.h"
#include "wxPcbStruct.h" #include "wxPcbStruct.h"
#include "eda_dde.h" #include "eda_dde.h"
#include "id.h" #include "pcbnew_id.h"
#include "collectors.h" #include "collectors.h"
#include "protos.h" #include "protos.h"

View File

@ -14,7 +14,7 @@
#include "pcbnew.h" #include "pcbnew.h"
#include "wxPcbStruct.h" #include "wxPcbStruct.h"
#include "id.h" #include "pcbnew_id.h"
#include "dialog_copper_layers_setup.h" #include "dialog_copper_layers_setup.h"
#include "wx/generic/gridctrl.h" #include "wx/generic/gridctrl.h"

View File

@ -38,7 +38,7 @@
#include "pcbnew.h" #include "pcbnew.h"
#include "wxPcbStruct.h" #include "wxPcbStruct.h"
#include "id.h" #include "pcbnew_id.h"
#include "dialog_design_rules.h" #include "dialog_design_rules.h"
#include "wx/generic/gridctrl.h" #include "wx/generic/gridctrl.h"

View File

@ -12,7 +12,7 @@
#include "pcbnew.h" #include "pcbnew.h"
#include "wxPcbStruct.h" #include "wxPcbStruct.h"
#include "id.h" #include "pcbnew_id.h"
#include "dialog_display_options_base.h" #include "dialog_display_options_base.h"

View File

@ -13,7 +13,7 @@
#include "pcbnew.h" #include "pcbnew.h"
#include "wxPcbStruct.h" #include "wxPcbStruct.h"
#include "id.h" #include "pcbnew_id.h"
#include "dialog_general_options_BoardEditor_base.h" #include "dialog_general_options_BoardEditor_base.h"
#include "dialog_general_options.h" #include "dialog_general_options.h"

View File

@ -15,7 +15,7 @@
#include "pcbplot.h" #include "pcbplot.h"
#include "autorout.h" #include "autorout.h"
#include "id.h" #include "pcbnew_id.h"
#include "protos.h" #include "protos.h"

Some files were not shown because too many files have changed in this diff Show More