365 lines
11 KiB
C++
365 lines
11 KiB
C++
//*****************************************/
|
|
/* prototypage des fonctions de EESchema */
|
|
/*****************************************/
|
|
|
|
#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;
|
|
class Hierarchical_PIN_Sheet_Struct;
|
|
class PLOTTER;
|
|
class DrawSheetStruct;
|
|
class LibDrawPin;
|
|
|
|
|
|
LIB_DRAW_ITEM* LocatePin( const wxPoint& RefPos,
|
|
LIB_COMPONENT* Entry,
|
|
int Unit,
|
|
int Convert,
|
|
SCH_COMPONENT* DrawItem = NULL );
|
|
|
|
/* Routine de localisation d'une PIN de la PartLib pointee par Entry */
|
|
|
|
wxString ReturnDefaultFieldName( int aFieldNdx );
|
|
|
|
|
|
/****************/
|
|
/* DATABASE.CPP */
|
|
/****************/
|
|
void DisplayCmpDoc( wxString& Name );
|
|
wxString DataBaseGetName( WinEDA_DrawFrame* frame, wxString& Keys,
|
|
wxString& BufName );
|
|
|
|
/*********************/
|
|
/* DANGLING_ENDS.CPP */
|
|
/*********************/
|
|
bool SegmentIntersect( int Sx1, int Sy1, int Sx2, int Sy2, int Px1, int Py1 );
|
|
|
|
/****************/
|
|
/* BUS_WIRE_JUNCTION.CPP */
|
|
/****************/
|
|
void IncrementLabelMember( wxString& name );
|
|
|
|
/****************/
|
|
/* EDITPART.CPP */
|
|
/****************/
|
|
void InstallCmpeditFrame( WinEDA_SchematicFrame* parent, wxPoint& pos,
|
|
SCH_COMPONENT* m_Cmp );
|
|
|
|
|
|
/******************************/
|
|
/* EELIBS_DRAW_COMPONENTS.CPP */
|
|
/******************************/
|
|
void DrawingLibInGhost( WinEDA_DrawPanel* panel,
|
|
wxDC* DC,
|
|
LIB_COMPONENT* LibEntry,
|
|
SCH_COMPONENT* DrawLibItem,
|
|
int PartX,
|
|
int PartY,
|
|
int Multi,
|
|
int convert,
|
|
int Color,
|
|
bool DrawPinText );
|
|
|
|
bool MapAngles( int* Angle1,
|
|
int* Angle2,
|
|
const int TransMat[2][2] );
|
|
|
|
|
|
/**
|
|
* Calculate new coordinate according to the transform matrix.
|
|
*
|
|
* @param aTransformMatrix = rotation, mirror .. matrix
|
|
* @param aPosition = the position to transform
|
|
*
|
|
* @return the new coordinate
|
|
*/
|
|
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 );
|
|
char* StrPurge( char* text );
|
|
|
|
/* Supprime les caracteres Space en debut de la ligne text
|
|
* retourne un pointeur sur le 1er caractere non Space de text */
|
|
|
|
/************/
|
|
/* BLOCK.CPP */
|
|
/************/
|
|
SCH_ITEM* DuplicateStruct( SCH_ITEM* DrawStruct );
|
|
void DeleteStruct( WinEDA_DrawPanel* panel,
|
|
wxDC* DC,
|
|
SCH_ITEM* DrawStruct );
|
|
|
|
/*************/
|
|
/* LOCATE.CPP */
|
|
/*************/
|
|
LibDrawPin* LocatePinByNumber( const wxString& ePin_Number,
|
|
SCH_COMPONENT* eComponent );
|
|
|
|
SCH_COMPONENT* LocateSmallestComponent( SCH_SCREEN* Screen );
|
|
|
|
/* Recherche du plus petit (en surface) composant pointe par la souris */
|
|
|
|
int PickItemsInBlock( BLOCK_SELECTOR& aBlock,
|
|
BASE_SCREEN* screen );
|
|
|
|
/* 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:
|
|
* -Bloc search:
|
|
* pointeur sur liste de pointeurs de structures si Plusieurs
|
|
* structures selectionnees.
|
|
* pointeur sur la structure si 1 seule
|
|
*
|
|
* Positon search:
|
|
* pointeur sur la structure.
|
|
* Si pas de structures selectionnees: retourne NULL */
|
|
SCH_ITEM* PickStruct( const wxPoint& refpos,
|
|
BASE_SCREEN* screen,
|
|
int SearchMask );
|
|
|
|
|
|
LIB_DRAW_ITEM* LocateDrawItem( SCH_SCREEN* Screen,
|
|
const wxPoint& refpoint,
|
|
LIB_COMPONENT* LibEntry,
|
|
int Unit,
|
|
int Convert,
|
|
int masque );
|
|
|
|
Hierarchical_PIN_Sheet_Struct* LocateSheetLabel( DrawSheetStruct* Sheet,
|
|
const wxPoint& pos );
|
|
LibDrawPin* LocateAnyPin( SCH_ITEM* DrawList,
|
|
const wxPoint& RefPos,
|
|
SCH_COMPONENT** libpart = NULL );
|
|
|
|
Hierarchical_PIN_Sheet_Struct* LocateAnyPinSheet( const wxPoint& RefPos,
|
|
SCH_ITEM* DrawList );
|
|
|
|
|
|
/***************/
|
|
/* EEREDRAW.CPP */
|
|
/***************/
|
|
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 );
|
|
|
|
/**************/
|
|
/* EELAYER.CPP */
|
|
/**************/
|
|
void SeedLayers();
|
|
EDA_Colors ReturnLayerColor( int Layer );
|
|
void DisplayColorSetupFrame( WinEDA_DrawFrame* parent,
|
|
const wxPoint& pos );
|
|
|
|
/*************/
|
|
/* EELOAD.CPP */
|
|
/*************/
|
|
int CountCmpNumber();
|
|
|
|
/***************/
|
|
/* EECONFIG.CPP */
|
|
/***************/
|
|
bool Read_Hotkey_Config( WinEDA_DrawFrame* frame, bool verbose );
|
|
|
|
|
|
/**************/
|
|
/* NETLIST.CPP */
|
|
/**************/
|
|
int IsBusLabel( const wxString& LabelDrawList );
|
|
|
|
/***************/
|
|
/* ANNOTATE.CPP */
|
|
/***************/
|
|
void ReAnnotatePowerSymbolsOnly();
|
|
|
|
|
|
/************/
|
|
/* PLOT.CPP */
|
|
/************/
|
|
void PlotDrawlist( PLOTTER* plotter, SCH_ITEM* drawlist );
|
|
|
|
/***************/
|
|
/* DELSHEET.CPP */
|
|
/***************/
|
|
void DeleteSubHierarchy( DrawSheetStruct* Sheet, bool confirm_deletion );
|
|
bool ClearProjectDrawList( SCH_SCREEN* FirstWindow, bool confirm_deletion );
|
|
|
|
/* free the draw list screen->EEDrawList and the subhierarchies
|
|
* clear the screen datas (filenames ..)
|
|
*/
|
|
|
|
/*************/
|
|
/* DELETE.CPP */
|
|
/*************/
|
|
|
|
bool LocateAndDeleteItem( WinEDA_SchematicFrame* frame, wxDC* DC );
|
|
void EraseStruct( SCH_ITEM* DrawStruct, SCH_SCREEN* Window );
|
|
void DeleteAllMarkers( int type );
|
|
|
|
|
|
/**************/
|
|
/* GETPART.CPP */
|
|
/**************/
|
|
|
|
int LookForConvertPart( LIB_COMPONENT* LibEntry );
|
|
|
|
/* Retourne la plus grande valeur trouvee dans la liste des elements
|
|
* "drawings" du composant LibEntry, pour le membre .Convert
|
|
* Si il n'y a pas de representation type "convert", la valeur
|
|
* retournee est 0 ou 1
|
|
* Si il y a une representation type "convert",
|
|
* la valeur retournee est > 1 (typiquement 2) */
|
|
|
|
|
|
/**************/
|
|
/* PINEDIT.CPP */
|
|
/**************/
|
|
void InstallPineditFrame( WinEDA_LibeditFrame* parent,
|
|
wxDC* DC,
|
|
const wxPoint& pos );
|
|
|
|
|
|
/**************/
|
|
/* SELPART.CPP */
|
|
/**************/
|
|
|
|
/**
|
|
* Function DisplayComponentsNamesInLib
|
|
* Routine de selection d'un composant en librairie, par affichage de la
|
|
* liste des composants de cette librairie
|
|
* Si Library == NULL, selection de librairie demandee
|
|
* sinon recherche uniquement dans library
|
|
* Retourne
|
|
* 1 si composant selectionne
|
|
* 0 si commande annulee
|
|
*/
|
|
int DisplayComponentsNamesInLib( WinEDA_DrawFrame* frame,
|
|
CMP_LIBRARY* Library,
|
|
wxString& Buffer,
|
|
wxString& OldName );
|
|
|
|
/**
|
|
* Function SelectLibraryFromList
|
|
* displays a list of current loaded libraries, and allows the user to select
|
|
* a library
|
|
* This list is sorted, with the library cache always at end of the list
|
|
*/
|
|
CMP_LIBRARY* SelectLibraryFromList( WinEDA_DrawFrame* frame );
|
|
|
|
/**
|
|
* Function GetNameOfPartToLoad
|
|
* Routine de selection du nom d'un composant en librairie pour chargement,
|
|
* dans la librairie Library.
|
|
* Si Library == NULL, il y aura demande de selection d'une librairie
|
|
* Retourne
|
|
* 1 si composant selectionne
|
|
* 0 si commande annulee
|
|
* place le nom du composant a charger, selectionne a partir d'une liste dans
|
|
* BufName
|
|
*/
|
|
int GetNameOfPartToLoad( WinEDA_DrawFrame* frame,
|
|
CMP_LIBRARY* Lib,
|
|
wxString& BufName );
|
|
|
|
/**************/
|
|
/* LIBARCH.CPP */
|
|
/**************/
|
|
|
|
bool LibArchive( wxWindow* frame, const wxString& ArchFullFileName );
|
|
|
|
/**************/
|
|
/* CLEANUP.CPP */
|
|
/**************/
|
|
|
|
void SchematicCleanUp( SCH_SCREEN* screen, wxDC* DC );
|
|
|
|
/* Routine de nettoyage:
|
|
* - regroupe les segments de fils (ou de bus) alignes en 1 seul segment
|
|
* - Detecte les objets identiques superposes
|
|
*/
|
|
|
|
void BreakSegmentOnJunction( SCH_SCREEN* Screen );
|
|
|
|
/* Routine creant des debuts / fin de segment (BUS ou WIRES) sur les jonctions
|
|
* et les raccords */
|
|
|
|
/* Break a segment ( BUS, WIRE ) int 2 segments at location aBreakpoint,
|
|
* if aBreakpoint in on segment segment
|
|
* ( excluding ends)
|
|
*/
|
|
void BreakSegment(SCH_SCREEN * aScreen, wxPoint aBreakpoint );
|
|
|
|
/**************/
|
|
/* EECLASS.CPP */
|
|
/**************/
|
|
|
|
void SetaParent( EDA_BaseStruct* Struct, BASE_SCREEN* Screen );
|
|
|
|
/***************/
|
|
/* OPTIONS.CPP */
|
|
/***************/
|
|
void DisplayOptionFrame( WinEDA_SchematicFrame* parent,
|
|
const wxPoint& framepos );
|
|
|
|
/****************/
|
|
/* CONTROLE.CPP */
|
|
/****************/
|
|
void RemoteCommand( const char* cmdline );
|
|
|
|
#endif /* __PROTOS_H__ */
|