Commit 8c75adb8 authored by jean-pierre charras's avatar jean-pierre charras

Kicad manager:

* Use the recent wxFileSystemWatcher to automatically update the tree project when a file is created/deleted/renamed in the project directory
(and if the file type is usually shown by the manager.)
Needs wxWidgets 2.9.4 or more recent.
* Also code cleanup, dead code or useless code removed.
parents 6789e622 6f72aaec
This diff is collapsed.
...@@ -12,25 +12,21 @@ public: ...@@ -12,25 +12,21 @@ public:
TreeFileType m_Type; // = TREE_PROJECT, TREE_DIRECTORY ... TreeFileType m_Type; // = TREE_PROJECT, TREE_DIRECTORY ...
wxString m_FileName; // Filename for a file, or directory name wxString m_FileName; // Filename for a file, or directory name
bool m_IsRootFile; // True if m_Filename is a root schematic (same name as project) bool m_IsRootFile; // True if m_Filename is a root schematic (same name as project)
bool m_WasPopulated; // True the name is a directory, and its containt was read bool m_WasPopulated; // True the name is a directory, and its content was read
private: private:
wxTreeCtrl* m_Parent; wxTreeCtrl* m_parent;
wxMenu m_fileMenu; wxMenu m_fileMenu;
int m_State; int m_state;
public: public:
TREEPROJECT_ITEM( TreeFileType type, const wxString& data, TREEPROJECT_ITEM( TreeFileType type, const wxString& data,
wxTreeCtrl* parent ); wxTreeCtrl* parent );
TREEPROJECT_ITEM() : m_Parent( NULL ) { } TREEPROJECT_ITEM() : m_parent( NULL ) { }
TREEPROJECT_ITEM( const TREEPROJECT_ITEM& src ) : TREEPROJECT_ITEM( const TREEPROJECT_ITEM& src ) :
m_Type( src.m_Type ), m_Type( src.m_Type ), m_FileName( src.m_FileName ), m_parent( src.m_parent )
m_FileName( src.m_FileName ),
m_Parent( src.m_Parent )
{ {
SetState( src.m_State ); SetState( src.m_state );
m_WasPopulated = false; m_WasPopulated = false;
} }
...@@ -39,28 +35,23 @@ public: ...@@ -39,28 +35,23 @@ public:
return m_Type; return m_Type;
} }
void SetType( TreeFileType aType ) void SetType( TreeFileType aType )
{ {
m_Type = aType; m_Type = aType;
} }
wxString GetFileName() const wxString GetFileName() const
{ {
return m_FileName; return m_FileName;
} }
void SetFileName( const wxString& name ) void SetFileName( const wxString& name )
{ {
m_FileName = name; m_FileName = name;
} }
wxString GetDir() const; wxString GetDir() const;
void OnRename( wxTreeEvent& event, bool check = true );
bool Rename( const wxString& name, bool check = true ); bool Rename( const wxString& name, bool check = true );
bool Delete( bool check = true ); bool Delete( bool check = true );
void Move( TREEPROJECT_ITEM* dest ); void Move( TREEPROJECT_ITEM* dest );
...@@ -71,7 +62,5 @@ public: ...@@ -71,7 +62,5 @@ public:
return &m_fileMenu; return &m_fileMenu;
} }
void SetState( int state ); void SetState( int state );
}; };
...@@ -45,7 +45,7 @@ IMPLEMENT_ABSTRACT_CLASS( TREEPROJECTFILES, wxTreeCtrl ) ...@@ -45,7 +45,7 @@ IMPLEMENT_ABSTRACT_CLASS( TREEPROJECTFILES, wxTreeCtrl )
TREEPROJECTFILES::TREEPROJECTFILES( TREE_PROJECT_FRAME* parent ) : TREEPROJECTFILES::TREEPROJECTFILES( TREE_PROJECT_FRAME* parent ) :
wxTreeCtrl( parent, ID_PROJECT_TREE, wxTreeCtrl( parent, ID_PROJECT_TREE,
wxDefaultPosition, wxDefaultSize, wxDefaultPosition, wxDefaultSize,
wxTR_HAS_BUTTONS | wxTR_EDIT_LABELS, wxDefaultValidator, wxTR_HAS_BUTTONS, wxDefaultValidator,
wxT( "EDATreeCtrl" ) ) wxT( "EDATreeCtrl" ) )
{ {
m_Parent = parent; m_Parent = parent;
......
...@@ -31,12 +31,6 @@ ...@@ -31,12 +31,6 @@
#include <fctsys.h> #include <fctsys.h>
#include <appl_wxstruct.h> #include <appl_wxstruct.h>
#ifdef USE_SPLASH_IMAGE
#define SPLASH_IMAGE logo_kicad.png
#include "wx/splash.h"
#include "wx/mediactrl.h"
#endif
#include <kicad.h> #include <kicad.h>
#include <tree_project_frame.h> #include <tree_project_frame.h>
#include <wildcards_and_files_ext.h> #include <wildcards_and_files_ext.h>
...@@ -45,12 +39,6 @@ ...@@ -45,12 +39,6 @@
const wxString g_KicadPrjFilenameExtension( wxT( ".pro" ) ); const wxString g_KicadPrjFilenameExtension( wxT( ".pro" ) );
/* Import functions */
char* GetFileName( char* FullPathName );
void ShowLogo( char* FonteFileName );
/* Local functions */
/************************************/ /************************************/
/* Called to initialize the program */ /* Called to initialize the program */
/************************************/ /************************************/
...@@ -113,7 +101,8 @@ bool EDA_APP::OnInit() ...@@ -113,7 +101,8 @@ bool EDA_APP::OnInit()
wxFileName namelessProject( wxGetCwd(), NAMELESS_PROJECT, ProjectFileExtension ); wxFileName namelessProject( wxGetCwd(), NAMELESS_PROJECT, ProjectFileExtension );
frame = new KICAD_MANAGER_FRAME( NULL, wxT( "KiCad" ), frame = new KICAD_MANAGER_FRAME( NULL, wxT( "KiCad" ),
wxPoint( 30, 20 ), wxSize( 600, 400 ) ); wxDefaultPosition, wxDefaultSize );
SetTopWindow( frame );
if( argc > 1 ) if( argc > 1 )
{ {
...@@ -141,38 +130,6 @@ bool EDA_APP::OnInit() ...@@ -141,38 +130,6 @@ bool EDA_APP::OnInit()
frame->OnLoadProject( cmd ); frame->OnLoadProject( cmd );
} }
wxString title = GetTitle() + wxT( " " ) + GetBuildVersion() +
wxT( " " ) + frame->m_ProjectFileName.GetFullPath();
if( !namelessProject.IsDirWritable() )
title += _( " [Read Only]" );
frame->SetTitle( title );
frame->ReCreateMenuBar();
frame->RecreateBaseHToolbar();
frame->m_LeftWin->ReCreateTreePrj();
SetTopWindow( frame );
/* Splash screen logo */
#ifdef USE_SPLASH_IMAGE
wxBitmap bmp;
wxString binDir = GetTraits()->GetStandardPaths().GetExecutablePath() +
wxFileName::GetPathSeparator();
if( bmp.LoadFile( binDir + _T( "logokicad.png" ), wxBITMAP_TYPE_PNG ) )
{
wxSplashScreen* splash = new wxSplashScreen( splash_screen,
wxSPLASH_CENTRE_ON_SCREEN | wxSPLASH_TIMEOUT,
3000,
frame,
wxID_ANY,
wxDefaultPosition,
wxDefaultSize,
wxSIMPLE_BORDER | wxSTAY_ON_TOP );
}
#endif /* USE_SPLASH_IMAGE */
frame->Show( true ); frame->Show( true );
frame->Raise(); frame->Raise();
......
...@@ -15,6 +15,12 @@ ...@@ -15,6 +15,12 @@
#include <wxstruct.h> #include <wxstruct.h>
#include <appl_wxstruct.h> #include <appl_wxstruct.h>
// With a recent wxWidget, we can use the wxFileSystemWatcherEvent
// to monitor files add/remove/rename in tree project
#if wxCHECK_VERSION( 2, 9, 4 )
#define KICAD_USE_FILES_WATCHER
#endif
extern const wxString g_KicadPrjFilenameExtension; extern const wxString g_KicadPrjFilenameExtension;
class RIGHT_KM_FRAME; class RIGHT_KM_FRAME;
...@@ -77,7 +83,8 @@ enum id_kicad_frm { ...@@ -77,7 +83,8 @@ enum id_kicad_frm {
ID_SELECT_PREFERED_PDF_BROWSER, ID_SELECT_PREFERED_PDF_BROWSER,
ID_SELECT_DEFAULT_PDF_BROWSER, ID_SELECT_DEFAULT_PDF_BROWSER,
ID_SAVE_AND_ZIP_FILES, ID_SAVE_AND_ZIP_FILES,
ID_READ_ZIP_ARCHIVE ID_READ_ZIP_ARCHIVE,
ID_INIT_WATCHED_PATHS
}; };
...@@ -175,6 +182,15 @@ public: KICAD_MANAGER_FRAME( wxWindow* parent, const wxString& title, ...@@ -175,6 +182,15 @@ public: KICAD_MANAGER_FRAME( wxWindow* parent, const wxString& title,
*/ */
void SaveSettings(); void SaveSettings();
#ifdef KICAD_USE_FILES_WATCHER
void FileWatcherReset();
/**
* Called by sending a event with id = ID_INIT_WATCHED_PATHS
* rebuild the list of wahtched paths
*/
void OnChangeWatchedPaths(wxCommandEvent& aEvent );
#endif
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
}; };
......
...@@ -89,6 +89,7 @@ KICAD_MANAGER_FRAME::KICAD_MANAGER_FRAME( wxWindow* parent, ...@@ -89,6 +89,7 @@ KICAD_MANAGER_FRAME::KICAD_MANAGER_FRAME( wxWindow* parent,
PrintMsg( line ); PrintMsg( line );
RecreateBaseHToolbar(); RecreateBaseHToolbar();
ReCreateMenuBar();
m_auimgr.SetManagedWindow( this ); m_auimgr.SetManagedWindow( this );
...@@ -258,8 +259,9 @@ void KICAD_MANAGER_FRAME::OnOpenFileInTextEditor( wxCommandEvent& event ) ...@@ -258,8 +259,9 @@ void KICAD_MANAGER_FRAME::OnOpenFileInTextEditor( wxCommandEvent& event )
#endif #endif
mask = _( "Text file (" ) + mask + wxT( ")|" ) + mask; mask = _( "Text file (" ) + mask + wxT( ")|" ) + mask;
wxString default_dir = wxGetCwd();
wxFileDialog dlg( this, _( "Load File to Edit" ), wxGetCwd(), wxFileDialog dlg( this, _( "Load File to Edit" ), default_dir,
wxEmptyString, mask, wxFD_OPEN ); wxEmptyString, mask, wxFD_OPEN );
if( dlg.ShowModal() == wxID_CANCEL ) if( dlg.ShowModal() == wxID_CANCEL )
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include <appl_wxstruct.h> #include <appl_wxstruct.h>
#include <kicad.h> #include <kicad.h>
#include <menus_helpers.h> #include <menus_helpers.h>
#include <tree_project_frame.h>
/* Menubar and toolbar event table */ /* Menubar and toolbar event table */
BEGIN_EVENT_TABLE( KICAD_MANAGER_FRAME, EDA_BASE_FRAME ) BEGIN_EVENT_TABLE( KICAD_MANAGER_FRAME, EDA_BASE_FRAME )
...@@ -67,9 +68,13 @@ BEGIN_EVENT_TABLE( KICAD_MANAGER_FRAME, EDA_BASE_FRAME ) ...@@ -67,9 +68,13 @@ BEGIN_EVENT_TABLE( KICAD_MANAGER_FRAME, EDA_BASE_FRAME )
/* Range menu events */ /* Range menu events */
EVT_MENU_RANGE( ID_LANGUAGE_CHOICE, ID_LANGUAGE_CHOICE_END, KICAD_MANAGER_FRAME::SetLanguage ) EVT_MENU_RANGE( ID_LANGUAGE_CHOICE, ID_LANGUAGE_CHOICE_END, KICAD_MANAGER_FRAME::SetLanguage )
EVT_MENU_RANGE( wxID_FILE1, wxID_FILE9, KICAD_MANAGER_FRAME::OnFileHistory ) EVT_MENU_RANGE( wxID_FILE1, wxID_FILE9, KICAD_MANAGER_FRAME::OnFileHistory )
// Special functions
#ifdef KICAD_USE_FILES_WATCHER
EVT_MENU( ID_INIT_WATCHED_PATHS, KICAD_MANAGER_FRAME::OnChangeWatchedPaths )
#endif
/* Button events */ /* Button events */
EVT_BUTTON( ID_TO_PCB, KICAD_MANAGER_FRAME::OnRunPcbNew ) EVT_BUTTON( ID_TO_PCB, KICAD_MANAGER_FRAME::OnRunPcbNew )
EVT_BUTTON( ID_TO_CVPCB, KICAD_MANAGER_FRAME::OnRunCvpcb ) EVT_BUTTON( ID_TO_CVPCB, KICAD_MANAGER_FRAME::OnRunCvpcb )
......
...@@ -148,13 +148,14 @@ void KICAD_MANAGER_FRAME::OnLoadProject( wxCommandEvent& event ) ...@@ -148,13 +148,14 @@ void KICAD_MANAGER_FRAME::OnLoadProject( wxCommandEvent& event )
{ {
int style; int style;
wxString title; wxString title;
bool newProject = ( event.GetId() == ID_NEW_PROJECT ) ||
( event.GetId() == ID_NEW_PROJECT_FROM_TEMPLATE );
ClearMsg(); ClearMsg();
if( event.GetId() != wxID_ANY ) if( event.GetId() != wxID_ANY )
{ {
if( ( event.GetId() == ID_NEW_PROJECT ) || if( newProject )
( event.GetId() == ID_NEW_PROJECT_FROM_TEMPLATE ) )
{ {
title = _( "Create New Project" ); title = _( "Create New Project" );
style = wxFD_SAVE | wxFD_OVERWRITE_PROMPT; style = wxFD_SAVE | wxFD_OVERWRITE_PROMPT;
...@@ -165,15 +166,16 @@ void KICAD_MANAGER_FRAME::OnLoadProject( wxCommandEvent& event ) ...@@ -165,15 +166,16 @@ void KICAD_MANAGER_FRAME::OnLoadProject( wxCommandEvent& event )
style = wxFD_OPEN | wxFD_FILE_MUST_EXIST; style = wxFD_OPEN | wxFD_FILE_MUST_EXIST;
} }
wxFileDialog dlg( this, title, wxGetCwd(), wxEmptyString, ProjectFileWildcard, style ); wxString default_dir = wxGetCwd();
wxFileDialog dlg( this, title, default_dir, wxEmptyString,
ProjectFileWildcard, style );
if( dlg.ShowModal() == wxID_CANCEL ) if( dlg.ShowModal() == wxID_CANCEL )
return; return;
m_ProjectFileName = dlg.GetPath(); m_ProjectFileName = dlg.GetPath();
if( ( event.GetId() == ID_NEW_PROJECT ) || if( newProject )
( event.GetId() == ID_NEW_PROJECT_FROM_TEMPLATE ) )
{ {
if ( !m_ProjectFileName.GetFullPath().EndsWith( g_KicadPrjFilenameExtension ) ) if ( !m_ProjectFileName.GetFullPath().EndsWith( g_KicadPrjFilenameExtension ) )
{ {
...@@ -221,11 +223,17 @@ void KICAD_MANAGER_FRAME::OnLoadProject( wxCommandEvent& event ) ...@@ -221,11 +223,17 @@ void KICAD_MANAGER_FRAME::OnLoadProject( wxCommandEvent& event )
SetTitle( title ); SetTitle( title );
UpdateFileHistory( m_ProjectFileName.GetFullPath() ); UpdateFileHistory( m_ProjectFileName.GetFullPath() );
m_LeftWin->ReCreateTreePrj(); m_LeftWin->ReCreateTreePrj();
#ifdef KICAD_USE_FILES_WATCHER
// Rebuild the list of watched paths.
// however this is possible only when the main loop event handler is running,
// so we use it to rub the rebuild function.
wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED, ID_INIT_WATCHED_PATHS );
wxPostEvent( this, cmd);
#endif
PrintMsg( _( "Working dir: " ) + m_ProjectFileName.GetPath() + PrintMsg( _( "Working dir: " ) + m_ProjectFileName.GetPath() +
_( "\nProject: " ) + m_ProjectFileName.GetFullName() + _( "\nProject: " ) + m_ProjectFileName.GetFullName() +
wxT( "\n" ) ); wxT( "\n" ) );
} }
......
...@@ -161,7 +161,8 @@ bool PROJECT_TEMPLATE::CreateProject( wxFileName& aNewProjectPath ) ...@@ -161,7 +161,8 @@ bool PROJECT_TEMPLATE::CreateProject( wxFileName& aNewProjectPath )
wxString* PROJECT_TEMPLATE::GetTitle(void) wxString* PROJECT_TEMPLATE::GetTitle(void)
{ {
wxFileInputStream input( GetHtmlFile().GetFullPath() ); wxFileInputStream input( GetHtmlFile().GetFullPath() );
wxTextInputStream text( input, wxT( "\x9" ), wxConvUTF8 ); wxString separator( wxT( "\x9" ) );
wxTextInputStream text( input, separator, wxConvUTF8 );
/* Open HTML file and get the text between the title tags */ /* Open HTML file and get the text between the title tags */
if( title == wxEmptyString ) if( title == wxEmptyString )
......
This diff is collapsed.
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
/* /*
* This program source code file is part of KiCad, a free EDA CAD application. * This program source code file is part of KiCad, a free EDA CAD application.
* *
* Copyright (C) 1992-2009 Jean-Pierre Charras, jean-pierre.charras@gipsa-lab.inpg.fr * Copyright (C) 1992-2012 Jean-Pierre Charras, jp.charras at wanadoo.fr
* Copyright (C) 1992-2009 KiCad Developers, see change_log.txt for contributors. * Copyright (C) 1992-2012 KiCad Developers, see change_log.txt for contributors.
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
...@@ -29,6 +29,12 @@ ...@@ -29,6 +29,12 @@
#ifndef TREEPRJ_FRAME_H #ifndef TREEPRJ_FRAME_H
#define TREEPRJ_FRAME_H #define TREEPRJ_FRAME_H
#include <kicad.h>
#ifdef KICAD_USE_FILES_WATCHER
#include <wx/fswatcher.h>
#endif
class TREEPROJECT_ITEM; class TREEPROJECT_ITEM;
/** class TREE_PROJECT_FRAME /** class TREE_PROJECT_FRAME
...@@ -36,17 +42,40 @@ class TREEPROJECT_ITEM; ...@@ -36,17 +42,40 @@ class TREEPROJECT_ITEM;
*/ */
class TREE_PROJECT_FRAME : public wxSashLayoutWindow class TREE_PROJECT_FRAME : public wxSashLayoutWindow
{ {
friend class TREEPROJECT_ITEM;
public:
KICAD_MANAGER_FRAME* m_Parent;
TREEPROJECTFILES* m_TreeProject;
wxTreeItemId m_root;
private: private:
std::vector<wxMenu*> m_ContextMenus; std::vector<wxMenu*> m_ContextMenus;
std::vector<wxString> m_Filters; std::vector<wxString> m_filters;
wxMenu* m_PopupMenu; wxMenu* m_PopupMenu;
wxCursor m_DragCursor; wxCursor m_DragCursor;
wxCursor m_Default; wxCursor m_Default;
#ifdef KICAD_USE_FILES_WATCHER
wxFileSystemWatcher* m_watcher; // file system watcher (since wxWidgets 2.9.2)
#endif
public:
TREE_PROJECT_FRAME( KICAD_MANAGER_FRAME* parent );
~TREE_PROJECT_FRAME();
void ReCreateTreePrj();
#ifdef KICAD_USE_FILES_WATCHER
/**
* Reinit the watched paths
* Should be called after opening a new project to
* rebuild the list of watched paths.
* Should be called *atfer* the main loop event handler is started
*/
void FileWatcherReset();
#endif
protected: protected:
wxMenu* GetContextMenu( int type ); wxMenu* GetContextMenu( int type );
static wxString GetFileExt( TreeFileType type );
static wxString GetFileWildcard( TreeFileType type );
/** /**
* Function GetSelectedData * Function GetSelectedData
...@@ -55,38 +84,44 @@ protected: ...@@ -55,38 +84,44 @@ protected:
* because when expanding, collapsing an item this item is not selected * because when expanding, collapsing an item this item is not selected
*/ */
TREEPROJECT_ITEM* GetSelectedData(); TREEPROJECT_ITEM* GetSelectedData();
/** /**
* Function GetItemIdData * Function GetItemIdData
* return the item data corresponding to a wxTreeItemId identifier * return the item data corresponding to a wxTreeItemId identifier
* @param aId = the wxTreeItemId identifier. * @param aId = the wxTreeItemId identifier.
* @return a TREEPROJECT_ITEM pointer correspondinfg to item id aId * @return a TREEPROJECT_ITEM pointer correspondinfg to item id aId
*/ */
TREEPROJECT_ITEM* GetItemIdData(wxTreeItemId aId); TREEPROJECT_ITEM* GetItemIdData( wxTreeItemId aId );
public:
KICAD_MANAGER_FRAME* m_Parent;
TREEPROJECTFILES* m_TreeProject;
wxTreeItemId m_root; private:
public:
static wxString GetFileExt( TreeFileType type );
static wxString GetFileWildcard( TreeFileType type );
TREE_PROJECT_FRAME( KICAD_MANAGER_FRAME* parent );
~TREE_PROJECT_FRAME();
void OnSelect( wxTreeEvent& Event ); void OnSelect( wxTreeEvent& Event );
void OnExpand( wxTreeEvent& Event ); void OnExpand( wxTreeEvent& Event );
void OnRenameAsk( wxTreeEvent& Event );
void OnRename( wxTreeEvent& Event );
void OnDragStart( wxTreeEvent& event ); void OnDragStart( wxTreeEvent& event );
void OnDragEnd( wxTreeEvent& event ); void OnDragEnd( wxTreeEvent& event );
void OnRight( wxTreeEvent& Event ); void OnRight( wxTreeEvent& Event );
void ReCreateTreePrj();
void OnTxtEdit( wxCommandEvent& event ); /**
* Function OnOpenSelectedFileWithTextEditor
* Called via the popup menu, when right clicking on a file name
* Call the text editor to open the selected file
* in the tree project
*/
void OnOpenSelectedFileWithTextEditor( wxCommandEvent& event );
/**
* Function OnDeleteFile
* Called via the popup menu, when right clicking on a file name
* or a directory name to delete the selected file or directory
* in the tree project
*/
void OnDeleteFile( wxCommandEvent& event ); void OnDeleteFile( wxCommandEvent& event );
/**
* Function OnRenameFile
* Called via the popup menu, when right clicking on a file name
* or a directory name to rename the selected file or directory
* in the tree project
*/
void OnRenameFile( wxCommandEvent& event ); void OnRenameFile( wxCommandEvent& event );
/** /**
...@@ -96,22 +131,51 @@ public: ...@@ -96,22 +131,51 @@ public:
*/ */
void OnCreateNewDirectory( wxCommandEvent& event ); void OnCreateNewDirectory( wxCommandEvent& event );
void ClearFilters(); void ClearFilters()
{
m_filters.clear();
}
const std::vector<wxString>& GetFilters()
{
return m_filters;
}
const std::vector<wxString>& GetFilters();
void RemoveFilter( const wxString& filter ); void RemoveFilter( const wxString& filter );
/** /**
* Function AddFileToTree * Function AddItemToTreeProject
* @brief Add the file or directory aName to the project tree * @brief Add the file or directory aName to the project tree
* @param aName = the filename or the directory name to add in tree * @param aName = the filename or the directory name to add in tree
* @param aRoot = the wxTreeItemId item where to add sub tree items * @param aRoot = the wxTreeItemId item where to add sub tree items
* @param aRecurse = true to filenames or sub dir names to the current tree item * @param aRecurse = true to add file or subdir names to the current tree item
* false to stop file add. * false to stop file add.
* @return true if the file (or directory) is added. * @return true if the file (or directory) is added.
*/ */
bool AddFileToTree( const wxString& aName, bool AddItemToTreeProject( const wxString& aName,
wxTreeItemId& aRoot, bool aRecurse = true); wxTreeItemId& aRoot,
bool aRecurse = true );
/**
* function findSubdirTreeItem
* Search for the item in tree project which is the
* node of the subdirectory aSubDir
* @param aSubDir = the directory to find in tree
* @return the opaque reference to the tree item.
* if not found, return an invalid tree item.
* therefore wxTreeItemId::IsOk should be used to test
* the returned value
*/
wxTreeItemId findSubdirTreeItem( const wxString& aSubDir );
#ifdef KICAD_USE_FILES_WATCHER
/**
* called when a file or directory is modified/created/deleted
* The tree project is modified when a file or directory
* is created/deleted/renamed to reflect the file change
*/
void OnFileSystemEvent( wxFileSystemWatcherEvent& event );
#endif
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
}; };
......
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