2009-04-05 20:49:15 +00:00
|
|
|
|
2009-09-25 18:49:04 +00:00
|
|
|
#ifndef __PROTOS_H__
|
|
|
|
#define __PROTOS_H__
|
|
|
|
|
|
|
|
|
|
|
|
class EDA_BaseStruct;
|
|
|
|
class WinEDA_DrawPanel;
|
|
|
|
class WinEDA_SchematicFrame;
|
|
|
|
class LIB_COMPONENT;
|
|
|
|
class LIB_DRAW_ITEM;
|
|
|
|
class SCH_COMPONENT;
|
|
|
|
class BASE_SCREEN;
|
|
|
|
class SCH_SCREEN;
|
|
|
|
class SCH_ITEM;
|
2009-11-04 20:46:53 +00:00
|
|
|
class SCH_SHEET_PIN;
|
2009-09-25 18:49:04 +00:00
|
|
|
class PLOTTER;
|
2009-11-04 20:46:53 +00:00
|
|
|
class SCH_SHEET;
|
2009-10-08 13:19:28 +00:00
|
|
|
class LIB_PIN;
|
2009-09-25 18:49:04 +00:00
|
|
|
|
|
|
|
|
2008-10-06 05:44:29 +00:00
|
|
|
wxString ReturnDefaultFieldName( int aFieldNdx );
|
2007-06-05 12:10:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
/****************/
|
|
|
|
/* DATABASE.CPP */
|
|
|
|
/****************/
|
2009-08-27 11:41:56 +00:00
|
|
|
void DisplayCmpDoc( wxString& Name );
|
|
|
|
wxString DataBaseGetName( WinEDA_DrawFrame* frame, wxString& Keys,
|
|
|
|
wxString& BufName );
|
2007-06-05 12:10:51 +00:00
|
|
|
|
|
|
|
/*********************/
|
|
|
|
/* DANGLING_ENDS.CPP */
|
|
|
|
/*********************/
|
2010-07-17 11:14:57 +00:00
|
|
|
bool SegmentIntersect( wxPoint aSegStart, wxPoint aSegEnd, wxPoint aTestPoint );
|
2007-06-05 12:10:51 +00:00
|
|
|
|
|
|
|
/****************/
|
|
|
|
/* BUS_WIRE_JUNCTION.CPP */
|
|
|
|
/****************/
|
2009-08-27 11:41:56 +00:00
|
|
|
void IncrementLabelMember( wxString& name );
|
2007-06-05 12:10:51 +00:00
|
|
|
|
|
|
|
/****************/
|
|
|
|
/* EDITPART.CPP */
|
|
|
|
/****************/
|
2009-08-27 11:41:56 +00:00
|
|
|
void InstallCmpeditFrame( WinEDA_SchematicFrame* parent, wxPoint& pos,
|
|
|
|
SCH_COMPONENT* m_Cmp );
|
|
|
|
|
|
|
|
|
|
|
|
bool MapAngles( int* Angle1,
|
|
|
|
int* Angle2,
|
|
|
|
const int TransMat[2][2] );
|
2007-06-05 12:10:51 +00:00
|
|
|
|
|
|
|
|
2009-08-27 11:41:56 +00:00
|
|
|
/**
|
|
|
|
* Calculate new coordinate according to the transform matrix.
|
|
|
|
*
|
2008-09-13 18:59:57 +00:00
|
|
|
* @param aTransformMatrix = rotation, mirror .. matrix
|
|
|
|
* @param aPosition = the position to transform
|
|
|
|
* @return the new coordinate
|
|
|
|
*/
|
2009-08-27 11:41:56 +00:00
|
|
|
wxPoint TransformCoordinate( const int aTransformMatrix[2][2],
|
|
|
|
const wxPoint& aPosition );
|
|
|
|
|
|
|
|
void SnapLibItemPoint( int OrigX,
|
|
|
|
int OrigY,
|
|
|
|
int* ClosestX,
|
|
|
|
int* ClosestY,
|
|
|
|
SCH_COMPONENT* DrawLibItem );
|
|
|
|
bool LibItemInBox( int x1, int y1, int x2, int y2,
|
|
|
|
SCH_COMPONENT* DrawLibItem );
|
2008-03-20 01:50:21 +00:00
|
|
|
|
2009-08-27 11:41:56 +00:00
|
|
|
/************/
|
|
|
|
/* BLOCK.CPP */
|
|
|
|
/************/
|
|
|
|
void DeleteStruct( WinEDA_DrawPanel* panel,
|
|
|
|
wxDC* DC,
|
|
|
|
SCH_ITEM* DrawStruct );
|
2007-06-05 12:10:51 +00:00
|
|
|
|
2010-03-24 18:26:04 +00:00
|
|
|
// operations_on_item_lists.cpp
|
|
|
|
/** function DuplicateStruct
|
|
|
|
* Routine to create a new copy of given struct.
|
|
|
|
* @param aDrawStruct = the SCH_ITEM to duplicate
|
|
|
|
* @param aClone (defualt = true)
|
|
|
|
* if true duplicate also some parameters that must be unique
|
|
|
|
* (timestamp and sheet name)
|
|
|
|
* aClone must be false. use true only is undo/redo duplications
|
|
|
|
*/
|
|
|
|
SCH_ITEM* DuplicateStruct( SCH_ITEM* DrawStruct, bool aClone = false );
|
|
|
|
|
2009-08-27 11:41:56 +00:00
|
|
|
/*************/
|
|
|
|
/* LOCATE.CPP */
|
|
|
|
/*************/
|
2007-06-05 12:10:51 +00:00
|
|
|
|
2009-10-08 13:19:28 +00:00
|
|
|
SCH_COMPONENT* LocateSmallestComponent( SCH_SCREEN* Screen );
|
2007-06-05 12:10:51 +00:00
|
|
|
|
2009-10-30 19:26:25 +00:00
|
|
|
/* Find the item within block selection. */
|
2009-10-08 13:19:28 +00:00
|
|
|
int PickItemsInBlock( BLOCK_SELECTOR& aBlock,
|
|
|
|
BASE_SCREEN* screen );
|
2007-06-05 12:10:51 +00:00
|
|
|
|
2009-08-27 11:41:56 +00:00
|
|
|
/* function PickStruct:
|
|
|
|
* Search at location pos
|
|
|
|
*
|
|
|
|
* SearchMask = (bitwise OR):
|
|
|
|
* LIBITEM
|
|
|
|
* WIREITEM
|
|
|
|
* BUSITEM
|
|
|
|
* RACCORDITEM
|
|
|
|
* JUNCTIONITEM
|
|
|
|
* DRAWITEM
|
|
|
|
* TEXTITEM
|
|
|
|
* LABELITEM
|
|
|
|
* SHEETITEM
|
|
|
|
* MARKERITEM
|
|
|
|
* NOCONNECTITEM
|
|
|
|
* SEARCH_PINITEM
|
|
|
|
* SHEETLABELITEM
|
|
|
|
* FIELDCMPITEM
|
|
|
|
*
|
|
|
|
* if EXCLUDE_WIRE_BUS_ENDPOINTS is set, in wire ou bus search and locate,
|
|
|
|
* start and end points are not included in search
|
|
|
|
* if WIRE_BUS_ENDPOINTS_ONLY is set, in wire ou bus search and locate,
|
|
|
|
* only start and end points are included in search
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* Return:
|
2009-10-30 19:26:25 +00:00
|
|
|
* Pointer to list of pointers to structures if several items are selected.
|
|
|
|
* Pointer to the structure if only 1 item is selected.
|
|
|
|
* NULL if no items are selects.
|
|
|
|
*/
|
2009-08-27 11:41:56 +00:00
|
|
|
SCH_ITEM* PickStruct( const wxPoint& refpos,
|
|
|
|
BASE_SCREEN* screen,
|
|
|
|
int SearchMask );
|
|
|
|
|
|
|
|
|
2009-11-04 20:46:53 +00:00
|
|
|
SCH_SHEET_PIN* LocateSheetLabel( SCH_SHEET* Sheet, const wxPoint& pos );
|
2009-10-08 13:19:28 +00:00
|
|
|
LIB_PIN* LocateAnyPin( SCH_ITEM* DrawList,
|
2009-08-27 11:41:56 +00:00
|
|
|
const wxPoint& RefPos,
|
|
|
|
SCH_COMPONENT** libpart = NULL );
|
|
|
|
|
2009-11-04 20:46:53 +00:00
|
|
|
SCH_SHEET_PIN* LocateAnyPinSheet( const wxPoint& RefPos,
|
|
|
|
SCH_ITEM* DrawList );
|
2007-06-05 12:10:51 +00:00
|
|
|
|
2008-02-12 21:12:46 +00:00
|
|
|
|
2007-06-05 12:10:51 +00:00
|
|
|
/***************/
|
|
|
|
/* EEREDRAW.CPP */
|
|
|
|
/***************/
|
2009-08-27 11:41:56 +00:00
|
|
|
void DrawDanglingSymbol( WinEDA_DrawPanel* panel, wxDC* DC,
|
|
|
|
const wxPoint& pos, int Color );
|
|
|
|
|
|
|
|
void DrawStructsInGhost( WinEDA_DrawPanel* aPanel,
|
|
|
|
wxDC* aDC,
|
|
|
|
SCH_ITEM* aItem,
|
|
|
|
const wxPoint& aOffset );
|
|
|
|
void SetHighLightStruct( SCH_ITEM* HighLight );
|
|
|
|
void RedrawActiveWindow( WinEDA_DrawPanel* panel, wxDC* DC );
|
|
|
|
void RedrawStructList( WinEDA_DrawPanel* panel,
|
|
|
|
wxDC* DC,
|
|
|
|
SCH_ITEM* Structs,
|
|
|
|
int DrawMode,
|
|
|
|
int Color = -1 );
|
|
|
|
void RedrawOneStruct( WinEDA_DrawPanel* panel,
|
|
|
|
wxDC* DC,
|
|
|
|
SCH_ITEM* Struct,
|
|
|
|
int DrawMode,
|
|
|
|
int Color = -1 );
|
2007-06-05 12:10:51 +00:00
|
|
|
|
|
|
|
/**************/
|
|
|
|
/* EELAYER.CPP */
|
|
|
|
/**************/
|
2009-08-27 11:41:56 +00:00
|
|
|
void SeedLayers();
|
|
|
|
EDA_Colors ReturnLayerColor( int Layer );
|
2010-03-20 19:57:59 +00:00
|
|
|
void DisplayColorSetupFrame( WinEDA_DrawFrame* parent,
|
2009-08-27 11:41:56 +00:00
|
|
|
const wxPoint& pos );
|
2007-06-05 12:10:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
/**************/
|
|
|
|
/* NETLIST.CPP */
|
|
|
|
/**************/
|
2009-08-27 11:41:56 +00:00
|
|
|
int IsBusLabel( const wxString& LabelDrawList );
|
2007-06-05 12:10:51 +00:00
|
|
|
|
|
|
|
/***************/
|
|
|
|
/* ANNOTATE.CPP */
|
|
|
|
/***************/
|
2007-09-01 12:00:30 +00:00
|
|
|
void ReAnnotatePowerSymbolsOnly();
|
2007-06-05 12:10:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
/************/
|
|
|
|
/* PLOT.CPP */
|
|
|
|
/************/
|
2009-08-29 10:20:48 +00:00
|
|
|
void PlotDrawlist( PLOTTER* plotter, SCH_ITEM* drawlist );
|
2007-06-05 12:10:51 +00:00
|
|
|
|
|
|
|
/***************/
|
|
|
|
/* DELSHEET.CPP */
|
|
|
|
/***************/
|
2009-11-04 20:46:53 +00:00
|
|
|
void DeleteSubHierarchy( SCH_SHEET* Sheet, bool confirm_deletion );
|
2009-08-27 11:41:56 +00:00
|
|
|
bool ClearProjectDrawList( SCH_SCREEN* FirstWindow, bool confirm_deletion );
|
|
|
|
|
2007-06-05 12:10:51 +00:00
|
|
|
/* free the draw list screen->EEDrawList and the subhierarchies
|
2009-08-27 11:41:56 +00:00
|
|
|
* clear the screen datas (filenames ..)
|
|
|
|
*/
|
2007-06-05 12:10:51 +00:00
|
|
|
|
|
|
|
/*************/
|
|
|
|
/* DELETE.CPP */
|
|
|
|
/*************/
|
|
|
|
|
2009-08-27 11:41:56 +00:00
|
|
|
bool LocateAndDeleteItem( WinEDA_SchematicFrame* frame, wxDC* DC );
|
|
|
|
void EraseStruct( SCH_ITEM* DrawStruct, SCH_SCREEN* Window );
|
|
|
|
void DeleteAllMarkers( int type );
|
|
|
|
|
2007-06-05 12:10:51 +00:00
|
|
|
|
|
|
|
/**************/
|
|
|
|
/* PINEDIT.CPP */
|
|
|
|
/**************/
|
2009-08-27 11:41:56 +00:00
|
|
|
void InstallPineditFrame( WinEDA_LibeditFrame* parent,
|
|
|
|
wxDC* DC,
|
|
|
|
const wxPoint& pos );
|
2007-06-05 12:10:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
/**************/
|
|
|
|
/* SELPART.CPP */
|
|
|
|
/**************/
|
|
|
|
|
2009-08-23 14:21:41 +00:00
|
|
|
/**
|
|
|
|
* Function DisplayComponentsNamesInLib
|
2009-10-30 19:26:25 +00:00
|
|
|
* Select component from list of components in this library
|
|
|
|
*
|
|
|
|
* If == NULL Library, selection of library REQUESTED
|
|
|
|
* If only in research library
|
|
|
|
*
|
|
|
|
* Returns
|
|
|
|
* 1 if selected component
|
|
|
|
* 0 if canceled order
|
2009-08-23 14:21:41 +00:00
|
|
|
*/
|
2009-08-27 11:41:56 +00:00
|
|
|
int DisplayComponentsNamesInLib( WinEDA_DrawFrame* frame,
|
2009-09-18 14:56:05 +00:00
|
|
|
CMP_LIBRARY* Library,
|
2009-08-27 11:41:56 +00:00
|
|
|
wxString& Buffer,
|
|
|
|
wxString& OldName );
|
2009-08-23 14:21:41 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Function SelectLibraryFromList
|
2009-08-27 11:41:56 +00:00
|
|
|
* displays a list of current loaded libraries, and allows the user to select
|
|
|
|
* a library
|
2009-08-23 14:21:41 +00:00
|
|
|
* This list is sorted, with the library cache always at end of the list
|
|
|
|
*/
|
2009-09-18 14:56:05 +00:00
|
|
|
CMP_LIBRARY* SelectLibraryFromList( WinEDA_DrawFrame* frame );
|
2009-08-23 14:21:41 +00:00
|
|
|
|
|
|
|
/**
|
2009-10-30 19:26:25 +00:00
|
|
|
* Get the name component from a library to load.
|
|
|
|
*
|
|
|
|
* If no library specified, there will be demand for selection of a library.
|
|
|
|
* Returns
|
|
|
|
* 1 if selected component
|
|
|
|
* 0 if canceled order
|
|
|
|
* Place the name of the selected component list in BufName
|
2009-08-23 14:21:41 +00:00
|
|
|
*/
|
2009-08-27 11:41:56 +00:00
|
|
|
int GetNameOfPartToLoad( WinEDA_DrawFrame* frame,
|
2009-09-18 14:56:05 +00:00
|
|
|
CMP_LIBRARY* Lib,
|
2009-08-27 11:41:56 +00:00
|
|
|
wxString& BufName );
|
2009-08-23 14:21:41 +00:00
|
|
|
|
2009-08-27 11:41:56 +00:00
|
|
|
/**************/
|
|
|
|
/* LIBARCH.CPP */
|
|
|
|
/**************/
|
2008-03-20 01:50:21 +00:00
|
|
|
|
2009-08-27 11:41:56 +00:00
|
|
|
bool LibArchive( wxWindow* frame, const wxString& ArchFullFileName );
|
2007-06-05 12:10:51 +00:00
|
|
|
|
2009-08-27 11:41:56 +00:00
|
|
|
/**************/
|
|
|
|
/* CLEANUP.CPP */
|
|
|
|
/**************/
|
|
|
|
|
|
|
|
void SchematicCleanUp( SCH_SCREEN* screen, wxDC* DC );
|
2007-06-05 12:10:51 +00:00
|
|
|
|
2009-08-27 11:41:56 +00:00
|
|
|
/* Routine de nettoyage:
|
|
|
|
* - regroupe les segments de fils (ou de bus) alignes en 1 seul segment
|
|
|
|
* - Detecte les objets identiques superposes
|
|
|
|
*/
|
2007-06-05 12:10:51 +00:00
|
|
|
|
2009-08-27 11:41:56 +00:00
|
|
|
void BreakSegmentOnJunction( SCH_SCREEN* Screen );
|
2007-06-05 12:10:51 +00:00
|
|
|
|
2009-07-25 07:31:07 +00:00
|
|
|
/* Break a segment ( BUS, WIRE ) int 2 segments at location aBreakpoint,
|
|
|
|
* if aBreakpoint in on segment segment
|
|
|
|
* ( excluding ends)
|
|
|
|
*/
|
2009-08-27 05:53:24 +00:00
|
|
|
void BreakSegment(SCH_SCREEN * aScreen, wxPoint aBreakpoint );
|
2007-06-05 12:10:51 +00:00
|
|
|
|
2009-08-27 11:41:56 +00:00
|
|
|
/**************/
|
|
|
|
/* EECLASS.CPP */
|
|
|
|
/**************/
|
2007-06-05 12:10:51 +00:00
|
|
|
|
2009-08-27 11:41:56 +00:00
|
|
|
void SetaParent( EDA_BaseStruct* Struct, BASE_SCREEN* Screen );
|
2007-06-05 12:10:51 +00:00
|
|
|
|
|
|
|
/***************/
|
|
|
|
/* OPTIONS.CPP */
|
|
|
|
/***************/
|
2009-04-29 17:09:00 +00:00
|
|
|
void DisplayOptionFrame( WinEDA_SchematicFrame* parent,
|
2009-08-27 11:41:56 +00:00
|
|
|
const wxPoint& framepos );
|
2007-06-05 12:10:51 +00:00
|
|
|
|
2007-08-14 19:24:48 +00:00
|
|
|
/****************/
|
|
|
|
/* CONTROLE.CPP */
|
|
|
|
/****************/
|
|
|
|
void RemoteCommand( const char* cmdline );
|
2009-09-25 18:49:04 +00:00
|
|
|
|
|
|
|
#endif /* __PROTOS_H__ */
|