diff --git a/eeschema/eelibs_read_libraryfiles.cpp b/eeschema/eelibs_read_libraryfiles.cpp index 170751fb3d..9dee5b840b 100644 --- a/eeschema/eelibs_read_libraryfiles.cpp +++ b/eeschema/eelibs_read_libraryfiles.cpp @@ -164,8 +164,7 @@ void LoadLibraries (WinEDA_DrawFrame* frame) else msg += _( " error!" ); - frame->PrintMsg( msg ); - } + frame->PrintMsg( msg ); } // reorder the linked list to match the order filename list: int NumOfLibs; @@ -186,7 +185,8 @@ void LoadLibraries (WinEDA_DrawFrame* frame) { if( jj >= NumOfLibs ) break; - lib = FindLibrary( g_LibName_List[ii] ); + fn = g_LibName_List[ii]; + lib = FindLibrary( fn.GetName() ); if( lib ) { lib->m_Flags = 1; @@ -212,7 +212,9 @@ void LoadLibraries (WinEDA_DrawFrame* frame) MyFree( libs ); for( lib = g_LibraryList; lib != NULL; lib = lib->m_Pnext ) + { lib->m_Flags = 0; + } } diff --git a/include/wxEeschemaStruct.h b/include/wxEeschemaStruct.h index b4dbbabad7..3b4a5958ad 100644 --- a/include/wxEeschemaStruct.h +++ b/include/wxEeschemaStruct.h @@ -56,16 +56,16 @@ class WinEDA_SchematicFrame : public WinEDA_DrawFrame public: WinEDAChoiceBox* m_SelPartBox; DrawSheetPath* m_CurrentSheet; ///< which sheet we are presently working on. - int m_Multiflag; + int m_Multiflag; wxPoint m_OldPos; WinEDA_LibeditFrame* m_LibeditFrame; WinEDA_ViewlibFrame* m_ViewlibFrame; private: - SCH_CMP_FIELD* m_CurrentField; - int m_TextFieldSize; - bool m_ShowGrid; + SCH_CMP_FIELD* m_CurrentField; + int m_TextFieldSize; + bool m_ShowGrid; public: @@ -76,58 +76,59 @@ public: ~WinEDA_SchematicFrame(); - void OnCloseWindow( wxCloseEvent& Event ); - void Process_Special_Functions( wxCommandEvent& event ); - void Process_Config( wxCommandEvent& event ); + void OnCloseWindow( wxCloseEvent& Event ); + void Process_Special_Functions( wxCommandEvent& event ); + void Process_Config( wxCommandEvent& event ); - void GeneralControle( wxDC* DC, wxPoint MousePositionInPixels ); + void GeneralControle( wxDC* DC, wxPoint MousePositionInPixels ); - void Save_Config( wxWindow* displayframe ); + void Save_Config( wxWindow* displayframe ); - void LoadSettings(); - void SaveSettings(); + void LoadSettings(); + void SaveSettings(); - void RedrawActiveWindow( wxDC* DC, bool EraseBg ); + void RedrawActiveWindow( wxDC* DC, bool EraseBg ); - void CreateScreens(); - void ReCreateHToolbar(); - void ReCreateVToolbar(); - void ReCreateOptToolbar(); - void ReCreateMenuBar(); - void SetToolbars(); - void OnHotKey( wxDC* DC, - int hotkey, - EDA_BaseStruct* DrawStruct ); + void CreateScreens(); + void ReCreateHToolbar(); + void ReCreateVToolbar(); + void ReCreateOptToolbar(); + void ReCreateMenuBar(); + void SetToolbars(); + void OnHotKey( wxDC* DC, + 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 ) { m_CurrentField = aCurrentField; } - DrawSheetPath* GetSheet(); - SCH_SCREEN* GetScreen() const; + DrawSheetPath* GetSheet(); - BASE_SCREEN* GetBaseScreen() const; + SCH_SCREEN* GetScreen() const; - virtual wxString GetScreenDesc(); + BASE_SCREEN* GetBaseScreen() const; - void InstallConfigFrame( const wxPoint& pos ); + virtual wxString GetScreenDesc(); - void OnLeftClick( wxDC* DC, const wxPoint& MousePos ); - void OnLeftDClick( wxDC* DC, const wxPoint& MousePos ); - bool OnRightClick( const wxPoint& MousePos, wxMenu* PopMenu ); - void OnSelectOptionToolbar( wxCommandEvent& event ); - void ToolOnRightClick( wxCommandEvent& event ); - int BestZoom(); // Retourne le meilleur zoom + void InstallConfigFrame( const wxPoint& pos ); - SCH_ITEM* SchematicGeneralLocateAndDisplay( bool IncludePin = TRUE ); - SCH_ITEM* SchematicGeneralLocateAndDisplay( + void OnLeftClick( wxDC* DC, const wxPoint& MousePos ); + void OnLeftDClick( wxDC* DC, const wxPoint& MousePos ); + bool OnRightClick( const wxPoint& MousePos, wxMenu* PopMenu ); + void OnSelectOptionToolbar( wxCommandEvent& event ); + void ToolOnRightClick( wxCommandEvent& event ); + int BestZoom(); // Retourne le meilleur zoom + + SCH_ITEM* SchematicGeneralLocateAndDisplay( bool IncludePin = TRUE ); + SCH_ITEM* SchematicGeneralLocateAndDisplay( const wxPoint& refpoint, bool - IncludePin ); + IncludePin ); /** * Function FillFootprintFieldForAllInstancesofComponent @@ -141,34 +142,35 @@ public: * 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, - bool aSetVisible ); + bool FillFootprintFieldForAllInstancesofComponent( const wxString& aReference, + const wxString& aFootPrint, + bool aSetVisible ); - SCH_ITEM* FindComponentAndItem( const wxString& component_reference, - bool Find_in_hierarchy, - int SearchType, - const wxString& text_to_find, - bool mouseWarp ); + SCH_ITEM* FindComponentAndItem( const wxString& component_reference, + bool Find_in_hierarchy, + int SearchType, + const wxString& text_to_find, + 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 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. @@ -179,26 +181,26 @@ public: * and has no extension. * However if filename is too long name is - */ - 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 */ - void SetSheetNumberAndCount(); + void SetSheetNumberAndCount(); // Plot functions: - void ToPlot_PS( wxCommandEvent& event ); - void ToPlot_HPGL( wxCommandEvent& event ); - void ToPostProcess( wxCommandEvent& event ); + void ToPlot_PS( wxCommandEvent& event ); + void ToPlot_HPGL( 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(); /** @@ -208,10 +210,11 @@ public: * @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: @@ -225,147 +228,153 @@ 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 ); // 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( wxDC* DC, bool DeleteFullConnection ); + void BeginSegment( wxDC* DC, int type ); + void EndSegment( wxDC* DC ); + void DeleteCurrentSegment( wxDC* DC ); + void DeleteConnection( wxDC* DC, 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 ); - 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 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 ); 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, - wxDC* DC, int type_rotate ); + 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, - 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 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 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 PasteStruct( wxDC* DC ); + void PasteStruct( wxDC* DC ); /* Undo - redo */ public: - void SaveCopyInUndoList( SCH_ITEM* ItemToCopy, - int flag_type_command = 0 ); + void SaveCopyInUndoList( SCH_ITEM* ItemToCopy, + int flag_type_command = 0 ); private: - void PutDataInPreviousState( DrawPickedStruct* List ); - bool GetSchematicFromRedoList(); - bool GetSchematicFromUndoList(); + void PutDataInPreviousState( DrawPickedStruct* List ); + bool GetSchematicFromRedoList(); + bool GetSchematicFromUndoList(); public: - void Key( wxDC* DC, int hotkey, EDA_BaseStruct* DrawStruct ); + void Key( wxDC* DC, int hotkey, EDA_BaseStruct* DrawStruct ); /* Gestion generale des operations sur block */ - int ReturnBlockCommand( int key ); - void InitBlockPasteInfos(); - void HandleBlockPlace( wxDC* DC ); - int HandleBlockEnd( wxDC* DC ); - void HandleBlockEndByPopUp( int Command, wxDC* DC ); + int ReturnBlockCommand( int key ); + void InitBlockPasteInfos(); + void HandleBlockPlace( wxDC* DC ); + int HandleBlockEnd( wxDC* DC ); + void HandleBlockEndByPopUp( int Command, wxDC* DC ); // Repetition automatique de placements - void RepeatDrawItem( wxDC* DC ); + void RepeatDrawItem( wxDC* DC ); // Test des points de connexion en l'air (dangling ends) - void TestDanglingEnds( SCH_ITEM* DrawList, wxDC* DC ); - LibDrawPin* LocatePinEnd( SCH_ITEM* DrawList, const wxPoint& pos ); + void TestDanglingEnds( SCH_ITEM* DrawList, wxDC* DC ); + LibDrawPin* LocatePinEnd( SCH_ITEM* DrawList, const wxPoint& pos ); DECLARE_EVENT_TABLE() }; @@ -389,107 +398,107 @@ public: ~WinEDA_LibeditFrame(); - void Process_Special_Functions( wxCommandEvent& event ); - void OnImportPart( wxCommandEvent& event ); - void OnExportPart( wxCommandEvent& event ); - void OnUpdateEditingPart( wxUpdateUIEvent& event ); - void OnUpdateNotEditingPart( wxUpdateUIEvent& event ); + void Process_Special_Functions( wxCommandEvent& event ); + void OnImportPart( wxCommandEvent& event ); + void OnExportPart( wxCommandEvent& event ); + void OnUpdateEditingPart( wxUpdateUIEvent& event ); + void OnUpdateNotEditingPart( wxUpdateUIEvent& event ); - 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 SetToolbars(); - void OnLeftDClick( wxDC* DC, const wxPoint& MousePos ); + 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 SetToolbars(); + void OnLeftDClick( wxDC* DC, const wxPoint& MousePos ); - SCH_SCREEN* GetScreen() { return (SCH_SCREEN*) GetBaseScreen(); } - void OnHotKey( wxDC* DC, int hotkey, - EDA_BaseStruct* DrawStruct ); + 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(); + void GeneralControle( wxDC* DC, + wxPoint MousePositionInPixels ); + void LoadSettings(); + void SaveSettings(); private: // General: - void CreateNewLibraryPart(); - void DeleteOnePart(); - void SaveOnePartInMemory(); - void SelectActiveLibrary(); - bool LoadOneLibraryPart(); - void SaveActiveLibrary(); + void CreateNewLibraryPart(); + void DeleteOnePart(); + void SaveOnePartInMemory(); + void SelectActiveLibrary(); + bool LoadOneLibraryPart(); + void SaveActiveLibrary(); - int LoadOneLibraryPartAux( EDA_LibComponentStruct* LibEntry, - LibraryStruct* Library, - int noMsg = 0 ); + int LoadOneLibraryPartAux( EDA_LibComponentStruct* LibEntry, + LibraryStruct* Library, + int noMsg = 0 ); - void DisplayCmpDoc( const wxString& Name ); - void InstallLibeditFrame( ); + void DisplayCmpDoc( const wxString& Name ); + void InstallLibeditFrame(); // General editing public: - void SaveCopyInUndoList( EDA_BaseStruct* ItemToCopy, int flag_type_command = 0 ); - void InstallFieldsEditorDialog( void ); + void SaveCopyInUndoList( EDA_BaseStruct* ItemToCopy, int flag_type_command = 0 ); + void InstallFieldsEditorDialog( void ); private: - bool GetComponentFromUndoList(); - bool GetComponentFromRedoList(); + bool GetComponentFromUndoList(); + bool GetComponentFromRedoList(); // Edition des Pins: - void CreatePin( wxDC* DC ); - void DeletePin( wxDC* DC, - EDA_LibComponentStruct* LibEntry, - LibDrawPin* Pin ); - void StartMovePin( wxDC* DC ); + void CreatePin( wxDC* DC ); + void DeletePin( wxDC* DC, + EDA_LibComponentStruct* LibEntry, + LibDrawPin* Pin ); + void StartMovePin( wxDC* DC ); // Test des pins ( duplicates...) - bool TestPins( EDA_LibComponentStruct* LibEntry ); + bool TestPins( EDA_LibComponentStruct* LibEntry ); // Edition de l'ancre - void PlaceAncre(); + void PlaceAncre(); // Edition des graphismes: - LibEDA_BaseStruct* CreateGraphicItem( 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( EDA_LibComponentStruct* 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 ); + LibEDA_BaseStruct* CreateGraphicItem( 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( EDA_LibComponentStruct* 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 ); + int ReturnBlockCommand( int key ); + void HandleBlockPlace( wxDC* DC ); + int HandleBlockEnd( wxDC* DC ); - void DeletePartInLib( LibraryStruct* Library, EDA_LibComponentStruct* Entry ); - void PlacePin( wxDC* DC ); - void InitEditOnePin(); - void GlobalSetPins( wxDC* DC, LibDrawPin* MasterPin, int id ); + void DeletePartInLib( LibraryStruct* Library, EDA_LibComponentStruct* Entry ); + 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 ); + void RepeatPinItem( wxDC* DC, LibDrawPin* Pin ); protected: - wxString m_ConfigPath; - wxString m_LastLibImportPath; - wxString m_LastLibExportPath; + wxString m_ConfigPath; + wxString m_LastLibImportPath; + wxString m_LastLibExportPath; DECLARE_EVENT_TABLE() }; @@ -501,57 +510,57 @@ class LibraryStruct; class WinEDA_ViewlibFrame : public WinEDA_DrawFrame { private: - WinEDAChoiceBox* SelpartBox; + 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 + 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 + 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 + wxSemaphore* m_Semaphore; // != NULL if the frame must emulate a modal dialog + wxString m_ConfigPath; // subpath for configuartion public: - WinEDA_ViewlibFrame( wxWindow* father, + WinEDA_ViewlibFrame( wxWindow* father, LibraryStruct* Library = NULL, - wxSemaphore* semaphore = 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 ); + 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 GeneralControle( wxDC* DC, wxPoint MousePositionInPixels ); - void LoadSettings(); - void SaveSettings(); + void LoadSettings(); + void SaveSettings(); private: - void SelectCurrentLibrary(); - void SelectAndViewLibraryPart( int option ); - void ExportToSchematicLibraryPart( wxCommandEvent& event ); - void ViewOneLibraryContent( LibraryStruct* Lib, int Flag ); - bool OnRightClick( const wxPoint& MousePos, wxMenu* PopMenu ); + void SelectCurrentLibrary(); + void SelectAndViewLibraryPart( int option ); + void ExportToSchematicLibraryPart( wxCommandEvent& event ); + void ViewOneLibraryContent( LibraryStruct* Lib, int Flag ); + bool OnRightClick( const wxPoint& MousePos, wxMenu* PopMenu ); DECLARE_EVENT_TABLE() };