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:
parent
dcc3463bf1
commit
43d6c685b5
|
@ -21,7 +21,6 @@
|
|||
#include "wx/dataobj.h"
|
||||
#include "wx/clipbrd.h"
|
||||
|
||||
#include "id.h"
|
||||
#include "gestfich.h"
|
||||
|
||||
#include "3d_viewer.h"
|
||||
|
@ -30,23 +29,6 @@
|
|||
/* Tool and button Bitmaps */
|
||||
#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
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#endif
|
||||
|
||||
#include "bitmaps.h"
|
||||
#include "id.h"
|
||||
|
||||
#include "3d_viewer.h"
|
||||
#include "trackball.h"
|
||||
|
|
|
@ -4,11 +4,8 @@
|
|||
|
||||
#include "fctsys.h"
|
||||
#include "macros.h"
|
||||
|
||||
#include "bitmaps.h"
|
||||
|
||||
#include "id.h"
|
||||
|
||||
#include "3d_viewer.h"
|
||||
|
||||
|
||||
|
|
|
@ -23,12 +23,68 @@
|
|||
|
||||
#include "pcbstruct.h"
|
||||
#include "3d_struct.h"
|
||||
#include "id.h"
|
||||
|
||||
|
||||
#define KICAD_DEFAULT_3D_DRAWFRAME_STYLE wxDEFAULT_FRAME_STYLE|wxWANTS_CHARS
|
||||
|
||||
|
||||
#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 WinEDA3D_DrawFrame;
|
||||
class Info_3D_Visu;
|
||||
|
|
|
@ -81,6 +81,8 @@ const wxString ModuleFileExtension( wxT( "mod" ) );
|
|||
const wxString ModuleFileWildcard(
|
||||
_( "Kicad footprint library files (*.mod)|*.mod" )
|
||||
);
|
||||
const wxString PcbFileWildcard(
|
||||
_( "Printed circuit board files (*.brd)|*.brd" ) );
|
||||
|
||||
int g_CurrentVersionPCB = 1;
|
||||
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
#include "fctsys.h"
|
||||
#include "wxstruct.h"
|
||||
#include "common.h"
|
||||
#include "id.h"
|
||||
|
||||
#include "cvpcb.h"
|
||||
#include "protos.h"
|
||||
|
@ -33,8 +32,8 @@ COMPONENTS_LISTBOX::~COMPONENTS_LISTBOX()
|
|||
*/
|
||||
|
||||
BEGIN_EVENT_TABLE( COMPONENTS_LISTBOX, ITEMS_LISTBOX_BASE )
|
||||
EVT_SIZE( ITEMS_LISTBOX_BASE::OnSize )
|
||||
EVT_CHAR( COMPONENTS_LISTBOX::OnChar )
|
||||
EVT_SIZE( ITEMS_LISTBOX_BASE::OnSize )
|
||||
EVT_CHAR( COMPONENTS_LISTBOX::OnChar )
|
||||
END_EVENT_TABLE()
|
||||
|
||||
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
#include "fctsys.h"
|
||||
#include "wxstruct.h"
|
||||
#include "common.h"
|
||||
#include "id.h"
|
||||
|
||||
#include "cvpcb.h"
|
||||
#include "protos.h"
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
#include "confirm.h"
|
||||
#include "eda_doc.h"
|
||||
#include "gestfich.h"
|
||||
#include "id.h"
|
||||
#include "param_config.h"
|
||||
#include "bitmaps.h"
|
||||
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
#include "common.h"
|
||||
#include "confirm.h"
|
||||
#include "gestfich.h"
|
||||
#include "id.h"
|
||||
|
||||
#include "cvpcb.h"
|
||||
#include "zones.h"
|
||||
|
|
|
@ -17,10 +17,40 @@ class COMPONENTS_LISTBOX;
|
|||
class WinEDA_DisplayFrame;
|
||||
|
||||
|
||||
/******************************************************/
|
||||
/* classe derivee pour la Fenetre principale de cvpcb */
|
||||
/******************************************************/
|
||||
#include "id.h"
|
||||
|
||||
|
||||
/**
|
||||
* 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
|
||||
{
|
||||
public:
|
||||
|
@ -227,9 +257,9 @@ public:
|
|||
* currently: do nothing in cvpcb.
|
||||
* but but be defined because it is a pure virtual in WinEDA_BasePcbFrame
|
||||
*/
|
||||
virtual void SaveCopyInUndoList( BOARD_ITEM* aItemToCopy,
|
||||
UndoRedoOpType aTypeCommand = UR_UNSPECIFIED,
|
||||
const wxPoint& aTransformPoint = wxPoint( 0, 0 ) )
|
||||
virtual void SaveCopyInUndoList( BOARD_ITEM* aItemToCopy,
|
||||
UndoRedoOpType aTypeCommand = UR_UNSPECIFIED,
|
||||
const wxPoint& aTransformPoint = wxPoint( 0, 0 ) )
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -241,8 +271,9 @@ public:
|
|||
* @param aTypeCommand = command type (see enum UndoRedoOpType)
|
||||
* @param aTransformPoint = the reference point of the transformation, for commands like move
|
||||
*/
|
||||
virtual void SaveCopyInUndoList( PICKED_ITEMS_LIST& aItemsList, UndoRedoOpType aTypeCommand,
|
||||
const wxPoint& aTransformPoint = wxPoint( 0, 0 ) )
|
||||
virtual void SaveCopyInUndoList( PICKED_ITEMS_LIST& aItemsList,
|
||||
UndoRedoOpType aTypeCommand,
|
||||
const wxPoint& aTransformPoint = wxPoint( 0, 0 ) )
|
||||
{
|
||||
// currently: do nothing in cvpcb.
|
||||
}
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
#include "appl_wxstruct.h"
|
||||
#include "common.h"
|
||||
#include "class_drawpanel.h"
|
||||
#include "id.h"
|
||||
#include "confirm.h"
|
||||
#include "macros.h"
|
||||
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
#include "confirm.h"
|
||||
#include "gr_basic.h"
|
||||
#include "gestfich.h"
|
||||
#include "id.h"
|
||||
#include "appl_wxstruct.h"
|
||||
|
||||
#include "cvpcb.h"
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
#include "fctsys.h"
|
||||
#include "wxstruct.h"
|
||||
#include "common.h"
|
||||
#include "id.h"
|
||||
|
||||
#include "cvpcb.h"
|
||||
#include "protos.h"
|
||||
|
|
|
@ -13,8 +13,6 @@
|
|||
|
||||
#include "bitmaps.h"
|
||||
|
||||
#include "id.h"
|
||||
|
||||
|
||||
/*******************************************/
|
||||
void WinEDA_CvpcbFrame::ReCreateMenuBar()
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
#include "fctsys.h"
|
||||
#include "common.h"
|
||||
#include "class_drawpanel.h"
|
||||
#include "id.h"
|
||||
|
||||
#include "bitmaps.h"
|
||||
#include "cvpcb.h"
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
#include "fctsys.h"
|
||||
#include "appl_wxstruct.h"
|
||||
#include "common.h"
|
||||
#include "id.h"
|
||||
#include "trigo.h"
|
||||
|
||||
#include "bitmaps.h"
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
#include "protos.h"
|
||||
#include "libeditfrm.h"
|
||||
|
||||
|
||||
static void DrawMovingBlockOutlines( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||
|
@ -183,7 +184,7 @@ int WinEDA_LibeditFrame::HandleBlockEnd( wxDC* DC )
|
|||
case BLOCK_DRAG: /* Drag */
|
||||
case BLOCK_MOVE: /* Move */
|
||||
case BLOCK_COPY: /* Copy */
|
||||
ItemsCount = MarkItemsInBloc( CurrentLibEntry,
|
||||
ItemsCount = MarkItemsInBloc( m_currentComponent,
|
||||
GetScreen()->m_BlockLocate );
|
||||
if( ItemsCount )
|
||||
{
|
||||
|
@ -206,11 +207,11 @@ int WinEDA_LibeditFrame::HandleBlockEnd( wxDC* DC )
|
|||
break;
|
||||
|
||||
case BLOCK_DELETE: /* Delete */
|
||||
ItemsCount = MarkItemsInBloc( CurrentLibEntry,
|
||||
ItemsCount = MarkItemsInBloc( m_currentComponent,
|
||||
GetScreen()->m_BlockLocate );
|
||||
if( ItemsCount )
|
||||
SaveCopyInUndoList( CurrentLibEntry );
|
||||
DeleteMarkedItems( CurrentLibEntry );
|
||||
SaveCopyInUndoList( m_currentComponent );
|
||||
DeleteMarkedItems( m_currentComponent );
|
||||
break;
|
||||
|
||||
case BLOCK_SAVE: /* Save */
|
||||
|
@ -222,11 +223,11 @@ int WinEDA_LibeditFrame::HandleBlockEnd( wxDC* DC )
|
|||
|
||||
|
||||
case BLOCK_MIRROR_Y:
|
||||
ItemsCount = MarkItemsInBloc( CurrentLibEntry,
|
||||
ItemsCount = MarkItemsInBloc( m_currentComponent,
|
||||
GetScreen()->m_BlockLocate );
|
||||
if( ItemsCount )
|
||||
SaveCopyInUndoList( CurrentLibEntry );
|
||||
MirrorMarkedItems( CurrentLibEntry,
|
||||
SaveCopyInUndoList( m_currentComponent );
|
||||
MirrorMarkedItems( m_currentComponent,
|
||||
GetScreen()->m_BlockLocate.Centre() );
|
||||
break;
|
||||
|
||||
|
@ -245,7 +246,7 @@ int WinEDA_LibeditFrame::HandleBlockEnd( wxDC* DC )
|
|||
{
|
||||
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_State = STATE_NO_BLOCK;
|
||||
|
@ -291,16 +292,16 @@ void WinEDA_LibeditFrame::HandleBlockPlace( wxDC* DC )
|
|||
case BLOCK_MOVE: /* Move */
|
||||
case BLOCK_PRESELECT_MOVE: /* Move with preselection list*/
|
||||
GetScreen()->m_BlockLocate.ClearItemsList();
|
||||
SaveCopyInUndoList( CurrentLibEntry );
|
||||
MoveMarkedItems( CurrentLibEntry,
|
||||
SaveCopyInUndoList( m_currentComponent );
|
||||
MoveMarkedItems( m_currentComponent,
|
||||
GetScreen()->m_BlockLocate.m_MoveVector );
|
||||
DrawPanel->Refresh( TRUE );
|
||||
break;
|
||||
|
||||
case BLOCK_COPY: /* Copy */
|
||||
GetScreen()->m_BlockLocate.ClearItemsList();
|
||||
SaveCopyInUndoList( CurrentLibEntry );
|
||||
CopyMarkedItems( CurrentLibEntry,
|
||||
SaveCopyInUndoList( m_currentComponent );
|
||||
CopyMarkedItems( m_currentComponent,
|
||||
GetScreen()->m_BlockLocate.m_MoveVector );
|
||||
break;
|
||||
|
||||
|
@ -309,8 +310,8 @@ void WinEDA_LibeditFrame::HandleBlockPlace( wxDC* DC )
|
|||
break;
|
||||
|
||||
case BLOCK_MIRROR_Y: /* Invert by popup menu, from block move */
|
||||
SaveCopyInUndoList( CurrentLibEntry );
|
||||
MirrorMarkedItems( CurrentLibEntry,
|
||||
SaveCopyInUndoList( m_currentComponent );
|
||||
MirrorMarkedItems( m_currentComponent,
|
||||
GetScreen()->m_BlockLocate.Centre() );
|
||||
break;
|
||||
|
||||
|
@ -342,8 +343,7 @@ void WinEDA_LibeditFrame::HandleBlockPlace( wxDC* DC )
|
|||
* Retrace le contour du block de recherche de structures
|
||||
* L'ensemble du block suit le curseur
|
||||
*/
|
||||
static void DrawMovingBlockOutlines( WinEDA_DrawPanel* panel, wxDC* DC,
|
||||
bool erase )
|
||||
void DrawMovingBlockOutlines( WinEDA_DrawPanel* panel, wxDC* DC, bool erase )
|
||||
{
|
||||
BLOCK_SELECTOR* PtBlock;
|
||||
BASE_SCREEN* screen = panel->GetScreen();
|
||||
|
@ -351,19 +351,22 @@ static void DrawMovingBlockOutlines( WinEDA_DrawPanel* panel, wxDC* DC,
|
|||
|
||||
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 )
|
||||
{
|
||||
PtBlock->Draw( panel, DC, PtBlock->m_MoveVector, g_XorMode,
|
||||
PtBlock->m_Color );
|
||||
|
||||
if( CurrentLibEntry )
|
||||
{
|
||||
CurrentLibEntry->Draw( panel, DC, PtBlock->m_MoveVector,
|
||||
CurrentUnit, CurrentConvert, g_XorMode,
|
||||
-1, DefaultTransformMatrix, true, false,
|
||||
true );
|
||||
}
|
||||
component->Draw( panel, DC, PtBlock->m_MoveVector, CurrentUnit,
|
||||
CurrentConvert, g_XorMode, -1, DefaultTransformMatrix,
|
||||
true, false, true );
|
||||
}
|
||||
|
||||
/* 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->m_Color );
|
||||
|
||||
if( CurrentLibEntry )
|
||||
{
|
||||
CurrentLibEntry->Draw( panel, DC, PtBlock->m_MoveVector,
|
||||
CurrentUnit, CurrentConvert, g_XorMode,
|
||||
-1, DefaultTransformMatrix, true, false,
|
||||
true );
|
||||
}
|
||||
component->Draw( panel, DC, PtBlock->m_MoveVector, CurrentUnit,
|
||||
CurrentConvert, g_XorMode, -1, DefaultTransformMatrix,
|
||||
true, false, true );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
#include "gr_basic.h"
|
||||
#include "common.h"
|
||||
#include "class_drawpanel.h"
|
||||
#include "id.h"
|
||||
#include "eeschema_id.h"
|
||||
#include "confirm.h"
|
||||
|
||||
#include "program.h"
|
||||
|
|
|
@ -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
|
||||
* Return the default field name from its index (REFERENCE, VALUE ..)
|
||||
|
|
|
@ -103,6 +103,8 @@ public:
|
|||
m_Parent = field.m_Parent;
|
||||
}
|
||||
|
||||
wxString GetFullText( void );
|
||||
|
||||
protected:
|
||||
virtual LibEDA_BaseStruct* DoGenCopy();
|
||||
virtual bool DoCompare( const LibEDA_BaseStruct& other ) const;
|
||||
|
|
|
@ -514,8 +514,8 @@ information." );
|
|||
{
|
||||
wxLogWarning( _( "The component library <%s> header version \
|
||||
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 \
|
||||
editor and save it.\nIf this library is the project cache library, save \
|
||||
load correctly. To resolve this problem open the library in the library \
|
||||
editor and save it. If this library is the project cache library, save \
|
||||
the current schematic." ),
|
||||
(const wxChar*) GetName() );
|
||||
}
|
||||
|
@ -636,7 +636,7 @@ bool CMP_LIBRARY::LoadDocs( wxString& errMsg )
|
|||
|
||||
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() );
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -9,11 +9,14 @@
|
|||
#include "common.h"
|
||||
#include "class_drawpanel.h"
|
||||
#include "drawtxt.h"
|
||||
#include "plot_common.h"
|
||||
|
||||
#include "program.h"
|
||||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
#include "plot_common.h"
|
||||
#include "protos.h"
|
||||
#include "libeditfrm.h"
|
||||
|
||||
|
||||
const wxChar* MsgPinElectricType[] =
|
||||
{
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#include "fctsys.h"
|
||||
#include "gr_basic.h"
|
||||
#include "common.h"
|
||||
#include "id.h"
|
||||
#include "eeschema_id.h"
|
||||
#include "class_drawpanel.h"
|
||||
#include "program.h"
|
||||
#include "libcmp.h"
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
#include "gr_basic.h"
|
||||
#include "common.h"
|
||||
#include "trigo.h"
|
||||
#include "id.h"
|
||||
#include "eeschema_id.h"
|
||||
#include "class_drawpanel.h"
|
||||
#include "drawtxt.h"
|
||||
|
||||
|
|
|
@ -7,12 +7,14 @@
|
|||
#include "common.h"
|
||||
#include "class_drawpanel.h"
|
||||
#include "eda_dde.h"
|
||||
#include "id.h"
|
||||
#include "eeschema_id.h"
|
||||
|
||||
#include "program.h"
|
||||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
#include "protos.h"
|
||||
#include "libeditfrm.h"
|
||||
#include "libviewfrm.h"
|
||||
|
||||
#include "class_marker_sch.h"
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
#include "eda_dde.h"
|
||||
|
||||
#include "id.h"
|
||||
#include "eeschema_id.h"
|
||||
|
||||
#include "protos.h"
|
||||
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "fctsys.h"
|
||||
#include "appl_wxstruct.h"
|
||||
#include "common.h"
|
||||
#include "confirm.h"
|
||||
#include "gestfich.h"
|
||||
|
@ -13,10 +12,11 @@
|
|||
#include "program.h"
|
||||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
#include "protos.h"
|
||||
#include "libeditfrm.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_BASE(aParent)
|
||||
|
@ -45,7 +45,9 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::Init( )
|
|||
SetFocus();
|
||||
m_AliasLocation = -1;
|
||||
|
||||
if( CurrentLibEntry == NULL )
|
||||
LIB_COMPONENT* component = m_Parent->GetCurrentComponent();
|
||||
|
||||
if( component == NULL )
|
||||
{
|
||||
SetTitle( _( "Library Component Properties" ) );
|
||||
return;
|
||||
|
@ -56,16 +58,15 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::Init( )
|
|||
if( !CurrentAliasName.IsEmpty() )
|
||||
{
|
||||
title += CurrentAliasName + _( " (alias of " ) +
|
||||
wxString( CurrentLibEntry->m_Name.m_Text )+ wxT( ")" );
|
||||
component->GetName() + wxT( ")" );
|
||||
}
|
||||
else
|
||||
{
|
||||
title += CurrentLibEntry->m_Name.m_Text;
|
||||
title += component->GetName();
|
||||
CurrentAliasName.Empty();
|
||||
}
|
||||
|
||||
SetTitle( title );
|
||||
|
||||
InitPanelDoc();
|
||||
InitBasicPanel();
|
||||
|
||||
|
@ -73,26 +74,18 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::Init( )
|
|||
m_ButtonDeleteAllAlias->Enable( false );
|
||||
|
||||
/* Place list of alias names in listbox */
|
||||
if( CurrentLibEntry )
|
||||
{
|
||||
m_PartAliasList->Append( CurrentLibEntry->m_AliasList );
|
||||
}
|
||||
m_PartAliasList->Append( component->m_AliasList );
|
||||
|
||||
if( ( CurrentLibEntry == NULL )
|
||||
|| ( CurrentLibEntry->m_AliasList.GetCount() == 0 ) )
|
||||
if( component->m_AliasList.GetCount() == 0 )
|
||||
{
|
||||
m_ButtonDeleteAllAlias->Enable( false );
|
||||
m_ButtonDeleteOneAlias->Enable( false );
|
||||
}
|
||||
|
||||
/* Read the Footprint Filter list */
|
||||
if( CurrentLibEntry )
|
||||
{
|
||||
m_FootprintFilterListBox->Append( CurrentLibEntry->m_FootprintList );
|
||||
}
|
||||
m_FootprintFilterListBox->Append( component->m_FootprintList );
|
||||
|
||||
if( ( CurrentLibEntry == NULL )
|
||||
|| ( CurrentLibEntry->m_FootprintList.GetCount() == 0 ) )
|
||||
if( component->m_FootprintList.GetCount() == 0 )
|
||||
{
|
||||
m_ButtonDeleteAllFootprintFilter->Enable( false );
|
||||
m_ButtonDeleteOneFootprintFilter->Enable( false );
|
||||
|
|
|
@ -2,17 +2,18 @@
|
|||
/* library editor: edition of fields of lib entries (components in libraries) */
|
||||
/*******************************************************************************/
|
||||
|
||||
#include "fctsys.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#include "fctsys.h"
|
||||
#include "common.h"
|
||||
#include "confirm.h"
|
||||
#include "class_drawpanel.h"
|
||||
|
||||
#include "program.h"
|
||||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
|
||||
#include "protos.h"
|
||||
#include "libeditfrm.h"
|
||||
|
||||
#include "dialog_edit_libentry_fields_in_lib_base.h"
|
||||
|
||||
|
@ -97,25 +98,25 @@ private:
|
|||
void reinitializeFieldsIdAndDefaultNames();
|
||||
};
|
||||
|
||||
/*****************************************************************/
|
||||
void WinEDA_LibeditFrame::InstallFieldsEditorDialog( void )
|
||||
/*****************************************************************/
|
||||
|
||||
void WinEDA_LibeditFrame::InstallFieldsEditorDialog( wxCommandEvent& event )
|
||||
{
|
||||
if( CurrentLibEntry == NULL )
|
||||
if( m_currentComponent == NULL )
|
||||
return;
|
||||
|
||||
DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB* frame =
|
||||
new DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB( this, CurrentLibEntry );
|
||||
DrawPanel->UnManageCursor( 0, wxCURSOR_ARROW );
|
||||
|
||||
int abort = frame->ShowModal(); frame->Destroy();
|
||||
DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB dlg( this, m_currentComponent );
|
||||
|
||||
if( ! abort )
|
||||
{
|
||||
ReCreateHToolbar();
|
||||
Refresh();
|
||||
}
|
||||
int abort = dlg.ShowModal();
|
||||
|
||||
if( abort )
|
||||
return;
|
||||
|
||||
UpdateAliasSelectList();
|
||||
UpdatePartSelectList();
|
||||
DisplayLibInfos();
|
||||
Refresh();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "fctsys.h"
|
||||
#include <wx/tokenzr.h>
|
||||
#include "appl_wxstruct.h"
|
||||
#include "common.h"
|
||||
#include "confirm.h"
|
||||
|
@ -17,11 +16,11 @@
|
|||
#include "program.h"
|
||||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
|
||||
#include "protos.h"
|
||||
#include "netlist.h"
|
||||
#include "libviewfrm.h"
|
||||
|
||||
#include "id.h"
|
||||
#include <wx/tokenzr.h>
|
||||
|
||||
#include "dialog_eeschema_config_fbp.h"
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include "fctsys.h"
|
||||
#include "gr_basic.h"
|
||||
#include "common.h"
|
||||
#include "id.h"
|
||||
#include "eeschema_id.h"
|
||||
#include "class_drawpanel.h"
|
||||
#include "confirm.h"
|
||||
|
||||
|
|
|
@ -11,8 +11,8 @@
|
|||
#include "program.h"
|
||||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
|
||||
#include "protos.h"
|
||||
#include "libeditfrm.h"
|
||||
|
||||
|
||||
extern int CurrentUnit;
|
||||
|
@ -38,7 +38,7 @@ void WinEDA_LibeditFrame::OnEditComponentProperties( wxCommandEvent& event )
|
|||
|
||||
void WinEDA_LibeditFrame::EditComponentProperties()
|
||||
{
|
||||
wxASSERT( CurrentLibEntry != NULL && CurrentLib != NULL );
|
||||
wxASSERT( m_currentComponent != NULL && CurrentLib != NULL );
|
||||
|
||||
DIALOG_EDIT_COMPONENT_IN_LIBRARY dlg( this );
|
||||
|
||||
|
@ -48,8 +48,9 @@ void WinEDA_LibeditFrame::EditComponentProperties()
|
|||
UpdateAliasSelectList();
|
||||
UpdatePartSelectList();
|
||||
DisplayLibInfos();
|
||||
DisplayCmpDoc();
|
||||
GetScreen()->SetModify();
|
||||
SaveCopyInUndoList( CurrentLibEntry );
|
||||
SaveCopyInUndoList( m_currentComponent );
|
||||
}
|
||||
|
||||
|
||||
|
@ -57,13 +58,14 @@ void WinEDA_LibeditFrame::EditComponentProperties()
|
|||
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::InitPanelDoc()
|
||||
{
|
||||
CMP_LIB_ENTRY* entry;
|
||||
LIB_COMPONENT* component = m_Parent->GetCurrentComponent();
|
||||
|
||||
if( CurrentLibEntry == NULL )
|
||||
if( component == NULL )
|
||||
return;
|
||||
|
||||
if( CurrentAliasName.IsEmpty() )
|
||||
{
|
||||
entry = CurrentLibEntry;
|
||||
entry = component;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -84,51 +86,31 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::InitPanelDoc()
|
|||
*/
|
||||
void DIALOG_EDIT_COMPONENT_IN_LIBRARY::InitBasicPanel()
|
||||
{
|
||||
LIB_COMPONENT* component = m_Parent->GetCurrentComponent();
|
||||
|
||||
if( g_AsDeMorgan )
|
||||
m_AsConvertButt->SetValue( TRUE );
|
||||
if( CurrentLibEntry )
|
||||
m_AsConvertButt->SetValue( true );
|
||||
|
||||
/* 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 )
|
||||
{
|
||||
if( CurrentLibEntry->m_DrawPinName )
|
||||
m_ShowPinNameButt->SetValue( TRUE );
|
||||
}
|
||||
else
|
||||
m_ShowPinNameButt->SetValue( TRUE );
|
||||
|
||||
|
||||
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 );
|
||||
m_ShowPinNumButt->SetValue( component->m_DrawPinNum );
|
||||
m_ShowPinNameButt->SetValue( component->m_DrawPinName );
|
||||
m_PinsNameInsideButt->SetValue( component->m_TextInside != 0 );
|
||||
m_SelNumberOfUnits->SetValue( component->m_UnitCount );
|
||||
m_SetSkew->SetValue( component->m_TextInside );
|
||||
m_OptionPower->SetValue( component->m_Options == ENTRY_POWER );
|
||||
m_OptionPartsLocked->SetValue( component->m_UnitSelectionLocked );
|
||||
}
|
||||
|
||||
|
||||
|
@ -139,10 +121,11 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnOkClick( wxCommandEvent& event )
|
|||
size_t i;
|
||||
int index;
|
||||
CMP_LIB_ENTRY* entry;
|
||||
LIB_COMPONENT* component = m_Parent->GetCurrentComponent();
|
||||
|
||||
if( CurrentAliasName.IsEmpty() )
|
||||
{
|
||||
entry = CurrentLibEntry;
|
||||
entry = (CMP_LIB_ENTRY*) component;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -152,9 +135,10 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnOkClick( wxCommandEvent& event )
|
|||
if( entry == NULL )
|
||||
{
|
||||
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*) CurrentLibEntry->GetName(),
|
||||
(const wxChar*) component->GetName(),
|
||||
(const wxChar*) CurrentLib->GetName() );
|
||||
wxMessageBox( msg, _( "Component Library Error" ),
|
||||
wxID_OK | wxICON_ERROR, this );
|
||||
|
@ -166,7 +150,7 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnOkClick( wxCommandEvent& event )
|
|||
entry->m_DocFile = m_Docfile->GetValue();
|
||||
}
|
||||
|
||||
if( m_PartAliasList->GetStrings() != CurrentLibEntry->m_AliasList )
|
||||
if( m_PartAliasList->GetStrings() != component->m_AliasList )
|
||||
{
|
||||
LIB_ALIAS* alias;
|
||||
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. */
|
||||
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 )
|
||||
continue;
|
||||
|
||||
alias = new LIB_ALIAS( aliases[ i ], CurrentLibEntry );
|
||||
alias = new LIB_ALIAS( aliases[ i ], component );
|
||||
|
||||
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. */
|
||||
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 )
|
||||
continue;
|
||||
|
||||
CMP_LIB_ENTRY* alias =
|
||||
CurrentLib->FindAlias( CurrentLibEntry->m_AliasList[ i ] );
|
||||
CurrentLib->FindAlias( component->m_AliasList[ i ] );
|
||||
if( alias != NULL )
|
||||
CurrentLib->RemoveEntry( alias );
|
||||
}
|
||||
|
||||
CurrentLibEntry->m_AliasList = aliases;
|
||||
component->m_AliasList = aliases;
|
||||
}
|
||||
|
||||
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;
|
||||
CurrentLibEntry->m_DrawPinName = m_ShowPinNameButt->GetValue() ? 1 : 0;
|
||||
component->m_DrawPinNum = m_ShowPinNumButt->GetValue() ? 1 : 0;
|
||||
component->m_DrawPinName = m_ShowPinNameButt->GetValue() ? 1 : 0;
|
||||
|
||||
if( m_PinsNameInsideButt->GetValue() == FALSE )
|
||||
CurrentLibEntry->m_TextInside = 0;
|
||||
component->m_TextInside = 0;
|
||||
else
|
||||
CurrentLibEntry->m_TextInside = m_SetSkew->GetValue();
|
||||
component->m_TextInside = m_SetSkew->GetValue();
|
||||
|
||||
if( m_OptionPower->GetValue() == TRUE )
|
||||
CurrentLibEntry->m_Options = ENTRY_POWER;
|
||||
component->m_Options = ENTRY_POWER;
|
||||
else
|
||||
CurrentLibEntry->m_Options = ENTRY_NORMAL;
|
||||
component->m_Options = ENTRY_NORMAL;
|
||||
|
||||
/* Set the option "Units locked".
|
||||
* Obviously, cannot be TRUE if there is only one part */
|
||||
CurrentLibEntry->m_UnitSelectionLocked = m_OptionPartsLocked->GetValue();
|
||||
if( CurrentLibEntry->m_UnitCount <= 1 )
|
||||
CurrentLibEntry->m_UnitSelectionLocked = FALSE;
|
||||
component->m_UnitSelectionLocked = m_OptionPartsLocked->GetValue();
|
||||
if( component->m_UnitCount <= 1 )
|
||||
component->m_UnitSelectionLocked = FALSE;
|
||||
|
||||
/* Update the footprint filter list */
|
||||
CurrentLibEntry->m_FootprintList.Clear();
|
||||
CurrentLibEntry->m_FootprintList = m_FootprintFilterListBox->GetStrings();
|
||||
component->m_FootprintList.Clear();
|
||||
component->m_FootprintList = m_FootprintFilterListBox->GetStrings();
|
||||
|
||||
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) )
|
||||
/******************************************************************************/
|
||||
{
|
||||
if( CurrentLibEntry == NULL || CurrentAliasName.IsEmpty() )
|
||||
LIB_COMPONENT* component = m_Parent->GetCurrentComponent();
|
||||
|
||||
if( component == NULL || CurrentAliasName.IsEmpty() )
|
||||
return;
|
||||
|
||||
m_Doc->SetValue( CurrentLibEntry->m_Doc );
|
||||
m_Docfile->SetValue( CurrentLibEntry->m_DocFile );
|
||||
m_Keywords->SetValue( CurrentLibEntry->m_KeyWord );
|
||||
m_Doc->SetValue( component->m_Doc );
|
||||
m_Docfile->SetValue( component->m_DocFile );
|
||||
m_Keywords->SetValue( component->m_KeyWord );
|
||||
}
|
||||
|
||||
|
||||
|
@ -301,8 +287,9 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::AddAliasOfPart( wxCommandEvent& WXUNUSED
|
|||
{
|
||||
wxString Line;
|
||||
wxString aliasname;
|
||||
LIB_COMPONENT* component = m_Parent->GetCurrentComponent();
|
||||
|
||||
if( CurrentLibEntry == NULL )
|
||||
if( component == NULL )
|
||||
return;
|
||||
|
||||
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;
|
||||
LibEDA_BaseStruct* DrawItem, * NextDrawItem;
|
||||
LIB_COMPONENT* component = m_Parent->GetCurrentComponent();
|
||||
|
||||
if( CurrentLibEntry == NULL )
|
||||
if( component == NULL )
|
||||
return FALSE;
|
||||
|
||||
/* Si pas de changement: termine */
|
||||
if( CurrentLibEntry->m_UnitCount == MaxUnit )
|
||||
if( component->m_UnitCount == MaxUnit )
|
||||
return FALSE;
|
||||
|
||||
OldNumUnits = CurrentLibEntry->m_UnitCount;
|
||||
OldNumUnits = component->m_UnitCount;
|
||||
if( OldNumUnits < 1 )
|
||||
OldNumUnits = 1;
|
||||
|
||||
CurrentLibEntry->m_UnitCount = MaxUnit;
|
||||
component->m_UnitCount = MaxUnit;
|
||||
|
||||
|
||||
/* 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 )
|
||||
{
|
||||
NextDrawItem = DrawItem->Next();
|
||||
|
@ -404,21 +392,21 @@ bool DIALOG_EDIT_COMPONENT_IN_LIBRARY::ChangeNbUnitsPerPackage( int MaxUnit )
|
|||
{
|
||||
FlagDel = 0;
|
||||
MaxUnit = OldNumUnits;
|
||||
CurrentLibEntry->m_UnitCount = MaxUnit;
|
||||
component->m_UnitCount = MaxUnit;
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
CurrentLibEntry->RemoveDrawItem( DrawItem );
|
||||
component->RemoveDrawItem( DrawItem );
|
||||
}
|
||||
}
|
||||
|
||||
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() )
|
||||
{
|
||||
/* 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++ )
|
||||
{
|
||||
NextDrawItem = DrawItem->GenCopy();
|
||||
NextDrawItem->SetNext( CurrentLibEntry->m_Drawings );
|
||||
CurrentLibEntry->m_Drawings = NextDrawItem;
|
||||
NextDrawItem->SetNext( component->m_Drawings );
|
||||
component->m_Drawings = NextDrawItem;
|
||||
NextDrawItem->m_Unit = ii;
|
||||
}
|
||||
}
|
||||
|
@ -448,12 +436,13 @@ bool DIALOG_EDIT_COMPONENT_IN_LIBRARY::SetUnsetConvert()
|
|||
{
|
||||
int FlagDel = 0;
|
||||
LibEDA_BaseStruct* DrawItem = NULL, * NextDrawItem;
|
||||
LIB_COMPONENT* component = m_Parent->GetCurrentComponent();
|
||||
|
||||
if( g_AsDeMorgan ) /* Representation convertie a creer */
|
||||
{
|
||||
/* Traitement des elements a ajouter ( pins seulement ) */
|
||||
if( CurrentLibEntry )
|
||||
DrawItem = CurrentLibEntry->m_Drawings;
|
||||
if( component )
|
||||
DrawItem = component->m_Drawings;
|
||||
for( ; DrawItem != NULL; DrawItem = DrawItem->Next() )
|
||||
{
|
||||
/* Duplication des items pour autres elements */
|
||||
|
@ -474,8 +463,8 @@ bool DIALOG_EDIT_COMPONENT_IN_LIBRARY::SetUnsetConvert()
|
|||
}
|
||||
}
|
||||
NextDrawItem = DrawItem->GenCopy();
|
||||
NextDrawItem->SetNext( CurrentLibEntry->m_Drawings );
|
||||
CurrentLibEntry->m_Drawings = NextDrawItem;
|
||||
NextDrawItem->SetNext( component->m_Drawings );
|
||||
component->m_Drawings = NextDrawItem;
|
||||
NextDrawItem->m_Convert = 2;
|
||||
}
|
||||
}
|
||||
|
@ -483,8 +472,8 @@ bool DIALOG_EDIT_COMPONENT_IN_LIBRARY::SetUnsetConvert()
|
|||
else /* Representation convertie a supprimer */
|
||||
{
|
||||
/* Traitement des elements <20> supprimer */
|
||||
if( CurrentLibEntry )
|
||||
DrawItem = CurrentLibEntry->m_Drawings;
|
||||
if( component )
|
||||
DrawItem = component->m_Drawings;
|
||||
for( ; DrawItem != NULL; DrawItem = NextDrawItem )
|
||||
{
|
||||
NextDrawItem = DrawItem->Next();
|
||||
|
@ -505,7 +494,7 @@ bool DIALOG_EDIT_COMPONENT_IN_LIBRARY::SetUnsetConvert()
|
|||
}
|
||||
|
||||
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;
|
||||
LIB_COMPONENT* component = m_Parent->GetCurrentComponent();
|
||||
|
||||
if( CurrentLibEntry == NULL )
|
||||
if( component == NULL )
|
||||
return;
|
||||
|
||||
if( Get_Message( _( "Add Footprint Filter" ), _( "Footprint Filter" ),
|
||||
|
@ -606,11 +596,12 @@ void DIALOG_EDIT_COMPONENT_IN_LIBRARY::DeleteOneFootprintFilter(
|
|||
wxCommandEvent& WXUNUSED (event) )
|
||||
/********************************************************/
|
||||
{
|
||||
LIB_COMPONENT* component = m_Parent->GetCurrentComponent();
|
||||
int ii = m_FootprintFilterListBox->GetSelection();
|
||||
|
||||
m_FootprintFilterListBox->Delete( ii );
|
||||
|
||||
if( !CurrentLibEntry || (m_FootprintFilterListBox->GetCount() == 0) )
|
||||
if( !component || (m_FootprintFilterListBox->GetCount() == 0) )
|
||||
{
|
||||
m_ButtonDeleteAllFootprintFilter->Enable( FALSE );
|
||||
m_ButtonDeleteOneFootprintFilter->Enable( FALSE );
|
||||
|
|
|
@ -15,11 +15,11 @@
|
|||
#include "program.h"
|
||||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
#include "protos.h"
|
||||
#include "libeditfrm.h"
|
||||
|
||||
#include "dialog_bodygraphictext_properties_base.h"
|
||||
|
||||
#include "protos.h"
|
||||
|
||||
|
||||
class Dialog_BodyGraphicText_Properties : public Dialog_BodyGraphicText_Properties_base
|
||||
{
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
#include "appl_wxstruct.h"
|
||||
#include "gr_basic.h"
|
||||
#include "common.h"
|
||||
#include "id.h"
|
||||
#include "eeschema_id.h"
|
||||
#include "class_drawpanel.h"
|
||||
#include "confirm.h"
|
||||
#include "gestfich.h"
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
#include "fctsys.h"
|
||||
#include "gr_basic.h"
|
||||
#include "common.h"
|
||||
#include "id.h"
|
||||
#include "eeschema_id.h"
|
||||
#include "class_drawpanel.h"
|
||||
|
||||
#include "program.h"
|
||||
|
|
|
@ -102,7 +102,6 @@ LibEDA_BaseStruct* LibItemToRepeat = NULL; /* pointer on a graphic item than
|
|||
* can be duplicated by the Ins key
|
||||
* (usually the last created item */
|
||||
CMP_LIBRARY* CurrentLib = NULL; /* Current opened library */
|
||||
LIB_COMPONENT* CurrentLibEntry = NULL; /* Current component */
|
||||
LibEDA_BaseStruct* CurrentDrawItem = NULL; /* current edited item */
|
||||
|
||||
// Current selected alias (for components which have aliases)
|
||||
|
|
|
@ -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__ */
|
|
@ -12,7 +12,7 @@
|
|||
#include "general.h"
|
||||
|
||||
#include "protos.h"
|
||||
#include "id.h"
|
||||
#include "eeschema_id.h"
|
||||
|
||||
|
||||
/****************************************************************/
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
#include "general.h"
|
||||
#include "protos.h"
|
||||
#include "class_library.h"
|
||||
#include "libviewfrm.h"
|
||||
|
||||
#include <boost/foreach.hpp>
|
||||
|
||||
|
|
|
@ -3,17 +3,15 @@
|
|||
/***************/
|
||||
|
||||
#include "fctsys.h"
|
||||
|
||||
#include "common.h"
|
||||
#include "eeschema_id.h"
|
||||
#include "hotkeys.h"
|
||||
|
||||
#include "program.h"
|
||||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
|
||||
#include "id.h"
|
||||
|
||||
#include "hotkeys.h"
|
||||
|
||||
#include "protos.h"
|
||||
#include "libeditfrm.h"
|
||||
|
||||
/* How to add a new hotkey:
|
||||
* add a new id in the enum hotkey_id_commnand like MY_NEW_ID_FUNCTION (see
|
||||
|
|
|
@ -13,12 +13,13 @@
|
|||
#include "class_drawpanel.h"
|
||||
#include "confirm.h"
|
||||
#include "gestfich.h"
|
||||
#include "id.h"
|
||||
#include "eeschema_id.h"
|
||||
|
||||
#include "program.h"
|
||||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
#include "protos.h"
|
||||
#include "libeditfrm.h"
|
||||
|
||||
#include <wx/filename.h>
|
||||
|
||||
|
@ -95,13 +96,13 @@ void WinEDA_LibeditFrame::OnExportPart( wxCommandEvent& event )
|
|||
CMP_LIBRARY* CurLibTmp;
|
||||
bool createLib = ( event.GetId() != ExportPartId ) ? false : true;
|
||||
|
||||
if( CurrentLibEntry == NULL )
|
||||
if( m_currentComponent == NULL )
|
||||
{
|
||||
DisplayError( this, _( "There is no component selected to save." ) );
|
||||
return;
|
||||
}
|
||||
|
||||
fn = CurrentLibEntry->GetName().Lower();
|
||||
fn = m_currentComponent->GetName().Lower();
|
||||
fn.SetExt( CompLibFileExtension );
|
||||
|
||||
title = createLib ? _( "New Library" ) : _( "Export Component" );
|
||||
|
@ -132,7 +133,7 @@ void WinEDA_LibeditFrame::OnExportPart( wxCommandEvent& event )
|
|||
{
|
||||
msg = fn.GetFullPath() + _( " - OK" );
|
||||
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." ) );
|
||||
}
|
||||
else
|
||||
|
|
|
@ -20,6 +20,15 @@
|
|||
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. */
|
||||
#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
|
||||
* (usually the last created item */
|
||||
extern CMP_LIBRARY* CurrentLib; /* Current opened library */
|
||||
extern LIB_COMPONENT* CurrentLibEntry; /* Current component */
|
||||
extern LibEDA_BaseStruct* CurrentDrawItem; /* current edited item */
|
||||
|
||||
extern wxString CurrentAliasName;
|
||||
|
|
|
@ -13,12 +13,14 @@
|
|||
#include "class_drawpanel.h"
|
||||
#include "confirm.h"
|
||||
#include "gestfich.h"
|
||||
#include "eeschema_id.h"
|
||||
|
||||
#include "program.h"
|
||||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
#include "protos.h"
|
||||
#include "libeditfrm.h"
|
||||
|
||||
#include "id.h"
|
||||
#include "dialog_create_component.h"
|
||||
|
||||
|
||||
|
@ -64,30 +66,28 @@ bool WinEDA_LibeditFrame::LoadOneLibraryPart()
|
|||
wxString CmpName;
|
||||
CMP_LIB_ENTRY* LibEntry = NULL;
|
||||
|
||||
if( g_ScreenLib->IsModify() )
|
||||
{
|
||||
if( !IsOK( this, _( "Current part not saved.\nContinue?" ) ) )
|
||||
return FALSE;
|
||||
}
|
||||
if( g_ScreenLib->IsModify() && !IsOK( this, _( "Current part not \
|
||||
saved.\n\nDiscard current changes?" ) ) )
|
||||
return false;
|
||||
|
||||
if( CurrentLib == NULL ) // No current lib, ask user for the library to use
|
||||
{
|
||||
SelectActiveLibrary();
|
||||
if( CurrentLib == NULL )
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
i = GetNameOfPartToLoad( this, CurrentLib, CmpName );
|
||||
if( i == 0 )
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
g_ScreenLib->ClrModify();
|
||||
CurrentDrawItem = NULL;
|
||||
|
||||
// Delete previous library component, if any
|
||||
if( CurrentLibEntry )
|
||||
if( m_currentComponent )
|
||||
{
|
||||
SAFE_DELETE( CurrentLibEntry );
|
||||
SAFE_DELETE( m_currentComponent );
|
||||
}
|
||||
|
||||
/* Load the new library component */
|
||||
|
@ -108,9 +108,9 @@ library \"%s\"." ),
|
|||
if( !LoadOneLibraryPartAux( LibEntry, CurrentLib ) )
|
||||
return false;
|
||||
|
||||
Zoom_Automatique( FALSE );
|
||||
Zoom_Automatique( false );
|
||||
DrawPanel->Refresh();
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -119,7 +119,7 @@ library \"%s\"." ),
|
|||
* retourne
|
||||
* 0 si OK
|
||||
* 1 si err
|
||||
* CurrentLibEntry pointe la copie ainsi creee
|
||||
* m_currentComponent pointe la copie ainsi creee
|
||||
*/
|
||||
bool WinEDA_LibeditFrame::LoadOneLibraryPartAux( CMP_LIB_ENTRY* LibEntry,
|
||||
CMP_LIBRARY* Library )
|
||||
|
@ -158,12 +158,12 @@ bool WinEDA_LibeditFrame::LoadOneLibraryPartAux( CMP_LIB_ENTRY* LibEntry,
|
|||
component = (LIB_COMPONENT*) LibEntry;
|
||||
}
|
||||
|
||||
if( CurrentLibEntry )
|
||||
SAFE_DELETE( CurrentLibEntry );
|
||||
if( m_currentComponent )
|
||||
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>." ),
|
||||
(const wxChar*) LibEntry->GetName(),
|
||||
|
@ -177,7 +177,7 @@ bool WinEDA_LibeditFrame::LoadOneLibraryPartAux( CMP_LIB_ENTRY* LibEntry,
|
|||
|
||||
g_AsDeMorgan = 0;
|
||||
|
||||
if( LookForConvertPart( CurrentLibEntry ) > 1 )
|
||||
if( LookForConvertPart( m_currentComponent ) > 1 )
|
||||
g_AsDeMorgan = 1;
|
||||
|
||||
g_ScreenLib->ClrModify();
|
||||
|
@ -208,7 +208,7 @@ void WinEDA_LibeditFrame::RedrawActiveWindow( wxDC* DC, bool EraseBg )
|
|||
DrawPanel->CursorOff( DC ); // erase cursor
|
||||
if( DrawPanel->ManageCurseur )
|
||||
{
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
}
|
||||
|
||||
if( EraseBg )
|
||||
|
@ -216,15 +216,15 @@ void WinEDA_LibeditFrame::RedrawActiveWindow( wxDC* DC, bool EraseBg )
|
|||
|
||||
DrawPanel->DrawBackGround( DC );
|
||||
|
||||
if( CurrentLibEntry )
|
||||
CurrentLibEntry->Draw( DrawPanel, DC, wxPoint( 0, 0 ), CurrentUnit,
|
||||
CurrentConvert, GR_DEFAULT_DRAWMODE );
|
||||
if( m_currentComponent )
|
||||
m_currentComponent->Draw( DrawPanel, DC, wxPoint( 0, 0 ), CurrentUnit,
|
||||
CurrentConvert, GR_DEFAULT_DRAWMODE );
|
||||
|
||||
DrawPanel->CursorOn( DC ); // redraw cursor
|
||||
|
||||
if( DrawPanel->ManageCurseur )
|
||||
{
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, FALSE );
|
||||
DrawPanel->ManageCurseur( DrawPanel, DC, false );
|
||||
}
|
||||
|
||||
GetScreen()->ClrRefreshReq();
|
||||
|
@ -296,10 +296,10 @@ void WinEDA_LibeditFrame::DisplayCmpDoc()
|
|||
|
||||
MsgPanel->EraseMsgBox();
|
||||
|
||||
if( CurrentLib == NULL && CurrentLibEntry == NULL )
|
||||
if( CurrentLib == NULL || m_currentComponent == NULL )
|
||||
return;
|
||||
|
||||
msg = CurrentLibEntry->GetName();
|
||||
msg = m_currentComponent->GetName();
|
||||
|
||||
MsgPanel->AppendMessage( _( "Part" ), msg, BLUE, 8 );
|
||||
|
||||
|
@ -327,7 +327,7 @@ void WinEDA_LibeditFrame::DisplayCmpDoc()
|
|||
|
||||
MsgPanel->AppendMessage( _( "Body" ), msg, GREEN, 8 );
|
||||
|
||||
if( CurrentLibEntry->m_Options == ENTRY_POWER )
|
||||
if( m_currentComponent->m_Options == ENTRY_POWER )
|
||||
msg = _( "Power Symbol" );
|
||||
else
|
||||
msg = _( "Component" );
|
||||
|
@ -337,14 +337,14 @@ void WinEDA_LibeditFrame::DisplayCmpDoc()
|
|||
if( alias != NULL )
|
||||
msg = alias->m_Doc;
|
||||
else
|
||||
msg = CurrentLibEntry->m_Doc;
|
||||
msg = m_currentComponent->m_Doc;
|
||||
|
||||
MsgPanel->AppendMessage( _( "Description" ), msg, CYAN, 8 );
|
||||
|
||||
if( alias != NULL )
|
||||
msg = alias->m_KeyWord;
|
||||
else
|
||||
msg = CurrentLibEntry->m_KeyWord;
|
||||
msg = m_currentComponent->m_KeyWord;
|
||||
|
||||
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
|
||||
* alias deviennent dependants de celui ci.
|
||||
*/
|
||||
void WinEDA_LibeditFrame::DeleteOnePart()
|
||||
void WinEDA_LibeditFrame::DeleteOnePart( wxCommandEvent& event )
|
||||
{
|
||||
wxString CmpName;
|
||||
CMP_LIB_ENTRY* LibEntry;
|
||||
wxArrayString ListNames;
|
||||
wxString msg;
|
||||
|
||||
DrawPanel->UnManageCursor( 0, wxCURSOR_ARROW );
|
||||
|
||||
LibItemToRepeat = NULL;
|
||||
CurrentDrawItem = NULL;
|
||||
|
||||
if( CurrentLib == NULL )
|
||||
|
@ -419,9 +422,9 @@ void WinEDA_LibeditFrame::DeleteOnePart()
|
|||
if( !IsOK( this, msg ) )
|
||||
return;
|
||||
|
||||
if( CurrentLibEntry == NULL
|
||||
|| ( CurrentLibEntry->GetName().CmpNoCase( LibEntry->GetName() ) != 0
|
||||
&& !CurrentLibEntry->HasAlias( LibEntry->GetName() ) ) )
|
||||
if( m_currentComponent == NULL
|
||||
|| ( m_currentComponent->GetName().CmpNoCase( LibEntry->GetName() ) != 0
|
||||
&& !m_currentComponent->HasAlias( LibEntry->GetName() ) ) )
|
||||
{
|
||||
CurrentLib->RemoveEntry( LibEntry );
|
||||
return;
|
||||
|
@ -444,23 +447,24 @@ All changes will be lost. Discard changes?" ) ) )
|
|||
* in the library will be shown. If the current component has
|
||||
* 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 )
|
||||
newCmpName = nextEntry->GetName();
|
||||
}
|
||||
else
|
||||
{
|
||||
newCmpName = CurrentLibEntry->m_AliasList[ 0 ];
|
||||
newCmpName = m_currentComponent->m_AliasList[ 0 ];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
newCmpName = CurrentLibEntry->GetName();
|
||||
newCmpName = m_currentComponent->GetName();
|
||||
}
|
||||
|
||||
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.
|
||||
*/
|
||||
void WinEDA_LibeditFrame::CreateNewLibraryPart()
|
||||
void WinEDA_LibeditFrame::CreateNewLibraryPart( wxCommandEvent& event )
|
||||
{
|
||||
wxString msg;
|
||||
int diag;
|
||||
wxString msg;
|
||||
LIB_COMPONENT* NewStruct;
|
||||
int diag;
|
||||
|
||||
if( CurrentLibEntry && GetScreen()->IsModify()
|
||||
&& !IsOK( this,
|
||||
_( "All changes to the current component will be lost!\n\n\
|
||||
Clear the current component from the screen?" ) ) )
|
||||
if( m_currentComponent && GetScreen()->IsModify()
|
||||
&& !IsOK( this, _( "All changes to the current component will be \
|
||||
lost!\n\nClear the current component from the screen?" ) ) )
|
||||
return;
|
||||
|
||||
DrawPanel->UnManageCursor( 0, wxCURSOR_ARROW );
|
||||
|
||||
CurrentDrawItem = NULL;
|
||||
|
||||
WinEDA_CreateCmpDialog Dialogbox( this );
|
||||
|
@ -512,7 +517,8 @@ Clear the current component from the screen?" ) ) )
|
|||
if( CurrentLib->FindEntry( 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*) CurrentLib->GetName() );
|
||||
DisplayError( this, msg );
|
||||
|
@ -527,15 +533,21 @@ Clear the current component from the screen?" ) ) )
|
|||
NewStruct->m_Prefix.m_Text.MakeUpper();
|
||||
|
||||
// Effacement ancien composant affich<63>
|
||||
if( CurrentLibEntry )
|
||||
if( m_currentComponent )
|
||||
{
|
||||
SAFE_DELETE( CurrentLibEntry );
|
||||
SAFE_DELETE( m_currentComponent );
|
||||
}
|
||||
CurrentLibEntry = NewStruct;
|
||||
m_currentComponent = NewStruct;
|
||||
CurrentUnit = 1;
|
||||
CurrentConvert = 1;
|
||||
DisplayLibInfos();
|
||||
DisplayCmpDoc();
|
||||
UpdateAliasSelectList();
|
||||
UpdatePartSelectList();
|
||||
g_EditPinByPinIsOn = false;
|
||||
LibItemToRepeat = NULL;
|
||||
GetScreen()->ClearUndoRedoList();
|
||||
DrawPanel->Refresh();
|
||||
}
|
||||
|
||||
|
||||
|
@ -552,7 +564,7 @@ void WinEDA_LibeditFrame::SaveOnePartInMemory()
|
|||
LIB_COMPONENT* Component;
|
||||
wxString msg;
|
||||
|
||||
if( CurrentLibEntry == NULL )
|
||||
if( m_currentComponent == NULL )
|
||||
{
|
||||
DisplayError( this, _( "No component to save." ) );
|
||||
return;
|
||||
|
@ -569,7 +581,7 @@ void WinEDA_LibeditFrame::SaveOnePartInMemory()
|
|||
|
||||
g_ScreenLib->ClrModify();
|
||||
|
||||
oldComponent = CurrentLib->FindComponent( CurrentLibEntry->GetName() );
|
||||
oldComponent = CurrentLib->FindComponent( m_currentComponent->GetName() );
|
||||
|
||||
if( oldComponent != NULL )
|
||||
{
|
||||
|
@ -579,13 +591,13 @@ void WinEDA_LibeditFrame::SaveOnePartInMemory()
|
|||
return;
|
||||
}
|
||||
|
||||
wxASSERT( CurrentLibEntry->Type == ROOT );
|
||||
wxASSERT( m_currentComponent->Type == ROOT );
|
||||
|
||||
if( oldComponent != NULL )
|
||||
Component = CurrentLib->ReplaceComponent( oldComponent,
|
||||
CurrentLibEntry );
|
||||
m_currentComponent );
|
||||
else
|
||||
Component = CurrentLib->AddComponent( CurrentLibEntry );
|
||||
Component = CurrentLib->AddComponent( m_currentComponent );
|
||||
|
||||
if( Component == NULL )
|
||||
return;
|
||||
|
|
|
@ -10,28 +10,27 @@
|
|||
#include "common.h"
|
||||
#include "class_drawpanel.h"
|
||||
#include "confirm.h"
|
||||
#include "eeschema_id.h"
|
||||
|
||||
#include "program.h"
|
||||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
|
||||
#include "protos.h"
|
||||
|
||||
#include "id.h"
|
||||
#include "libeditfrm.h"
|
||||
|
||||
|
||||
void WinEDA_LibeditFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
||||
{
|
||||
LibEDA_BaseStruct* DrawEntry = CurrentDrawItem;
|
||||
|
||||
if( CurrentLibEntry == NULL ) // No component loaded !
|
||||
if( m_currentComponent == NULL ) // No component loaded !
|
||||
return;
|
||||
|
||||
if( m_ID_current_state == 0 )
|
||||
{
|
||||
if( DrawEntry && DrawEntry->m_Flags )
|
||||
{
|
||||
SaveCopyInUndoList( CurrentLibEntry );
|
||||
SaveCopyInUndoList( m_currentComponent );
|
||||
|
||||
switch( DrawEntry->Type() )
|
||||
{
|
||||
|
@ -51,25 +50,27 @@ void WinEDA_LibeditFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
|||
}
|
||||
else
|
||||
{
|
||||
DrawEntry = LocatePin( GetScreen()->m_MousePosition, CurrentLibEntry,
|
||||
CurrentUnit, CurrentConvert );
|
||||
DrawEntry = LocatePin( GetScreen()->m_MousePosition,
|
||||
m_currentComponent, CurrentUnit,
|
||||
CurrentConvert );
|
||||
if( DrawEntry == NULL )
|
||||
{
|
||||
DrawEntry = LocateDrawItem( (SCH_SCREEN*)GetScreen(),
|
||||
GetScreen()->m_MousePosition,
|
||||
CurrentLibEntry, CurrentUnit,
|
||||
m_currentComponent, CurrentUnit,
|
||||
CurrentConvert,
|
||||
LOCATE_ALL_DRAW_ITEM );
|
||||
}
|
||||
|
||||
if( DrawEntry == NULL )
|
||||
DrawEntry = LocatePin( GetScreen()->m_Curseur, CurrentLibEntry,
|
||||
CurrentUnit, CurrentConvert );
|
||||
DrawEntry = LocatePin( GetScreen()->m_Curseur,
|
||||
m_currentComponent, CurrentUnit,
|
||||
CurrentConvert );
|
||||
if( DrawEntry == NULL )
|
||||
{
|
||||
DrawEntry = LocateDrawItem( (SCH_SCREEN*)GetScreen(),
|
||||
GetScreen()->m_Curseur,
|
||||
CurrentLibEntry, CurrentUnit,
|
||||
m_currentComponent, CurrentUnit,
|
||||
CurrentConvert,
|
||||
LOCATE_ALL_DRAW_ITEM );
|
||||
}
|
||||
|
@ -96,7 +97,7 @@ void WinEDA_LibeditFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
|||
}
|
||||
else
|
||||
{
|
||||
SaveCopyInUndoList( CurrentLibEntry );
|
||||
SaveCopyInUndoList( m_currentComponent );
|
||||
PlacePin( DC );
|
||||
}
|
||||
break;
|
||||
|
@ -108,7 +109,7 @@ void WinEDA_LibeditFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
|||
case ID_LIBEDIT_BODY_TEXT_BUTT:
|
||||
if( CurrentDrawItem == NULL || CurrentDrawItem->m_Flags == 0 )
|
||||
{
|
||||
CurrentDrawItem = CreateGraphicItem( CurrentLibEntry, DC );
|
||||
CurrentDrawItem = CreateGraphicItem( m_currentComponent, DC );
|
||||
}
|
||||
else if( CurrentDrawItem )
|
||||
{
|
||||
|
@ -116,48 +117,50 @@ void WinEDA_LibeditFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
|||
GraphicItemBeginDraw( DC );
|
||||
else
|
||||
{
|
||||
SaveCopyInUndoList( CurrentLibEntry );
|
||||
SaveCopyInUndoList( m_currentComponent );
|
||||
EndDrawGraphicItem( DC );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case ID_LIBEDIT_DELETE_ITEM_BUTT:
|
||||
DrawEntry = LocatePin( GetScreen()->m_MousePosition, CurrentLibEntry,
|
||||
CurrentUnit, CurrentConvert );
|
||||
DrawEntry = LocatePin( GetScreen()->m_MousePosition,
|
||||
m_currentComponent, CurrentUnit,
|
||||
CurrentConvert );
|
||||
if( DrawEntry == NULL )
|
||||
{
|
||||
DrawEntry = LocateDrawItem( (SCH_SCREEN*)GetScreen(),
|
||||
GetScreen()->m_MousePosition,
|
||||
CurrentLibEntry, CurrentUnit,
|
||||
m_currentComponent, CurrentUnit,
|
||||
CurrentConvert,
|
||||
LOCATE_ALL_DRAW_ITEM );
|
||||
}
|
||||
|
||||
if( DrawEntry == NULL )
|
||||
DrawEntry = LocatePin( GetScreen()->m_Curseur, CurrentLibEntry,
|
||||
CurrentUnit, CurrentConvert );
|
||||
DrawEntry = LocatePin( GetScreen()->m_Curseur,
|
||||
m_currentComponent, CurrentUnit,
|
||||
CurrentConvert );
|
||||
if( DrawEntry == NULL )
|
||||
{
|
||||
DrawEntry = LocateDrawItem( (SCH_SCREEN*)GetScreen(),
|
||||
GetScreen()->m_Curseur,
|
||||
CurrentLibEntry, CurrentUnit,
|
||||
m_currentComponent, CurrentUnit,
|
||||
CurrentConvert,
|
||||
LOCATE_ALL_DRAW_ITEM );
|
||||
}
|
||||
if( DrawEntry == NULL )
|
||||
DisplayCmpDoc();
|
||||
SaveCopyInUndoList( CurrentLibEntry );
|
||||
SaveCopyInUndoList( m_currentComponent );
|
||||
if( DrawEntry->Type() == COMPONENT_PIN_DRAW_TYPE )
|
||||
DeletePin( DC, CurrentLibEntry, (LibDrawPin*) DrawEntry );
|
||||
DeletePin( DC, m_currentComponent, (LibDrawPin*) DrawEntry );
|
||||
else
|
||||
CurrentLibEntry->RemoveDrawItem( DrawEntry, DrawPanel, DC );
|
||||
m_currentComponent->RemoveDrawItem( DrawEntry, DrawPanel, DC );
|
||||
DrawEntry = NULL;
|
||||
GetScreen()->SetModify();
|
||||
break;
|
||||
|
||||
case ID_LIBEDIT_ANCHOR_ITEM_BUTT:
|
||||
SaveCopyInUndoList( CurrentLibEntry );
|
||||
SaveCopyInUndoList( m_currentComponent );
|
||||
PlaceAncre();
|
||||
SetToolID( 0, wxCURSOR_ARROW, wxEmptyString );
|
||||
break;
|
||||
|
@ -183,22 +186,22 @@ void WinEDA_LibeditFrame::OnLeftDClick( wxDC* DC, const wxPoint& MousePos )
|
|||
wxPoint pos = GetPosition();
|
||||
LibEDA_BaseStruct* DrawEntry = CurrentDrawItem;
|
||||
|
||||
if( CurrentLibEntry == NULL )
|
||||
if( m_currentComponent == NULL )
|
||||
return;
|
||||
|
||||
if( ( DrawEntry == NULL ) || ( DrawEntry->m_Flags == 0 ) )
|
||||
{ // We can locate an item
|
||||
DrawEntry = LocatePin( GetScreen()->m_MousePosition, CurrentLibEntry,
|
||||
DrawEntry = LocatePin( GetScreen()->m_MousePosition, m_currentComponent,
|
||||
CurrentUnit, CurrentConvert );
|
||||
if( DrawEntry == NULL )
|
||||
DrawEntry = LocatePin( GetScreen()->m_Curseur, CurrentLibEntry,
|
||||
DrawEntry = LocatePin( GetScreen()->m_Curseur, m_currentComponent,
|
||||
CurrentUnit, CurrentConvert );
|
||||
if( DrawEntry == NULL )
|
||||
{
|
||||
DrawEntry = CurrentDrawItem =
|
||||
LocateDrawItem( (SCH_SCREEN*) GetScreen(),
|
||||
GetScreen()->m_MousePosition,
|
||||
CurrentLibEntry, CurrentUnit,
|
||||
m_currentComponent, CurrentUnit,
|
||||
CurrentConvert, LOCATE_ALL_DRAW_ITEM );
|
||||
}
|
||||
if( DrawEntry == NULL )
|
||||
|
@ -206,13 +209,13 @@ void WinEDA_LibeditFrame::OnLeftDClick( wxDC* DC, const wxPoint& MousePos )
|
|||
DrawEntry = CurrentDrawItem =
|
||||
LocateDrawItem( (SCH_SCREEN*) GetScreen(),
|
||||
GetScreen()->m_Curseur,
|
||||
CurrentLibEntry, CurrentUnit,
|
||||
m_currentComponent, CurrentUnit,
|
||||
CurrentConvert, LOCATE_ALL_DRAW_ITEM );
|
||||
}
|
||||
if( DrawEntry == NULL )
|
||||
{
|
||||
DrawEntry = CurrentDrawItem =
|
||||
(LibEDA_BaseStruct*) LocateField( CurrentLibEntry );
|
||||
(LibEDA_BaseStruct*) LocateField( m_currentComponent );
|
||||
}
|
||||
if( DrawEntry == NULL )
|
||||
{
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
*/
|
||||
|
||||
#include "fctsys.h"
|
||||
#include "gr_basic.h"
|
||||
#include "common.h"
|
||||
#include "confirm.h"
|
||||
#include "bitmaps.h"
|
||||
#include "eeschema_id.h"
|
||||
#include "hotkeys.h"
|
||||
|
||||
#include "program.h"
|
||||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
|
||||
#include "bitmaps.h"
|
||||
#include "protos.h"
|
||||
#include "libeditfrm.h"
|
||||
|
||||
#include "id.h"
|
||||
#include "hotkeys.h"
|
||||
|
||||
/* functions to add commands and submenus depending on the item */
|
||||
static void AddMenusForBlock(wxMenu * PopMenu, WinEDA_LibeditFrame * frame);
|
||||
static void AddMenusForPin(wxMenu * PopMenu, LibDrawPin* Pin, WinEDA_LibeditFrame * frame);
|
||||
static void AddMenusForBlock( wxMenu* PopMenu, WinEDA_LibeditFrame* frame );
|
||||
static void AddMenusForPin( wxMenu* PopMenu, LibDrawPin* Pin,
|
||||
WinEDA_LibeditFrame* frame );
|
||||
|
||||
|
||||
/********************************************************************************/
|
||||
bool WinEDA_LibeditFrame::OnRightClick(const wxPoint& MousePos, wxMenu * PopMenu)
|
||||
/********************************************************************************/
|
||||
bool WinEDA_LibeditFrame::OnRightClick( const wxPoint& MousePos,
|
||||
wxMenu* PopMenu )
|
||||
{
|
||||
LibEDA_BaseStruct* DrawEntry = LocateItemUsingCursor();
|
||||
bool BlockActive = (GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE);
|
||||
LibEDA_BaseStruct* DrawEntry = LocateItemUsingCursor();
|
||||
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 ( 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,
|
||||
_("Cancel"), cancel_xpm);
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_CANCEL_EDITING,
|
||||
_( "Cancel" ), cancel_xpm );
|
||||
}
|
||||
else
|
||||
{
|
||||
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_CANCEL_EDITING,
|
||||
_("End Tool"), cancel_tool_xpm);
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_CANCEL_EDITING,
|
||||
_( "End Tool" ), cancel_tool_xpm );
|
||||
}
|
||||
PopMenu->AppendSeparator();
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
if ( (DrawEntry && DrawEntry->m_Flags) || BlockActive )
|
||||
if( (DrawEntry && DrawEntry->m_Flags) || BlockActive )
|
||||
{
|
||||
if ( BlockActive ) AddMenusForBlock( PopMenu, this);
|
||||
else ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_CANCEL_EDITING, _("Cancel"), cancel_xpm);
|
||||
if( BlockActive )
|
||||
AddMenusForBlock( PopMenu, this );
|
||||
else
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_CANCEL_EDITING,
|
||||
_( "Cancel" ), cancel_xpm );
|
||||
PopMenu->AppendSeparator();
|
||||
}
|
||||
}
|
||||
|
||||
if ( DrawEntry )
|
||||
if( DrawEntry )
|
||||
DrawEntry->DisplayInfo( this );
|
||||
else
|
||||
return true;
|
||||
|
@ -67,186 +71,222 @@ bool BlockActive = (GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE);
|
|||
CurrentDrawItem = DrawEntry;
|
||||
wxString msg;
|
||||
|
||||
switch ( DrawEntry->Type() )
|
||||
switch( DrawEntry->Type() )
|
||||
{
|
||||
case COMPONENT_PIN_DRAW_TYPE:
|
||||
AddMenusForPin(PopMenu, (LibDrawPin*)DrawEntry, this);
|
||||
break;
|
||||
case COMPONENT_PIN_DRAW_TYPE:
|
||||
AddMenusForPin( PopMenu, (LibDrawPin*) DrawEntry, this );
|
||||
break;
|
||||
|
||||
case COMPONENT_ARC_DRAW_TYPE:
|
||||
if( DrawEntry->m_Flags == 0 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Move Arc " ), s_Libedit_Hokeys_Descr, 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,
|
||||
_("Arc Options"), options_arc_xpm );
|
||||
if( DrawEntry->m_Flags == 0 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Delete Arc " ), s_Libedit_Hokeys_Descr, HK_DELETE_PIN );
|
||||
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM, msg, delete_arc_xpm);
|
||||
}
|
||||
break;
|
||||
case COMPONENT_ARC_DRAW_TYPE:
|
||||
if( DrawEntry->m_Flags == 0 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Move Arc " ), s_Libedit_Hokeys_Descr,
|
||||
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,
|
||||
_( "Arc Options" ), options_arc_xpm );
|
||||
if( DrawEntry->m_Flags == 0 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Delete Arc " ), s_Libedit_Hokeys_Descr,
|
||||
HK_DELETE_PIN );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM,
|
||||
msg, delete_arc_xpm );
|
||||
}
|
||||
break;
|
||||
|
||||
case COMPONENT_CIRCLE_DRAW_TYPE:
|
||||
if( DrawEntry->m_Flags == 0 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Move Circle " ), s_Libedit_Hokeys_Descr, 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,
|
||||
_("Circle Options"), options_circle_xpm);
|
||||
if( DrawEntry->m_Flags == 0 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Delete Circle " ), s_Libedit_Hokeys_Descr, HK_DELETE_PIN );
|
||||
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM,msg, delete_circle_xpm);
|
||||
}
|
||||
break;
|
||||
case COMPONENT_CIRCLE_DRAW_TYPE:
|
||||
if( DrawEntry->m_Flags == 0 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Move Circle " ), s_Libedit_Hokeys_Descr,
|
||||
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,
|
||||
_( "Circle Options" ), options_circle_xpm );
|
||||
if( DrawEntry->m_Flags == 0 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Delete Circle " ),
|
||||
s_Libedit_Hokeys_Descr, HK_DELETE_PIN );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM,
|
||||
msg, delete_circle_xpm );
|
||||
}
|
||||
break;
|
||||
|
||||
case COMPONENT_RECT_DRAW_TYPE:
|
||||
if( DrawEntry->m_Flags == 0 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Move Rect " ), s_Libedit_Hokeys_Descr, 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,
|
||||
_("Rect Options"), options_rectangle_xpm);
|
||||
if( DrawEntry->m_Flags == 0 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Delete Rect " ), s_Libedit_Hokeys_Descr, HK_DELETE_PIN );
|
||||
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM, msg, delete_rectangle_xpm);
|
||||
}
|
||||
break;
|
||||
case COMPONENT_RECT_DRAW_TYPE:
|
||||
if( DrawEntry->m_Flags == 0 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Move Rect " ), s_Libedit_Hokeys_Descr,
|
||||
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,
|
||||
_( "Rect Options" ), options_rectangle_xpm );
|
||||
if( DrawEntry->m_Flags == 0 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Delete Rect " ), s_Libedit_Hokeys_Descr,
|
||||
HK_DELETE_PIN );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM,
|
||||
msg, delete_rectangle_xpm );
|
||||
}
|
||||
break;
|
||||
|
||||
case COMPONENT_GRAPHIC_TEXT_DRAW_TYPE:
|
||||
if( DrawEntry->m_Flags == 0 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Move Text " ), s_Libedit_Hokeys_Descr, 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,
|
||||
_("Text Editor"), edit_text_xpm);
|
||||
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_ROTATE_GRAPHIC_TEXT,
|
||||
_("Rotate Text"), edit_text_xpm);
|
||||
if( DrawEntry->m_Flags == 0 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Delete Text " ), s_Libedit_Hokeys_Descr, HK_DELETE_PIN );
|
||||
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM, msg, delete_text_xpm);
|
||||
}
|
||||
break;
|
||||
case COMPONENT_GRAPHIC_TEXT_DRAW_TYPE:
|
||||
if( DrawEntry->m_Flags == 0 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Move Text " ), s_Libedit_Hokeys_Descr,
|
||||
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,
|
||||
_( "Text Editor" ), edit_text_xpm );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_ROTATE_GRAPHIC_TEXT,
|
||||
_( "Rotate Text" ), edit_text_xpm );
|
||||
if( DrawEntry->m_Flags == 0 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Delete Text " ), s_Libedit_Hokeys_Descr,
|
||||
HK_DELETE_PIN );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM,
|
||||
msg, delete_text_xpm );
|
||||
}
|
||||
break;
|
||||
|
||||
case COMPONENT_POLYLINE_DRAW_TYPE:
|
||||
if( DrawEntry->m_Flags == 0 )
|
||||
case COMPONENT_POLYLINE_DRAW_TYPE:
|
||||
if( DrawEntry->m_Flags == 0 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Move Line " ), s_Libedit_Hokeys_Descr,
|
||||
HK_MOVE_PIN );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST,
|
||||
msg, move_line_xpm );
|
||||
}
|
||||
if( DrawEntry->m_Flags & IS_NEW )
|
||||
{
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_END_CREATE_ITEM,
|
||||
_( "Line End" ), apply_xpm );
|
||||
}
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM,
|
||||
_( "Line Options" ), options_segment_xpm );
|
||||
if( DrawEntry->m_Flags == 0 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Delete Line " ), s_Libedit_Hokeys_Descr,
|
||||
HK_DELETE_PIN );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM,
|
||||
msg, delete_segment_xpm );
|
||||
}
|
||||
else if( (DrawEntry->m_Flags & IS_NEW) )
|
||||
{
|
||||
if( ( (LibDrawPolyline*) DrawEntry )->GetCornerCount() > 2 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Move Line " ), s_Libedit_Hokeys_Descr, HK_MOVE_PIN );
|
||||
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_MOVE_ITEM_REQUEST, msg, move_line_xpm);
|
||||
msg = AddHotkeyName( _( "Delete Segment " ),
|
||||
s_Libedit_Hokeys_Descr, HK_DELETE_PIN );
|
||||
ADD_MENUITEM( PopMenu,
|
||||
ID_POPUP_LIBEDIT_DELETE_CURRENT_POLY_SEGMENT,
|
||||
msg, delete_segment_xpm );
|
||||
}
|
||||
if ( DrawEntry->m_Flags & IS_NEW )
|
||||
{
|
||||
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_END_CREATE_ITEM,
|
||||
_("Line End"), apply_xpm);
|
||||
}
|
||||
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_BODY_EDIT_ITEM,
|
||||
_("Line Options"), options_segment_xpm);
|
||||
if( DrawEntry->m_Flags == 0 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Delete Line " ), s_Libedit_Hokeys_Descr, HK_DELETE_PIN );
|
||||
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM, msg, delete_segment_xpm);
|
||||
}
|
||||
else if( (DrawEntry->m_Flags & IS_NEW) )
|
||||
{
|
||||
if( ((LibDrawPolyline*)DrawEntry)->GetCornerCount() > 2 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Delete Segment " ), s_Libedit_Hokeys_Descr, HK_DELETE_PIN );
|
||||
ADD_MENUITEM(PopMenu,
|
||||
ID_POPUP_LIBEDIT_DELETE_CURRENT_POLY_SEGMENT, msg, delete_segment_xpm);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case COMPONENT_FIELD_DRAW_TYPE:
|
||||
if( DrawEntry->m_Flags == 0 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Move Field " ), s_Libedit_Hokeys_Descr, 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,
|
||||
_("Field Rotate"), rotate_field_xpm);
|
||||
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_FIELD_EDIT_ITEM,
|
||||
_("Field Edit"), edit_text_xpm);
|
||||
break;
|
||||
case COMPONENT_FIELD_DRAW_TYPE:
|
||||
if( DrawEntry->m_Flags == 0 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Move Field " ), s_Libedit_Hokeys_Descr,
|
||||
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,
|
||||
_( "Field Rotate" ), rotate_field_xpm );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_FIELD_EDIT_ITEM,
|
||||
_( "Field Edit" ), edit_text_xpm );
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
wxString msg;
|
||||
msg.Printf(
|
||||
wxT("WinEDA_LibeditFrame::OnRightClick Error: unknown StructType %d"),
|
||||
DrawEntry->Type());
|
||||
DisplayError(this, msg );
|
||||
CurrentDrawItem = NULL;
|
||||
break;
|
||||
default:
|
||||
wxString msg;
|
||||
msg.Printf( wxT( "WinEDA_LibeditFrame::OnRightClick Error: unknown \
|
||||
StructType %d" ),
|
||||
DrawEntry->Type() );
|
||||
DisplayError( this, msg );
|
||||
CurrentDrawItem = NULL;
|
||||
break;
|
||||
}
|
||||
|
||||
PopMenu->AppendSeparator();
|
||||
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 not_in_move = (Pin->m_Flags == 0);
|
||||
bool selected = (Pin->m_Selected & IS_SELECTED) != 0;
|
||||
bool not_in_move = (Pin->m_Flags == 0);
|
||||
|
||||
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;
|
||||
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 )
|
||||
{
|
||||
msg = AddHotkeyName( _( "Delete Pin " ), s_Libedit_Hokeys_Descr, HK_DELETE_PIN );
|
||||
ADD_MENUITEM(PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM, msg, delete_pin_xpm );
|
||||
msg = AddHotkeyName( _( "Delete Pin " ), s_Libedit_Hokeys_Descr,
|
||||
HK_DELETE_PIN );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_LIBEDIT_DELETE_ITEM,
|
||||
msg, delete_pin_xpm );
|
||||
}
|
||||
wxMenu * global_pin_change = new wxMenu;
|
||||
ADD_MENUITEM_WITH_SUBMENU(PopMenu, global_pin_change, ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_ITEM,
|
||||
_("Global"), pin_to_xpm);
|
||||
ADD_MENUITEM(global_pin_change, ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINSIZE_ITEM,
|
||||
selected ? _("Pin Size to selected pins"): _("Pin Size to Others"),
|
||||
pin_size_to_xpm);
|
||||
ADD_MENUITEM(global_pin_change, ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINNAMESIZE_ITEM,
|
||||
selected ? _("Pin Name Size to selected pin") : _("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);
|
||||
wxMenu* global_pin_change = new wxMenu;
|
||||
ADD_MENUITEM_WITH_SUBMENU( PopMenu, global_pin_change,
|
||||
ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_ITEM,
|
||||
_( "Global" ), pin_to_xpm );
|
||||
ADD_MENUITEM( global_pin_change,
|
||||
ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINSIZE_ITEM,
|
||||
selected ? _( "Pin Size to selected pins" ) :
|
||||
_( "Pin Size to Others" ), pin_size_to_xpm );
|
||||
ADD_MENUITEM( global_pin_change,
|
||||
ID_POPUP_LIBEDIT_PIN_GLOBAL_CHANGE_PINNAMESIZE_ITEM,
|
||||
selected ? _( "Pin Name Size to selected pin" ) :
|
||||
_( "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 );
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************/
|
||||
void AddMenusForBlock(wxMenu * PopMenu, WinEDA_LibeditFrame * frame)
|
||||
/**********************************************************************/
|
||||
/* Add menu commands for block
|
||||
*/
|
||||
/* Add menu commands for block */
|
||||
|
||||
void AddMenusForBlock( wxMenu* PopMenu, WinEDA_LibeditFrame* frame )
|
||||
{
|
||||
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 )
|
||||
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();
|
||||
|
||||
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 )
|
||||
{
|
||||
ADD_MENUITEM(PopMenu, ID_POPUP_SELECT_ITEMS_BLOCK, _("Select Items"), green_xpm);
|
||||
ADD_MENUITEM(PopMenu, ID_POPUP_COPY_BLOCK,
|
||||
_("Copy Block"), copyblock_xpm);
|
||||
ADD_MENUITEM(PopMenu, ID_POPUP_MIRROR_Y_BLOCK, _("Mirror Block ||"), mirror_H_xpm );
|
||||
ADD_MENUITEM(PopMenu, ID_POPUP_DELETE_BLOCK,
|
||||
_("Delete Block"), delete_xpm );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_SELECT_ITEMS_BLOCK,
|
||||
_( "Select Items" ), green_xpm );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_COPY_BLOCK,
|
||||
_( "Copy Block" ), copyblock_xpm );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_MIRROR_Y_BLOCK,
|
||||
_( "Mirror Block ||" ), mirror_H_xpm );
|
||||
ADD_MENUITEM( PopMenu, ID_POPUP_DELETE_BLOCK,
|
||||
_( "Delete Block" ), delete_xpm );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -9,9 +9,8 @@
|
|||
#include "program.h"
|
||||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
//#include "id.h"
|
||||
|
||||
#include "protos.h"
|
||||
#include "libeditfrm.h"
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
|
@ -55,16 +54,16 @@ void WinEDA_LibeditFrame::GetComponentFromRedoList(wxCommandEvent& event)
|
|||
return;
|
||||
|
||||
PICKED_ITEMS_LIST* lastcmd = new PICKED_ITEMS_LIST();
|
||||
ITEM_PICKER wrapper(CurrentLibEntry, UR_LIBEDIT);
|
||||
ITEM_PICKER wrapper(m_currentComponent, UR_LIBEDIT);
|
||||
lastcmd->PushItem(wrapper);
|
||||
GetScreen()->PushCommandToUndoList( lastcmd );
|
||||
|
||||
lastcmd = GetScreen()->PopCommandFromRedoList( );
|
||||
|
||||
wrapper = lastcmd->PopItem();
|
||||
CurrentLibEntry = (LIB_COMPONENT*) wrapper.m_PickedItem;
|
||||
if( CurrentLibEntry )
|
||||
CurrentLibEntry->SetNext( NULL );
|
||||
m_currentComponent = (LIB_COMPONENT*) wrapper.m_PickedItem;
|
||||
if( m_currentComponent )
|
||||
m_currentComponent->SetNext( NULL );
|
||||
CurrentDrawItem = NULL;
|
||||
GetScreen()->SetModify();
|
||||
DrawPanel->Refresh();
|
||||
|
@ -85,17 +84,17 @@ void WinEDA_LibeditFrame::GetComponentFromUndoList(wxCommandEvent& event)
|
|||
return;
|
||||
|
||||
PICKED_ITEMS_LIST* lastcmd = new PICKED_ITEMS_LIST();
|
||||
ITEM_PICKER wrapper(CurrentLibEntry, UR_LIBEDIT);
|
||||
ITEM_PICKER wrapper(m_currentComponent, UR_LIBEDIT);
|
||||
lastcmd->PushItem(wrapper);
|
||||
GetScreen()->PushCommandToRedoList( lastcmd );
|
||||
|
||||
lastcmd = GetScreen()->PopCommandFromUndoList( );
|
||||
|
||||
wrapper = lastcmd->PopItem();
|
||||
CurrentLibEntry = (LIB_COMPONENT*) wrapper.m_PickedItem;
|
||||
m_currentComponent = (LIB_COMPONENT*) wrapper.m_PickedItem;
|
||||
|
||||
if( CurrentLibEntry )
|
||||
CurrentLibEntry->SetNext( NULL );
|
||||
if( m_currentComponent )
|
||||
m_currentComponent->SetNext( NULL );
|
||||
CurrentDrawItem = NULL;
|
||||
GetScreen()->SetModify();
|
||||
DrawPanel->Refresh();
|
||||
|
|
|
@ -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__ */
|
|
@ -11,19 +11,13 @@
|
|||
#include "program.h"
|
||||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
|
||||
#include "protos.h"
|
||||
#include "libeditfrm.h"
|
||||
|
||||
|
||||
/* Routines locales */
|
||||
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 */
|
||||
extern int CurrentUnit;
|
||||
|
@ -55,7 +49,7 @@ void WinEDA_LibeditFrame::StartMoveField( wxDC* DC, LibDrawField* field )
|
|||
{
|
||||
wxPoint startPos;
|
||||
|
||||
if( ( CurrentLibEntry == NULL ) || ( field == NULL ) )
|
||||
if( ( m_currentComponent == NULL ) || ( field == NULL ) )
|
||||
return;
|
||||
|
||||
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 normalement attachee au curseur */
|
||||
|
@ -116,10 +79,10 @@ static void ShowMoveField( WinEDA_DrawPanel* panel, wxDC* DC, bool erase )
|
|||
{
|
||||
LibDrawField* Field = (LibDrawField*) CurrentDrawItem;
|
||||
|
||||
if( ( CurrentLibEntry == NULL ) || ( Field == NULL ) )
|
||||
if( Field == NULL )
|
||||
return;
|
||||
|
||||
wxString text = ReturnFieldFullText( Field );
|
||||
wxString text = Field->GetFullText();
|
||||
|
||||
if( erase )
|
||||
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;
|
||||
DrawPanel->CursorOff( DC );
|
||||
|
||||
wxString fieldText = ReturnFieldFullText( Field );
|
||||
wxString fieldText = Field->GetFullText();
|
||||
|
||||
Field->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, GR_DEFAULT_DRAWMODE,
|
||||
&fieldText, DefaultTransformMatrix );
|
||||
|
@ -196,13 +159,13 @@ void WinEDA_LibeditFrame::EditField( wxDC* DC, LibDrawField* Field )
|
|||
wxString msg;
|
||||
|
||||
/* 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 \
|
||||
component <%s>.\nPlease choose another name that does not conflict with any \
|
||||
names in the alias list." ),
|
||||
(const wxChar*) Text,
|
||||
(const wxChar*) CurrentLibEntry->GetName() );
|
||||
(const wxChar*) Field->GetParent()->GetName() );
|
||||
DisplayError( this, msg );
|
||||
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,
|
||||
DefaultTransformMatrix );
|
||||
|
||||
if( !Text.IsEmpty() )
|
||||
{
|
||||
SaveCopyInUndoList( CurrentLibEntry );
|
||||
SaveCopyInUndoList( Field->GetParent() );
|
||||
Field->m_Text = Text;
|
||||
}
|
||||
else
|
||||
|
@ -237,7 +200,7 @@ not conflict with any library entries." ),
|
|||
DisplayError( this, _( "No new text: no change" ) );
|
||||
}
|
||||
|
||||
fieldText = ReturnFieldFullText( Field );
|
||||
fieldText = Field->GetFullText();
|
||||
int drawMode = g_XorMode;
|
||||
|
||||
if( Field->m_Flags == 0 )
|
||||
|
@ -266,7 +229,7 @@ void WinEDA_LibeditFrame::RotateField( wxDC* DC, LibDrawField* Field )
|
|||
DrawPanel->CursorOff( DC );
|
||||
GRSetDrawMode( DC, g_XorMode );
|
||||
|
||||
wxString fieldText = ReturnFieldFullText( Field );
|
||||
wxString fieldText = Field->GetFullText();
|
||||
|
||||
Field->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, g_XorMode, &fieldText,
|
||||
DefaultTransformMatrix );
|
||||
|
@ -324,33 +287,33 @@ LibEDA_BaseStruct* WinEDA_LibeditFrame::LocateItemUsingCursor()
|
|||
{
|
||||
LibEDA_BaseStruct* DrawEntry = CurrentDrawItem;
|
||||
|
||||
if( CurrentLibEntry == NULL )
|
||||
if( m_currentComponent == NULL )
|
||||
return NULL;
|
||||
|
||||
if( ( DrawEntry == NULL ) || ( DrawEntry->m_Flags == 0 ) )
|
||||
{
|
||||
DrawEntry = LocatePin( GetScreen()->m_Curseur, CurrentLibEntry,
|
||||
DrawEntry = LocatePin( GetScreen()->m_Curseur, m_currentComponent,
|
||||
CurrentUnit, CurrentConvert );
|
||||
if( DrawEntry == NULL )
|
||||
{
|
||||
DrawEntry = CurrentDrawItem =
|
||||
LocateDrawItem( (SCH_SCREEN*) GetScreen(),
|
||||
GetScreen()->m_MousePosition,
|
||||
CurrentLibEntry, CurrentUnit,
|
||||
m_currentComponent, CurrentUnit,
|
||||
CurrentConvert, LOCATE_ALL_DRAW_ITEM );
|
||||
}
|
||||
if( DrawEntry == NULL )
|
||||
{
|
||||
DrawEntry = CurrentDrawItem =
|
||||
LocateDrawItem( (SCH_SCREEN*) GetScreen(),
|
||||
GetScreen()->m_Curseur, CurrentLibEntry,
|
||||
GetScreen()->m_Curseur, m_currentComponent,
|
||||
CurrentUnit, CurrentConvert,
|
||||
LOCATE_ALL_DRAW_ITEM );
|
||||
}
|
||||
if( DrawEntry == NULL )
|
||||
{
|
||||
DrawEntry = CurrentDrawItem =
|
||||
(LibEDA_BaseStruct*) LocateField( CurrentLibEntry );
|
||||
(LibEDA_BaseStruct*) LocateField( m_currentComponent );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -11,13 +11,15 @@
|
|||
#include "class_drawpanel.h"
|
||||
#include "confirm.h"
|
||||
#include "eda_doc.h"
|
||||
|
||||
#include "program.h"
|
||||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
#include "bitmaps.h"
|
||||
#include "protos.h"
|
||||
#include "id.h"
|
||||
#include "eeschema_id.h"
|
||||
#include "class_library.h"
|
||||
#include "libeditfrm.h"
|
||||
|
||||
#include <boost/foreach.hpp>
|
||||
|
||||
|
@ -35,6 +37,9 @@ int ImportPartId = ::wxNewId();
|
|||
int CreateNewLibAndSavePartId = ::wxNewId();
|
||||
|
||||
|
||||
LIB_COMPONENT* WinEDA_LibeditFrame::m_currentComponent = NULL;
|
||||
|
||||
|
||||
/*****************************/
|
||||
/* class WinEDA_LibeditFrame */
|
||||
/*****************************/
|
||||
|
@ -49,9 +54,9 @@ BEGIN_EVENT_TABLE( WinEDA_LibeditFrame, WinEDA_DrawFrame )
|
|||
EVT_TOOL( ID_LIBEDIT_SELECT_CURRENT_LIB,
|
||||
WinEDA_LibeditFrame::Process_Special_Functions )
|
||||
EVT_TOOL( ID_LIBEDIT_DELETE_PART,
|
||||
WinEDA_LibeditFrame::Process_Special_Functions )
|
||||
WinEDA_LibeditFrame::DeleteOnePart )
|
||||
EVT_TOOL( ID_LIBEDIT_NEW_PART,
|
||||
WinEDA_LibeditFrame::Process_Special_Functions )
|
||||
WinEDA_LibeditFrame::CreateNewLibraryPart )
|
||||
EVT_TOOL( ID_LIBEDIT_SELECT_PART,
|
||||
WinEDA_LibeditFrame::Process_Special_Functions )
|
||||
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,
|
||||
WinEDA_LibeditFrame::OnEditComponentProperties )
|
||||
EVT_TOOL( ID_LIBEDIT_GET_FRAME_EDIT_FIELDS,
|
||||
WinEDA_LibeditFrame::Process_Special_Functions )
|
||||
WinEDA_LibeditFrame::InstallFieldsEditorDialog )
|
||||
EVT_TOOL( ID_LIBEDIT_CHECK_PART,
|
||||
WinEDA_LibeditFrame::Process_Special_Functions )
|
||||
EVT_TOOL( ID_DE_MORGAN_NORMAL_BUTT,
|
||||
|
@ -86,11 +91,12 @@ BEGIN_EVENT_TABLE( WinEDA_LibeditFrame, WinEDA_DrawFrame )
|
|||
|
||||
/* Right vertical toolbar. */
|
||||
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 )
|
||||
|
||||
/* 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 )
|
||||
|
||||
EVT_MENU_RANGE( ID_POPUP_GENERAL_START_RANGE, ID_POPUP_GENERAL_END_RANGE,
|
||||
|
@ -246,10 +252,10 @@ int WinEDA_LibeditFrame::BestZoom()
|
|||
wxSize size;
|
||||
EDA_Rect BoundaryBox;
|
||||
|
||||
if( CurrentLibEntry )
|
||||
if( m_currentComponent )
|
||||
{
|
||||
BoundaryBox = CurrentLibEntry->GetBoundaryBox( CurrentUnit,
|
||||
CurrentConvert );
|
||||
BoundaryBox = m_currentComponent->GetBoundaryBox( CurrentUnit,
|
||||
CurrentConvert );
|
||||
dx = BoundaryBox.GetWidth();
|
||||
dy = BoundaryBox.GetHeight();
|
||||
}
|
||||
|
@ -266,7 +272,7 @@ int WinEDA_LibeditFrame::BestZoom()
|
|||
|
||||
bestzoom = MAX( ii, jj ) + 1;
|
||||
|
||||
if( CurrentLibEntry )
|
||||
if( m_currentComponent )
|
||||
{
|
||||
GetScreen()->m_Curseur = BoundaryBox.Centre();
|
||||
}
|
||||
|
@ -287,15 +293,15 @@ void WinEDA_LibeditFrame::UpdateAliasSelectList()
|
|||
|
||||
m_SelAliasBox->Clear();
|
||||
|
||||
if( CurrentLibEntry == NULL )
|
||||
if( m_currentComponent == NULL )
|
||||
return;
|
||||
|
||||
m_SelAliasBox->Append( CurrentLibEntry->GetName() );
|
||||
m_SelAliasBox->Append( m_currentComponent->GetName() );
|
||||
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 );
|
||||
|
||||
|
@ -314,13 +320,13 @@ void WinEDA_LibeditFrame::UpdatePartSelectList()
|
|||
if( m_SelpartBox->GetCount() != 0 )
|
||||
m_SelpartBox->Clear();
|
||||
|
||||
if( CurrentLibEntry == NULL || CurrentLibEntry->m_UnitCount <= 1 )
|
||||
if( m_currentComponent == NULL || m_currentComponent->m_UnitCount <= 1 )
|
||||
{
|
||||
m_SelpartBox->Append( wxEmptyString );
|
||||
}
|
||||
else
|
||||
{
|
||||
for( int i = 0; i < CurrentLibEntry->m_UnitCount; i++ )
|
||||
for( int i = 0; i < m_currentComponent->m_UnitCount; i++ )
|
||||
{
|
||||
wxString msg;
|
||||
msg.Printf( _( "Part %c" ), 'A' + i );
|
||||
|
@ -334,26 +340,26 @@ void WinEDA_LibeditFrame::UpdatePartSelectList()
|
|||
|
||||
void WinEDA_LibeditFrame::OnUpdateEditingPart( wxUpdateUIEvent& event )
|
||||
{
|
||||
event.Enable( CurrentLibEntry != NULL );
|
||||
event.Enable( m_currentComponent != NULL );
|
||||
}
|
||||
|
||||
|
||||
void WinEDA_LibeditFrame::OnUpdateNotEditingPart( wxUpdateUIEvent& event )
|
||||
{
|
||||
event.Enable( CurrentLibEntry == NULL );
|
||||
event.Enable( m_currentComponent == NULL );
|
||||
}
|
||||
|
||||
|
||||
void WinEDA_LibeditFrame::OnUpdateUndo( wxUpdateUIEvent& event )
|
||||
{
|
||||
event.Enable( CurrentLibEntry != NULL && GetScreen() != NULL
|
||||
event.Enable( m_currentComponent != NULL && GetScreen() != NULL
|
||||
&& GetScreen()->GetUndoCommandCount() != 0 );
|
||||
}
|
||||
|
||||
|
||||
void WinEDA_LibeditFrame::OnUpdateRedo( wxUpdateUIEvent& event )
|
||||
{
|
||||
event.Enable( CurrentLibEntry != NULL && GetScreen() != NULL
|
||||
event.Enable( m_currentComponent != NULL && GetScreen() != NULL
|
||||
&& GetScreen()->GetRedoCommandCount() != 0 );
|
||||
}
|
||||
|
||||
|
@ -369,7 +375,7 @@ void WinEDA_LibeditFrame::OnUpdateViewDoc( wxUpdateUIEvent& event )
|
|||
{
|
||||
bool enable = false;
|
||||
|
||||
if( CurrentLibEntry != NULL && CurrentLib != NULL )
|
||||
if( m_currentComponent != NULL && CurrentLib != NULL )
|
||||
{
|
||||
if( !CurrentAliasName.IsEmpty() )
|
||||
{
|
||||
|
@ -378,7 +384,7 @@ void WinEDA_LibeditFrame::OnUpdateViewDoc( wxUpdateUIEvent& event )
|
|||
if( entry != NULL )
|
||||
enable = !entry->m_DocFile.IsEmpty();
|
||||
}
|
||||
else if( !CurrentLibEntry->m_DocFile.IsEmpty() )
|
||||
else if( !m_currentComponent->m_DocFile.IsEmpty() )
|
||||
{
|
||||
enable = true;
|
||||
}
|
||||
|
@ -390,8 +396,9 @@ void WinEDA_LibeditFrame::OnUpdateViewDoc( wxUpdateUIEvent& event )
|
|||
|
||||
void WinEDA_LibeditFrame::OnUpdatePinByPin( wxUpdateUIEvent& event )
|
||||
{
|
||||
event.Enable( ( CurrentLibEntry != NULL )
|
||||
&& ( ( CurrentLibEntry->m_UnitCount > 1 ) || g_AsDeMorgan ) );
|
||||
event.Enable( ( m_currentComponent != NULL )
|
||||
&& ( ( m_currentComponent->m_UnitCount > 1 )
|
||||
|| g_AsDeMorgan ) );
|
||||
|
||||
if( m_HToolBar )
|
||||
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
|
||||
* so use the pointer to alias combobox to directly enable or disable.
|
||||
*/
|
||||
m_SelpartBox->Enable( CurrentLibEntry != NULL
|
||||
&& CurrentLibEntry->m_UnitCount > 1 );
|
||||
m_SelpartBox->Enable( m_currentComponent != NULL
|
||||
&& m_currentComponent->m_UnitCount > 1 );
|
||||
}
|
||||
|
||||
|
||||
|
@ -416,7 +423,8 @@ void WinEDA_LibeditFrame::OnUpdateDeMorganNormal( wxUpdateUIEvent& event )
|
|||
if( m_HToolBar == NULL )
|
||||
return;
|
||||
|
||||
event.Enable( CurrentLibEntry != NULL && CurrentLibEntry->HasConversion() );
|
||||
event.Enable( m_currentComponent != NULL
|
||||
&& m_currentComponent->HasConversion() );
|
||||
m_HToolBar->ToggleTool( event.GetId(), CurrentConvert <= 1 );
|
||||
}
|
||||
|
||||
|
@ -426,7 +434,8 @@ void WinEDA_LibeditFrame::OnUpdateDeMorganConvert( wxUpdateUIEvent& event )
|
|||
if( m_HToolBar == NULL )
|
||||
return;
|
||||
|
||||
event.Enable( CurrentLibEntry != NULL && CurrentLibEntry->HasConversion() );
|
||||
event.Enable( m_currentComponent != NULL
|
||||
&& m_currentComponent->HasConversion() );
|
||||
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
|
||||
* so use the pointer to alias combobox to directly enable or disable.
|
||||
*/
|
||||
m_SelAliasBox->Enable( CurrentLibEntry != NULL
|
||||
&& !CurrentLibEntry->m_AliasList.IsEmpty() );
|
||||
m_SelAliasBox->Enable( m_currentComponent != NULL
|
||||
&& !m_currentComponent->m_AliasList.IsEmpty() );
|
||||
}
|
||||
|
||||
|
||||
|
@ -452,7 +461,7 @@ void WinEDA_LibeditFrame::OnSelectAlias( wxCommandEvent& event )
|
|||
|
||||
LibItemToRepeat = NULL;
|
||||
|
||||
if( m_SelAliasBox->GetStringSelection().CmpNoCase(CurrentLibEntry->GetName() ) == 0 )
|
||||
if( m_SelAliasBox->GetStringSelection().CmpNoCase(m_currentComponent->GetName() ) == 0 )
|
||||
CurrentAliasName.Empty();
|
||||
else
|
||||
CurrentAliasName = m_SelAliasBox->GetStringSelection();
|
||||
|
@ -525,18 +534,6 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
|
||||
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:
|
||||
SelectActiveLibrary();
|
||||
break;
|
||||
|
@ -555,19 +552,8 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
SaveOnePartInMemory();
|
||||
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:
|
||||
if( CurrentLibEntry && TestPins( CurrentLibEntry ) == false )
|
||||
if( m_currentComponent && TestPins( m_currentComponent ) == false )
|
||||
DisplayInfoMessage( this, _( " Pins Test OK!" ) );
|
||||
break;
|
||||
|
||||
|
@ -584,7 +570,7 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
break;
|
||||
|
||||
case ID_LIBEDIT_VIEW_DOC:
|
||||
if( CurrentLibEntry )
|
||||
if( m_currentComponent )
|
||||
{
|
||||
wxString docfilename;
|
||||
if( !CurrentAliasName.IsEmpty() )
|
||||
|
@ -594,7 +580,7 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
docfilename = entry->m_DocFile;
|
||||
}
|
||||
else
|
||||
docfilename = CurrentLibEntry->m_DocFile;
|
||||
docfilename = m_currentComponent->m_DocFile;
|
||||
|
||||
if( !docfilename.IsEmpty() )
|
||||
GetAssociatedDocument( this, docfilename,
|
||||
|
@ -611,7 +597,7 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
break;
|
||||
|
||||
case ID_LIBEDIT_PIN_BUTT:
|
||||
if( CurrentLibEntry )
|
||||
if( m_currentComponent )
|
||||
{
|
||||
SetToolID( id, wxCURSOR_PENCIL, _( "Add Pin" ) );
|
||||
}
|
||||
|
@ -707,7 +693,7 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
|
||||
|
||||
case ID_LIBEDIT_DELETE_ITEM_BUTT:
|
||||
if( CurrentLibEntry == NULL )
|
||||
if( m_currentComponent == NULL )
|
||||
{
|
||||
wxBell();
|
||||
break;
|
||||
|
@ -729,18 +715,18 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
break;
|
||||
DrawPanel->MouseToCursorSchema();
|
||||
DrawPanel->CursorOff( &dc );
|
||||
SaveCopyInUndoList( CurrentLibEntry );
|
||||
SaveCopyInUndoList( m_currentComponent );
|
||||
if( CurrentDrawItem->Type() == COMPONENT_PIN_DRAW_TYPE )
|
||||
{
|
||||
DeletePin( &dc, CurrentLibEntry, (LibDrawPin*) CurrentDrawItem );
|
||||
DeletePin( &dc, m_currentComponent, (LibDrawPin*) CurrentDrawItem );
|
||||
}
|
||||
else
|
||||
{
|
||||
if( DrawPanel->ManageCurseur && DrawPanel->ForceCloseManageCurseur )
|
||||
DrawPanel->ForceCloseManageCurseur( DrawPanel, &dc );
|
||||
else
|
||||
CurrentLibEntry->RemoveDrawItem( CurrentDrawItem, DrawPanel,
|
||||
&dc );
|
||||
m_currentComponent->RemoveDrawItem( CurrentDrawItem, DrawPanel,
|
||||
&dc );
|
||||
}
|
||||
|
||||
CurrentDrawItem = NULL;
|
||||
|
@ -766,7 +752,7 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
DrawPanel->CursorOff( &dc );
|
||||
DrawPanel->MouseToCursorSchema();
|
||||
if( (CurrentDrawItem->m_Flags & IS_NEW) == 0 )
|
||||
SaveCopyInUndoList( CurrentLibEntry );
|
||||
SaveCopyInUndoList( m_currentComponent );
|
||||
RotateSymbolText( &dc );
|
||||
DrawPanel->CursorOn( &dc );
|
||||
break;
|
||||
|
@ -778,7 +764,7 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
DrawPanel->MouseToCursorSchema();
|
||||
if( CurrentDrawItem->Type() == COMPONENT_FIELD_DRAW_TYPE )
|
||||
{
|
||||
SaveCopyInUndoList( CurrentLibEntry );
|
||||
SaveCopyInUndoList( m_currentComponent );
|
||||
RotateField( &dc, (LibDrawField*) CurrentDrawItem );
|
||||
}
|
||||
DrawPanel->CursorOn( &dc );
|
||||
|
@ -802,7 +788,7 @@ void WinEDA_LibeditFrame::Process_Special_Functions( wxCommandEvent& event )
|
|||
if( (CurrentDrawItem == NULL )
|
||||
|| (CurrentDrawItem->Type() != COMPONENT_PIN_DRAW_TYPE) )
|
||||
break;
|
||||
SaveCopyInUndoList( CurrentLibEntry );
|
||||
SaveCopyInUndoList( m_currentComponent );
|
||||
GlobalSetPins( &dc, (LibDrawPin*) CurrentDrawItem, id );
|
||||
DrawPanel->MouseToCursorSchema();
|
||||
break;
|
||||
|
|
|
@ -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__ */
|
|
@ -14,7 +14,7 @@
|
|||
#include "general.h"
|
||||
#include "bitmaps.h"
|
||||
#include "protos.h"
|
||||
#include "id.h"
|
||||
#include "eeschema_id.h"
|
||||
#include "hotkeys.h"
|
||||
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
#include "fctsys.h"
|
||||
#include "common.h"
|
||||
#include "id.h"
|
||||
#include "eeschema_id.h"
|
||||
#include "class_drawpanel.h"
|
||||
#include "confirm.h"
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
#include "fctsys.h"
|
||||
#include "common.h"
|
||||
#include "id.h"
|
||||
#include "eeschema_id.h"
|
||||
#include "class_drawpanel.h"
|
||||
#include "confirm.h"
|
||||
|
||||
|
|
|
@ -14,9 +14,9 @@
|
|||
#ifndef _PINEDIT_DIALOG_H_
|
||||
#define _PINEDIT_DIALOG_H_
|
||||
|
||||
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
|
||||
#pragma interface "pinedit-dialog.h"
|
||||
#endif
|
||||
/* #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) */
|
||||
/* #pragma interface "pinedit-dialog.h" */
|
||||
/* #endif */
|
||||
|
||||
/*!
|
||||
* Includes
|
||||
|
@ -29,8 +29,8 @@
|
|||
#include "program.h"
|
||||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
#include "id.h"
|
||||
|
||||
#include "eeschema_id.h"
|
||||
#include "libeditfrm.h"
|
||||
#include "protos.h"
|
||||
|
||||
////@begin includes
|
||||
|
|
|
@ -2,9 +2,11 @@
|
|||
/* EESchema - PinEdit.cpp */
|
||||
/***************************/
|
||||
|
||||
#if defined (__GNUG__) && !defined (NO_GCC_PRAGMA)
|
||||
#pragma implementation "pinedit-dialog.h"
|
||||
#endif
|
||||
#include "fctsys.h"
|
||||
|
||||
#include "program.h"
|
||||
#include "libeditfrm.h"
|
||||
#include "eeschema_id.h"
|
||||
|
||||
#include "pinedit-dialog.h"
|
||||
|
||||
|
@ -83,7 +85,7 @@ void WinEDA_PinPropertiesFrame::PinPropertiesAccept( wxCommandEvent& event )
|
|||
if( CurrentDrawItem ) // Set Pin Name & Num
|
||||
{
|
||||
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 );
|
||||
msg = m_PinNumCtrl->GetValue();
|
||||
|
@ -117,13 +119,13 @@ void WinEDA_LibeditFrame::InitEditOnePin()
|
|||
LibDrawPin* Pin;
|
||||
LibDrawPin* CurrentPin = (LibDrawPin*) CurrentDrawItem;
|
||||
|
||||
if( CurrentLibEntry == NULL )
|
||||
if( m_currentComponent == NULL )
|
||||
return;
|
||||
if( CurrentPin == NULL )
|
||||
return;
|
||||
|
||||
/* 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() )
|
||||
{
|
||||
if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE )
|
||||
|
@ -153,11 +155,11 @@ static void AbortPinMove( WinEDA_DrawPanel* Panel, wxDC* DC )
|
|||
{
|
||||
LibDrawPin* CurrentPin = (LibDrawPin*) CurrentDrawItem;
|
||||
|
||||
if( CurrentPin && ( CurrentPin->m_Flags & IS_NEW ) )
|
||||
CurrentLibEntry->RemoveDrawItem( CurrentPin, Panel, DC );
|
||||
if( CurrentPin && ( CurrentPin->m_Flags & IS_NEW ) )
|
||||
CurrentPin->GetParent()->RemoveDrawItem( CurrentPin, Panel, DC );
|
||||
|
||||
/* clear edit flags */
|
||||
LibEDA_BaseStruct* item = CurrentLibEntry->m_Drawings;
|
||||
LibEDA_BaseStruct* item = CurrentPin->GetParent()->m_Drawings;
|
||||
for( ; item != NULL; item = item->Next() )
|
||||
item->m_Flags = 0;
|
||||
|
||||
|
@ -186,7 +188,7 @@ void WinEDA_LibeditFrame::PlacePin( wxDC* DC )
|
|||
newpos.x = GetScreen()->m_Curseur.x;
|
||||
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:
|
||||
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 */
|
||||
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings;
|
||||
Pin = (LibDrawPin*) m_currentComponent->m_Drawings;
|
||||
for( ; Pin != NULL; Pin = Pin->Next() )
|
||||
{
|
||||
if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE )
|
||||
|
@ -255,7 +257,7 @@ void WinEDA_PinPropertiesFrame::SetPinOrient( int neworient )
|
|||
LibDrawPin* CurrentPin = (LibDrawPin*) CurrentDrawItem;
|
||||
LibDrawPin* Pin, * RefPin = CurrentPin;
|
||||
|
||||
if( CurrentLibEntry == NULL )
|
||||
if( CurrentPin == NULL || CurrentPin->GetParent() == NULL )
|
||||
return;
|
||||
if( RefPin == NULL )
|
||||
return;
|
||||
|
@ -265,7 +267,7 @@ void WinEDA_PinPropertiesFrame::SetPinOrient( int neworient )
|
|||
/* Rotation */
|
||||
RefPin->m_Orient = neworient;
|
||||
|
||||
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings;
|
||||
Pin = (LibDrawPin*) CurrentPin->GetParent()->m_Drawings;
|
||||
for( ; Pin != NULL; Pin = Pin->Next() )
|
||||
{
|
||||
if( Pin->m_Flags == 0 )
|
||||
|
@ -291,7 +293,7 @@ void WinEDA_LibeditFrame::StartMovePin( wxDC* DC )
|
|||
wxPoint startPos;
|
||||
|
||||
/* Marquage des pins a traiter */
|
||||
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings;
|
||||
Pin = (LibDrawPin*) m_currentComponent->m_Drawings;
|
||||
for( ; Pin != NULL; Pin = Pin->Next() )
|
||||
{
|
||||
Pin->m_Flags = 0;
|
||||
|
@ -373,7 +375,7 @@ void WinEDA_PinPropertiesFrame::SetPinShape( int newshape )
|
|||
m_Parent->GetScreen()->SetModify();
|
||||
CurrentPin->DisplayInfo( m_Parent );
|
||||
|
||||
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings;
|
||||
Pin = (LibDrawPin*) CurrentPin->GetParent()->m_Drawings;
|
||||
for( ; Pin != NULL; Pin = Pin->Next() )
|
||||
{
|
||||
if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE )
|
||||
|
@ -400,13 +402,13 @@ void WinEDA_PinPropertiesFrame::SetPinType( int newtype )
|
|||
LibDrawPin* Pin;
|
||||
LibDrawPin* CurrentPin = (LibDrawPin*) CurrentDrawItem;
|
||||
|
||||
if( CurrentPin == NULL )
|
||||
if( CurrentPin == NULL || CurrentPin->GetParent() == NULL )
|
||||
return;
|
||||
|
||||
CurrentPin->m_PinType = newtype;
|
||||
m_Parent->GetScreen()->SetModify();
|
||||
|
||||
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings;
|
||||
Pin = (LibDrawPin*) CurrentPin->GetParent()->m_Drawings;
|
||||
for( ; Pin != NULL; Pin = Pin->Next() )
|
||||
{
|
||||
if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE )
|
||||
|
@ -431,6 +433,9 @@ void WinEDA_PinPropertiesFrame::SetPinName( const wxString& newname, int newsize
|
|||
LibDrawPin* CurrentPin = (LibDrawPin*) CurrentDrawItem;
|
||||
wxString buf;
|
||||
|
||||
if( CurrentPin == NULL || CurrentPin->GetParent() == NULL )
|
||||
return;
|
||||
|
||||
buf = newname;
|
||||
buf.Replace( wxT( " " ), wxT( "_" ) );
|
||||
|
||||
|
@ -442,7 +447,7 @@ void WinEDA_PinPropertiesFrame::SetPinName( const wxString& newname, int newsize
|
|||
m_Parent->GetScreen()->SetModify();
|
||||
|
||||
/* Traitement des autres pins */
|
||||
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings;
|
||||
Pin = (LibDrawPin*) CurrentPin->GetParent()->m_Drawings;
|
||||
for( ; Pin != NULL; Pin = Pin->Next() )
|
||||
{
|
||||
if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE )
|
||||
|
@ -474,7 +479,7 @@ void WinEDA_PinPropertiesFrame::SetPinNum( const wxString& newnum, int newsize )
|
|||
buf = newnum;
|
||||
buf.Replace( wxT( " " ), wxT( "_" ) );
|
||||
|
||||
if( CurrentPin == NULL )
|
||||
if( CurrentPin == NULL || CurrentPin->GetParent() == NULL )
|
||||
return;
|
||||
|
||||
CurrentPin->m_PinNum = 0;
|
||||
|
@ -484,7 +489,7 @@ void WinEDA_PinPropertiesFrame::SetPinNum( const wxString& newnum, int newsize )
|
|||
CurrentPin->SetPinNumFromString( buf );
|
||||
m_Parent->GetScreen()->SetModify();
|
||||
|
||||
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings;
|
||||
Pin = (LibDrawPin*) CurrentPin->GetParent()->m_Drawings;
|
||||
for( ; Pin != NULL; Pin = Pin->Next() )
|
||||
{
|
||||
if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE )
|
||||
|
@ -552,15 +557,15 @@ void WinEDA_LibeditFrame::CreatePin( wxDC* DC )
|
|||
LibDrawPin* CurrentPin;
|
||||
bool showPinText = true;
|
||||
|
||||
if( CurrentLibEntry == NULL )
|
||||
if( m_currentComponent == NULL )
|
||||
return;
|
||||
|
||||
/* Effacement des flags */
|
||||
DrawItem = CurrentLibEntry->m_Drawings;
|
||||
DrawItem = m_currentComponent->m_Drawings;
|
||||
for( ; DrawItem != NULL; DrawItem = DrawItem->Next() )
|
||||
DrawItem->m_Flags = 0;
|
||||
|
||||
CurrentPin = new LibDrawPin(CurrentLibEntry);
|
||||
CurrentPin = new LibDrawPin(m_currentComponent);
|
||||
|
||||
CurrentDrawItem = CurrentPin;
|
||||
if( CurrentPin == NULL )
|
||||
|
@ -594,9 +599,9 @@ void WinEDA_LibeditFrame::CreatePin( wxDC* DC )
|
|||
else
|
||||
CurrentPin->m_Attributs &= ~PINNOTDRAW;
|
||||
|
||||
CurrentPin->SetNext( CurrentLibEntry->m_Drawings );
|
||||
CurrentLibEntry->m_Drawings = CurrentPin;
|
||||
CurrentLibEntry->SortDrawItems();
|
||||
CurrentPin->SetNext( m_currentComponent->m_Drawings );
|
||||
m_currentComponent->m_Drawings = CurrentPin;
|
||||
m_currentComponent->SortDrawItems();
|
||||
|
||||
if( DC )
|
||||
CurrentPin->Draw( DrawPanel, DC, wxPoint( 0, 0 ), -1, g_XorMode,
|
||||
|
@ -644,18 +649,18 @@ void WinEDA_PinPropertiesFrame::SetAttributsPin( bool draw,
|
|||
|
||||
m_Parent->GetScreen()->SetModify();
|
||||
|
||||
if( unit )
|
||||
if( unit )
|
||||
{
|
||||
if( LastPinCommonUnit )
|
||||
CurrentPin->m_Unit = 0;
|
||||
else
|
||||
CurrentPin->m_Unit = CurrentUnit;
|
||||
|
||||
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings;
|
||||
Pin = (LibDrawPin*) CurrentPin->GetParent()->m_Drawings;
|
||||
|
||||
if( CurrentPin->m_Unit == 0 )
|
||||
{
|
||||
DrawItem = CurrentLibEntry->m_Drawings;
|
||||
DrawItem = CurrentPin->GetParent()->m_Drawings;
|
||||
for( ; DrawItem != NULL; )
|
||||
{
|
||||
Pin = (LibDrawPin*) DrawItem;
|
||||
|
@ -674,7 +679,7 @@ void WinEDA_PinPropertiesFrame::SetAttributsPin( bool draw,
|
|||
if( Pin->m_Orient != CurrentPin->m_Orient )
|
||||
continue;
|
||||
|
||||
CurrentLibEntry->RemoveDrawItem( (LibEDA_BaseStruct*) Pin );
|
||||
CurrentPin->GetParent()->RemoveDrawItem( (LibEDA_BaseStruct*) Pin );
|
||||
}
|
||||
}
|
||||
} // end if unit
|
||||
|
@ -688,7 +693,7 @@ void WinEDA_PinPropertiesFrame::SetAttributsPin( bool draw,
|
|||
|
||||
if( CurrentPin->m_Convert == 0 ) /* Effacement des pins redondantes */
|
||||
{
|
||||
DrawItem = CurrentLibEntry->m_Drawings;
|
||||
DrawItem = CurrentPin->GetParent()->m_Drawings;
|
||||
for( ; DrawItem != NULL; )
|
||||
{
|
||||
Pin = (LibDrawPin*) DrawItem;
|
||||
|
@ -706,7 +711,7 @@ void WinEDA_PinPropertiesFrame::SetAttributsPin( bool draw,
|
|||
if( Pin->m_Orient != CurrentPin->m_Orient )
|
||||
continue;
|
||||
|
||||
CurrentLibEntry->RemoveDrawItem( (LibEDA_BaseStruct*) Pin );
|
||||
CurrentPin->GetParent()->RemoveDrawItem( (LibEDA_BaseStruct*) Pin );
|
||||
}
|
||||
}
|
||||
} // end if convert
|
||||
|
@ -718,7 +723,7 @@ void WinEDA_PinPropertiesFrame::SetAttributsPin( bool draw,
|
|||
else
|
||||
CurrentPin->m_Attributs &= ~PINNOTDRAW;
|
||||
|
||||
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings;
|
||||
Pin = (LibDrawPin*) CurrentPin->GetParent()->m_Drawings;
|
||||
for( ; Pin != NULL; Pin = Pin->Next() )
|
||||
{
|
||||
if( Pin->m_Flags == 0 )
|
||||
|
@ -744,9 +749,7 @@ void WinEDA_PinPropertiesFrame::NewSizePin( int newsize )
|
|||
{
|
||||
LibDrawPin* RefPin, * Pin = (LibDrawPin*) CurrentDrawItem;
|
||||
|
||||
if( CurrentLibEntry == NULL )
|
||||
return;
|
||||
if( Pin == NULL )
|
||||
if( Pin == NULL || Pin->GetParent() == NULL )
|
||||
return;
|
||||
|
||||
m_Parent->GetScreen()->SetModify();
|
||||
|
@ -759,7 +762,7 @@ void WinEDA_PinPropertiesFrame::NewSizePin( int newsize )
|
|||
|
||||
if( g_EditPinByPinIsOn == false )
|
||||
{
|
||||
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings;
|
||||
Pin = (LibDrawPin*) Pin->GetParent()->m_Drawings;
|
||||
for( ; Pin != NULL; Pin = Pin->Next() )
|
||||
{
|
||||
if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE )
|
||||
|
@ -787,10 +790,11 @@ static void CreateImagePins( LibDrawPin* Pin )
|
|||
LibDrawPin* NewPin;
|
||||
bool CreateConv = false;
|
||||
|
||||
|
||||
if( g_EditPinByPinIsOn )
|
||||
return;
|
||||
|
||||
if( g_AsDeMorgan && (Pin->m_Convert != 0 ) )
|
||||
if( g_AsDeMorgan && ( Pin->m_Convert != 0 ) )
|
||||
CreateConv = true;
|
||||
|
||||
/* Creation de la pin " convert " pour la part courante */
|
||||
|
@ -801,15 +805,13 @@ static void CreateImagePins( LibDrawPin* Pin )
|
|||
NewPin->m_Convert = 1;
|
||||
else
|
||||
NewPin->m_Convert = 2;
|
||||
NewPin->SetNext( CurrentLibEntry->m_Drawings );
|
||||
CurrentLibEntry->m_Drawings = NewPin;
|
||||
NewPin->SetNext( Pin->GetParent()->m_Drawings );
|
||||
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 )
|
||||
continue; /* Deja fait */
|
||||
if( Pin->m_Unit == 0 )
|
||||
if( ii == CurrentUnit || Pin->m_Unit == 0 )
|
||||
continue; /* Pin commune a toutes les unites */
|
||||
|
||||
/* Creation pour la representation "normale" */
|
||||
|
@ -817,8 +819,8 @@ static void CreateImagePins( LibDrawPin* Pin )
|
|||
if( CurrentConvert != 0 )
|
||||
NewPin->m_Convert = 1;
|
||||
NewPin->m_Unit = ii;
|
||||
NewPin->SetNext( CurrentLibEntry->m_Drawings );
|
||||
CurrentLibEntry->m_Drawings = NewPin;
|
||||
NewPin->SetNext( Pin->GetParent()->m_Drawings );
|
||||
Pin->GetParent()->m_Drawings = NewPin;
|
||||
|
||||
/* Creation pour la representation "Convert" */
|
||||
if( CreateConv == false )
|
||||
|
@ -828,8 +830,8 @@ static void CreateImagePins( LibDrawPin* Pin )
|
|||
NewPin->m_Convert = 2;
|
||||
if( Pin->m_Unit != 0 )
|
||||
NewPin->m_Unit = ii;
|
||||
NewPin->SetNext( CurrentLibEntry->m_Drawings );
|
||||
CurrentLibEntry->m_Drawings = NewPin;
|
||||
NewPin->SetNext( Pin->GetParent()->m_Drawings );
|
||||
Pin->GetParent()->m_Drawings = NewPin;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -850,14 +852,14 @@ void WinEDA_LibeditFrame::GlobalSetPins( wxDC* DC,
|
|||
bool selected = ( MasterPin->m_Selected & IS_SELECTED ) != 0;
|
||||
bool showPinText = true;
|
||||
|
||||
if( ( CurrentLibEntry == NULL ) || ( MasterPin == NULL ) )
|
||||
if( ( m_currentComponent == NULL ) || ( MasterPin == NULL ) )
|
||||
return;
|
||||
if( MasterPin->Type() != COMPONENT_PIN_DRAW_TYPE )
|
||||
return;
|
||||
|
||||
GetScreen()->SetModify();
|
||||
|
||||
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings;
|
||||
Pin = (LibDrawPin*) m_currentComponent->m_Drawings;
|
||||
for( ; Pin != NULL; Pin = Pin->Next() )
|
||||
{
|
||||
if( Pin->Type() != COMPONENT_PIN_DRAW_TYPE )
|
||||
|
@ -902,16 +904,13 @@ void WinEDA_LibeditFrame::RepeatPinItem( wxDC* DC, LibDrawPin* SourcePin )
|
|||
wxString msg;
|
||||
int ox = 0, oy = 0;
|
||||
|
||||
if( CurrentLibEntry == NULL )
|
||||
return;
|
||||
if( SourcePin == NULL )
|
||||
return;
|
||||
if( SourcePin->Type() != COMPONENT_PIN_DRAW_TYPE )
|
||||
if( m_currentComponent == NULL || SourcePin == NULL
|
||||
|| SourcePin->Type() != COMPONENT_PIN_DRAW_TYPE )
|
||||
return;
|
||||
|
||||
Pin = (LibDrawPin*)SourcePin->GenCopy();
|
||||
Pin->SetNext( CurrentLibEntry->m_Drawings );
|
||||
CurrentLibEntry->m_Drawings = Pin;
|
||||
Pin->SetNext( m_currentComponent->m_Drawings );
|
||||
m_currentComponent->m_Drawings = Pin;
|
||||
Pin->m_Flags = IS_NEW;
|
||||
|
||||
Pin->m_Pos.x += g_RepeatStep.x;
|
||||
|
@ -966,11 +965,11 @@ bool WinEDA_LibeditFrame::TestPins( LIB_COMPONENT* LibEntry )
|
|||
LibDrawPin** PinList;
|
||||
wxString msg;
|
||||
|
||||
if( CurrentLibEntry == NULL )
|
||||
if( m_currentComponent == NULL )
|
||||
return false;
|
||||
|
||||
// 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() )
|
||||
{
|
||||
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*) );
|
||||
Pin = (LibDrawPin*) CurrentLibEntry->m_Drawings;
|
||||
Pin = (LibDrawPin*) m_currentComponent->m_Drawings;
|
||||
for( ii = 0; Pin != NULL; Pin = Pin->Next() )
|
||||
{
|
||||
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,
|
||||
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 );
|
||||
msg += aux_msg;
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
|
||||
#include "id.h"
|
||||
#include "eeschema_id.h"
|
||||
|
||||
#include "protos.h"
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
#include "general.h"
|
||||
#include "bitmaps.h"
|
||||
#include "protos.h"
|
||||
#include "id.h"
|
||||
#include "eeschema_id.h"
|
||||
#include "netlist.h"
|
||||
|
||||
#include "annotate_dialog.h"
|
||||
|
@ -26,6 +26,8 @@
|
|||
#include "dialog_find.h"
|
||||
#include "netlist_control.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_FIND_ITEMS, WinEDA_SchematicFrame::OnFindItems )
|
||||
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_KICAD_ABOUT, WinEDA_DrawFrame::GetKicadAbout )
|
||||
|
|
|
@ -10,12 +10,14 @@
|
|||
#include "common.h"
|
||||
#include "class_drawpanel.h"
|
||||
#include "confirm.h"
|
||||
#include "eeschema_id.h"
|
||||
|
||||
#include "program.h"
|
||||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
#include "trigo.h"
|
||||
#include "protos.h"
|
||||
#include "id.h"
|
||||
#include "libeditfrm.h"
|
||||
|
||||
/* Routines locales */
|
||||
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->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 );
|
||||
|
||||
m_Parent->DrawPanel->PrepareGraphicContext( &dc );
|
||||
|
@ -105,7 +107,8 @@ void WinEDA_bodygraphics_PropertiesFrame::bodygraphics_PropertiesAccept( wxComma
|
|||
break;
|
||||
}
|
||||
}
|
||||
CurrentLibEntry->SortDrawItems();
|
||||
|
||||
CurrentDrawItem->GetParent()->SortDrawItems();
|
||||
|
||||
m_Parent->GetScreen()->SetModify();
|
||||
|
||||
|
@ -641,10 +644,10 @@ void WinEDA_LibeditFrame::EndDrawGraphicItem( wxDC* DC )
|
|||
* courant, si elle existe et redessine toujours celle ci
|
||||
* Parametres: (tous globaux)
|
||||
* CurrentDrawItem
|
||||
* CurrentLibEntry
|
||||
* m_currentComponent
|
||||
*/
|
||||
{
|
||||
if( CurrentLibEntry == NULL )
|
||||
if( m_currentComponent == NULL )
|
||||
return;
|
||||
if( CurrentDrawItem == NULL )
|
||||
return;
|
||||
|
@ -666,9 +669,9 @@ void WinEDA_LibeditFrame::EndDrawGraphicItem( wxDC* DC )
|
|||
|
||||
if( CurrentDrawItem->m_Flags & IS_NEW )
|
||||
{
|
||||
SaveCopyInUndoList( CurrentLibEntry );
|
||||
CurrentDrawItem->SetNext( CurrentLibEntry->m_Drawings );
|
||||
CurrentLibEntry->m_Drawings = CurrentDrawItem;
|
||||
SaveCopyInUndoList( m_currentComponent );
|
||||
CurrentDrawItem->SetNext( m_currentComponent->m_Drawings );
|
||||
m_currentComponent->m_Drawings = CurrentDrawItem;
|
||||
|
||||
switch( CurrentDrawItem->Type() )
|
||||
{
|
||||
|
@ -697,7 +700,7 @@ void WinEDA_LibeditFrame::EndDrawGraphicItem( wxDC* DC )
|
|||
;
|
||||
}
|
||||
|
||||
CurrentLibEntry->SortDrawItems();
|
||||
m_currentComponent->SortDrawItems();
|
||||
}
|
||||
|
||||
if( m_ID_current_state )
|
||||
|
@ -713,8 +716,8 @@ void WinEDA_LibeditFrame::EndDrawGraphicItem( wxDC* DC )
|
|||
MoveLibDrawItemAt( CurrentDrawItem, pos );
|
||||
}
|
||||
|
||||
CurrentLibEntry->Draw( DrawPanel, DC, wxPoint( 0, 0 ), CurrentUnit,
|
||||
CurrentConvert, GR_DEFAULT_DRAWMODE );
|
||||
m_currentComponent->Draw( DrawPanel, DC, wxPoint( 0, 0 ), CurrentUnit,
|
||||
CurrentConvert, GR_DEFAULT_DRAWMODE );
|
||||
|
||||
CurrentDrawItem->m_Flags = 0;
|
||||
CurrentDrawItem = NULL;
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
#include "protos.h"
|
||||
#include "libeditfrm.h"
|
||||
|
||||
|
||||
/*
|
||||
|
@ -37,7 +38,7 @@ void WinEDA_LibeditFrame::LoadOneSymbol( void )
|
|||
CMP_LIBRARY* Lib;
|
||||
|
||||
/* Exit if no library entry is selected or a command is in progress. */
|
||||
if( CurrentLibEntry == NULL
|
||||
if( m_currentComponent == NULL
|
||||
|| ( CurrentDrawItem && CurrentDrawItem->m_Flags ) )
|
||||
return;
|
||||
|
||||
|
@ -109,8 +110,8 @@ void WinEDA_LibeditFrame::LoadOneSymbol( void )
|
|||
|
||||
if( DrawEntry->Next() == NULL ) /* Fin de liste trouvee */
|
||||
{
|
||||
DrawEntry->SetNext( CurrentLibEntry->m_Drawings );
|
||||
CurrentLibEntry->m_Drawings = Component->m_Drawings;
|
||||
DrawEntry->SetNext( m_currentComponent->m_Drawings );
|
||||
m_currentComponent->m_Drawings = Component->m_Drawings;
|
||||
Component->m_Drawings = NULL;
|
||||
break;
|
||||
}
|
||||
|
@ -119,10 +120,10 @@ void WinEDA_LibeditFrame::LoadOneSymbol( void )
|
|||
}
|
||||
|
||||
// Remove duplicated drawings:
|
||||
CurrentLibEntry->RemoveDuplicateDrawItems();
|
||||
m_currentComponent->RemoveDuplicateDrawItems();
|
||||
|
||||
// Clear flags
|
||||
DrawEntry = CurrentLibEntry->m_Drawings;
|
||||
DrawEntry = m_currentComponent->m_Drawings;
|
||||
while( DrawEntry )
|
||||
{
|
||||
DrawEntry->m_Flags = 0;
|
||||
|
@ -151,14 +152,14 @@ void WinEDA_LibeditFrame::SaveOneSymbol()
|
|||
wxString msg;
|
||||
FILE* ExportFile;
|
||||
|
||||
if( CurrentLibEntry->m_Drawings == NULL )
|
||||
if( m_currentComponent->m_Drawings == NULL )
|
||||
return;
|
||||
|
||||
/* Creation du fichier symbole */
|
||||
wxString default_path = wxGetApp().ReturnLastVisitedLibraryPath();
|
||||
|
||||
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 );
|
||||
|
||||
if( dlg.ShowModal() == wxID_CANCEL )
|
||||
|
@ -194,28 +195,28 @@ void WinEDA_LibeditFrame::SaveOneSymbol()
|
|||
|
||||
/* Creation du commentaire donnant le nom du composant */
|
||||
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 */
|
||||
fprintf( ExportFile, "DEF %s",
|
||||
CONV_TO_UTF8( CurrentLibEntry->m_Name.m_Text ) );
|
||||
if( !CurrentLibEntry->m_Prefix.m_Text.IsEmpty() )
|
||||
CONV_TO_UTF8( m_currentComponent->m_Name.m_Text ) );
|
||||
if( !m_currentComponent->m_Prefix.m_Text.IsEmpty() )
|
||||
fprintf( ExportFile, " %s",
|
||||
CONV_TO_UTF8( CurrentLibEntry->m_Prefix.m_Text ) );
|
||||
CONV_TO_UTF8( m_currentComponent->m_Prefix.m_Text ) );
|
||||
else
|
||||
fprintf( ExportFile, " ~" );
|
||||
|
||||
fprintf( ExportFile, " %d %d %c %c %d %d %c\n",
|
||||
0, /* unused */
|
||||
CurrentLibEntry->m_TextInside,
|
||||
CurrentLibEntry->m_DrawPinNum ? 'Y' : 'N',
|
||||
CurrentLibEntry->m_DrawPinName ? 'Y' : 'N',
|
||||
m_currentComponent->m_TextInside,
|
||||
m_currentComponent->m_DrawPinNum ? 'Y' : 'N',
|
||||
m_currentComponent->m_DrawPinName ? 'Y' : 'N',
|
||||
1, 0 /* unused */, 'N' );
|
||||
|
||||
/* Position / orientation / visibilite des champs */
|
||||
CurrentLibEntry->m_Prefix.Save( ExportFile );
|
||||
CurrentLibEntry->m_Name.Save( ExportFile );
|
||||
DrawEntry = CurrentLibEntry->m_Drawings;
|
||||
m_currentComponent->m_Prefix.Save( ExportFile );
|
||||
m_currentComponent->m_Name.Save( ExportFile );
|
||||
DrawEntry = m_currentComponent->m_Drawings;
|
||||
|
||||
if( DrawEntry )
|
||||
{
|
||||
|
@ -250,14 +251,14 @@ void WinEDA_LibeditFrame::SaveOneSymbol()
|
|||
/***************************************************************************/
|
||||
void WinEDA_LibeditFrame::PlaceAncre()
|
||||
{
|
||||
if( CurrentLibEntry == NULL )
|
||||
if( m_currentComponent == NULL )
|
||||
return;
|
||||
|
||||
wxPoint offset( -GetScreen()->m_Curseur.x, GetScreen()->m_Curseur.y );
|
||||
|
||||
GetScreen()->SetModify();
|
||||
|
||||
CurrentLibEntry->SetOffset( offset );
|
||||
m_currentComponent->SetOffset( offset );
|
||||
|
||||
/* Redraw the symbol */
|
||||
GetScreen()->m_Curseur.x = GetScreen()->m_Curseur.y = 0;
|
||||
|
|
|
@ -3,14 +3,16 @@
|
|||
/********************************************/
|
||||
|
||||
#include "fctsys.h"
|
||||
|
||||
#include "common.h"
|
||||
#include "hotkeys.h"
|
||||
#include "bitmaps.h"
|
||||
#include "eeschema_id.h"
|
||||
|
||||
#include "program.h"
|
||||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
|
||||
#include "protos.h"
|
||||
#include "hotkeys.h"
|
||||
#include "libeditfrm.h"
|
||||
|
||||
#ifdef __UNIX__
|
||||
#define LISTBOX_WIDTH 140
|
||||
|
@ -18,9 +20,6 @@
|
|||
#define LISTBOX_WIDTH 120
|
||||
#endif
|
||||
|
||||
#include "bitmaps.h"
|
||||
|
||||
#include "id.h"
|
||||
|
||||
extern int ExportPartId;
|
||||
extern int ImportPartId;
|
||||
|
@ -42,7 +41,7 @@ void WinEDA_LibeditFrame::ReCreateVToolbar()
|
|||
m_VToolBar->AddSeparator();
|
||||
m_VToolBar->AddTool( ID_LIBEDIT_PIN_BUTT, wxEmptyString,
|
||||
wxBitmap( pin_xpm ),
|
||||
_( "Add Pins" ), wxITEM_CHECK );
|
||||
_( "Add pin" ), wxITEM_CHECK );
|
||||
|
||||
m_VToolBar->AddTool( ID_LIBEDIT_BODY_TEXT_BUTT, wxEmptyString,
|
||||
wxBitmap( add_text_xpm ),
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#include "hotkeys.h"
|
||||
|
||||
#include "bitmaps.h"
|
||||
#include "id.h"
|
||||
#include "eeschema_id.h"
|
||||
|
||||
|
||||
/**************************************************************/
|
||||
|
|
|
@ -5,13 +5,14 @@
|
|||
#include "fctsys.h"
|
||||
#include "common.h"
|
||||
#include "bitmaps.h"
|
||||
#include "id.h"
|
||||
#include "eeschema_id.h"
|
||||
|
||||
#include "program.h"
|
||||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
#include "protos.h"
|
||||
#include "class_library.h"
|
||||
#include "libviewfrm.h"
|
||||
|
||||
|
||||
void WinEDA_ViewlibFrame::ReCreateHToolbar()
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
#include "fctsys.h"
|
||||
#include "appl_wxstruct.h"
|
||||
#include "common.h"
|
||||
#include "id.h"
|
||||
#include "eeschema_id.h"
|
||||
#include "class_drawpanel.h"
|
||||
#include "bitmaps.h"
|
||||
|
||||
|
@ -13,6 +13,7 @@
|
|||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
#include "protos.h"
|
||||
#include "libviewfrm.h"
|
||||
|
||||
|
||||
/*****************************/
|
||||
|
@ -30,8 +31,9 @@ BEGIN_EVENT_TABLE( WinEDA_ViewlibFrame, WinEDA_DrawFrame )
|
|||
|
||||
|
||||
/* 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 )
|
||||
|
||||
EVT_TOOL_RANGE( ID_ZOOM_IN, ID_ZOOM_PAGE, WinEDA_ViewlibFrame::OnZoom )
|
||||
EVT_TOOL( ID_LIBVIEW_CMP_EXPORT_TO_SCHEMATIC,
|
||||
WinEDA_ViewlibFrame::ExportToSchematicLibraryPart )
|
||||
|
|
|
@ -9,12 +9,13 @@
|
|||
#include "class_drawpanel.h"
|
||||
#include "confirm.h"
|
||||
#include "eda_doc.h"
|
||||
#include "id.h"
|
||||
|
||||
#include "program.h"
|
||||
#include "libcmp.h"
|
||||
#include "general.h"
|
||||
#include "protos.h"
|
||||
#include "libviewfrm.h"
|
||||
#include "eeschema_id.h"
|
||||
|
||||
|
||||
#define NEXT_PART 1
|
||||
|
|
|
@ -10,17 +10,12 @@
|
|||
|
||||
#include "fctsys.h"
|
||||
#include "common.h"
|
||||
#include "id.h"
|
||||
#include "class_drawpanel.h"
|
||||
|
||||
#include "pcbnew.h"
|
||||
#include "gerbview.h"
|
||||
#include "protos.h"
|
||||
|
||||
/* Routines Locales : */
|
||||
|
||||
/* Variables Locales */
|
||||
|
||||
|
||||
/**********************************************************************/
|
||||
BOARD_ITEM* WinEDA_GerberFrame::GerberGeneralLocateAndDisplay()
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
/******************************************************/
|
||||
|
||||
#include "fctsys.h"
|
||||
#include "id.h"
|
||||
#include "class_drawpanel.h"
|
||||
#include "confirm.h"
|
||||
#include "gestfich.h"
|
||||
|
@ -13,6 +12,8 @@
|
|||
#include "pcbplot.h"
|
||||
#include "protos.h"
|
||||
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
void WinEDA_GerberFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos )
|
||||
/************************************************************************/
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
#include "gerbview.h"
|
||||
#include "pcbplot.h"
|
||||
#include "protos.h"
|
||||
#include "id.h"
|
||||
|
||||
|
||||
/* Routines locales */
|
||||
|
@ -50,7 +49,6 @@ void WinEDA_GerberFrame::Files_io( wxCommandEvent& event )
|
|||
|
||||
switch( id )
|
||||
{
|
||||
case ID_MENU_LOAD_FILE:
|
||||
case ID_LOAD_FILE:
|
||||
if( Clear_Pcb( TRUE ) )
|
||||
{
|
||||
|
@ -72,12 +70,10 @@ void WinEDA_GerberFrame::Files_io( wxCommandEvent& event )
|
|||
}
|
||||
break;
|
||||
|
||||
case ID_MENU_APPEND_FILE:
|
||||
case ID_APPEND_FILE:
|
||||
LoadOneGerberFile( wxEmptyString, &dc, 0 );
|
||||
break;
|
||||
|
||||
case ID_MENU_NEW_BOARD:
|
||||
case ID_NEW_BOARD:
|
||||
Clear_Pcb( TRUE );
|
||||
Zoom_Automatique( FALSE );
|
||||
|
@ -93,11 +89,10 @@ void WinEDA_GerberFrame::Files_io( wxCommandEvent& event )
|
|||
break;
|
||||
|
||||
case ID_SAVE_BOARD:
|
||||
case ID_MENU_SAVE_BOARD:
|
||||
SaveGerberFile( GetScreen()->m_FileName, &dc );
|
||||
break;
|
||||
|
||||
case ID_MENU_SAVE_BOARD_AS:
|
||||
case ID_SAVE_BOARD_AS:
|
||||
SaveGerberFile( wxEmptyString, &dc );
|
||||
break;
|
||||
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
#include "pcbplot.h"
|
||||
#include "bitmaps.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 )
|
||||
|
||||
// Menu Files:
|
||||
EVT_MENU( ID_MENU_LOAD_FILE, WinEDA_GerberFrame::Files_io )
|
||||
EVT_MENU( ID_MENU_APPEND_FILE, WinEDA_GerberFrame::Files_io )
|
||||
EVT_MENU( ID_LOAD_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_NEW_BOARD, WinEDA_GerberFrame::Files_io )
|
||||
EVT_MENU( ID_MENU_SAVE_BOARD, WinEDA_GerberFrame::Files_io )
|
||||
EVT_MENU( ID_MENU_SAVE_BOARD_AS, WinEDA_GerberFrame::Files_io )
|
||||
EVT_MENU( ID_NEW_BOARD, WinEDA_GerberFrame::Files_io )
|
||||
EVT_MENU( ID_SAVE_BOARD, 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_GERBVIEW_EXPORT_TO_PCBNEW,
|
||||
WinEDA_GerberFrame::ExportDataInPcbnewFormat )
|
||||
|
|
|
@ -13,8 +13,8 @@
|
|||
#include "pcbcommon.h"
|
||||
#include "gerbview.h"
|
||||
#include "pcbplot.h"
|
||||
#include "id.h"
|
||||
#include "hotkeys.h"
|
||||
|
||||
#include "gerbview_config.h"
|
||||
#include "protos.h"
|
||||
|
||||
|
|
|
@ -4,10 +4,9 @@
|
|||
|
||||
#include "fctsys.h"
|
||||
#include "common.h"
|
||||
#include "gerbview.h"
|
||||
#include "id.h"
|
||||
#include "hotkeys.h"
|
||||
|
||||
#include "gerbview.h"
|
||||
#include "protos.h"
|
||||
|
||||
/* How to add a new hotkey:
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
#include "fctsys.h"
|
||||
#include "common.h"
|
||||
#include "class_drawpanel.h"
|
||||
#include "id.h"
|
||||
#include "confirm.h"
|
||||
|
||||
#include "gerbview.h"
|
||||
|
|
|
@ -14,12 +14,10 @@
|
|||
#include "class_drawpanel.h"
|
||||
#include "confirm.h"
|
||||
|
||||
#include "gerbview.h"
|
||||
#include "pcbplot.h"
|
||||
|
||||
#include "id.h"
|
||||
|
||||
#include "gerbview.h"
|
||||
#include "protos.h"
|
||||
|
||||
#include <wx/spinctrl.h>
|
||||
|
||||
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
|
||||
#include "fctsys.h"
|
||||
#include "common.h"
|
||||
#include "id.h"
|
||||
|
||||
#include "gerbview.h"
|
||||
#include "pcbplot.h"
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
#include "pcbplot.h"
|
||||
#include "protos.h"
|
||||
#include "bitmaps.h"
|
||||
#include "id.h"
|
||||
#include "hotkeys.h"
|
||||
|
||||
/***********************************************/
|
||||
|
@ -30,11 +29,11 @@ void WinEDA_GerberFrame::ReCreateMenuBar( void )
|
|||
menuBar = new wxMenuBar();
|
||||
|
||||
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" ),
|
||||
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" ),
|
||||
FALSE );
|
||||
|
||||
|
@ -50,7 +49,7 @@ void WinEDA_GerberFrame::ReCreateMenuBar( void )
|
|||
_( "Load excellon drill file" ), FALSE );
|
||||
#endif
|
||||
|
||||
filesMenu->Append( ID_MENU_NEW_BOARD, _( "&New" ),
|
||||
filesMenu->Append( ID_NEW_BOARD, _( "&New" ),
|
||||
_( "Clear all layers" ), FALSE );
|
||||
|
||||
filesMenu->AppendSeparator();
|
||||
|
@ -59,10 +58,10 @@ void WinEDA_GerberFrame::ReCreateMenuBar( void )
|
|||
|
||||
#if 0
|
||||
filesMenu->AppendSeparator();
|
||||
filesMenu->Append( ID_MENU_SAVE_BOARD, _( "&Save Layers" ),
|
||||
filesMenu->Append( ID_SAVE_BOARD, _( "&Save Layers" ),
|
||||
_( "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 );
|
||||
#endif
|
||||
|
||||
|
@ -308,7 +307,7 @@ create or update the right vertical toolbar
|
|||
_( "Add layer alignment target" ) );
|
||||
|
||||
m_VToolBar->AddSeparator();
|
||||
m_VToolBar->AddTool( ID_TEXT_COMMENT_BUTT, wxEmptyString,
|
||||
m_VToolBar->AddTool( ID_PCB_ADD_TEXT_BUTT, wxEmptyString,
|
||||
wxBitmap( tool_text_xpm ),
|
||||
_( "Add Text" ) );
|
||||
|
||||
|
|
|
@ -5,6 +5,31 @@
|
|||
#ifndef 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
|
||||
******************************************************************/
|
||||
|
@ -61,34 +86,39 @@ public:
|
|||
*
|
||||
* @param DC A device context to draw on.
|
||||
*/
|
||||
void Block_Delete( wxDC* DC );
|
||||
void Block_Rotate( wxDC* DC );
|
||||
void Block_Invert( wxDC* DC );
|
||||
void Block_Delete( wxDC* DC );
|
||||
void Block_Rotate( wxDC* DC );
|
||||
void Block_Invert( wxDC* DC );
|
||||
|
||||
/**
|
||||
* Function Block_Move
|
||||
* 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
|
||||
*
|
||||
* @param DC A device context to draw on.
|
||||
*/
|
||||
void Block_Move( wxDC* DC );
|
||||
void Block_Move( wxDC* DC );
|
||||
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
void Block_Mirror_X( wxDC* DC );
|
||||
void Block_Mirror_X( wxDC* DC );
|
||||
/**
|
||||
* Function Block_Duplicate
|
||||
* 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
|
||||
*
|
||||
* @param DC A device context to draw on.
|
||||
*/
|
||||
void Block_Duplicate( wxDC* DC );
|
||||
void Block_Duplicate( wxDC* DC );
|
||||
|
||||
void InstallDrillFrame( wxCommandEvent& event );
|
||||
void ToPostProcess( wxCommandEvent& event );
|
||||
|
@ -96,16 +126,20 @@ public:
|
|||
void Genere_GERBER( const wxString& FullFileName, int Layers );
|
||||
void Genere_PS( const wxString& FullFileName, int Layers );
|
||||
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,
|
||||
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 );
|
||||
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 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 );
|
||||
bool Read_GERBER_File( wxDC* DC,
|
||||
const wxString& GERBER_FullFileName,
|
||||
|
@ -117,22 +151,25 @@ public:
|
|||
|
||||
/**
|
||||
* 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>
|
||||
* Format is like CSV but with optional ';' delineated comments:<br>
|
||||
* tool, Horiz, Vert, drill, vitesse, acc. ,Type ; [DCODE (commentaire)]<br>
|
||||
* ex: 1, 12, 12, 0, 0, 0, 3 ; D10
|
||||
* tool, Horiz, Vert, drill, vitesse, acc. ,Type ; [DCODE (commentaire)]<br>
|
||||
* ex: 1, 12, 12, 0, 0, 0, 3 ; D10
|
||||
* <p>
|
||||
* Format:<br>
|
||||
* Ver, Hor, Type, Tool [,Drill]<br>
|
||||
* example: 0.012, 0.012, L , D10<br>
|
||||
* example: 0.012, 0.012, L , D10<br>
|
||||
*
|
||||
* Categorize all found dcodes into a table of D_CODE instantiations.
|
||||
* @param D_CodeFullFileName The name of the file to read from.
|
||||
* @return int - <br>
|
||||
* -1 = file not found<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>
|
||||
*/
|
||||
int Read_D_Code_File( const wxString& D_Code_FullFileName );
|
||||
|
@ -170,20 +207,23 @@ public:
|
|||
* currently: do nothing in gerbview.
|
||||
* but but be defined because it is a pure virtual in WinEDA_BasePcbFrame
|
||||
*/
|
||||
virtual void SaveCopyInUndoList( BOARD_ITEM* aItemToCopy,
|
||||
UndoRedoOpType aTypeCommand = UR_UNSPECIFIED,
|
||||
const wxPoint& aTransformPoint = wxPoint(0,0) )
|
||||
{
|
||||
}
|
||||
virtual void SaveCopyInUndoList(
|
||||
BOARD_ITEM* aItemToCopy,
|
||||
UndoRedoOpType aTypeCommand = UR_UNSPECIFIED,
|
||||
const wxPoint& aTransformPoint = wxPoint(0,0) ) { }
|
||||
|
||||
/** Function SaveCopyInUndoList (overloaded).
|
||||
* Creates a new entry in undo list of commands.
|
||||
* add a list of pickers to handle a list of items
|
||||
* @param aItemsList = the list of items modified by the command to undo
|
||||
* @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,
|
||||
const wxPoint& aTransformPoint = wxPoint(0,0) )
|
||||
virtual void SaveCopyInUndoList(
|
||||
PICKED_ITEMS_LIST& aItemsList,
|
||||
UndoRedoOpType aTypeCommand,
|
||||
const wxPoint& aTransformPoint = wxPoint(0,0) )
|
||||
{
|
||||
// currently: do nothing in gerbview.
|
||||
}
|
||||
|
|
1016
include/id.h
1016
include/id.h
File diff suppressed because it is too large
Load Diff
|
@ -31,6 +31,7 @@ extern wxString NetCmpExtBuffer;
|
|||
extern const wxString ModuleFileExtension;
|
||||
|
||||
extern const wxString ModuleFileWildcard;
|
||||
extern const wxString PcbFileWildcard;
|
||||
|
||||
extern wxString g_ViaType_Name[4];
|
||||
|
||||
|
|
|
@ -36,25 +36,23 @@ class SCH_CMP_FIELD;
|
|||
class LibDrawPin;
|
||||
class DrawJunctionStruct;
|
||||
|
||||
|
||||
/*******************************/
|
||||
/* class WinEDA_SchematicFrame */
|
||||
/*******************************/
|
||||
|
||||
/* enum used in RotationMiroir() */
|
||||
enum fl_rot_cmp {
|
||||
CMP_NORMAL, // orientation normale (O, pas de miroir)
|
||||
CMP_ROTATE_CLOCKWISE, // nouvelle rotation de -90
|
||||
CMP_ROTATE_COUNTERCLOCKWISE, // nouvelle rotation de +90
|
||||
CMP_ORIENT_0, // orientation 0, pas de miroir, id CMP_NORMAL
|
||||
CMP_ORIENT_90, // orientation 90, pas de miroir
|
||||
CMP_ORIENT_180, // orientation 180, pas de miroir
|
||||
CMP_ORIENT_270, // orientation -90, pas de miroir
|
||||
CMP_MIROIR_X = 0x100, // miroir selon axe X
|
||||
CMP_MIROIR_Y = 0x200 // miroir selon axe Y
|
||||
enum fl_rot_cmp
|
||||
{
|
||||
CMP_NORMAL, // orientation normale (O, pas de miroir)
|
||||
CMP_ROTATE_CLOCKWISE, // nouvelle rotation de -90
|
||||
CMP_ROTATE_COUNTERCLOCKWISE, // nouvelle rotation de +90
|
||||
CMP_ORIENT_0, // orientation 0, pas de miroir, id CMP_NORMAL
|
||||
CMP_ORIENT_90, // orientation 90, pas de miroir
|
||||
CMP_ORIENT_180, // orientation 180, pas de miroir
|
||||
CMP_ORIENT_270, // orientation -90, pas de miroir
|
||||
CMP_MIROIR_X = 0x100, // miroir selon axe X
|
||||
CMP_MIROIR_Y = 0x200 // miroir selon axe Y
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Schemitic editor (EESchema) main window.
|
||||
*/
|
||||
class WinEDA_SchematicFrame : public WinEDA_DrawFrame
|
||||
{
|
||||
public:
|
||||
|
@ -112,9 +110,9 @@ public:
|
|||
int hotkey,
|
||||
EDA_BaseStruct* DrawStruct );
|
||||
|
||||
SCH_CMP_FIELD* GetCurrentField() { return m_CurrentField; }
|
||||
SCH_CMP_FIELD* GetCurrentField() { return m_CurrentField; }
|
||||
|
||||
void SetCurrentField( SCH_CMP_FIELD* aCurrentField )
|
||||
void SetCurrentField( SCH_CMP_FIELD* aCurrentField )
|
||||
{
|
||||
m_CurrentField = aCurrentField;
|
||||
}
|
||||
|
@ -137,22 +135,23 @@ public:
|
|||
int BestZoom(); // Retourne le meilleur zoom
|
||||
|
||||
SCH_ITEM* SchematicGeneralLocateAndDisplay( bool IncludePin = TRUE );
|
||||
SCH_ITEM* SchematicGeneralLocateAndDisplay(
|
||||
const wxPoint& refpoint,
|
||||
bool
|
||||
IncludePin );
|
||||
SCH_ITEM* SchematicGeneralLocateAndDisplay( const wxPoint& refpoint,
|
||||
bool IncludePin );
|
||||
|
||||
/**
|
||||
* 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 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
|
||||
* Note:
|
||||
* the component is searched in the whole schematic, and because some components
|
||||
* have more than one instance (multiple parts per package components)
|
||||
* the search is not stopped when a reference is found (all instances must be found).
|
||||
* the component is searched in the whole schematic, and because some
|
||||
* components have more than one instance (multiple parts per package
|
||||
* components) the search is not stopped when a reference is found
|
||||
* (all instances must be found).
|
||||
*/
|
||||
bool FillFootprintFieldForAllInstancesofComponent( const wxString& aReference,
|
||||
const wxString& aFootPrint,
|
||||
|
@ -165,69 +164,74 @@ public:
|
|||
bool mouseWarp );
|
||||
|
||||
/* Cross probing with pcbnew */
|
||||
void SendMessageToPCBNEW( EDA_BaseStruct* objectToSync,
|
||||
SCH_COMPONENT* LibItem );
|
||||
void SendMessageToPCBNEW( EDA_BaseStruct* objectToSync,
|
||||
SCH_COMPONENT* LibItem );
|
||||
|
||||
/* netlist generation */
|
||||
void BuildNetListBase();
|
||||
void BuildNetListBase();
|
||||
|
||||
/**
|
||||
* Function DeleteAnnotation
|
||||
* 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
|
||||
*/
|
||||
void DeleteAnnotation( bool aCurrentSheetOnly, bool aRedraw );
|
||||
void DeleteAnnotation( bool aCurrentSheetOnly, bool aRedraw );
|
||||
|
||||
// Functions used for hierarchy handling
|
||||
void InstallPreviousSheet();
|
||||
void InstallNextScreen( DrawSheetStruct* Sheet );
|
||||
void InstallPreviousSheet();
|
||||
void InstallNextScreen( DrawSheetStruct* Sheet );
|
||||
|
||||
/** Function GetUniqueFilenameForCurrentSheet
|
||||
* @return a filename that can be used in plot and print functions
|
||||
* for the current screen anad sheet path.
|
||||
* 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.
|
||||
* because in complex hierarchies a sheet and a SCH_SCREEN is used more than once
|
||||
* (or scheen filename) when one must creates file for each sheet in the
|
||||
* heierarchy. because in complex hierarchies a sheet and a SCH_SCREEN is
|
||||
* used more than once
|
||||
* Name is <root sheet filename>-<sheet path>
|
||||
* and has no extension.
|
||||
* However if filename is too long name is <sheet filename>-<sheet number>
|
||||
*/
|
||||
wxString GetUniqueFilenameForCurrentSheet();
|
||||
wxString GetUniqueFilenameForCurrentSheet();
|
||||
|
||||
/**
|
||||
* Function SetSheetNumberAndCount
|
||||
* 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();
|
||||
|
||||
// Plot functions:
|
||||
void ToPlot_PS( wxCommandEvent& event );
|
||||
void ToPlot_HPGL( wxCommandEvent& event );
|
||||
void ToPlot_DXF( wxCommandEvent& event );
|
||||
void ToPostProcess( wxCommandEvent& event );
|
||||
void ToPlot_PS( wxCommandEvent& event );
|
||||
void ToPlot_HPGL( wxCommandEvent& event );
|
||||
void ToPlot_DXF( wxCommandEvent& event );
|
||||
void ToPostProcess( wxCommandEvent& event );
|
||||
|
||||
// read and save files
|
||||
void Save_File( wxCommandEvent& event );
|
||||
void SaveProject();
|
||||
int LoadOneEEProject( const wxString& FileName, bool IsNew );
|
||||
bool LoadOneEEFile( SCH_SCREEN* screen, const wxString& FullFileName );
|
||||
bool ReadInputStuffFile();
|
||||
|
||||
void Save_File( wxCommandEvent& event );
|
||||
void SaveProject();
|
||||
int LoadOneEEProject( const wxString& FileName, bool IsNew );
|
||||
bool LoadOneEEFile( SCH_SCREEN* screen,
|
||||
const wxString& FullFileName );
|
||||
bool ReadInputStuffFile();
|
||||
|
||||
/**
|
||||
* Function ProcessStuffFile
|
||||
* gets footprint info from each line in the Stuff File by Ref Desg
|
||||
* @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.
|
||||
*/
|
||||
bool ProcessStuffFile( FILE* aFilename,
|
||||
bool aSetFielsAttributeToVisible );
|
||||
bool ProcessStuffFile( FILE* aFilename,
|
||||
bool aSetFielsAttributeToVisible );
|
||||
|
||||
bool SaveEEFile( SCH_SCREEN* screen, int FileSave );
|
||||
SCH_SCREEN* CreateNewScreen( SCH_SCREEN* OldScreen, int TimeStamp );
|
||||
bool SaveEEFile( SCH_SCREEN* screen, int FileSave );
|
||||
SCH_SCREEN* CreateNewScreen( SCH_SCREEN* OldScreen, int TimeStamp );
|
||||
|
||||
// General search:
|
||||
|
||||
|
@ -241,132 +245,135 @@ public:
|
|||
* 2 => or for the next item
|
||||
* @param mouseWarp If true, then move the mouse cursor to the item.
|
||||
*/
|
||||
SCH_ITEM* FindSchematicItem( const wxString& pattern,
|
||||
int SearchType,
|
||||
bool mouseWarp = true );
|
||||
SCH_ITEM* FindSchematicItem( const wxString& pattern,
|
||||
int SearchType,
|
||||
bool mouseWarp = true );
|
||||
|
||||
SCH_ITEM* FindMarker( int SearchType );
|
||||
SCH_ITEM* FindMarker( int SearchType );
|
||||
|
||||
private:
|
||||
void Process_Move_Item( SCH_ITEM* DrawStruct, wxDC* DC );
|
||||
void OnExit( wxCommandEvent& event );
|
||||
void OnAnnotate( wxCommandEvent& event );
|
||||
void OnErc( wxCommandEvent& event );
|
||||
void OnCreateNetlist( wxCommandEvent& event );
|
||||
void OnCreateBillOfMaterials( wxCommandEvent& event );
|
||||
void OnFindItems( wxCommandEvent& event );
|
||||
void OnLoadFile( wxCommandEvent& event );
|
||||
void OnLoadStuffFile( wxCommandEvent& event );
|
||||
void OnNewProject( wxCommandEvent& event );
|
||||
void OnLoadProject( wxCommandEvent& event );
|
||||
void OnOpenPcbnew( wxCommandEvent& event );
|
||||
void OnOpenCvpcb( wxCommandEvent& event );
|
||||
void OnOpenLibraryViewer( wxCommandEvent& event );
|
||||
void OnOpenLibraryEditor( wxCommandEvent& event );
|
||||
void Process_Move_Item( SCH_ITEM* DrawStruct, wxDC* DC );
|
||||
void OnExit( wxCommandEvent& event );
|
||||
void OnAnnotate( wxCommandEvent& event );
|
||||
void OnErc( wxCommandEvent& event );
|
||||
void OnCreateNetlist( wxCommandEvent& event );
|
||||
void OnCreateBillOfMaterials( wxCommandEvent& event );
|
||||
void OnFindItems( wxCommandEvent& event );
|
||||
void OnLoadFile( wxCommandEvent& event );
|
||||
void OnLoadStuffFile( wxCommandEvent& event );
|
||||
void OnNewProject( wxCommandEvent& event );
|
||||
void OnLoadProject( wxCommandEvent& event );
|
||||
void OnOpenPcbnew( wxCommandEvent& event );
|
||||
void OnOpenCvpcb( wxCommandEvent& event );
|
||||
void OnOpenLibraryViewer( wxCommandEvent& event );
|
||||
void OnOpenLibraryEditor( wxCommandEvent& event );
|
||||
|
||||
/* User interface update event handlers. */
|
||||
void OnUpdateBlockSelected( wxUpdateUIEvent& event );
|
||||
void OnUpdatePaste( wxUpdateUIEvent& event );
|
||||
void OnUpdateSchematicUndo( wxUpdateUIEvent& event );
|
||||
void OnUpdateSchematicRedo( wxUpdateUIEvent& event );
|
||||
void OnUpdateGrid( wxUpdateUIEvent& event );
|
||||
void OnUpdateUnits( wxUpdateUIEvent& event );
|
||||
void OnUpdateSelectCursor( wxUpdateUIEvent& event );
|
||||
void OnUpdateHiddenPins( wxUpdateUIEvent& event );
|
||||
void OnUpdateBusOrientation( wxUpdateUIEvent& event );
|
||||
void OnUpdateBlockSelected( wxUpdateUIEvent& event );
|
||||
void OnUpdatePaste( wxUpdateUIEvent& event );
|
||||
void OnUpdateSchematicUndo( wxUpdateUIEvent& event );
|
||||
void OnUpdateSchematicRedo( wxUpdateUIEvent& event );
|
||||
void OnUpdateGrid( wxUpdateUIEvent& event );
|
||||
void OnUpdateUnits( wxUpdateUIEvent& event );
|
||||
void OnUpdateSelectCursor( wxUpdateUIEvent& event );
|
||||
void OnUpdateHiddenPins( wxUpdateUIEvent& event );
|
||||
void OnUpdateBusOrientation( wxUpdateUIEvent& event );
|
||||
|
||||
// Bus Entry
|
||||
DrawBusEntryStruct* CreateBusEntry( wxDC* DC, int entry_type );
|
||||
void SetBusEntryShape( wxDC* DC,
|
||||
DrawBusEntryStruct* BusEntry,
|
||||
int entry_type );
|
||||
int GetBusEntryShape( DrawBusEntryStruct* BusEntry );
|
||||
void StartMoveBusEntry( DrawBusEntryStruct* DrawLibItem, wxDC* DC );
|
||||
DrawBusEntryStruct* CreateBusEntry( wxDC* DC, int entry_type );
|
||||
void SetBusEntryShape( wxDC* DC,
|
||||
DrawBusEntryStruct* BusEntry,
|
||||
int entry_type );
|
||||
int GetBusEntryShape( DrawBusEntryStruct* BusEntry );
|
||||
void StartMoveBusEntry( DrawBusEntryStruct* DrawLibItem,
|
||||
wxDC* DC );
|
||||
|
||||
// NoConnect
|
||||
DrawNoConnectStruct* CreateNewNoConnectStruct( wxDC* DC );
|
||||
DrawNoConnectStruct* CreateNewNoConnectStruct( wxDC* DC );
|
||||
|
||||
// Junction
|
||||
DrawJunctionStruct* CreateNewJunctionStruct( wxDC* DC,
|
||||
const wxPoint& pos,
|
||||
bool PutInUndoList = FALSE );
|
||||
DrawJunctionStruct* CreateNewJunctionStruct( wxDC* DC,
|
||||
const wxPoint& pos,
|
||||
bool PutInUndoList = FALSE );
|
||||
|
||||
// Text ,label, glabel
|
||||
SCH_TEXT* CreateNewText( wxDC* DC, int type );
|
||||
void EditSchematicText( SCH_TEXT* TextStruct, wxDC* DC );
|
||||
void ChangeTextOrient( SCH_TEXT* TextStruct, wxDC* DC );
|
||||
void StartMoveTexte( SCH_TEXT* TextStruct, wxDC* DC );
|
||||
void ConvertTextType( SCH_TEXT* Text, wxDC* DC, int newtype );
|
||||
SCH_TEXT* CreateNewText( wxDC* DC, int type );
|
||||
void EditSchematicText( SCH_TEXT* TextStruct, wxDC* DC );
|
||||
void ChangeTextOrient( SCH_TEXT* TextStruct, wxDC* DC );
|
||||
void StartMoveTexte( SCH_TEXT* TextStruct, wxDC* DC );
|
||||
void ConvertTextType( SCH_TEXT* Text, wxDC* DC, int newtype );
|
||||
|
||||
// Wire, Bus
|
||||
void BeginSegment( wxDC* DC, int type );
|
||||
void EndSegment( wxDC* DC );
|
||||
void DeleteCurrentSegment( wxDC* DC );
|
||||
void DeleteConnection( bool DeleteFullConnection );
|
||||
void BeginSegment( wxDC* DC, int type );
|
||||
void EndSegment( wxDC* DC );
|
||||
void DeleteCurrentSegment( wxDC* DC );
|
||||
void DeleteConnection( bool DeleteFullConnection );
|
||||
|
||||
// graphic lines
|
||||
void Delete_Segment_Edge( DRAWSEGMENT* Segment, wxDC* DC );
|
||||
void Drawing_SetNewWidth( DRAWSEGMENT* DrawSegm, wxDC* DC );
|
||||
void Delete_Drawings_All_Layer( DRAWSEGMENT* Segment, wxDC* DC );
|
||||
DRAWSEGMENT* Begin_Edge( DRAWSEGMENT* Segment, wxDC* DC );
|
||||
void Delete_Segment_Edge( DRAWSEGMENT* Segment, wxDC* DC );
|
||||
void Drawing_SetNewWidth( DRAWSEGMENT* DrawSegm, wxDC* DC );
|
||||
void Delete_Drawings_All_Layer( DRAWSEGMENT* Segment, wxDC* DC );
|
||||
DRAWSEGMENT* Begin_Edge( DRAWSEGMENT* Segment, wxDC* DC );
|
||||
|
||||
// Hierarchical Sheet & PinSheet
|
||||
void InstallHierarchyFrame( wxDC* DC, wxPoint& pos );
|
||||
DrawSheetStruct* CreateSheet( wxDC* DC );
|
||||
void ReSizeSheet( DrawSheetStruct* Sheet, wxDC* DC );
|
||||
void InstallHierarchyFrame( wxDC* DC, wxPoint& pos );
|
||||
DrawSheetStruct* CreateSheet( wxDC* DC );
|
||||
void ReSizeSheet( DrawSheetStruct* Sheet, wxDC* DC );
|
||||
|
||||
public:
|
||||
bool EditSheet( DrawSheetStruct* Sheet, wxDC* DC );
|
||||
bool EditSheet( DrawSheetStruct* Sheet, wxDC* DC );
|
||||
|
||||
/** Function UpdateSheetNumberAndDate
|
||||
* Set a sheet number, the sheet count for sheets in the whole schematic
|
||||
* and update the date in all screens
|
||||
*/
|
||||
void UpdateSheetNumberAndDate();
|
||||
void UpdateSheetNumberAndDate();
|
||||
|
||||
private:
|
||||
void StartMoveSheet( DrawSheetStruct* sheet, wxDC* DC );
|
||||
void StartMoveSheet( DrawSheetStruct* sheet, wxDC* DC );
|
||||
Hierarchical_PIN_Sheet_Struct* Create_PinSheet( DrawSheetStruct* Sheet, wxDC* DC );
|
||||
void Edit_PinSheet( Hierarchical_PIN_Sheet_Struct* SheetLabel,
|
||||
wxDC* DC );
|
||||
void StartMove_PinSheet( Hierarchical_PIN_Sheet_Struct* SheetLabel,
|
||||
wxDC* DC );
|
||||
void Place_PinSheet( Hierarchical_PIN_Sheet_Struct* SheetLabel,
|
||||
wxDC* DC );
|
||||
Hierarchical_PIN_Sheet_Struct* Import_PinSheet( DrawSheetStruct* Sheet, wxDC* DC );
|
||||
void Edit_PinSheet( Hierarchical_PIN_Sheet_Struct* SheetLabel,
|
||||
wxDC* DC );
|
||||
void StartMove_PinSheet( Hierarchical_PIN_Sheet_Struct* SheetLabel,
|
||||
wxDC* DC );
|
||||
void Place_PinSheet( Hierarchical_PIN_Sheet_Struct* SheetLabel,
|
||||
wxDC* DC );
|
||||
Hierarchical_PIN_Sheet_Struct* Import_PinSheet( DrawSheetStruct* Sheet,
|
||||
wxDC* DC );
|
||||
|
||||
public:
|
||||
void DeleteSheetLabel( bool aRedraw, Hierarchical_PIN_Sheet_Struct* aSheetLabelToDel );
|
||||
void DeleteSheetLabel( bool aRedraw,
|
||||
Hierarchical_PIN_Sheet_Struct* aSheetLabelToDel );
|
||||
|
||||
private:
|
||||
|
||||
// Component
|
||||
SCH_COMPONENT* Load_Component( wxDC* DC,
|
||||
const wxString& libname,
|
||||
wxArrayString& List,
|
||||
bool UseLibBrowser );
|
||||
void StartMovePart( SCH_COMPONENT* DrawLibItem, wxDC* DC );
|
||||
SCH_COMPONENT* Load_Component( wxDC* DC,
|
||||
const wxString& libname,
|
||||
wxArrayString& List,
|
||||
bool UseLibBrowser );
|
||||
void StartMovePart( SCH_COMPONENT* DrawLibItem, wxDC* DC );
|
||||
|
||||
public:
|
||||
void CmpRotationMiroir( SCH_COMPONENT* DrawComponent,
|
||||
void CmpRotationMiroir( SCH_COMPONENT* DrawComponent,
|
||||
wxDC* DC, int type_rotate );
|
||||
|
||||
private:
|
||||
void SelPartUnit( SCH_COMPONENT* DrawComponent,
|
||||
int unit, wxDC* DC );
|
||||
void ConvertPart( SCH_COMPONENT* DrawComponent, wxDC* DC );
|
||||
void SetInitCmp( SCH_COMPONENT* DrawComponent, wxDC* DC );
|
||||
void EditComponentReference( SCH_COMPONENT* DrawLibItem,
|
||||
void SelPartUnit( SCH_COMPONENT* DrawComponent,
|
||||
int unit, wxDC* DC );
|
||||
void ConvertPart( SCH_COMPONENT* DrawComponent, wxDC* DC );
|
||||
void SetInitCmp( SCH_COMPONENT* DrawComponent, wxDC* DC );
|
||||
void EditComponentReference( SCH_COMPONENT* DrawLibItem,
|
||||
wxDC* DC );
|
||||
void EditComponentValue( SCH_COMPONENT* DrawLibItem, wxDC* DC );
|
||||
void EditComponentFootprint( SCH_COMPONENT* DrawLibItem,
|
||||
wxDC* DC );
|
||||
void EditComponentValue( SCH_COMPONENT* DrawLibItem, wxDC* DC );
|
||||
void EditComponentFootprint( SCH_COMPONENT* DrawLibItem,
|
||||
wxDC* DC );
|
||||
void StartMoveCmpField( SCH_CMP_FIELD* Field, wxDC* DC );
|
||||
void EditCmpFieldText( SCH_CMP_FIELD* Field, wxDC* DC );
|
||||
void RotateCmpField( SCH_CMP_FIELD* Field, wxDC* DC );
|
||||
void StartMoveCmpField( SCH_CMP_FIELD* Field, wxDC* DC );
|
||||
void EditCmpFieldText( SCH_CMP_FIELD* Field, wxDC* DC );
|
||||
void RotateCmpField( SCH_CMP_FIELD* Field, wxDC* DC );
|
||||
|
||||
/* Operations sur bloc */
|
||||
void PasteListOfItems( wxDC* DC );
|
||||
void PasteListOfItems( wxDC* DC );
|
||||
|
||||
/* Undo - redo */
|
||||
public:
|
||||
|
@ -376,29 +383,36 @@ public:
|
|||
* add a picker to handle aItemToCopy
|
||||
* @param aItemToCopy = the schematic item modified by the command to undo
|
||||
* @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,
|
||||
const wxPoint& aTransformPoint = wxPoint(0,0) );
|
||||
void SaveCopyInUndoList( SCH_ITEM* aItemToCopy,
|
||||
UndoRedoOpType aTypeCommand,
|
||||
const wxPoint& aTransformPoint = wxPoint(0,0) );
|
||||
|
||||
/** Function SaveCopyInUndoList (overloaded).
|
||||
* Creates a new entry in undo list of commands.
|
||||
* add a list of pickers to handle a list of items
|
||||
* @param aItemsList = the list of items modified by the command to undo
|
||||
* @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,
|
||||
const wxPoint& aTransformPoint = wxPoint(0,0) );
|
||||
void SaveCopyInUndoList( PICKED_ITEMS_LIST& aItemsList,
|
||||
UndoRedoOpType aTypeCommand,
|
||||
const wxPoint& aTransformPoint = wxPoint(0,0) );
|
||||
|
||||
private:
|
||||
/** Function PutDataInPreviousState()
|
||||
* Used in undo or redo command.
|
||||
* Put data pointed by List in the previous state, i.e. the state memorised by List
|
||||
* @param aList = a PICKED_ITEMS_LIST pointer to the list of items to undo/redo
|
||||
* Put data pointed by List in the previous state, i.e. the state
|
||||
* 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
|
||||
*/
|
||||
void PutDataInPreviousState( PICKED_ITEMS_LIST* aList, bool aRedoCommand );
|
||||
void PutDataInPreviousState( PICKED_ITEMS_LIST* aList, bool aRedoCommand );
|
||||
|
||||
/** Function GetSchematicFromRedoList
|
||||
* Redo the last edition:
|
||||
* - Save the current schematic in Undo list
|
||||
|
@ -406,6 +420,7 @@ private:
|
|||
* @return none
|
||||
*/
|
||||
void GetSchematicFromRedoList(wxCommandEvent& event);
|
||||
|
||||
/** Function GetSchematicFromUndoList
|
||||
* Undo the last edition:
|
||||
* - Save the current schematic in Redo list
|
||||
|
@ -442,7 +457,8 @@ public:
|
|||
* part number > number of parts
|
||||
* different values between parts
|
||||
* @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
|
||||
* 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
|
||||
|
|
|
@ -249,7 +249,7 @@ public:
|
|||
|
||||
void OnFileHistory( 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 );
|
||||
bool SavePcbFile( const wxString& FileName );
|
||||
int SavePcbFormatAscii( FILE* File );
|
||||
|
@ -261,7 +261,7 @@ public:
|
|||
* @param aQuery = true to prompt user for confirmation, false to initialize silently
|
||||
*/
|
||||
bool Clear_Pcb( bool aQuery );
|
||||
|
||||
|
||||
// Drc control
|
||||
/* function GetDrcController
|
||||
* @return the DRC controller
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
#include "kicad.h"
|
||||
#include "macros.h"
|
||||
#include "bitmaps.h" // Common bitmaps
|
||||
#include "id.h"
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -4,17 +4,10 @@
|
|||
|
||||
#include "fctsys.h"
|
||||
#include "common.h"
|
||||
|
||||
#include "kicad.h"
|
||||
#include "bitmaps.h"
|
||||
#include "macros.h"
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// resources
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// USE_XPM_BITMAPS
|
||||
#include "bitmaps.h"
|
||||
#include "id.h"
|
||||
#include "kicad.h"
|
||||
|
||||
|
||||
/************************************************************************************/
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#include "bitmaps.h"
|
||||
#include "confirm.h"
|
||||
#include "gestfich.h"
|
||||
#include "id.h"
|
||||
|
||||
#include "kicad.h"
|
||||
#include "prjconfig.h"
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
#include <wx/dragimag.h>
|
||||
#include <wx/filename.h>
|
||||
|
||||
#include "id.h"
|
||||
#include "wxstruct.h"
|
||||
#include "appl_wxstruct.h"
|
||||
|
||||
|
@ -24,6 +25,44 @@ class WinEDA_TreePrj;
|
|||
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*/
|
||||
|
@ -140,19 +179,23 @@ enum TreeFileType {
|
|||
/**************************************************************/
|
||||
|
||||
/** 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
|
||||
{
|
||||
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()
|
||||
{ }
|
||||
|
||||
/** Function AddFastLaunch
|
||||
* add a Bitmap Button (fast launch button) to the window
|
||||
*/
|
||||
public: void AddFastLaunch( wxBitmapButton * button );
|
||||
public:
|
||||
void AddFastLaunch( wxBitmapButton * button );
|
||||
|
||||
private:
|
||||
|
||||
/** Function CreateCommandToolbar
|
||||
|
@ -187,7 +230,8 @@ private:
|
|||
|
||||
public:
|
||||
|
||||
TreePrjItemData( TreeFileType type, const wxString& data, wxTreeCtrl* parent );
|
||||
TreePrjItemData( TreeFileType type, const wxString& data,
|
||||
wxTreeCtrl* parent );
|
||||
TreePrjItemData() : m_Parent( NULL ) { }
|
||||
|
||||
TreePrjItemData( const TreePrjItemData& src ) :
|
||||
|
@ -235,7 +279,8 @@ public:
|
|||
|
||||
#ifdef KICAD_PYTHON
|
||||
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;
|
||||
|
||||
|
@ -261,10 +306,11 @@ private:
|
|||
wxCursor m_Default;
|
||||
|
||||
protected:
|
||||
wxMenu* GetContextMenu( int type );
|
||||
void NewFile( TreeFileType type );
|
||||
void NewFile( const wxString& name, TreeFileType type, wxTreeItemId& root );
|
||||
TreePrjItemData* GetSelectedData();
|
||||
wxMenu* GetContextMenu( int type );
|
||||
void NewFile( TreeFileType type );
|
||||
void NewFile( const wxString& name, TreeFileType type,
|
||||
wxTreeItemId& root );
|
||||
TreePrjItemData* GetSelectedData();
|
||||
|
||||
public:
|
||||
WinEDA_MainFrame* m_Parent;
|
||||
|
@ -273,8 +319,8 @@ public:
|
|||
wxTreeItemId m_root;
|
||||
|
||||
public:
|
||||
static wxString GetFileExt( TreeFileType type );
|
||||
static wxString GetFileWildcard( TreeFileType type );
|
||||
static wxString GetFileExt( TreeFileType type );
|
||||
static wxString GetFileWildcard( TreeFileType type );
|
||||
|
||||
WinEDA_PrjFrame( WinEDA_MainFrame* parent,
|
||||
const wxPoint& pos, const wxSize& size );
|
||||
|
@ -330,7 +376,8 @@ public:
|
|||
|
||||
boost::python::object GetTreeCtrl();
|
||||
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,
|
||||
TreeFileType type,
|
||||
boost::python::object& root );
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
#include "confirm.h"
|
||||
#include "gestfich.h"
|
||||
#include "bitmaps.h"
|
||||
#include "id.h"
|
||||
|
||||
#include "kicad.h"
|
||||
|
||||
|
@ -81,7 +80,7 @@ WinEDA_MainFrame::WinEDA_MainFrame( wxWindow* parent,
|
|||
m_BottomWin->SetSashVisible( wxSASH_LEFT, TRUE );
|
||||
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,
|
||||
wxTE_MULTILINE | wxNO_BORDER | wxTE_READONLY );
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
#include "confirm.h"
|
||||
#include "gestfich.h"
|
||||
#include "bitmaps.h"
|
||||
#include "id.h"
|
||||
|
||||
#include "kicad.h"
|
||||
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
#include "confirm.h"
|
||||
#include "gestfich.h"
|
||||
#include "prjconfig.h"
|
||||
#include "id.h"
|
||||
#include "kicad.h"
|
||||
|
||||
static const wxString GeneralGroupName( wxT( "/general" ) );
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include "common.h"
|
||||
#include "gestfich.h"
|
||||
#include "appl_wxstruct.h"
|
||||
#include "bitmaps.h"
|
||||
|
||||
#include "kicad.h"
|
||||
|
||||
|
@ -20,10 +21,6 @@
|
|||
#include "wx/regex.h"
|
||||
#include "wx/dir.h"
|
||||
|
||||
#include "bitmaps.h"
|
||||
|
||||
#include "id.h"
|
||||
|
||||
|
||||
/********************************************/
|
||||
/* Methodes pour l'arbre gestion du projet */
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include "confirm.h"
|
||||
#include "gestfich.h"
|
||||
#include "appl_wxstruct.h"
|
||||
#include "bitmaps.h"
|
||||
|
||||
#include "kicad.h"
|
||||
|
||||
|
@ -23,9 +24,6 @@
|
|||
#include "wx/regex.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
|
||||
// UnComment this to load subdirs files in the tree project
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#include "wxPcbStruct.h"
|
||||
#include "autorout.h"
|
||||
#include "cell.h"
|
||||
#include "id.h"
|
||||
#include "pcbnew_id.h"
|
||||
#include "protos.h"
|
||||
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#include "pcbnew.h"
|
||||
#include "bitmaps.h"
|
||||
#include "protos.h"
|
||||
#include "id.h"
|
||||
#include "pcbnew_id.h"
|
||||
|
||||
#include "collectors.h"
|
||||
#include "class_drawpanel.h"
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "common.h"
|
||||
#include "pcbnew.h"
|
||||
|
||||
#include "id.h"
|
||||
#include "pcbnew_id.h"
|
||||
#include "collectors.h"
|
||||
|
||||
#include "bitmaps.h"
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
#include "pcbnew.h"
|
||||
#include "trigo.h"
|
||||
#include "id.h" // ID_TRACK_BUTT
|
||||
#include "pcbnew_id.h" // ID_TRACK_BUTT
|
||||
|
||||
|
||||
/*******************************/
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
#include "gr_basic.h"
|
||||
#include "common.h"
|
||||
#include "trigo.h"
|
||||
#include "id.h" // ID_TRACK_BUTT
|
||||
#include "pcbnew_id.h" // ID_TRACK_BUTT
|
||||
#include "class_drawpanel.h"
|
||||
#include "drawtxt.h"
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
#include "pcbnew.h"
|
||||
|
||||
#include "trigo.h"
|
||||
#include "id.h"
|
||||
#include "pcbnew_id.h"
|
||||
|
||||
|
||||
/* Default pcbnew zoom values.
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#include "wxPcbStruct.h"
|
||||
#include "protos.h"
|
||||
|
||||
#include "id.h"
|
||||
#include "pcbnew_id.h"
|
||||
#include "collectors.h"
|
||||
|
||||
#include "bitmaps.h"
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
#include "pcbnew.h"
|
||||
#include "wxPcbStruct.h"
|
||||
#include "eda_dde.h"
|
||||
#include "id.h"
|
||||
#include "pcbnew_id.h"
|
||||
#include "collectors.h"
|
||||
#include "protos.h"
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
#include "pcbnew.h"
|
||||
#include "wxPcbStruct.h"
|
||||
|
||||
#include "id.h"
|
||||
#include "pcbnew_id.h"
|
||||
#include "dialog_copper_layers_setup.h"
|
||||
#include "wx/generic/gridctrl.h"
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
#include "pcbnew.h"
|
||||
#include "wxPcbStruct.h"
|
||||
|
||||
#include "id.h"
|
||||
#include "pcbnew_id.h"
|
||||
#include "dialog_design_rules.h"
|
||||
#include "wx/generic/gridctrl.h"
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
#include "pcbnew.h"
|
||||
#include "wxPcbStruct.h"
|
||||
|
||||
#include "id.h"
|
||||
#include "pcbnew_id.h"
|
||||
|
||||
#include "dialog_display_options_base.h"
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
#include "pcbnew.h"
|
||||
#include "wxPcbStruct.h"
|
||||
|
||||
#include "id.h"
|
||||
#include "pcbnew_id.h"
|
||||
|
||||
#include "dialog_general_options_BoardEditor_base.h"
|
||||
#include "dialog_general_options.h"
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#include "pcbplot.h"
|
||||
#include "autorout.h"
|
||||
|
||||
#include "id.h"
|
||||
#include "pcbnew_id.h"
|
||||
|
||||
#include "protos.h"
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue