|
From: Emilien K. <cur...@us...> - 2005-08-13 16:27:43
|
Update of /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4954/include/wxDevCenter Modified Files: FileSystemCtrl.h Added Files: FileSystemListCtrl.h FileSystemTreeCtrl.h Log Message: Separate FileSystemListCtrl and FileSystemTreeCtrl in two distinct files. --- NEW FILE: FileSystemTreeCtrl.h --- /** * @file wxDevCenter/FileSystemTreeCtrl.h * @author Cursor */ // // wxDevCenter // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; only version 2 of the License. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA // 02111-1307, USA. #ifndef __WXDEVCENTER_FILESYSTEMTREECTRL #define __WXDEVCENTER_FILESYSTEMTREECTRL #include <wx/treectrl.h> namespace wxDevCenter { class FileSystem; class DocManager; class FilePath; /** Structure permettant de manipuler des fichiers via un FileSystemTreeCtrl.*/ class WXDC_DLL_BASE FileSystemTreeItemData : public wxTreeItemData { friend class wxDevCenter::FileSystem; protected: /** Chemin du fichier.*/ wxString m_strPath; /** Type de fichier.*/ int m_iType; /** Etat du fichier.*/ int m_iState; public: FileSystemTreeItemData(wxString &Path, int iType=0, int iState=0); wxString GetPath()const; int GetType()const; int GetState()const; }; #define WXDC_FSTC_MODE_FILE 0x0001 #define WXDC_FSTC_MODE_DIR 0x0002 #define WXDC_FSTC_MODE_HIDDEN 0x0004 #define WXDC_FSTC_MODE_NORMAL 0x0007 /** Demande au controle de faire passer les évènements au système de fichiers.*/ #define WXDC_FSTC_PROCESS_EVENT 0x8000 /** Controle d'arborescence gérant directement le contenu d'un système de fichier * @see wxDevCenter::FileSystem */ class WXDC_DLL_BASE FileSystemTreeCtrl : public wxTreeCtrl { DECLARE_EVENT_TABLE(); protected: /** Système de fichier attaché au controle.*/ FileSystem *m_pFileSystem; /** Mode d'ouverture du controle.*/ unsigned int m_nMode; /** Chemin virtuel de la racine de l'arborescence. * Utilisée pour avoir un arbre partiel du système de fichier. */ FilePath m_strRootPath; public: /** Ouvre l'arbre en précisant une racine autre que la base du système de fichiers. * @param strRootPath Chemin virtuel de la racine. * @param nMode Mode d'ouverture. */ void Open(FilePath strRootPath, unsigned int nMode=WXDC_FSTC_MODE_NORMAL); /** Ouvre l'arbre à la base du système de fichiers. * @param nMode Mode d'ouverture. */ void OpenRoot(unsigned int nMode=WXDC_FSTC_MODE_NORMAL); /** Etend l'arbre pour afficher le fichier/répertoire demandé. * @param strPath Chemin du fichier demandé. * @return L'item du fichier demandé. */ wxTreeItemId ExpandTo(FilePath strPath); /** Fixe un nouveau système de fichier. * Vide l'arborescence et fixe un nouveau système de fichier. * @param pFileSystem Le nouveau système de fichier. */ void SetFileSystem(FileSystem *pFileSystem); /** Retourne le système de fichier. * @return Système de fichier attaché.*/ wxDevCenter::FileSystem* GetFileSystem(){return m_pFileSystem;} /** Recherche un fils direct d'un noeud. * @param idParent Noeud dont on recherche un fils. * @param strFileName Nom du fichier fils à rechercher. * @return Id du noeud de l'arbre correspondant au fichier. Invalide si non trouvé.*/ wxTreeItemId FindChild(wxTreeItemId idParent, wxString strFileName); /** Constructeur. * Appeler Open ou OpenRoot après sinon, una assertion se déclenchera. * @param parent Fenetre parente (non NULL). * @param id Identifiant de filiation. * @param pFileSystem Système de fichier. * @param pos Position. * @param size Taille. * @param style Style de l'arbre. */ FileSystemTreeCtrl(wxWindow* parent, wxWindowID id, FileSystem *pFileSystem, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTR_HAS_BUTTONS|wxTR_ROW_LINES|wxTR_FULL_ROW_HIGHLIGHT|wxTR_ROW_LINES|wxTR_SINGLE ); /** Destructeur.*/ virtual ~FileSystemTreeCtrl(); protected: /** Interception de l'évènement de déroulement d'une branche.*/ void OnTreeItemExpanding(wxTreeEvent &event); /** Interception de l'évènement de demande de tooltip.*/ void OnGetTooltip(wxTreeEvent& event); /** Calcule le type d'un élément de l'arborescence. * @param path Chemin du fichier/répertoire à tester. * @return Type de l'élément testé. */ long CalcItemType(FilePath path); /** Rafraichi le contenu d'un répertoire.*/ void RefreshContent(wxTreeItemId idItem); }; } #endif /*__WXDEVCENTER_FILESYSTEMTREECTRL*/ Index: FileSystemCtrl.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/FileSystemCtrl.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** FileSystemCtrl.h 17 Mar 2005 17:51:24 -0000 1.8 --- FileSystemCtrl.h 13 Aug 2005 16:27:34 -0000 1.9 *************** *** 6,11 **** * * Déclaration des classes de - * - Arborescence (wxDevCenter::FileSystemTreeCtrl) - * - Liste (wxDevCenter::FileSYstemListCtrl) * - Panneau : un arbre à gauche d'une liste affichant le répertoire sélectionné dans l'arbre (wxDevCenter::FileSystemPanel) * - Boite de dialogue de sélection de fichier(s) (wxDevCenter::FileSystemDialog) --- 6,9 ---- *************** *** 32,41 **** #define __WXDEVCENTER_FILESYSTEMCTRL ! #include <wx/treectrl.h> ! #include <wx/listctrl.h> #include <wx/dialog.h> #include <wx/filedlg.h> #include <wx/listbook.h> class wxToolBar; --- 30,41 ---- #define __WXDEVCENTER_FILESYSTEMCTRL ! #include <wx/dialog.h> #include <wx/filedlg.h> #include <wx/listbook.h> + #include <wxDevCenter/FileSystemListCtrl.h> + #include <wxDevCenter/FileSystemTreeCtrl.h> + class wxToolBar; *************** *** 53,263 **** class FilePath; - /** Structure permettant de manipuler des fichiers via un FileSystemTreeCtrl.*/ - class WXDC_DLL_BASE FileSystemTreeItemData : public wxTreeItemData - { - friend class wxDevCenter::FileSystem; - protected: - /** Chemin du fichier.*/ - wxString m_strPath; - /** Type de fichier.*/ - int m_iType; - /** Etat du fichier.*/ - int m_iState; - public: - FileSystemTreeItemData(wxString &Path, int iType=0, int iState=0); - wxString GetPath()const; - int GetType()const; - int GetState()const; - }; - - - #define WXDC_FSTC_MODE_FILE 0x0001 - #define WXDC_FSTC_MODE_DIR 0x0002 - #define WXDC_FSTC_MODE_HIDDEN 0x0004 - - #define WXDC_FSTC_MODE_NORMAL 0x0007 - - /** Demande au controle de faire passer les évènements au système de fichiers.*/ - #define WXDC_FSTC_PROCESS_EVENT 0x8000 - - /** Controle d'arborescence gérant directement le contenu d'un système de fichier - * @see wxDevCenter::FileSystem - */ - class WXDC_DLL_BASE FileSystemTreeCtrl : public wxTreeCtrl - { - DECLARE_EVENT_TABLE(); - protected: - /** Système de fichier attaché au controle.*/ - FileSystem *m_pFileSystem; - /** Mode d'ouverture du controle.*/ - unsigned int m_nMode; - /** Chemin virtuel de la racine de l'arborescence. - * Utilisée pour avoir un arbre partiel du système de fichier. - */ - FilePath m_strRootPath; - - public: - /** Ouvre l'arbre en précisant une racine autre que la base du système de fichiers. - * @param strRootPath Chemin virtuel de la racine. - * @param nMode Mode d'ouverture. - */ - void Open(FilePath strRootPath, unsigned int nMode=WXDC_FSTC_MODE_NORMAL); - /** Ouvre l'arbre à la base du système de fichiers. - * @param nMode Mode d'ouverture. - */ - void OpenRoot(unsigned int nMode=WXDC_FSTC_MODE_NORMAL); - - /** Etend l'arbre pour afficher le fichier/répertoire demandé. - * @param strPath Chemin du fichier demandé. - * @return L'item du fichier demandé. - */ - wxTreeItemId ExpandTo(FilePath strPath); - - - /** Fixe un nouveau système de fichier. - * Vide l'arborescence et fixe un nouveau système de fichier. - * @param pFileSystem Le nouveau système de fichier. - */ - void SetFileSystem(FileSystem *pFileSystem); - - /** Retourne le système de fichier. - * @return Système de fichier attaché.*/ - wxDevCenter::FileSystem* GetFileSystem(){return m_pFileSystem;} - - /** Recherche un fils direct d'un noeud. - * @param idParent Noeud dont on recherche un fils. - * @param strFileName Nom du fichier fils à rechercher. - * @return Id du noeud de l'arbre correspondant au fichier. Invalide si non trouvé.*/ - wxTreeItemId FindChild(wxTreeItemId idParent, wxString strFileName); - - /** Constructeur. - * Appeler Open ou OpenRoot après sinon, una assertion se déclenchera. - * @param parent Fenetre parente (non NULL). - * @param id Identifiant de filiation. - * @param pFileSystem Système de fichier. - * @param pos Position. - * @param size Taille. - * @param style Style de l'arbre. - */ - FileSystemTreeCtrl(wxWindow* parent, wxWindowID id, - FileSystem *pFileSystem, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxTR_HAS_BUTTONS|wxTR_ROW_LINES|wxTR_FULL_ROW_HIGHLIGHT|wxTR_ROW_LINES|wxTR_SINGLE ); - /** Destructeur.*/ - virtual ~FileSystemTreeCtrl(); - protected: - /** Interception de l'évènement de déroulement d'une branche.*/ - void OnTreeItemExpanding(wxTreeEvent &event); - - /** Interception de l'évènement de demande de tooltip.*/ - void OnGetTooltip(wxTreeEvent& event); - - - /** Calcule le type d'un élément de l'arborescence. - * @param path Chemin du fichier/répertoire à tester. - * @return Type de l'élément testé. - */ - long CalcItemType(FilePath path); - - /** Rafraichi le contenu d'un répertoire.*/ - void RefreshContent(wxTreeItemId idItem); - }; - - - - #define WXDC_FSLC_MODE_FILE 0x0001 - #define WXDC_FSLC_MODE_DIR 0x0002 - #define WXDC_FSLC_MODE_HIDDEN 0x0004 - #define WXDC_FSLC_MODE_DOT 0x0008 - #define WXDC_FSLC_MODE_PROCESSCHANGE 0x0010 - #define WXDC_FSLC_MODE_NORMAL 0x0017 - - - /** Contrôle de liste d'un répertoire d'un système de fichier. - * @see wxDevCenter::FileSystem - */ - class WXDC_DLL_BASE FileSystemListCtrl : public wxListCtrl - { - DECLARE_EVENT_TABLE(); - protected: - /** Système de fichier attaché au controle.*/ - FileSystem *m_pFileSystem; - /** Mode d'ouverture du controle.*/ - unsigned int m_nMode; - /** Chemin virtuel du répertoire à lister.*/ - FilePath m_strPath; - /** Chaine de filtrage des noms de fichiers.*/ - wxString m_strWild; - public: - /** Constructeur. - * Appeler Open ou OpenRoot après sinon, une assertion se déclenchera. - * @param parent Adresse de la fenêtre parente. - * @param id Identifiant de filliation. - * @param pFileSystem Système de fichier à parcourir. - * @param pos Position de la liste. - * @param size Taille de la liste. - * @param style style de la liste. - */ - FileSystemListCtrl(wxWindow* parent, wxWindowID id, - FileSystem *pFileSystem, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxLC_ICON|wxLC_ALIGN_TOP|wxLC_AUTOARRANGE); - /** Destructeur.*/ - virtual ~FileSystemListCtrl(); - - /** Ouvre la liste dans un répertoire spécifique. - * @param strPath Chemin du répertoire à ouvrir. - * @param strWild Filtrage des noms de fichiers à afficher. - * @param nMode Mode d'ouverture du répertoire. - */ - void Open(FilePath strPath, wxString strWild = wxT("*.*"), unsigned int nMode=WXDC_FSLC_MODE_NORMAL); - /** Ouvre la liste dans le répertoire racine. - * @param strWild Filtrage des noms de fichiers à afficher. - * @param nMode Mode d'ouverture du répertoire. - */ - void OpenRoot(wxString strWild = wxT("*.*"), unsigned int nMode=WXDC_FSLC_MODE_NORMAL); - - /** Ouvre la liste dans un répertoire en conservant les infos de listages. - * @param strPath Chemin du répertoire à ouvrir. - */ - void ReOpen(wxString strPath){Open(strPath, m_strWild, m_nMode);} - - /** Fixe un nouveau système de fichier. - * Vide l'arborescence et fixe un nouveau système de fichier. - * @param pFileSystem Le nouveau système de fichier. - */ - void SetFileSystem(FileSystem *pFileSystem); - - /** Demande le ou les fichiers sélectionnées. - * @return liste des fichiers sélectionnées séparés par des point-virgules ';'.*/ - wxString GetSelectedFiles(); - /** Demande le ou les fichiers sélectionnées. - * @param files Tableau des fichiers sélectionnés.*/ - void GetSelectedFilesList(wxArrayString& files); - - /** Met à jour la liste.*/ - void UpdateList(); - - /** Fixe la chaine de filtrage de listage des fichier. - * @param strWild Chaine de filtrage. - */ - void SetWildcard(wxString strWild); - - /** Calcule le type d'un élément de l'arborescence. - * @param path Chemin du fichier/répertoire à tester. - * @return Type de l'élément testé. - */ - long CalcItemType(FilePath path); - - /** Supprime tous les éléments de la liste. - * @return True si OK.*/ - bool DeleteAllItems(); - - protected: - /** Intercepte les évènements de double-clic et d'entrée.*/ - void OnItemActived(wxListEvent& event); - }; - - /** Paneau de parcours de système de fichier.*/ class WXDC_DLL_BASE FileSystemPanel : public wxPanel --- 53,56 ---- --- NEW FILE: FileSystemListCtrl.h --- /** * @file wxDevCenter/FileSystemListCtrl.h * @author Cursor */ // // wxDevCenter // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; only version 2 of the License. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA // 02111-1307, USA. #ifndef __WXDEVCENTER_FILESYSTEMLISTCTRL #define __WXDEVCENTER_FILESYSTEMLISTCTRL #include <wx/listctrl.h> namespace wxDevCenter { class FileSystem; class DocManager; class FilePath; #define WXDC_FSLC_MODE_FILE 0x0001 #define WXDC_FSLC_MODE_DIR 0x0002 #define WXDC_FSLC_MODE_HIDDEN 0x0004 #define WXDC_FSLC_MODE_DOT 0x0008 #define WXDC_FSLC_MODE_PROCESSCHANGE 0x0010 #define WXDC_FSLC_MODE_NORMAL 0x0017 /** Contrôle de liste d'un répertoire d'un système de fichier. * @see wxDevCenter::FileSystem */ class WXDC_DLL_BASE FileSystemListCtrl : public wxListCtrl { DECLARE_EVENT_TABLE(); protected: /** Système de fichier attaché au controle.*/ FileSystem *m_pFileSystem; /** Mode d'ouverture du controle.*/ unsigned int m_nMode; /** Chemin virtuel du répertoire à lister.*/ FilePath m_strPath; /** Chaine de filtrage des noms de fichiers.*/ wxString m_strWild; public: /** Constructeur. * Appeler Open ou OpenRoot après sinon, une assertion se déclenchera. * @param parent Adresse de la fenêtre parente. * @param id Identifiant de filliation. * @param pFileSystem Système de fichier à parcourir. * @param pos Position de la liste. * @param size Taille de la liste. * @param style style de la liste. */ FileSystemListCtrl(wxWindow* parent, wxWindowID id, FileSystem *pFileSystem, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxLC_ICON|wxLC_ALIGN_TOP|wxLC_AUTOARRANGE); /** Destructeur.*/ virtual ~FileSystemListCtrl(); /** Ouvre la liste dans un répertoire spécifique. * @param strPath Chemin du répertoire à ouvrir. * @param strWild Filtrage des noms de fichiers à afficher. * @param nMode Mode d'ouverture du répertoire. */ void Open(FilePath strPath, wxString strWild = wxT("*.*"), unsigned int nMode=WXDC_FSLC_MODE_NORMAL); /** Ouvre la liste dans le répertoire racine. * @param strWild Filtrage des noms de fichiers à afficher. * @param nMode Mode d'ouverture du répertoire. */ void OpenRoot(wxString strWild = wxT("*.*"), unsigned int nMode=WXDC_FSLC_MODE_NORMAL); /** Ouvre la liste dans un répertoire en conservant les infos de listages. * @param strPath Chemin du répertoire à ouvrir. */ void ReOpen(wxString strPath){Open(strPath, m_strWild, m_nMode);} /** Fixe un nouveau système de fichier. * Vide l'arborescence et fixe un nouveau système de fichier. * @param pFileSystem Le nouveau système de fichier. */ void SetFileSystem(FileSystem *pFileSystem); /** Demande le ou les fichiers sélectionnées. * @return liste des fichiers sélectionnées séparés par des point-virgules ';'.*/ wxString GetSelectedFiles(); /** Demande le ou les fichiers sélectionnées. * @param files Tableau des fichiers sélectionnés.*/ void GetSelectedFilesList(wxArrayString& files); /** Met à jour la liste.*/ void UpdateList(); /** Fixe la chaine de filtrage de listage des fichier. * @param strWild Chaine de filtrage. */ void SetWildcard(wxString strWild); /** Calcule le type d'un élément de l'arborescence. * @param path Chemin du fichier/répertoire à tester. * @return Type de l'élément testé. */ long CalcItemType(FilePath path); /** Supprime tous les éléments de la liste. * @return True si OK.*/ bool DeleteAllItems(); protected: /** Intercepte les évènements de double-clic et d'entrée.*/ void OnItemActived(wxListEvent& event); }; } #endif /*__WXDEVCENTER_FILESYSTEMLISTCTRL*/ |