#ifndef __PROTOS_H__ #define __PROTOS_H__ #include "colors.h" class EDA_DRAW_PANEL; class EDA_DRAW_FRAME; class SCH_EDIT_FRAME; class LIB_EDIT_FRAME; class CMP_LIBRARY; class SCH_COMPONENT; class SCH_SCREEN; class SCH_ITEM; class PLOTTER; class SCH_SHEET; class NETLIST_OBJECT; wxString ReturnDefaultFieldName( int aFieldNdx ); /****************/ /* DATABASE.CPP */ /****************/ void DisplayCmpDoc( wxString& Name ); wxString DataBaseGetName( EDA_DRAW_FRAME* frame, wxString& Keys, wxString& BufName ); /*********************/ /* DANGLING_ENDS.CPP */ /*********************/ bool SegmentIntersect( wxPoint aSegStart, wxPoint aSegEnd, wxPoint aTestPoint ); /****************/ /* BUS_WIRE_JUNCTION.CPP */ /****************/ void IncrementLabelMember( wxString& name ); /****************/ /* EDITPART.CPP */ /****************/ void InstallCmpeditFrame( SCH_EDIT_FRAME* aParent, SCH_COMPONENT* aComponent ); 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 ); /************/ /* BLOCK.CPP */ /************/ void DeleteStruct( EDA_DRAW_PANEL* panel, wxDC* DC, SCH_ITEM* DrawStruct ); // operations_on_item_lists.cpp /** * Function DuplicateStruct * creates 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 ); /*************/ /* LOCATE.CPP */ /*************/ SCH_COMPONENT* LocateSmallestComponent( SCH_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: * 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. */ SCH_ITEM* PickStruct( const wxPoint& refpos, SCH_SCREEN* screen, int SearchMask ); /***************/ /* EEREDRAW.CPP */ /***************/ void DrawDanglingSymbol( EDA_DRAW_PANEL* panel, wxDC* DC, const wxPoint& pos, int Color ); void RedrawActiveWindow( EDA_DRAW_PANEL* panel, wxDC* DC ); /**************/ /* EELAYER.CPP */ /**************/ void SeedLayers(); EDA_Colors ReturnLayerColor( int Layer ); /**************/ /* NETLIST.CPP */ /**************/ int IsBusLabel( const wxString& LabelDrawList ); /************/ /* PLOT.CPP */ /************/ void PlotDrawlist( PLOTTER* plotter, SCH_ITEM* drawlist ); /***************/ /* DELSHEET.CPP */ /***************/ void DeleteSubHierarchy( SCH_SHEET* Sheet, bool confirm_deletion ); bool ClearProjectDrawList( SCH_SCREEN* FirstWindow, bool confirm_deletion ); /* free the draw list screen->GetDrawItems() and the subhierarchies * clear the screen datas (filenames ..) */ /*************/ /* DELETE.CPP */ /*************/ bool LocateAndDeleteItem( SCH_EDIT_FRAME* frame, wxDC* DC ); void EraseStruct( SCH_ITEM* DrawStruct, SCH_SCREEN* Window ); void DeleteAllMarkers( int type ); /**************/ /* PINEDIT.CPP */ /**************/ void InstallPineditFrame( LIB_EDIT_FRAME* parent, wxDC* DC, const wxPoint& pos ); /**************/ /* SELPART.CPP */ /**************/ /** * Function DisplayComponentsNamesInLib * 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 */ int DisplayComponentsNamesInLib( EDA_DRAW_FRAME* 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( EDA_DRAW_FRAME* frame ); /** * 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 */ int GetNameOfPartToLoad( EDA_DRAW_FRAME* frame, CMP_LIBRARY* Lib, wxString& BufName ); /**************/ /* LIBARCH.CPP */ /**************/ bool LibArchive( wxWindow* frame, const wxString& ArchFullFileName ); /***************/ /* OPTIONS.CPP */ /***************/ void DisplayOptionFrame( SCH_EDIT_FRAME* parent, const wxPoint& framepos ); /****************/ /* CONTROLE.CPP */ /****************/ void RemoteCommand( const char* cmdline ); /* Prototypes in netlist_control.cpp */ void FreeNetObjectsList( std::vector & aNetObjectslist ); /** * Function ReturnUserNetlistTypeName * to retrieve user netlist type names * @param first_item = true: return first name of the list, false = return next * @return a wxString : name of the type netlist or empty string * this function must be called first with "first_item" = true * and after with "first_item" = false to get all the other existing netlist * names */ wxString ReturnUserNetlistTypeName( bool first_item ); #endif /* __PROTOS_H__ */