Commit c9d3fd6d authored by Garth Corral's avatar Garth Corral

Merge trunk @5250

parents 2c9b84a7 24f516f6
...@@ -690,7 +690,7 @@ RECURSIVE = YES ...@@ -690,7 +690,7 @@ RECURSIVE = YES
# Note that relative paths are relative to the directory from which doxygen is # Note that relative paths are relative to the directory from which doxygen is
# run. # run.
EXCLUDE = include/boost EXCLUDE = polygon/clipper.cpp
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
......
/** /**
* @file sch_bitmap.cpp * @file class_bitmap_base.cpp
*/ */
/* /*
......
...@@ -93,6 +93,11 @@ const wxString PROJECT::GetProjectFullName() const ...@@ -93,6 +93,11 @@ const wxString PROJECT::GetProjectFullName() const
return m_project_name.GetFullPath(); return m_project_name.GetFullPath();
} }
const wxString PROJECT::GetProjectPath() const
{
return m_project_name.GetPathWithSep();
}
const wxString PROJECT::FootprintLibTblName() const const wxString PROJECT::FootprintLibTblName() const
{ {
...@@ -248,10 +253,10 @@ static bool copy_pro_file_template( const SEARCH_STACK& aSearchS, const wxString ...@@ -248,10 +253,10 @@ static bool copy_pro_file_template( const SEARCH_STACK& aSearchS, const wxString
wxConfigBase* PROJECT::configCreate( const SEARCH_STACK& aSList, wxConfigBase* PROJECT::configCreate( const SEARCH_STACK& aSList,
const wxString& aGroupName, const wxString& aFileName ) const wxString& aGroupName, const wxString& aProjectFileName )
{ {
wxConfigBase* cfg = 0; wxConfigBase* cfg = 0;
wxString cur_pro_fn = !aFileName ? GetProjectFullName() : aFileName; wxString cur_pro_fn = !aProjectFileName ? GetProjectFullName() : aProjectFileName;
if( wxFileName( cur_pro_fn ).IsFileReadable() ) if( wxFileName( cur_pro_fn ).IsFileReadable() )
{ {
......
...@@ -121,8 +121,6 @@ public: ...@@ -121,8 +121,6 @@ public:
* allocates and adds a part library to the library list. * allocates and adds a part library to the library list.
* *
* @param aFileName - File name object of part library. * @param aFileName - File name object of part library.
* @param aErrorMsg - Error message if the part library failed to load.
* @return PART_LIB* - the new PART_LIB, which remains owned by this PART_LIBS container.
* @throw IO_ERROR if there's any problem loading. * @throw IO_ERROR if there's any problem loading.
*/ */
PART_LIB* AddLibrary( const wxString& aFileName ) throw( IO_ERROR ); PART_LIB* AddLibrary( const wxString& aFileName ) throw( IO_ERROR );
...@@ -136,7 +134,8 @@ public: ...@@ -136,7 +134,8 @@ public:
* @return PART_LIB* - the new PART_LIB, which remains owned by this PART_LIBS container. * @return PART_LIB* - the new PART_LIB, which remains owned by this PART_LIBS container.
* @throw IO_ERROR if there's any problem loading. * @throw IO_ERROR if there's any problem loading.
*/ */
PART_LIB* AddLibrary( const wxString& aFileName, PART_LIBS::iterator& aIterator ) throw( IO_ERROR ); PART_LIB* AddLibrary( const wxString& aFileName,
PART_LIBS::iterator& aIterator ) throw( IO_ERROR );
/** /**
* Function RemoveLibrary * Function RemoveLibrary
......
...@@ -97,7 +97,7 @@ public: ...@@ -97,7 +97,7 @@ public:
/** Function GetSelectedAlias /** Function GetSelectedAlias
* *
* @param if not-NULL, the selected sub-unit is set here. * @param aUnit : if not NULL, the selected sub-unit is set here.
* @return the selected alias or NULL if there is none, or there is no tree. * @return the selected alias or NULL if there is none, or there is no tree.
*/ */
LIB_ALIAS* GetSelectedAlias( int* aUnit ); LIB_ALIAS* GetSelectedAlias( int* aUnit );
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
#include <class_sch_screen.h> #include <class_sch_screen.h>
#include <wxEeschemaStruct.h> #include <wxEeschemaStruct.h>
#include <base_units.h> #include <base_units.h>
#include <sch_sheet.h>
#include <dialog_plot_schematic.h> #include <dialog_plot_schematic.h>
// Keys for configuration // Keys for configuration
...@@ -183,8 +184,7 @@ void DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked( wxCommandEvent& even ...@@ -183,8 +184,7 @@ void DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked( wxCommandEvent& even
if( dialog.ShowModal() == wxID_YES ) if( dialog.ShowModal() == wxID_YES )
{ {
wxString plotFilePath = m_parent->GetUniqueFilenameForCurrentSheet() + wxT( "." ) wxString plotFilePath = g_RootSheet->GetFileName();
+ PS_PLOTTER::GetDefaultFileExtension();
plotFilePath = Prj().AbsolutePath(plotFilePath); plotFilePath = Prj().AbsolutePath(plotFilePath);
plotFilePath = wxPathOnly( plotFilePath ); plotFilePath = wxPathOnly( plotFilePath );
......
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Sep 11 2014) // C++ code generated with wxFormBuilder (version Jun 5 2014)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO "NOT" EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
...@@ -28,7 +28,7 @@ DIALOG_PLOT_SCHEMATIC_BASE::DIALOG_PLOT_SCHEMATIC_BASE( wxWindow* parent, wxWind ...@@ -28,7 +28,7 @@ DIALOG_PLOT_SCHEMATIC_BASE::DIALOG_PLOT_SCHEMATIC_BASE( wxWindow* parent, wxWind
m_outputDirectoryName = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_outputDirectoryName = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
m_outputDirectoryName->SetMaxLength( 0 ); m_outputDirectoryName->SetMaxLength( 0 );
m_outputDirectoryName->SetToolTip( _("Target directory for plot files. Can be absolute or relative to the schematic file location.") ); m_outputDirectoryName->SetToolTip( _("Target directory for plot files. Can be absolute or relative to the schematic main file location.") );
bSizer5->Add( m_outputDirectoryName, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT, 5 ); bSizer5->Add( m_outputDirectoryName, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT, 5 );
......
...@@ -247,7 +247,7 @@ ...@@ -247,7 +247,7 @@
<property name="style"></property> <property name="style"></property>
<property name="subclass"></property> <property name="subclass"></property>
<property name="toolbar_pane">0</property> <property name="toolbar_pane">0</property>
<property name="tooltip">Target directory for plot files. Can be absolute or relative to the schematic file location.</property> <property name="tooltip">Target directory for plot files. Can be absolute or relative to the schematic main file location.</property>
<property name="validator_data_type"></property> <property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property> <property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property> <property name="validator_type">wxDefaultValidator</property>
......
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Sep 11 2014) // C++ code generated with wxFormBuilder (version Jun 5 2014)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO "NOT" EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
......
...@@ -431,6 +431,7 @@ private: ...@@ -431,6 +431,7 @@ private:
* Any changes are updated in memory only and NOT to a file. The old component is * Any changes are updated in memory only and NOT to a file. The old component is
* deleted from the library and/or any aliases before the edited component is updated * deleted from the library and/or any aliases before the edited component is updated
* in the library. * in the library.
* @param aLib - the part library where the part must be saved.
* @param aPromptUser true to ask for confirmation, when the part_lib is already existing * @param aPromptUser true to ask for confirmation, when the part_lib is already existing
* in memory, false to save silently * in memory, false to save silently
* @return true if the part was saved, false if aborted by user * @return true if the part was saved, false if aborted by user
......
...@@ -211,6 +211,7 @@ public: ...@@ -211,6 +211,7 @@ public:
/** /**
* Function AnnotatePowerSymbols * Function AnnotatePowerSymbols
* annotates the power symbols only starting at \a aReference in the sheet path. * annotates the power symbols only starting at \a aReference in the sheet path.
* @param aLibs the library list to use
* @param aReference A pointer to the number for the reference designator of the * @param aReference A pointer to the number for the reference designator of the
* first power symbol to be annotated. If the pointer is NULL * first power symbol to be annotated. If the pointer is NULL
* the annotation starts at 1. The number is incremented for * the annotation starts at 1. The number is incremented for
...@@ -221,10 +222,12 @@ public: ...@@ -221,10 +222,12 @@ public:
/** /**
* Function GetComponents * Function GetComponents
* adds a SCH_REFERENCE() object to \a aReferences for each component in the sheet. * adds a SCH_REFERENCE() object to \a aReferences for each component in the sheet.
* @param aLibs the library list to use
* @param aReferences List of references to populate. * @param aReferences List of references to populate.
* @param aIncludePowerSymbols Set to false to only get normal components. * @param aIncludePowerSymbols : false to only get normal components.
*/ */
void GetComponents( PART_LIBS* aLibs, SCH_REFERENCE_LIST& aReferences, bool aIncludePowerSymbols = true ); void GetComponents( PART_LIBS* aLibs, SCH_REFERENCE_LIST& aReferences,
bool aIncludePowerSymbols = true );
/** /**
* Function SetFootprintField * Function SetFootprintField
...@@ -391,6 +394,7 @@ public: ...@@ -391,6 +394,7 @@ public:
/** /**
* Function AnnotatePowerSymbols * Function AnnotatePowerSymbols
* clear and annotates the entire hierarchy of the sheet path list. * clear and annotates the entire hierarchy of the sheet path list.
* @param aLib the library list to use
*/ */
void AnnotatePowerSymbols( PART_LIBS* aLib ); void AnnotatePowerSymbols( PART_LIBS* aLib );
...@@ -398,6 +402,7 @@ public: ...@@ -398,6 +402,7 @@ public:
* Function GetComponents * Function GetComponents
* adds a SCH_REFERENCE() object to \a aReferences for each component in the list * adds a SCH_REFERENCE() object to \a aReferences for each component in the list
* of sheets. * of sheets.
* @param aLibs the library list to use
* @param aReferences List of references to populate. * @param aReferences List of references to populate.
* @param aIncludePowerSymbols Set to false to only get normal components. * @param aIncludePowerSymbols Set to false to only get normal components.
*/ */
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
#include <dialogs/dialog_sch_sheet_props.h> #include <dialogs/dialog_sch_sheet_props.h>
#include <wildcards_and_files_ext.h> #include <wildcards_and_files_ext.h>
#include <project.h>
bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC ) bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC )
...@@ -85,7 +86,7 @@ bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC ) ...@@ -85,7 +86,7 @@ bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC )
// Duplicate sheet names are not valid. // Duplicate sheet names are not valid.
const SCH_SHEET* sheet = GetScreen()->GetSheet( dlg.GetSheetName() ); const SCH_SHEET* sheet = GetScreen()->GetSheet( dlg.GetSheetName() );
if( (sheet != NULL) && (sheet != aSheet) ) if( sheet && sheet != aSheet )
{ {
DisplayError( this, wxString::Format( _( "A sheet named \"%s\" already exists." ), DisplayError( this, wxString::Format( _( "A sheet named \"%s\" already exists." ),
GetChars( dlg.GetSheetName() ) ) ); GetChars( dlg.GetSheetName() ) ) );
...@@ -101,29 +102,36 @@ bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC ) ...@@ -101,29 +102,36 @@ bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC )
bool loadFromFile = false; bool loadFromFile = false;
SCH_SCREEN* useScreen = NULL; SCH_SCREEN* useScreen = NULL;
wxString newFullFilename = fileName.GetFullPath(); wxString newFilename = fileName.GetFullPath();
// Inside Eeschema, filenames are stored using unix notation
newFullFilename.Replace( wxT("\\"), wxT("/") ); // Search for a schematic file having the same filename
// already in use in the hierarchy or on disk, in order to reuse it.
if( !g_RootSheet->SearchHierarchy( newFilename, &useScreen ) )
{
// if user entered a relative path, allow that to stay, but do the
// file existence test with an absolute (full) path. This transformation
// is local to this scope, but is the same one used at load time later.
wxString absolute = Prj().AbsolutePath( newFilename );
// Search for a schematic file having the same filename exists, loadFromFile = wxFileExists( absolute );
// already in use in the hierarchy, or on disk, }
// in order to reuse it
if( !g_RootSheet->SearchHierarchy( newFullFilename, &useScreen ) ) // Inside Eeschema, filenames are stored using unix notation
loadFromFile = fileName.FileExists(); newFilename.Replace( wxT("\\"), wxT("/") );
if( aSheet->GetScreen() == NULL ) // New sheet. if( aSheet->GetScreen() == NULL ) // New sheet.
{ {
if( ( useScreen != NULL ) || loadFromFile ) // Load from existing file. if( useScreen || loadFromFile ) // Load from existing file.
{ {
if( useScreen != NULL ) if( useScreen != NULL )
{ {
msg.Printf( _( "A file named '%s' already exists in the current schematic hierarchy." ), msg.Printf( _( "A file named '%s' already exists in the current schematic hierarchy." ),
GetChars( newFullFilename ) ); GetChars( newFilename ) );
} }
else else
{ {
msg.Printf( _( "A file named '%s' already exists." ), msg.Printf( _( "A file named '%s' already exists." ),
GetChars( newFullFilename ) ); GetChars( newFilename ) );
} }
msg += _("\n\nDo you want to create a sheet with the contents of this file?" ); msg += _("\n\nDo you want to create a sheet with the contents of this file?" );
...@@ -139,7 +147,7 @@ bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC ) ...@@ -139,7 +147,7 @@ bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC )
else // New file. else // New file.
{ {
aSheet->SetScreen( new SCH_SCREEN( &Kiway() ) ); aSheet->SetScreen( new SCH_SCREEN( &Kiway() ) );
aSheet->GetScreen()->SetFileName( newFullFilename ); aSheet->GetScreen()->SetFileName( newFilename );
} }
} }
else // Existing sheet. else // Existing sheet.
...@@ -151,24 +159,24 @@ bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC ) ...@@ -151,24 +159,24 @@ bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC )
// to avoid issues under Windows, although under Unix // to avoid issues under Windows, although under Unix
// filenames are case sensitive. // filenames are case sensitive.
// But many users create schematic under both Unix and Windows // But many users create schematic under both Unix and Windows
if( newFullFilename.CmpNoCase( aSheet->GetFileName() ) != 0 ) if( newFilename.CmpNoCase( aSheet->GetFileName() ) != 0 )
{ {
// Sheet file name changes cannot be undone. // Sheet file name changes cannot be undone.
isUndoable = false; isUndoable = false;
msg = _( "Changing the sheet file name cannot be undone. " ); msg = _( "Changing the sheet file name cannot be undone. " );
if( ( useScreen != NULL ) || loadFromFile ) // Load from existing file. if( useScreen || loadFromFile ) // Load from existing file.
{ {
wxString tmp; wxString tmp;
if( useScreen != NULL ) if( useScreen != NULL )
{ {
tmp.Printf( _( "A file named <%s> already exists in the current schematic hierarchy." ), tmp.Printf( _( "A file named <%s> already exists in the current schematic hierarchy." ),
GetChars( newFullFilename ) ); GetChars( newFilename ) );
} }
else else
{ {
tmp.Printf( _( "A file named <%s> already exists." ), tmp.Printf( _( "A file named <%s> already exists." ),
GetChars( newFullFilename ) ); GetChars( newFilename ) );
} }
msg += tmp; msg += tmp;
...@@ -203,7 +211,7 @@ bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC ) ...@@ -203,7 +211,7 @@ bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC )
if( renameFile ) if( renameFile )
{ {
aSheet->GetScreen()->SetFileName( newFullFilename ); aSheet->GetScreen()->SetFileName( newFilename );
SaveEEFile( aSheet->GetScreen() ); SaveEEFile( aSheet->GetScreen() );
// If the the associated screen is shared by more than one sheet, remove the // If the the associated screen is shared by more than one sheet, remove the
...@@ -217,7 +225,7 @@ bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC ) ...@@ -217,7 +225,7 @@ bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC )
} }
} }
aSheet->SetFileName( newFullFilename ); aSheet->SetFileName( newFilename );
if( useScreen ) if( useScreen )
aSheet->SetScreen( useScreen ); aSheet->SetScreen( useScreen );
......
...@@ -49,8 +49,11 @@ public: ...@@ -49,8 +49,11 @@ public:
/** /**
* Constructor * Constructor
* @param aKiway
* @param aParent = the parent frame
* @param aFrameType must be given either FRAME_SCH_LIB_VIEWER or * @param aFrameType must be given either FRAME_SCH_LIB_VIEWER or
* FRAME_SCH_LIB_VIEWER_MODAL * FRAME_SCH_LIB_VIEWER_MODAL
* @param aLibrary = the library to open when starting (default = NULL)
*/ */
LIB_VIEW_FRAME( KIWAY* aKiway, wxWindow* aParent, LIB_VIEW_FRAME( KIWAY* aKiway, wxWindow* aParent,
FRAME_T aFrameType, PART_LIB* aLibrary = NULL ); FRAME_T aFrameType, PART_LIB* aLibrary = NULL );
...@@ -115,10 +118,11 @@ public: ...@@ -115,10 +118,11 @@ public:
/** /**
* Set the selected component. * Set the selected component.
* *
* @param the alias name of the component to be selected. * @param aComponentName : the name of the component to be selected.
*/ */
void SetSelectedComponent( const wxString& aComponentName ); void SetSelectedComponent( const wxString& aComponentName );
// Accessors:
void SetUnit( int aUnit ) { m_unit = aUnit; } void SetUnit( int aUnit ) { m_unit = aUnit; }
int GetUnit( void ) { return m_unit; } int GetUnit( void ) { return m_unit; }
......
...@@ -163,7 +163,7 @@ EDA_COLOR_T ColorFindNearest( const wxColour &aColor ); ...@@ -163,7 +163,7 @@ EDA_COLOR_T ColorFindNearest( const wxColour &aColor );
* Find the nearest color match * Find the nearest color match
* @param aR is the red component of the color to be matched (in range 0-255) * @param aR is the red component of the color to be matched (in range 0-255)
* @param aG is the green component of the color to be matched (in range 0-255) * @param aG is the green component of the color to be matched (in range 0-255)
* @param aG is the blue component of the color to be matched (in range 0-255) * @param aB is the blue component of the color to be matched (in range 0-255)
*/ */
EDA_COLOR_T ColorFindNearest( int aR, int aG, int aB ); EDA_COLOR_T ColorFindNearest( int aR, int aG, int aB );
......
...@@ -584,8 +584,8 @@ void SystemDirsAppend( SEARCH_STACK* aSearchStack ); ...@@ -584,8 +584,8 @@ void SystemDirsAppend( SEARCH_STACK* aSearchStack );
* <p> * <p>
* Return the KiCad help file with path and extension. * Return the KiCad help file with path and extension.
* Help files can be html (.html ext) or pdf (.pdf ext) files. * Help files can be html (.html ext) or pdf (.pdf ext) files.
* A <BaseName>.html file is searched and if not found, * A \<BaseName\>.html file is searched and if not found,
* <BaseName>.pdf file is searched in the same path. * \<BaseName\>.pdf file is searched in the same path.
* If the help file for the current locale is not found, an attempt to find * If the help file for the current locale is not found, an attempt to find
* the English version of the help file is made. * the English version of the help file is made.
* Help file is searched in directories in this order: * Help file is searched in directories in this order:
......
...@@ -199,9 +199,9 @@ public: ...@@ -199,9 +199,9 @@ public:
* Function FromHSV() * Function FromHSV()
* Changes currently used color to the one given by hue, saturation and value parameters. * Changes currently used color to the one given by hue, saturation and value parameters.
* *
* @param aOutH is hue component. * @param aInH is hue component.
* @param aOutS is saturation component. * @param aInS is saturation component.
* @param aOutV is value component. * @param aInV is value component.
*/ */
void FromHSV( double aInH, double aInS, double aInV ); void FromHSV( double aInH, double aInS, double aInV );
......
...@@ -44,13 +44,13 @@ public: ...@@ -44,13 +44,13 @@ public:
NONCACHED_CONTAINER( unsigned int aSize = defaultInitSize ); NONCACHED_CONTAINER( unsigned int aSize = defaultInitSize );
virtual ~NONCACHED_CONTAINER(); virtual ~NONCACHED_CONTAINER();
///< @copydoc VERTEX_CONTAINER::SetItem() ///< @copydoc VERTEX_CONTAINER::SetItem( VERTEX_ITEM* aItem )
virtual void SetItem( VERTEX_ITEM* aItem ); virtual void SetItem( VERTEX_ITEM* aItem );
///< @copydoc VERTEX_CONTAINER::Allocate() ///< @copydoc VERTEX_CONTAINER::Allocate( unsigned int aSize )
virtual VERTEX* Allocate( unsigned int aSize ); virtual VERTEX* Allocate( unsigned int aSize );
///< @copydoc VERTEX_CONTAINER::Delete() ///< @copydoc VERTEX_CONTAINER::Delete( VERTEX_ITEM* aItem )
void Delete( VERTEX_ITEM* aItem ) {}; void Delete( VERTEX_ITEM* aItem ) {};
///< @copydoc VERTEX_CONTAINER::Clear() ///< @copydoc VERTEX_CONTAINER::Clear()
......
...@@ -99,7 +99,7 @@ public: ...@@ -99,7 +99,7 @@ public:
/** /**
* Function GetVertices() * Function GetVertices()
* returns vertices stored at the specific offset. * returns vertices stored at the specific offset.
* @aOffset is the offset. * @param aOffset is the offset.
*/ */
virtual inline VERTEX* GetVertices( unsigned int aOffset ) const virtual inline VERTEX* GetVertices( unsigned int aOffset ) const
{ {
......
...@@ -50,7 +50,7 @@ public: ...@@ -50,7 +50,7 @@ public:
/** /**
* Function GetSize() * Function GetSize()
* Returns information about number of vertices stored. * Returns information about number of vertices stored.
* @param Number of vertices. * @return Number of vertices.
*/ */
inline unsigned int GetSize() const inline unsigned int GetSize() const
{ {
...@@ -69,7 +69,7 @@ public: ...@@ -69,7 +69,7 @@ public:
/** /**
* Function GetVertices() * Function GetVertices()
* Returns pointer to the data used by the VERTEX_ITEM. * areturn a pointer to the data used by the VERTEX_ITEM.
*/ */
VERTEX* GetVertices() const; VERTEX* GetVertices() const;
......
...@@ -123,7 +123,6 @@ public: ...@@ -123,7 +123,6 @@ public:
/// Find all within search rectangle /// Find all within search rectangle
/// \param a_min Min of search bounding rect /// \param a_min Min of search bounding rect
/// \param a_max Max of search bounding rect /// \param a_max Max of search bounding rect
/// \param a_searchResult Search result array. Caller should set grow size. Function will reset, not append to array.
/// \param a_resultCallback Callback function to return result. Callback should return 'true' to continue searching /// \param a_resultCallback Callback function to return result. Callback should return 'true' to continue searching
/// \param a_context User context to pass as parameter to a_resultCallback /// \param a_context User context to pass as parameter to a_resultCallback
/// \return Returns the number of entries found /// \return Returns the number of entries found
......
...@@ -112,8 +112,8 @@ public: ...@@ -112,8 +112,8 @@ public:
* @param aMTV minimum translation vector * @param aMTV minimum translation vector
* @return true, if there is a collision. * @return true, if there is a collision.
*/ */
virtual bool Collide( const SHAPE* aShape, int aClerance, VECTOR2I& aMTV ) const; virtual bool Collide( const SHAPE* aShape, int aClearance, VECTOR2I& aMTV ) const;
virtual bool Collide( const SHAPE* aShape, int aClerance = 0 ) const; virtual bool Collide( const SHAPE* aShape, int aClearance = 0 ) const;
/** /**
* Function Collide() * Function Collide()
...@@ -129,7 +129,7 @@ public: ...@@ -129,7 +129,7 @@ public:
* *
* Computes a bounding box of the shape, with a margin of aClearance * Computes a bounding box of the shape, with a margin of aClearance
* a collision. * a collision.
* @aClearance how much the bounding box is expanded wrs to the minimum enclosing rectangle * @param aClearance how much the bounding box is expanded wrs to the minimum enclosing rectangle
* for the shape. * for the shape.
* @return the bounding box. * @return the bounding box.
*/ */
......
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
* It is used by SHAPE_INDEX to get a SHAPE* from another type. * It is used by SHAPE_INDEX to get a SHAPE* from another type.
* By default relies on T::GetShape() method, should be specialized if the T object * By default relies on T::GetShape() method, should be specialized if the T object
* doesn't allow that method. * doesn't allow that method.
* @param object generic T object * @param aItem generic T object
* @return a SHAPE* object equivalent to object. * @return a SHAPE* object equivalent to object.
*/ */
template <class T> template <class T>
...@@ -59,7 +59,7 @@ const SHAPE* shapeFunctor( SHAPE* aItem ); ...@@ -59,7 +59,7 @@ const SHAPE* shapeFunctor( SHAPE* aItem );
* It is used by SHAPE_INDEX to get the bounding box of a generic T object. * It is used by SHAPE_INDEX to get the bounding box of a generic T object.
* By default relies on T::BBox() method, should be specialized if the T object * By default relies on T::BBox() method, should be specialized if the T object
* doesn't allow that method. * doesn't allow that method.
* @param object generic T object * @param aObject generic T object
* @return a BOX2I object containing the bounding box of the T object. * @return a BOX2I object containing the bounding box of the T object.
*/ */
template <class T> template <class T>
...@@ -75,8 +75,8 @@ BOX2I boundingBox( T aObject ) ...@@ -75,8 +75,8 @@ BOX2I boundingBox( T aObject )
* It is used by SHAPE_INDEX to implement Accept(). * It is used by SHAPE_INDEX to implement Accept().
* By default relies on V::operation() redefinition, should be specialized if V class * By default relies on V::operation() redefinition, should be specialized if V class
* doesn't have its () operation defined to accept T objects. * doesn't have its () operation defined to accept T objects.
* @param object generic T object * @param aObject generic T object
* @param visitor V visitor object * @param aVisitor V visitor object
*/ */
template <class T, class V> template <class T, class V>
void acceptVisitor( T aObject, V aVisitor ) void acceptVisitor( T aObject, V aVisitor )
...@@ -91,9 +91,9 @@ void acceptVisitor( T aObject, V aVisitor ) ...@@ -91,9 +91,9 @@ void acceptVisitor( T aObject, V aVisitor )
* It is used by SHAPE_INDEX to implement Query(). * It is used by SHAPE_INDEX to implement Query().
* By default relies on T::Collide(U) method, should be specialized if the T object * By default relies on T::Collide(U) method, should be specialized if the T object
* doesn't allow that method. * doesn't allow that method.
* @param object generic T object * @param aObject generic T object
* @param anotherObject generic U object * @param aAnotherObject generic U object
* @param minDistance minimum collision distance * @param aMinDistance minimum collision distance
* @return if object and anotherObject collide * @return if object and anotherObject collide
*/ */
template <class T, class U> template <class T, class U>
...@@ -126,7 +126,7 @@ class SHAPE_INDEX ...@@ -126,7 +126,7 @@ class SHAPE_INDEX
* Function Init() * Function Init()
* *
* Setup the internal tree iterator. * Setup the internal tree iterator.
* @param tree pointer to a RTREE object * @param aTree pointer to a RTREE object
*/ */
void Init( RTree<T, int, 2, float>* aTree ) void Init( RTree<T, int, 2, float>* aTree )
{ {
...@@ -138,7 +138,7 @@ class SHAPE_INDEX ...@@ -138,7 +138,7 @@ class SHAPE_INDEX
* Iterator constructor * Iterator constructor
* *
* Creates an iterator for the index object * Creates an iterator for the index object
* @param index SHAPE_INDEX object to iterate * @param aIndex SHAPE_INDEX object to iterate
*/ */
Iterator( SHAPE_INDEX* aIndex ) Iterator( SHAPE_INDEX* aIndex )
{ {
...@@ -244,7 +244,7 @@ class SHAPE_INDEX ...@@ -244,7 +244,7 @@ class SHAPE_INDEX
* Function Accept() * Function Accept()
* *
* Accepts a visitor for every SHAPE object contained in this INDEX. * Accepts a visitor for every SHAPE object contained in this INDEX.
* @param visitor Visitor object to be run * @param aVisitor Visitor object to be run
*/ */
template <class V> template <class V>
void Accept( V aVisitor ) void Accept( V aVisitor )
...@@ -271,9 +271,9 @@ class SHAPE_INDEX ...@@ -271,9 +271,9 @@ class SHAPE_INDEX
* Function Query() * Function Query()
* *
* Runs a callback on every SHAPE object contained in the bounding box of (shape). * Runs a callback on every SHAPE object contained in the bounding box of (shape).
* @param shape shape to search against * @param aShape shape to search against
* @param minDistance distance threshold * @param aMinDistance distance threshold
* @param visitor object to be invoked on every object contained in the search area. * @param aVisitor object to be invoked on every object contained in the search area.
*/ */
template <class V> template <class V>
int Query( const SHAPE *aShape, int aMinDistance, V& aVisitor, bool aExact ) int Query( const SHAPE *aShape, int aMinDistance, V& aVisitor, bool aExact )
......
...@@ -270,7 +270,7 @@ public: ...@@ -270,7 +270,7 @@ public:
* Function Collide() * Function Collide()
* *
* Checks if box aBox lies closer to us than aClearance. * Checks if box aBox lies closer to us than aClearance.
* @param aP the box to check for collisions with * @param aBox the box to check for collisions with
* @param aClearance minimum distance that does not qualify as a collision. * @param aClearance minimum distance that does not qualify as a collision.
* @return true, when a collision has been found * @return true, when a collision has been found
*/ */
......
...@@ -78,12 +78,12 @@ public: ...@@ -78,12 +78,12 @@ public:
* @param a00 is the component [0,0]. * @param a00 is the component [0,0].
* @param a01 is the component [0,1]. * @param a01 is the component [0,1].
* @param a02 is the component [0,2]. * @param a02 is the component [0,2].
* @param a10 is the component [1,0].
* @param a11 is the component [1,1]. * @param a11 is the component [1,1].
* @param a12 is the component [1,2]. * @param a12 is the component [1,2].
* @param a13 is the component [1,3].
* @param a20 is the component [2,0]. * @param a20 is the component [2,0].
* @param a21 is the component [2,1]. * @param a21 is the component [2,1].
* @param a00 is the component [2,2]. * @param a22 is the component [2,2].
*/ */
MATRIX3x3( T a00, T a01, T a02, T a10, T a11, T a12, T a20, T a21, T a22 ); MATRIX3x3( T a00, T a01, T a02, T a10, T a11, T a12, T a20, T a21, T a22 );
......
...@@ -133,7 +133,7 @@ public: ...@@ -133,7 +133,7 @@ public:
* Function SetHighlight * Function SetHighlight
* Turns on/off highlighting - it may be done for the active layer or the specified net. * Turns on/off highlighting - it may be done for the active layer or the specified net.
* @param aEnabled tells if highlighting should be enabled. * @param aEnabled tells if highlighting should be enabled.
* @param aNetCode is optional and if specified, turns on higlighting only for the net with * @param aNetcode is optional and if specified, turns on higlighting only for the net with
* number given as the parameter. * number given as the parameter.
*/ */
inline void SetHighlight( bool aEnabled, int aNetcode = -1 ) inline void SetHighlight( bool aEnabled, int aNetcode = -1 )
...@@ -180,7 +180,7 @@ public: ...@@ -180,7 +180,7 @@ public:
/** /**
* Function TranslateColor * Function TranslateColor
* Returns the color responding to the one of EDA_COLOR_T enum values. * Returns the color responding to the one of EDA_COLOR_T enum values.
* @param EDA_COLOR_T color equivalent. * @param aColor equivalent.
*/ */
inline const COLOR4D& TranslateColor( EDA_COLOR_T aColor ) inline const COLOR4D& TranslateColor( EDA_COLOR_T aColor )
{ {
......
...@@ -68,8 +68,8 @@ struct prof_counter ...@@ -68,8 +68,8 @@ struct prof_counter
/** /**
* Function prof_start * Function prof_start
* Begins code execution time counting for a given profiling counter. * Begins code execution time counting for a given profiling counter.
* @param cnt is the counter which should be started. * @param aCnt is the counter which should be started.
* @param use_rdtsc tells if processor's time-stamp counter should be used for time counting. * use_rdtsc tells if processor's time-stamp counter should be used for time counting.
* Otherwise is system tics method will be used. IMPORTANT: time-stamp counter should not * Otherwise is system tics method will be used. IMPORTANT: time-stamp counter should not
* be used on multicore machines executing threaded code. * be used on multicore machines executing threaded code.
*/ */
...@@ -81,7 +81,7 @@ static inline void prof_start( prof_counter* aCnt ) ...@@ -81,7 +81,7 @@ static inline void prof_start( prof_counter* aCnt )
/** /**
* Function prof_stop * Function prof_stop
* Ends code execution time counting for a given profiling counter. * Ends code execution time counting for a given profiling counter.
* @param cnt is the counter which should be stopped. * @param aCnt is the counter which should be stopped.
*/ */
static inline void prof_end( prof_counter* aCnt ) static inline void prof_end( prof_counter* aCnt )
{ {
......
...@@ -86,6 +86,13 @@ public: ...@@ -86,6 +86,13 @@ public:
*/ */
VTBL_ENTRY const wxString GetProjectFullName() const; VTBL_ENTRY const wxString GetProjectFullName() const;
/**
* Function GetProjectPath
* returns the full path of the project. This is the path
* of the *.pro file and will always be an absolute path, ending by a dir separator.
*/
VTBL_ENTRY const wxString GetProjectPath() const;
/** /**
* Function FootprintLibTblName * Function FootprintLibTblName
* returns the path and filename of this project's fp-lib-table, * returns the path and filename of this project's fp-lib-table,
...@@ -98,8 +105,8 @@ public: ...@@ -98,8 +105,8 @@ public:
* saves the current "project" parameters into the wxConfigBase* derivative. * saves the current "project" parameters into the wxConfigBase* derivative.
* Then the wxConfigBase derivative is written to the *.pro file for the project. * Then the wxConfigBase derivative is written to the *.pro file for the project.
* *
* @param aSearchS a SEARCH_STACK * @param aSList a SEARCH_STACK
* @param aGroupName * @param aGroupName is the name of the group inside the config which contains parameters
* @param aParams is a ptr vector of PARAM_CFG_BASE derivatives. * @param aParams is a ptr vector of PARAM_CFG_BASE derivatives.
* Saved parameters are the subset in this array having the .m_Setup member * Saved parameters are the subset in this array having the .m_Setup member
* set to false. * set to false.
...@@ -258,9 +265,9 @@ private: ...@@ -258,9 +265,9 @@ private:
* @param aProjectFileName is the *.pro file to open. * @param aProjectFileName is the *.pro file to open.
*/ */
wxConfigBase* configCreate( const SEARCH_STACK& aSList, wxConfigBase* configCreate( const SEARCH_STACK& aSList,
const wxString& aGroupName, const wxString& aFileName = wxEmptyString ); const wxString& aGroupName, const wxString& aProjectFileName = wxEmptyString );
wxFileName m_project_name; ///< <fullpath>/<basename>.pro wxFileName m_project_name; ///< \<fullpath\>/\<basename\>.pro
wxString m_pro_date_and_time; wxString m_pro_date_and_time;
/// @see this::SetRString(), GetRString(), and enum RSTRING_T. /// @see this::SetRString(), GetRString(), and enum RSTRING_T.
......
...@@ -58,8 +58,7 @@ int ...@@ -58,8 +58,7 @@ int
* Function StrPrintf * Function StrPrintf
* is like sprintf() but the output is returned in a std::string instead of to a * is like sprintf() but the output is returned in a std::string instead of to a
* character array. * character array.
* @param aResult is the string to append to, previous text is not clear()ed. * @param format is a printf() style format string.
* @param aFormat is a printf() style format string.
* @return std::string - the result of the sprintf(). * @return std::string - the result of the sprintf().
*/ */
std::string std::string
......
...@@ -107,7 +107,7 @@ protected: ...@@ -107,7 +107,7 @@ protected:
* Calls the library viewer to select component to import into schematic. * Calls the library viewer to select component to import into schematic.
* if the library viewer is currently running, it is closed and reopened * if the library viewer is currently running, it is closed and reopened
* in modal mode. * in modal mode.
* @param aPreslectedAlias Preselected component alias. NULL if none. * @param aPreselectedAlias Preselected component alias. NULL if none.
* @param aUnit Pointer to Unit-number. Input is the pre-selected unit, output * @param aUnit Pointer to Unit-number. Input is the pre-selected unit, output
* is the finally selected unit by the user. Can be NULL. * is the finally selected unit by the user. Can be NULL.
* @param aConvert Pointer to deMorgan conversion. Input is what is pre-selected, * @param aConvert Pointer to deMorgan conversion. Input is what is pre-selected,
......
...@@ -54,9 +54,9 @@ public: ...@@ -54,9 +54,9 @@ public:
* Constructor * Constructor
* *
* @param aToolMgr: tool manager instance the events will be sent to * @param aToolMgr: tool manager instance the events will be sent to
* @param aEditFrame: the frame wx events come from
*/ */
TOOL_DISPATCHER( TOOL_MANAGER* aToolMgr ); TOOL_DISPATCHER( TOOL_MANAGER* aToolMgr );
virtual ~TOOL_DISPATCHER(); virtual ~TOOL_DISPATCHER();
/** /**
......
...@@ -252,11 +252,12 @@ public: ...@@ -252,11 +252,12 @@ public:
/** /**
* Sets behaviour of the tool's context popup menu. * Sets behaviour of the tool's context popup menu.
* @param aTool - the parent tool
* @param aMenu - the menu structure, defined by the tool * @param aMenu - the menu structure, defined by the tool
* @param aTrigger - when the menu is activated: * @param aTrigger - when the menu is activated:
* CMENU_NOW: opens the menu right now * CMENU_NOW: opens the menu right now
* CMENU_BUTTON: opens the menu when RMB is pressed * CMENU_BUTTON: opens the menu when RMB is pressed
* CMENU_OFF: menu is disabled. * CMENU_OFF: menu is disabled.
* May be called from a coroutine context. * May be called from a coroutine context.
*/ */
void ScheduleContextMenu( TOOL_BASE* aTool, CONTEXT_MENU* aMenu, void ScheduleContextMenu( TOOL_BASE* aTool, CONTEXT_MENU* aMenu,
...@@ -309,7 +310,7 @@ private: ...@@ -309,7 +310,7 @@ private:
/** /**
* Function dispatchStandardEvents() * Function dispatchStandardEvents()
* Handles specific events, that are intended for TOOL_MANAGER rather than tools. * Handles specific events, that are intended for TOOL_MANAGER rather than tools.
* @aEvent is the event to be processed. * @param aEvent is the event to be processed.
* @return False if the event was processed and should not go any further. * @return False if the event was processed and should not go any further.
*/ */
bool dispatchStandardEvents( TOOL_EVENT& aEvent ); bool dispatchStandardEvents( TOOL_EVENT& aEvent );
...@@ -350,7 +351,7 @@ private: ...@@ -350,7 +351,7 @@ private:
* Makes a tool active, so it can receive events and react to them. Activated tool is pushed * Makes a tool active, so it can receive events and react to them. Activated tool is pushed
* on the active tools stack, so the last activated tool receives events first. * on the active tools stack, so the last activated tool receives events first.
* *
* @param aToolId is the name of tool to be run. * @param aName is the name of tool to be run.
*/ */
bool runTool( const std::string& aName ); bool runTool( const std::string& aName );
...@@ -359,7 +360,7 @@ private: ...@@ -359,7 +360,7 @@ private:
* Makes a tool active, so it can receive events and react to them. Activated tool is pushed * Makes a tool active, so it can receive events and react to them. Activated tool is pushed
* on the active tools stack, so the last activated tool receives events first. * on the active tools stack, so the last activated tool receives events first.
* *
* @param aToolId is the tool to be run. * @param aTool is the tool to be run.
*/ */
bool runTool( TOOL_BASE* aTool ); bool runTool( TOOL_BASE* aTool );
...@@ -379,7 +380,7 @@ private: ...@@ -379,7 +380,7 @@ private:
* Returns information about a tool registration status. * Returns information about a tool registration status.
* *
* @param aTool is the tool to be checked. * @param aTool is the tool to be checked.
* @return True if the tool is in the registered tools list, false otherwise. * @return true if the tool is in the registered tools list, false otherwise.
*/ */
bool isRegistered( TOOL_BASE* aTool ) const bool isRegistered( TOOL_BASE* aTool ) const
{ {
......
...@@ -65,7 +65,6 @@ public: ...@@ -65,7 +65,6 @@ public:
/** /**
* Constructor. * Constructor.
* @param aIsDynamic decides whether we are creating a static or a dynamic VIEW. * @param aIsDynamic decides whether we are creating a static or a dynamic VIEW.
* @param aUseGroups tells if items added to the VIEW should be stored in groups.
*/ */
VIEW( bool aIsDynamic = true ); VIEW( bool aIsDynamic = true );
...@@ -192,6 +191,7 @@ public: ...@@ -192,6 +191,7 @@ public:
* Function SetScale() * Function SetScale()
* Sets the scaling factor, zooming around a given anchor point. * Sets the scaling factor, zooming around a given anchor point.
* (depending on correct GAL unit length & DPI settings). * (depending on correct GAL unit length & DPI settings).
* @param aAnchor: the zooming anchor point
* @param aScale: the scale factor * @param aScale: the scale factor
*/ */
void SetScale( double aScale, const VECTOR2D& aAnchor ); void SetScale( double aScale, const VECTOR2D& aAnchor );
...@@ -235,7 +235,7 @@ public: ...@@ -235,7 +235,7 @@ public:
* Function ToWorld() * Function ToWorld()
* Converts a screen space one dimensional size to a one dimensional size in world * Converts a screen space one dimensional size to a one dimensional size in world
* space coordinates. * space coordinates.
* @param aCoord: the size to be converted * @param aSize : the size to be converted
*/ */
double ToWorld( double aSize ) const; double ToWorld( double aSize ) const;
...@@ -383,7 +383,7 @@ public: ...@@ -383,7 +383,7 @@ public:
* Enables or disables display of the top layer. When disabled - layers are rendered as usual * Enables or disables display of the top layer. When disabled - layers are rendered as usual
* with no influence from SetTopLayer function. Otherwise on the top there is displayed the * with no influence from SetTopLayer function. Otherwise on the top there is displayed the
* layer set previously with SetTopLayer function. * layer set previously with SetTopLayer function.
* @param aEnabled: whether to enable or disable display of the top layer. * @param aEnable whether to enable or disable display of the top layer.
*/ */
void EnableTopLayer( bool aEnable ); void EnableTopLayer( bool aEnable );
...@@ -574,7 +574,7 @@ private: ...@@ -574,7 +574,7 @@ private:
* Function draw() * Function draw()
* Draws a group of items on all layers that those items use. * Draws a group of items on all layers that those items use.
* *
* @param aItem is the group to be drawn. * @param aGroup is the group to be drawn.
* @param aImmediate dictates the way of drawing - it allows to force immediate drawing mode * @param aImmediate dictates the way of drawing - it allows to force immediate drawing mode
* for cached items. * for cached items.
*/ */
......
...@@ -125,7 +125,7 @@ public: ...@@ -125,7 +125,7 @@ public:
/** /**
* Function SetAutoPanMArgin() * Function SetAutoPanMArgin()
* Sets margin for autopanning (ie. the area when autopanning becomes active). * Sets margin for autopanning (ie. the area when autopanning becomes active).
* @param aSpeed is a new margin for autopanning. * @param aMargin is a new margin for autopanning.
*/ */
virtual void SetAutoPanMargin( float aMargin ) virtual void SetAutoPanMargin( float aMargin )
{ {
......
...@@ -68,7 +68,7 @@ public: ...@@ -68,7 +68,7 @@ public:
*/ */
virtual void SetValue( double aValue ); virtual void SetValue( double aValue );
/** /*
* Function GetValue * Function GetValue
* Returns the current value using specified units (if currently used units are different, then * Returns the current value using specified units (if currently used units are different, then
* they are converted first). * they are converted first).
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
#include <menus_helpers.h> #include <menus_helpers.h>
#define TreeFrameWidthEntry wxT( "LeftWinWidth" ) #define TREE_FRAME_WIDTH_ENTRY wxT( "LeftWinWidth" )
KICAD_MANAGER_FRAME::KICAD_MANAGER_FRAME( wxWindow* parent, KICAD_MANAGER_FRAME::KICAD_MANAGER_FRAME( wxWindow* parent,
...@@ -440,13 +440,11 @@ void KICAD_MANAGER_FRAME::OnRunCvpcb( wxCommandEvent& event ) ...@@ -440,13 +440,11 @@ void KICAD_MANAGER_FRAME::OnRunCvpcb( wxCommandEvent& event )
#include <wx/filefn.h> #include <wx/filefn.h>
void KICAD_MANAGER_FRAME::OnRunGerbview( wxCommandEvent& event ) void KICAD_MANAGER_FRAME::OnRunGerbview( wxCommandEvent& event )
{ {
// Gerbview is called without any file to open, because we do not know // Gerbview is called without any file to open, because we do not know
// the list and the name of files to open (if any...). // the list and the name of files to open (if any...).
// however we run it in the path of the project // however we run it in the path of the project
wxFileName fn( GetProjectFileName() );
wxString cwd = wxGetCwd(); wxString cwd = wxGetCwd();
wxSetWorkingDirectory( fn.GetPathWithSep() ); wxSetWorkingDirectory( Prj().GetProjectPath() );
Execute( this, GERBVIEW_EXE, wxEmptyString ); Execute( this, GERBVIEW_EXE, wxEmptyString );
wxSetWorkingDirectory( cwd ); wxSetWorkingDirectory( cwd );
} }
...@@ -470,7 +468,7 @@ void KICAD_MANAGER_FRAME::OnOpenFileInTextEditor( wxCommandEvent& event ) ...@@ -470,7 +468,7 @@ void KICAD_MANAGER_FRAME::OnOpenFileInTextEditor( wxCommandEvent& event )
#endif #endif
mask = _( "Text file (" ) + mask + wxT( ")|" ) + mask; mask = _( "Text file (" ) + mask + wxT( ")|" ) + mask;
wxString default_dir = wxFileName( Prj().GetProjectFullName() ).GetPathWithSep(); wxString default_dir = Prj().GetProjectPath();
wxFileDialog dlg( this, _( "Load File to Edit" ), default_dir, wxFileDialog dlg( this, _( "Load File to Edit" ), default_dir,
wxEmptyString, mask, wxFD_OPEN ); wxEmptyString, mask, wxFD_OPEN );
...@@ -509,14 +507,14 @@ void KICAD_MANAGER_FRAME::ClearMsg() ...@@ -509,14 +507,14 @@ void KICAD_MANAGER_FRAME::ClearMsg()
void KICAD_MANAGER_FRAME::LoadSettings( wxConfigBase* aCfg ) void KICAD_MANAGER_FRAME::LoadSettings( wxConfigBase* aCfg )
{ {
EDA_BASE_FRAME::LoadSettings( aCfg ); EDA_BASE_FRAME::LoadSettings( aCfg );
aCfg->Read( TreeFrameWidthEntry, &m_leftWinWidth ); aCfg->Read( TREE_FRAME_WIDTH_ENTRY, &m_leftWinWidth );
} }
void KICAD_MANAGER_FRAME::SaveSettings( wxConfigBase* aCfg ) void KICAD_MANAGER_FRAME::SaveSettings( wxConfigBase* aCfg )
{ {
EDA_BASE_FRAME::SaveSettings( aCfg ); EDA_BASE_FRAME::SaveSettings( aCfg );
aCfg->Write( TreeFrameWidthEntry, m_LeftWin->GetSize().x ); aCfg->Write( TREE_FRAME_WIDTH_ENTRY, m_LeftWin->GetSize().x );
} }
......
...@@ -95,7 +95,7 @@ void PCB_EDIT_FRAME::Autoroute( wxDC* DC, int mode ) ...@@ -95,7 +95,7 @@ void PCB_EDIT_FRAME::Autoroute( wxDC* DC, int mode )
Module = (MODULE*) GetScreen()->GetCurItem(); Module = (MODULE*) GetScreen()->GetCurItem();
if( (Module == NULL) || (Module->Type() != PCB_MODULE_T) ) if( (Module == NULL) || (Module->Type() != PCB_MODULE_T) )
{ {
wxMessageBox( _( "Module not selected" ) ); wxMessageBox( _( "Footprint not selected" ) );
return; return;
} }
break; break;
......
...@@ -136,7 +136,7 @@ void PCB_EDIT_FRAME::OnPlaceOrRouteFootprints( wxCommandEvent& event ) ...@@ -136,7 +136,7 @@ void PCB_EDIT_FRAME::OnPlaceOrRouteFootprints( wxCommandEvent& event )
case ID_POPUP_PCB_SPREAD_NEW_MODULES: case ID_POPUP_PCB_SPREAD_NEW_MODULES:
if( GetBoard()->m_Modules == NULL ) if( GetBoard()->m_Modules == NULL )
{ {
DisplayError( this, _( "No modules found!" ) ); DisplayError( this, _( "No footprint found!" ) );
return; return;
} }
......
...@@ -651,8 +651,8 @@ public: ...@@ -651,8 +651,8 @@ public:
* GetLayerName() if want the layer names of a specific BOARD, which could * GetLayerName() if want the layer names of a specific BOARD, which could
* be different than the default if the user has renamed any copper layers. * be different than the default if the user has renamed any copper layers.
* *
* @param aLayerNumber is the layer number to fetch * @param aLayerId is the layer identifier (index) to fetch
* @return const wxString - containing the layer name or "BAD INDEX" if aLayerNumber * @return const wxString - containing the layer name or "BAD INDEX" if aLayerId
* is not legal * is not legal
*/ */
static const wxString GetStandardLayerName( LAYER_ID aLayerId ) static const wxString GetStandardLayerName( LAYER_ID aLayerId )
......
...@@ -254,11 +254,9 @@ void TEXTE_MODULE::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, GR_DRAWMODE draw_mode, ...@@ -254,11 +254,9 @@ void TEXTE_MODULE::Draw( EDA_DRAW_PANEL* panel, wxDC* DC, GR_DRAWMODE draw_mode,
if( panel == NULL ) if( panel == NULL )
return; return;
MODULE* module = static_cast<MODULE*>( m_Parent ); /* parent must *not* be NULL (a footprint text without a footprint
/* parent must *not* be NULL (a module text without a footprint
parent has no sense) */ parent has no sense) */
wxASSERT( module ); wxASSERT( m_Parent );
BOARD* brd = GetBoard( ); BOARD* brd = GetBoard( );
...@@ -384,7 +382,7 @@ void TEXTE_MODULE::GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList ) ...@@ -384,7 +382,7 @@ void TEXTE_MODULE::GetMsgPanelInfo( std::vector< MSG_PANEL_ITEM >& aList )
}; };
Line = module->GetReference(); Line = module->GetReference();
aList.push_back( MSG_PANEL_ITEM( _( "Module" ), Line, DARKCYAN ) ); aList.push_back( MSG_PANEL_ITEM( _( "Footprint" ), Line, DARKCYAN ) );
Line = GetShownText(); Line = GetShownText();
aList.push_back( MSG_PANEL_ITEM( _( "Text" ), Line, BROWN ) ); aList.push_back( MSG_PANEL_ITEM( _( "Text" ), Line, BROWN ) );
......
...@@ -398,8 +398,8 @@ public: ...@@ -398,8 +398,8 @@ public:
* Function SetLayerPair * Function SetLayerPair
* For a via m_Layer contains the top layer, the other layer is in * For a via m_Layer contains the top layer, the other layer is in
* m_BottomLayer * m_BottomLayer
* @param top_layer = first layer connected by the via * @param aTopLayer = first layer connected by the via
* @param bottom_layer = last layer connected by the via * @param aBottomLayer = last layer connected by the via
*/ */
void SetLayerPair( LAYER_ID aTopLayer, LAYER_ID aBottomLayer ); void SetLayerPair( LAYER_ID aTopLayer, LAYER_ID aBottomLayer );
......
...@@ -235,7 +235,7 @@ public: ...@@ -235,7 +235,7 @@ public:
/** /**
* Function HitTest * Function HitTest
* tests if a point is near an outline edge or a corner of this zone. * tests if a point is near an outline edge or a corner of this zone.
* @param aRefPos A wxPoint to test * @param aPosition the wxPoint to test
* @return bool - true if a hit, else false * @return bool - true if a hit, else false
*/ */
virtual bool HitTest( const wxPoint& aPosition ) const; virtual bool HitTest( const wxPoint& aPosition ) const;
...@@ -244,7 +244,7 @@ public: ...@@ -244,7 +244,7 @@ public:
* Function HitTest * Function HitTest
* tests if a point is inside the zone area, i.e. inside the main outline * tests if a point is inside the zone area, i.e. inside the main outline
* and outside holes. * and outside holes.
* @param aRefPos A wxPoint to test * @param aPosition : the wxPoint to test
* @return bool - true if a hit, else false * @return bool - true if a hit, else false
*/ */
bool HitTestInsideZone( const wxPoint& aPosition ) const bool HitTestInsideZone( const wxPoint& aPosition ) const
......
...@@ -183,9 +183,8 @@ std::string FormatProbeItem( BOARD_ITEM* aItem ) ...@@ -183,9 +183,8 @@ std::string FormatProbeItem( BOARD_ITEM* aItem )
} }
/** /* Send a remote command to Eeschema via a socket,
* Send a remote command to Eeschema via a socket, * aSyncItem = item to be located on schematic (module, pin or text)
* @param objectToSync = item to be located on schematic (module, pin or text)
* Commands are * Commands are
* $PART: "reference" put cursor on component anchor * $PART: "reference" put cursor on component anchor
* $PART: "reference" $PAD: "pad number" put cursor on the component pin * $PART: "reference" $PAD: "pad number" put cursor on the component pin
......
...@@ -209,7 +209,7 @@ void DIALOG_NETLIST::OnTestFootprintsClick( wxCommandEvent& event ) ...@@ -209,7 +209,7 @@ void DIALOG_NETLIST::OnTestFootprintsClick( wxCommandEvent& event )
{ {
if( m_parent->GetBoard()->m_Modules == NULL ) if( m_parent->GetBoard()->m_Modules == NULL )
{ {
DisplayInfoMessage( this, _( "No modules" ) ); DisplayInfoMessage( this, _( "No footprints" ) );
return; return;
} }
...@@ -268,7 +268,7 @@ void DIALOG_NETLIST::OnTestFootprintsClick( wxCommandEvent& event ) ...@@ -268,7 +268,7 @@ void DIALOG_NETLIST::OnTestFootprintsClick( wxCommandEvent& event )
// Search for missing modules on board. // Search for missing modules on board.
if( missing.size() == 0 ) if( missing.size() == 0 )
list << wxT("<p><b>") << _( "No missing modules." ) << wxT("</b></p>"); list << wxT("<p><b>") << _( "No missing footprints." ) << wxT("</b></p>");
else else
{ {
list << wxT("<p><b>") << _( "Missing:" ) << wxT("</b></p>"); list << wxT("<p><b>") << _( "Missing:" ) << wxT("</b></p>");
...@@ -287,7 +287,7 @@ void DIALOG_NETLIST::OnTestFootprintsClick( wxCommandEvent& event ) ...@@ -287,7 +287,7 @@ void DIALOG_NETLIST::OnTestFootprintsClick( wxCommandEvent& event )
// Search for modules found on board but not in net list. // Search for modules found on board but not in net list.
if( notInNetlist.size() == 0 ) if( notInNetlist.size() == 0 )
list << wxT( "<p><b>" ) << _( "No extra modules." ) << wxT( "</b></p>" ); list << wxT( "<p><b>" ) << _( "No extra footprints." ) << wxT( "</b></p>" );
else else
{ {
list << wxT( "<p><b>" ) << _( "Not in Netlist:" ) << wxT( "</b></p>" ); list << wxT( "<p><b>" ) << _( "Not in Netlist:" ) << wxT( "</b></p>" );
...@@ -319,7 +319,7 @@ void DIALOG_NETLIST::OnTestFootprintsClick( wxCommandEvent& event ) ...@@ -319,7 +319,7 @@ void DIALOG_NETLIST::OnTestFootprintsClick( wxCommandEvent& event )
<< wxT( "</b></p>" ); << wxT( "</b></p>" );
} }
HTML_MESSAGE_BOX dlg( this, _( "Check Modules" ) ); HTML_MESSAGE_BOX dlg( this, _( "Check footprints" ) );
dlg.AddHTML_Text( list ); dlg.AddHTML_Text( list );
dlg.ShowModal(); dlg.ShowModal();
} }
......
...@@ -554,9 +554,9 @@ void PCB_EDIT_FRAME::GenFootprintsReport( wxCommandEvent& event ) ...@@ -554,9 +554,9 @@ void PCB_EDIT_FRAME::GenFootprintsReport( wxCommandEvent& event )
wxString msg; wxString msg;
if( success ) if( success )
{ {
msg.Printf( _( "Module report file created:\n'%s'" ), msg.Printf( _( "Footprint report file created:\n'%s'" ),
GetChars( fn.GetFullPath() ) ); GetChars( fn.GetFullPath() ) );
wxMessageBox( msg, _( "Module Report" ), wxICON_INFORMATION ); wxMessageBox( msg, _( "Footprint Report" ), wxICON_INFORMATION );
} }
else else
......
...@@ -181,6 +181,7 @@ public: ...@@ -181,6 +181,7 @@ public:
* @param aMirror = true to create mirrored coordinates (Y coordinates negated) * @param aMirror = true to create mirrored coordinates (Y coordinates negated)
* @param aMinimalHeader = true to use a minimal header (no comments, no info) * @param aMinimalHeader = true to use a minimal header (no comments, no info)
* @param aOffset = drill coordinates offset * @param aOffset = drill coordinates offset
* @param aMergePTHNPTH : true to create only one list which contains both PTH and NPTH
*/ */
void SetOptions( bool aMirror, bool aMinimalHeader, wxPoint aOffset, bool aMergePTHNPTH ) void SetOptions( bool aMirror, bool aMinimalHeader, wxPoint aOffset, bool aMergePTHNPTH )
{ {
...@@ -202,6 +203,7 @@ public: ...@@ -202,6 +203,7 @@ public:
* @param aGenerateNPTH_list : * @param aGenerateNPTH_list :
* true to create NPTH only list (with no plated holes) * true to create NPTH only list (with no plated holes)
* false to created plated holes list (with no NPTH ) * false to created plated holes list (with no NPTH )
* @param aMergePTHNPTH : true to create only one list which contains both PTH and NPTH
*/ */
void BuildHolesList( int aFirstLayer, int aLastLayer, void BuildHolesList( int aFirstLayer, int aLastLayer,
bool aExcludeThroughHoles, bool aExcludeThroughHoles,
......
...@@ -143,7 +143,7 @@ bool AskLoadBoardFileName( wxWindow* aParent, int* aCtl, wxString* aFileName, bo ...@@ -143,7 +143,7 @@ bool AskLoadBoardFileName( wxWindow* aParent, int* aCtl, wxString* aFileName, bo
* puts up a wxFileDialog asking for a BOARD filename to save. * puts up a wxFileDialog asking for a BOARD filename to save.
* *
* @param aParent is a wxFrame passed to wxFileDialog. * @param aParent is a wxFrame passed to wxFileDialog.
* @param aFullFileName on entry is a probable choice, on return is the * @param aFileName on entry is a probable choice, on return is the
* chosen full filename (includes path). * chosen full filename (includes path).
* *
* @return bool - true if chosen, else false if user aborted. * @return bool - true if chosen, else false if user aborted.
......
...@@ -206,16 +206,17 @@ bool InvokeDXFDialogBoardImport( PCB_BASE_FRAME* aCaller ) ...@@ -206,16 +206,17 @@ bool InvokeDXFDialogBoardImport( PCB_BASE_FRAME* aCaller )
bool InvokeDXFDialogModuleImport( PCB_BASE_FRAME* aCaller, MODULE* aModule ) bool InvokeDXFDialogModuleImport( PCB_BASE_FRAME* aCaller, MODULE* aModule )
{ {
wxASSERT( aModule );
DIALOG_DXF_IMPORT dlg( aCaller ); DIALOG_DXF_IMPORT dlg( aCaller );
bool success = ( dlg.ShowModal() == wxID_OK ); bool success = ( dlg.ShowModal() == wxID_OK );
if( success ) if( success )
{ {
const std::list<BOARD_ITEM*>& list = dlg.GetImportedItems(); const std::list<BOARD_ITEM*>& list = dlg.GetImportedItems();
MODULE* module = aCaller->GetBoard()->m_Modules;
KIGFX::VIEW* view = aCaller->GetGalCanvas()->GetView(); KIGFX::VIEW* view = aCaller->GetGalCanvas()->GetView();
aCaller->SaveCopyInUndoList( module, UR_MODEDIT ); aCaller->SaveCopyInUndoList( aModule, UR_MODEDIT );
aCaller->OnModify(); aCaller->OnModify();
std::list<BOARD_ITEM*>::const_iterator it, itEnd; std::list<BOARD_ITEM*>::const_iterator it, itEnd;
...@@ -230,9 +231,9 @@ bool InvokeDXFDialogModuleImport( PCB_BASE_FRAME* aCaller, MODULE* aModule ) ...@@ -230,9 +231,9 @@ bool InvokeDXFDialogModuleImport( PCB_BASE_FRAME* aCaller, MODULE* aModule )
{ {
case PCB_LINE_T: case PCB_LINE_T:
{ {
converted = new EDGE_MODULE( module ); converted = new EDGE_MODULE( aModule );
*static_cast<DRAWSEGMENT*>( converted ) = *static_cast<DRAWSEGMENT*>( item ); *static_cast<DRAWSEGMENT*>( converted ) = *static_cast<DRAWSEGMENT*>( item );
module->Add( converted ); aModule->Add( converted );
static_cast<EDGE_MODULE*>( converted )->SetLocalCoord(); static_cast<EDGE_MODULE*>( converted )->SetLocalCoord();
delete item; delete item;
break; break;
...@@ -240,20 +241,20 @@ bool InvokeDXFDialogModuleImport( PCB_BASE_FRAME* aCaller, MODULE* aModule ) ...@@ -240,20 +241,20 @@ bool InvokeDXFDialogModuleImport( PCB_BASE_FRAME* aCaller, MODULE* aModule )
case PCB_TEXT_T: case PCB_TEXT_T:
{ {
converted = new TEXTE_MODULE( module ); converted = new TEXTE_MODULE( aModule );
*static_cast<TEXTE_PCB*>( converted ) = *static_cast<TEXTE_PCB*>( item ); *static_cast<TEXTE_PCB*>( converted ) = *static_cast<TEXTE_PCB*>( item );
module->Add( module ); aModule->Add( converted );
static_cast<TEXTE_MODULE*>( converted )->SetLocalCoord(); static_cast<TEXTE_MODULE*>( converted )->SetLocalCoord();
delete item; delete item;
break; break;
} }
default: default:
assert( false ); // there is a type that is currently not handled here wxLogDebug( wxT( "type %d currently not handled" ), item->Type() );
break; break;
} }
if( aCaller->IsGalCanvasActive() ) if( aCaller->IsGalCanvasActive() && converted )
view->Add( converted ); view->Add( converted );
} }
} }
......
...@@ -64,6 +64,10 @@ class PCB_PLOT_PARAMS; ...@@ -64,6 +64,10 @@ class PCB_PLOT_PARAMS;
* Function InvokePcbLibTableEditor * Function InvokePcbLibTableEditor
* shows the modal DIALOG_FP_LIB_TABLE for purposes of editing two lib tables. * shows the modal DIALOG_FP_LIB_TABLE for purposes of editing two lib tables.
* *
* @param aCaller is the wxTopLevelWindow which is invoking the dialog.
* @param aGlobal is the common footprint library table file being edited.
* @param aProject is the project specific footprint library table file being edited.
*
* @return int - bits 0 and 1 tell whether a change was made to the @a aGlobal * @return int - bits 0 and 1 tell whether a change was made to the @a aGlobal
* and/or the @a aProject table, respectively. If set, table was modified. * and/or the @a aProject table, respectively. If set, table was modified.
*/ */
...@@ -76,7 +80,7 @@ int InvokePcbLibTableEditor( wxTopLevelWindow* aCaller, FP_LIB_TABLE* aGlobal, F ...@@ -76,7 +80,7 @@ int InvokePcbLibTableEditor( wxTopLevelWindow* aCaller, FP_LIB_TABLE* aGlobal, F
* @param aCaller is the wxTopLevelWindow which is invoking the dialog. * @param aCaller is the wxTopLevelWindow which is invoking the dialog.
* @param aNickname is the footprint library whose options are being edited. * @param aNickname is the footprint library whose options are being edited.
* @param aPluginType is something that will pass through IO_MGR::EnumFromStr(). * @param aPluginType is something that will pass through IO_MGR::EnumFromStr().
* @param aOptionsIn is the options string on calling into this function. * @param aOptions is the options string on calling into this function.
* @param aResult is where to put the result of the editing. * @param aResult is where to put the result of the editing.
*/ */
void InvokePluginOptionsEditor( wxTopLevelWindow* aCaller, const wxString& aNickname, void InvokePluginOptionsEditor( wxTopLevelWindow* aCaller, const wxString& aNickname,
...@@ -93,9 +97,10 @@ bool InvokeDXFDialogBoardImport( PCB_BASE_FRAME* aCaller ); ...@@ -93,9 +97,10 @@ bool InvokeDXFDialogBoardImport( PCB_BASE_FRAME* aCaller );
/** /**
* Function InvokeDXFDialogModuleImport * Function InvokeDXFDialogModuleImport
* shows the modal DIALOG_DXF_IMPORT for importing a DXF file.to a module. * shows the modal DIALOG_DXF_IMPORT for importing a DXF file as footprint outlines.
* *
* @param aCaller is the wxTopLevelWindow which is invoking the dialog. * @param aCaller is the wxTopLevelWindow which is invoking the dialog.
* @param aModule is the footprint currently edited.
* @return true if the import was made. * @return true if the import was made.
*/ */
bool InvokeDXFDialogModuleImport( PCB_BASE_FRAME* aCaller, MODULE* aModule ); bool InvokeDXFDialogModuleImport( PCB_BASE_FRAME* aCaller, MODULE* aModule );
...@@ -103,10 +108,20 @@ bool InvokeDXFDialogModuleImport( PCB_BASE_FRAME* aCaller, MODULE* aModule ); ...@@ -103,10 +108,20 @@ bool InvokeDXFDialogModuleImport( PCB_BASE_FRAME* aCaller, MODULE* aModule );
/** /**
* Function InvokeLayerSetup * Function InvokeLayerSetup
* shows the layer setup dialog * shows the layer setup dialog
* @param aCaller is the wxTopLevelWindow which is invoking the dialog.
* @param aBoard is the currently edited board.
* @return bool - true if user pressed OK (did not abort), else false. * @return bool - true if user pressed OK (did not abort), else false.
*/ */
bool InvokeLayerSetup( wxTopLevelWindow* aCaller, BOARD* aBoard ); bool InvokeLayerSetup( wxTopLevelWindow* aCaller, BOARD* aBoard );
/**
* Function InvokeSVGPrint
* shows the SVG print dialog
* @param aCaller is the wxTopLevelWindow which is invoking the dialog.
* @param aBoard is the currently edited board.
* @param aSettings is the current pcb plot parameters.
* @return bool - true if user pressed OK (did not abort), else false.
*/
bool InvokeSVGPrint( wxTopLevelWindow* aCaller, BOARD* aBoard, PCB_PLOT_PARAMS* aSettings ); bool InvokeSVGPrint( wxTopLevelWindow* aCaller, BOARD* aBoard, PCB_PLOT_PARAMS* aSettings );
#endif // INVOKE_A_DIALOG_H_ #endif // INVOKE_A_DIALOG_H_
...@@ -415,10 +415,10 @@ wxString PCB_BASE_FRAME::SelectFootprint( EDA_DRAW_FRAME* aWindow, ...@@ -415,10 +415,10 @@ wxString PCB_BASE_FRAME::SelectFootprint( EDA_DRAW_FRAME* aWindow,
{ {
wxArrayString headers; wxArrayString headers;
headers.Add( _( "Module" ) ); headers.Add( _( "Footprint" ) );
headers.Add( _( "Library" ) ); headers.Add( _( "Library" ) );
msg.Printf( _( "Modules [%d items]" ), (int) rows.size() ); msg.Printf( _( "Footprints [%d items]" ), (int) rows.size() );
EDA_LIST_DIALOG dlg( aWindow, msg, headers, rows, oldName, DisplayCmpDoc ); EDA_LIST_DIALOG dlg( aWindow, msg, headers, rows, oldName, DisplayCmpDoc );
......
...@@ -148,7 +148,7 @@ MODULE* PCB_EDIT_FRAME::ListAndSelectModuleName() ...@@ -148,7 +148,7 @@ MODULE* PCB_EDIT_FRAME::ListAndSelectModuleName()
{ {
if( GetBoard()->m_Modules == NULL ) if( GetBoard()->m_Modules == NULL )
{ {
DisplayError( this, _( "No Modules" ) ); DisplayError( this, _( "No footprints" ) );
return 0; return 0;
} }
......
...@@ -89,7 +89,7 @@ public: ...@@ -89,7 +89,7 @@ public:
/** /**
* Function Clone() * Function Clone()
* *
* Returns a deep copy of the item * Returns a deep copy of the item
*/ */
virtual PNS_ITEM* Clone() const = 0; virtual PNS_ITEM* Clone() const = 0;
...@@ -111,17 +111,17 @@ public: ...@@ -111,17 +111,17 @@ public:
* *
* Returns the type (kind) of the item * Returns the type (kind) of the item
*/ */
PnsKind Kind() const PnsKind Kind() const
{ {
return m_kind; return m_kind;
} }
/** /**
* Function OfKind() * Function OfKind()
* *
* Returns true if the item's type matches the mask aKindMask. * Returns true if the item's type matches the mask aKindMask.
*/ */
bool OfKind( int aKindMask ) const bool OfKind( int aKindMask ) const
{ {
return ( aKindMask & m_kind ) != 0; return ( aKindMask & m_kind ) != 0;
} }
...@@ -138,19 +138,19 @@ public: ...@@ -138,19 +138,19 @@ public:
* *
* Sets the corresponding parent object in the host application's model. * Sets the corresponding parent object in the host application's model.
*/ */
void SetParent( BOARD_CONNECTED_ITEM* aParent ) void SetParent( BOARD_CONNECTED_ITEM* aParent )
{ {
m_parent = aParent; m_parent = aParent;
} }
/** /**
* Function Parent() * Function Parent()
* *
* Returns the corresponding parent object in the host application's model. * Returns the corresponding parent object in the host application's model.
*/ */
BOARD_CONNECTED_ITEM* Parent() const BOARD_CONNECTED_ITEM* Parent() const
{ {
return m_parent; return m_parent;
} }
/** /**
...@@ -158,9 +158,9 @@ public: ...@@ -158,9 +158,9 @@ public:
* *
* Sets the item's net to aNet * Sets the item's net to aNet
*/ */
void SetNet( int aNet ) void SetNet( int aNet )
{ {
m_net = aNet; m_net = aNet;
} }
/** /**
...@@ -168,9 +168,9 @@ public: ...@@ -168,9 +168,9 @@ public:
* *
* Returns the item's net. * Returns the item's net.
*/ */
int Net() const int Net() const
{ {
return m_net; return m_net;
} }
/** /**
...@@ -178,11 +178,11 @@ public: ...@@ -178,11 +178,11 @@ public:
* *
* Sets the layers spanned by the item to aLayers. * Sets the layers spanned by the item to aLayers.
*/ */
void SetLayers( const PNS_LAYERSET& aLayers ) void SetLayers( const PNS_LAYERSET& aLayers )
{ {
m_layers = aLayers; m_layers = aLayers;
} }
/** /**
* Function SetLayer() * Function SetLayer()
* *
...@@ -193,23 +193,23 @@ public: ...@@ -193,23 +193,23 @@ public:
m_layers = PNS_LAYERSET( aLayer, aLayer ); m_layers = PNS_LAYERSET( aLayer, aLayer );
} }
/** /**
* Function Layers() * Function Layers()
* *
* Returns the contiguous set of layers spanned by the item. * Returns the contiguous set of layers spanned by the item.
*/ */
const PNS_LAYERSET& Layers() const const PNS_LAYERSET& Layers() const
{ {
return m_layers; return m_layers;
} }
/** /**
* Function Layer() * Function Layer()
* *
* Returns the item's layer, for single-layered items only. * Returns the item's layer, for single-layered items only.
*/ */
virtual int Layer() const virtual int Layer() const
{ {
return Layers().Start(); return Layers().Start();
} }
...@@ -227,27 +227,27 @@ public: ...@@ -227,27 +227,27 @@ public:
/** /**
* Functon SetOwner() * Functon SetOwner()
* *
* Sets the node that owns this item. An item can belong to a single * Sets the node that owns this item. An item can belong to a single
* PNS_NODE or stay unowned. * PNS_NODE or stay unowned.
*/ */
void SetOwner( PNS_NODE* aOwner ) void SetOwner( PNS_NODE* aOwner )
{ {
m_owner = aOwner; m_owner = aOwner;
} }
/** /**
* Function BelongsTo() * Function BelongsTo()
* *
* Returns true if the item is owned by the node aNode. * @return true if the item is owned by the node aNode.
*/ */
bool BelongsTo( PNS_NODE* aNode ) const bool BelongsTo( PNS_NODE* aNode ) const
{ {
return m_owner == aNode; return m_owner == aNode;
} }
/** /**
* Function Owner() * Function Owner()
* *
* Returns the owner of this item, or NULL if there's none. * Returns the owner of this item, or NULL if there's none.
*/ */
PNS_NODE* Owner() const { return m_owner; } PNS_NODE* Owner() const { return m_owner; }
...@@ -255,7 +255,7 @@ public: ...@@ -255,7 +255,7 @@ public:
/** /**
* Function Collide() * Function Collide()
* *
* Checks for a collision (clearance violation) with between us and item aOther. * Checks for a collision (clearance violation) with between us and item aOther.
* Collision checking takes all PCB stuff into accound (layers, nets, DRC rules). * Collision checking takes all PCB stuff into accound (layers, nets, DRC rules).
* Optionally returns a minimum translation vector for force propagation * Optionally returns a minimum translation vector for force propagation
* algorithm. * algorithm.
...@@ -264,7 +264,7 @@ public: ...@@ -264,7 +264,7 @@ public:
* @param aClearance desired clearance * @param aClearance desired clearance
* @param aNeedMTV when true, the minimum translation vector is calculated * @param aNeedMTV when true, the minimum translation vector is calculated
* @param aMTV the minimum translation vector * @param aMTV the minimum translation vector
* @param true, if a collision was found. * @return true, if a collision was found.
*/ */
virtual bool Collide( const PNS_ITEM* aOther, int aClearance, bool aNeedMTV, virtual bool Collide( const PNS_ITEM* aOther, int aClearance, bool aNeedMTV,
VECTOR2I& aMTV ) const; VECTOR2I& aMTV ) const;
...@@ -292,17 +292,17 @@ public: ...@@ -292,17 +292,17 @@ public:
return NULL; return NULL;
} }
virtual void Mark(int aMarker) virtual void Mark(int aMarker)
{ {
m_marker = aMarker; m_marker = aMarker;
} }
virtual void Unmark () virtual void Unmark ()
{ {
m_marker = 0; m_marker = 0;
} }
virtual int Marker() const virtual int Marker() const
{ {
return m_marker; return m_marker;
} }
...@@ -312,19 +312,19 @@ public: ...@@ -312,19 +312,19 @@ public:
m_rank = aRank; m_rank = aRank;
} }
virtual int Rank() const virtual int Rank() const
{ {
return m_rank; return m_rank;
} }
virtual VECTOR2I Anchor( int n ) const virtual VECTOR2I Anchor( int n ) const
{ {
return VECTOR2I (); return VECTOR2I ();
} }
virtual int AnchorCount() const virtual int AnchorCount() const
{ {
return 0; return 0;
} }
private: private:
......
...@@ -99,7 +99,7 @@ public: ...@@ -99,7 +99,7 @@ public:
typedef boost::optional<PNS_OBSTACLE> OPT_OBSTACLE; typedef boost::optional<PNS_OBSTACLE> OPT_OBSTACLE;
typedef std::vector<PNS_ITEM*> ITEM_VECTOR; typedef std::vector<PNS_ITEM*> ITEM_VECTOR;
typedef std::vector<PNS_OBSTACLE> OBSTACLES; typedef std::vector<PNS_OBSTACLE> OBSTACLES;
PNS_NODE (); PNS_NODE ();
~PNS_NODE (); ~PNS_NODE ();
...@@ -131,12 +131,12 @@ public: ...@@ -131,12 +131,12 @@ public:
} }
///> Returns the number of nodes in the inheritance chain (wrs to the root node) ///> Returns the number of nodes in the inheritance chain (wrs to the root node)
int Depth() const int Depth() const
{ {
return m_depth; return m_depth;
} }
/** /**
* Function QueryColliding() * Function QueryColliding()
* *
* Finds items collliding (closer than clearance) with the item aItem. * Finds items collliding (closer than clearance) with the item aItem.
...@@ -150,7 +150,7 @@ public: ...@@ -150,7 +150,7 @@ public:
OBSTACLES& aObstacles, OBSTACLES& aObstacles,
int aKindMask = PNS_ITEM::ANY, int aKindMask = PNS_ITEM::ANY,
int aLimitCount = -1 ); int aLimitCount = -1 );
/** /**
* Function NearestObstacle() * Function NearestObstacle()
* *
...@@ -163,7 +163,7 @@ public: ...@@ -163,7 +163,7 @@ public:
OPT_OBSTACLE NearestObstacle( const PNS_LINE* aItem, OPT_OBSTACLE NearestObstacle( const PNS_LINE* aItem,
int aKindMask = PNS_ITEM::ANY ); int aKindMask = PNS_ITEM::ANY );
/** /**
* Function CheckColliding() * Function CheckColliding()
* *
* Checks if the item collides with anything else in the world, * Checks if the item collides with anything else in the world,
...@@ -174,9 +174,9 @@ public: ...@@ -174,9 +174,9 @@ public:
*/ */
OPT_OBSTACLE CheckColliding( const PNS_ITEM* aItem, OPT_OBSTACLE CheckColliding( const PNS_ITEM* aItem,
int aKindMask = PNS_ITEM::ANY ); int aKindMask = PNS_ITEM::ANY );
/**
/**
* Function CheckColliding() * Function CheckColliding()
* *
* Checks if any item in the set collides with anything else in the world, * Checks if any item in the set collides with anything else in the world,
...@@ -189,12 +189,13 @@ public: ...@@ -189,12 +189,13 @@ public:
int aKindMask = PNS_ITEM::ANY ); int aKindMask = PNS_ITEM::ANY );
/** /**
* Function CheckColliding() * Function CheckColliding()
* *
* Checks if any item in the set collides with anything else in the world, * Checks if 2 items collide.
* and if found, returns the obstacle. * and if found, returns the obstacle.
* @param aSet set of items to find collisions with * @param aItemA first item to find collisions with
* @param aItemB second item to find collisions with
* @param aKindMask mask of obstacle types to take into account * @param aKindMask mask of obstacle types to take into account
* @return the obstacle, if found, otherwise empty. * @return the obstacle, if found, otherwise empty.
*/ */
...@@ -202,7 +203,7 @@ public: ...@@ -202,7 +203,7 @@ public:
const PNS_ITEM* aItemB, const PNS_ITEM* aItemB,
int aKindMask = PNS_ITEM::ANY ); int aKindMask = PNS_ITEM::ANY );
/** /**
* Function HitTest() * Function HitTest()
* *
* Finds all items that contain the point aPoint. * Finds all items that contain the point aPoint.
...@@ -214,22 +215,22 @@ public: ...@@ -214,22 +215,22 @@ public:
/** /**
* Function Add() * Function Add()
* *
* Adds an item to the current node. * Adds an item to the current node.
* @param aItem item to add * @param aItem item to add
* @param aAllowRedundant if true, duplicate items are allowed (e.g. a segment or via * @param aAllowRedundant if true, duplicate items are allowed (e.g. a segment or via
* at the same coordinates as an existing one) * at the same coordinates as an existing one)
*/ */
void Add( PNS_ITEM* aItem, bool aAllowRedundant = false ); void Add( PNS_ITEM* aItem, bool aAllowRedundant = false );
/** /**
* Function Remove() * Function Remove()
* *
* Just as the name says, removes an item from this branch. * Just as the name says, removes an item from this branch.
* @param aItem item to remove * @param aItem item to remove
*/ */
void Remove( PNS_ITEM* aItem ); void Remove( PNS_ITEM* aItem );
/** /**
* Function Replace() * Function Replace()
* *
* Just as the name says, replaces an item with another one. * Just as the name says, replaces an item with another one.
...@@ -248,10 +249,10 @@ public: ...@@ -248,10 +249,10 @@ public:
*/ */
PNS_NODE* Branch(); PNS_NODE* Branch();
/** /**
* Function AssembleLine() * Function AssembleLine()
* *
* Follows the joint map to assemble a line connecting two non-trivial * Follows the joint map to assemble a line connecting two non-trivial
* joints starting from segment aSeg. * joints starting from segment aSeg.
* @param aSeg the initial segment * @param aSeg the initial segment
* @param aOriginSegmentIndex index of aSeg in the resulting line * @param aOriginSegmentIndex index of aSeg in the resulting line
...@@ -271,7 +272,7 @@ public: ...@@ -271,7 +272,7 @@ public:
* @param aAdded added items * @param aAdded added items
*/ */
void GetUpdatedItems( ITEM_VECTOR& aRemoved, ITEM_VECTOR& aAdded ); void GetUpdatedItems( ITEM_VECTOR& aRemoved, ITEM_VECTOR& aAdded );
/** /**
* Function Commit() * Function Commit()
* *
...@@ -313,14 +314,14 @@ public: ...@@ -313,14 +314,14 @@ public:
///> finds the joints corresponding to the ends of line aLine ///> finds the joints corresponding to the ends of line aLine
void FindLineEnds( PNS_LINE* aLine, PNS_JOINT& aA, PNS_JOINT& aB ); void FindLineEnds( PNS_LINE* aLine, PNS_JOINT& aA, PNS_JOINT& aB );
///> Destroys all child nodes. Applicable only to the root node. ///> Destroys all child nodes. Applicable only to the root node.
void KillChildren(); void KillChildren();
void AllItemsInNet( int aNet, std::set<PNS_ITEM*>& aItems ); void AllItemsInNet( int aNet, std::set<PNS_ITEM*>& aItems );
void ClearRanks(); void ClearRanks();
int FindByMarker( int aMarker, PNS_ITEMSET& aItems ); int FindByMarker( int aMarker, PNS_ITEMSET& aItems );
int RemoveByMarker( int aMarker ); int RemoveByMarker( int aMarker );
...@@ -334,7 +335,7 @@ private: ...@@ -334,7 +335,7 @@ private:
PNS_NODE& operator=( const PNS_NODE& aB ); PNS_NODE& operator=( const PNS_NODE& aB );
///> tries to find matching joint and creates a new one if not found ///> tries to find matching joint and creates a new one if not found
PNS_JOINT& touchJoint( const VECTOR2I& aPos, PNS_JOINT& touchJoint( const VECTOR2I& aPos,
const PNS_LAYERSET& aLayers, const PNS_LAYERSET& aLayers,
int aNet ); int aNet );
......
...@@ -184,8 +184,8 @@ public: ...@@ -184,8 +184,8 @@ public:
* Constructor. * Constructor.
* *
* @param aConstrained is the point that is put under constrain. * @param aConstrained is the point that is put under constrain.
* @parama aCenter is the point that is the center of the circle. * @param aCenter is the point that is the center of the circle.
* @parama aEnd is the point that decides on the radius of the circle. * @param aEnd is the point that decides on the radius of the circle.
*/ */
EC_CIRCLE( EDIT_POINT& aConstrained, const EDIT_POINT& aCenter, const EDIT_POINT& aEnd ) : EC_CIRCLE( EDIT_POINT& aConstrained, const EDIT_POINT& aCenter, const EDIT_POINT& aEnd ) :
EDIT_CONSTRAINT<EDIT_POINT>( aConstrained ), m_center( aCenter ), m_end( aEnd ) EDIT_CONSTRAINT<EDIT_POINT>( aConstrained ), m_center( aCenter ), m_end( aEnd )
......
...@@ -391,7 +391,7 @@ bool DIALOG_EXCHANGE_MODULE::Change_1_Module( MODULE* aModule, ...@@ -391,7 +391,7 @@ bool DIALOG_EXCHANGE_MODULE::Change_1_Module( MODULE* aModule,
FPID oldFootprintFPID = aModule->GetFPID(); FPID oldFootprintFPID = aModule->GetFPID();
// Load module. // Load module.
line.Printf( _( "Change module '%s' (from '%s') to '%s'" ), line.Printf( _( "Change footprint '%s' (from '%s') to '%s'" ),
GetChars( aModule->GetReference() ), GetChars( aModule->GetReference() ),
oldFootprintFPID.Format().c_str(), oldFootprintFPID.Format().c_str(),
aNewFootprintFPID.Format().c_str() ); aNewFootprintFPID.Format().c_str() );
...@@ -519,7 +519,7 @@ void PCB_EDIT_FRAME::RecreateCmpFileFromBoard( wxCommandEvent& aEvent ) ...@@ -519,7 +519,7 @@ void PCB_EDIT_FRAME::RecreateCmpFileFromBoard( wxCommandEvent& aEvent )
if( module == NULL ) if( module == NULL )
{ {
DisplayError( this, _( "No Modules!" ) ); DisplayError( this, _( "No footprints!" ) );
return; return;
} }
......
...@@ -49,17 +49,17 @@ struct Point; ...@@ -49,17 +49,17 @@ struct Point;
struct Edge; struct Edge;
class Triangle; class Triangle;
class Sweep class Sweep
{ {
public: public:
/** /**
* Triangulate * Triangulate
* *
* @param tcx * @param tcx
*/ */
void Triangulate(SweepContext& tcx); void Triangulate(SweepContext& tcx);
/** /**
* Destructor - clean up memory * Destructor - clean up memory
*/ */
...@@ -69,7 +69,7 @@ private: ...@@ -69,7 +69,7 @@ private:
/** /**
* Start sweeping the Y-sorted point set from bottom to top * Start sweeping the Y-sorted point set from bottom to top
* *
* @param tcx * @param tcx
*/ */
void SweepPoints(SweepContext& tcx); void SweepPoints(SweepContext& tcx);
...@@ -86,8 +86,8 @@ private: ...@@ -86,8 +86,8 @@ private:
Node& PointEvent(SweepContext& tcx, Point& point); Node& PointEvent(SweepContext& tcx, Point& point);
/** /**
* *
* *
* @param tcx * @param tcx
* @param edge * @param edge
* @param node * @param node
...@@ -98,7 +98,7 @@ private: ...@@ -98,7 +98,7 @@ private:
/** /**
* Creates a new front triangle and legalize it * Creates a new front triangle and legalize it
* *
* @param tcx * @param tcx
* @param point * @param point
* @param node * @param node
...@@ -136,10 +136,10 @@ private: ...@@ -136,10 +136,10 @@ private:
* a,b and c<br> * a,b and c<br>
* d is outside B if orient2d(a,b,d) or orient2d(c,a,d) is CW<br> * d is outside B if orient2d(a,b,d) or orient2d(c,a,d) is CW<br>
* This preknowledge gives us a way to optimize the incircle test * This preknowledge gives us a way to optimize the incircle test
* @param a - triangle point, opposite d * @param pa - triangle point, opposite d
* @param b - triangle point * @param pb - triangle point
* @param c - triangle point * @param pc - triangle point
* @param d - point opposite a * @param pd - point opposite a
* @return true if d is inside circle, false if on circle edge * @return true if d is inside circle, false if on circle edge
*/ */
bool Incircle(Point& pa, Point& pb, Point& pc, Point& pd); bool Incircle(Point& pa, Point& pb, Point& pc, Point& pd);
...@@ -168,8 +168,8 @@ private: ...@@ -168,8 +168,8 @@ private:
* @param n * @param n
*/ */
void FillAdvancingFront(SweepContext& tcx, Node& n); void FillAdvancingFront(SweepContext& tcx, Node& n);
// Decision-making about when to Fill hole. // Decision-making about when to Fill hole.
// Contributed by ToolmakerSteve2 // Contributed by ToolmakerSteve2
bool LargeHole_DontFill(Node* node); bool LargeHole_DontFill(Node* node);
bool AngleExceeds90Degrees(Point* origin, Point* pa, Point* pb); bool AngleExceeds90Degrees(Point* origin, Point* pa, Point* pb);
...@@ -204,7 +204,6 @@ private: ...@@ -204,7 +204,6 @@ private:
* *
* @param tcx * @param tcx
* @param node - bottom_node * @param node - bottom_node
* @param cnt - counter used to alternate on even and odd numbers
*/ */
void FillBasinReq(SweepContext& tcx, Node* node); void FillBasinReq(SweepContext& tcx, Node* node);
...@@ -235,22 +234,22 @@ private: ...@@ -235,22 +234,22 @@ private:
/** /**
* After a flip we have two triangles and know that only one will still be * After a flip we have two triangles and know that only one will still be
* intersecting the edge. So decide which to contiune with and legalize the other * intersecting the edge. So decide which to contiune with and legalize the other
* *
* @param tcx * @param tcx
* @param o - should be the result of an orient2d( eq, op, ep ) * @param o - should be the result of an orient2d( eq, op, ep )
* @param t - triangle 1 * @param t - triangle 1
* @param ot - triangle 2 * @param ot - triangle 2
* @param p - a point shared by both triangles * @param p - a point shared by both triangles
* @param op - another point shared by both triangles * @param op - another point shared by both triangles
* @return returns the triangle still intersecting the edge * @return returns the triangle still intersecting the edge
*/ */
Triangle& NextFlipTriangle(SweepContext& tcx, int o, Triangle& t, Triangle& ot, Point& p, Point& op); Triangle& NextFlipTriangle(SweepContext& tcx, int o, Triangle& t, Triangle& ot, Point& p, Point& op);
/** /**
* When we need to traverse from one triangle to the next we need * When we need to traverse from one triangle to the next we need
* the point in current triangle that is the opposite point to the next * the point in current triangle that is the opposite point to the next
* triangle. * triangle.
* *
* @param ep * @param ep
* @param eq * @param eq
* @param ot * @param ot
...@@ -261,10 +260,10 @@ private: ...@@ -261,10 +260,10 @@ private:
/** /**
* Scan part of the FlipScan algorithm<br> * Scan part of the FlipScan algorithm<br>
* When a triangle pair isn't flippable we will scan for the next * When a triangle pair isn't flippable we will scan for the next
* point that is inside the flip triangle scan area. When found * point that is inside the flip triangle scan area. When found
* we generate a new flipEdgeEvent * we generate a new flipEdgeEvent
* *
* @param tcx * @param tcx
* @param ep - last point on the edge we are traversing * @param ep - last point on the edge we are traversing
* @param eq - first point on the edge we are traversing * @param eq - first point on the edge we are traversing
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment