You can subscribe to this list here.
| 2005 |
Jan
(98) |
Feb
(101) |
Mar
(60) |
Apr
(38) |
May
(26) |
Jun
|
Jul
|
Aug
(159) |
Sep
(78) |
Oct
(31) |
Nov
|
Dec
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(4) |
Sep
(6) |
Oct
|
Nov
(1) |
Dec
(3) |
| 2010 |
Jan
|
Feb
|
Mar
|
Apr
(3) |
May
(5) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2011 |
Jan
(8) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Emilien K. <cur...@us...> - 2005-03-17 14:56:09
|
Update of /cvsroot/wxdevcenter/wxDevCenter/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3427/src Modified Files: WorkBar.cpp Log Message: Recherche d'un WorkBarTemplate via son ClassInfo et son objet additionnel. Index: WorkBar.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/WorkBar.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** WorkBar.cpp 17 Mar 2005 14:40:12 -0000 1.1 --- WorkBar.cpp 17 Mar 2005 14:56:00 -0000 1.2 *************** *** 99,106 **** // Cherche une barre. ! int WorkBarManager::Find(const wxClassInfo* pClassInfo) { for(unsigned int n=0; n<GetTemplateCount(); n++) ! if(pClassInfo == GetTemplate(n).GetClassInfo()) return (int)n; return -1; --- 99,106 ---- // Cherche une barre. ! int WorkBarManager::Find(const wxClassInfo* pClassInfo, wxObject* pExtraObj) { for(unsigned int n=0; n<GetTemplateCount(); n++) ! if(pClassInfo == GetTemplate(n).GetClassInfo() && pExtraObj == GetTemplate(n).GetExtraObject()) return (int)n; return -1; |
|
From: Emilien K. <cur...@us...> - 2005-03-17 14:40:23
|
Update of /cvsroot/wxdevcenter/wxDevCenter/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32456/src Added Files: WorkBar.cpp Log Message: Gestionnaire de barres de travail (WorkBar*). --- NEW FILE: WorkBar.cpp --- (This appears to be a binary file; contents omitted.) |
|
From: Emilien K. <cur...@us...> - 2005-03-17 14:40:21
|
Update of /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32456/include/wxDevCenter Added Files: WorkBar.h Log Message: Gestionnaire de barres de travail (WorkBar*). --- NEW FILE: WorkBar.h --- (This appears to be a binary file; contents omitted.) |
|
From: Emilien K. <cur...@us...> - 2005-03-17 14:37:54
|
Update of /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31889/include/wxDevCenter Modified Files: Application.h Frame.h MainFrame.h Manager.h Log Message: Gestionnaire de barres de travail (WorkBar*). Index: Manager.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/Manager.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Manager.h 16 Mar 2005 14:27:36 -0000 1.2 --- Manager.h 17 Mar 2005 14:37:41 -0000 1.3 *************** *** 325,329 **** /** Accesseur sur les infos RTTI. * @return wxClassInfo du type de l'objet.*/ ! wxClassInfo& GetClassInfo(){return *m_pClassInfo;} }; --- 325,329 ---- /** Accesseur sur les infos RTTI. * @return wxClassInfo du type de l'objet.*/ ! wxClassInfo* GetClassInfo(){return m_pClassInfo;} }; Index: MainFrame.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/MainFrame.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** MainFrame.h 7 Mar 2005 15:23:02 -0000 1.4 --- MainFrame.h 17 Mar 2005 14:37:41 -0000 1.5 *************** *** 191,194 **** --- 191,198 ---- */ void AddView(View *pView); + + virtual bool AddWorkBar(WorkBar* pWorkBar, wxString strName); + virtual bool RemoveWorkBar(WorkBar* pWorkBar); + }; Index: Application.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/Application.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Application.h 16 Mar 2005 14:27:36 -0000 1.9 --- Application.h 17 Mar 2005 14:37:41 -0000 1.10 *************** *** 29,32 **** --- 29,33 ---- #include <wxDevCenter/Project.h> #include <wxDevCenter/DocView.h> + #include <wxDevCenter/WorkBar.h> #include <wxDevCenter/FileSystem.h> #include <wxDevCenter/Config.h> *************** *** 72,75 **** --- 73,79 ---- FileSystemManager m_FileSystemManager; + /** Gestionnaire de barres de travail.*/ + WorkBarManager m_WorkBarManager; + /** Système de fichier standard (lecture/écritures sur les réels).*/ FileSystem *m_pStandardFileSystem; *************** *** 240,243 **** --- 244,252 ---- /** @}*/ + /** @name WorkBar + * @{ */ + /** Acces au gestionnaire de Barres de travail.*/ + WorkBarManager& GetWorkBarManager(){return m_WorkBarManager;} + /** @} */ }; Index: Frame.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/Frame.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Frame.h 16 Mar 2005 14:27:36 -0000 1.5 --- Frame.h 17 Mar 2005 14:37:41 -0000 1.6 *************** *** 37,41 **** class TopFrame; class View; ! BEGIN_DECLARE_EVENT_TYPES() --- 37,41 ---- class TopFrame; class View; ! class WorkBar; BEGIN_DECLARE_EVENT_TYPES() *************** *** 140,144 **** bool m_bHasViewMenu; - protected: /** Insère le menu spécifique de la vue active. * @param pView Vue qui doit insérer ses menus spécifiques. --- 140,143 ---- *************** *** 151,156 **** --- 150,171 ---- public: + /** Constructeur.*/ TopFrame(const wxString& title, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE); + /** Destructeur.*/ ~TopFrame(void); + + /** Ajoute une fenetre comme barre de travail. + * @param pWorkBar Adresse de la barre de travail. + * @param strName Nom de la barre. + * @return Faux si erreur.*/ + virtual bool AddWorkBar(WorkBar* WXUNUSED(pWorkBar), wxString WXUNUSED(strName)){return false;} + /** Retire une fenetre de barre de travail. + * @param pWorkBar Adresse de la barre de travail. + * @return Faux si la barre n'était pas attachée à cette fenêtre cadre.*/ + virtual bool RemoveWorkBar(WorkBar* WXUNUSED(pWorkBar)){return false;} + + /** Surcharge du processus de destruction. + * Utilisé pour vider le cadre de ses WorkBar et la désenregistrer du WorkBarManager.*/ + virtual bool Destroy(); }; |
|
From: Emilien K. <cur...@us...> - 2005-03-17 14:37:53
|
Update of /cvsroot/wxdevcenter/wxDevCenter/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31889/src Modified Files: Application.cpp Frame.cpp MainFrame.cpp Log Message: Gestionnaire de barres de travail (WorkBar*). Index: Frame.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/Frame.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Frame.cpp 23 Feb 2005 15:12:14 -0000 1.3 --- Frame.cpp 17 Mar 2005 14:37:42 -0000 1.4 *************** *** 86,89 **** --- 86,90 ---- m_bHasViewMenu(false) { + wxGetApp().GetWorkBarManager().RegisterFrame(this); } *************** *** 114,117 **** --- 115,125 ---- } + // Surcharge du processus de destruction. + bool TopFrame::Destroy() + { + wxGetApp().GetWorkBarManager().UnregisterFrame(this); + return wxFrame::Destroy(); + } + ////////////////////////////////////////////////////////////////////// // ViewFrame Index: Application.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/Application.cpp,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** Application.cpp 16 Mar 2005 14:27:36 -0000 1.17 --- Application.cpp 17 Mar 2005 14:37:41 -0000 1.18 *************** *** 47,50 **** --- 47,66 ---- + class TestBar : public WorkBar + { + DECLARE_DYNAMIC_CLASS(TestBar); + public: + virtual bool Create(wxWindow* parent) + { + WorkBar::Create(parent); + new wxButton(this, -1, wxT("Blablabla")); + return true; + } + }; + + IMPLEMENT_DYNAMIC_CLASS(TestBar, WorkBar) + + + bool Application::OnInit(void) { *************** *** 57,69 **** SetVendorName(WXDC_SETUP_VENDOR); ! // Initialise le gestionnaire de configuration. m_ConfigManager.Initialize(); - m_ConfigManager.CreateUserProfile(); - - // Initialise le DocManager m_DocManager.Initialize(); - - // Initialise le ProjectManager m_ProjectManager.Initialize(); // Charge les plugins. --- 73,85 ---- SetVendorName(WXDC_SETUP_VENDOR); ! // Initialise les gestionnaires m_ConfigManager.Initialize(); m_DocManager.Initialize(); m_ProjectManager.Initialize(); + m_WorkBarManager.Initialize(); + + // Crée la config utilisateur. + m_ConfigManager.CreateUserProfile(); + // Charge les plugins. *************** *** 88,91 **** --- 104,112 ---- m_pMainFrame->Show(true); + + + // Test des worksbars. + m_WorkBarManager.RegisterWorkBar(CLASSINFO(TestBar), "tchock !", ""); + // Lance l'application. return true; Index: MainFrame.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/MainFrame.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** MainFrame.cpp 16 Mar 2005 14:27:37 -0000 1.7 --- MainFrame.cpp 17 Mar 2005 14:37:42 -0000 1.8 *************** *** 30,33 **** --- 30,34 ---- #include <wxDevCenter/FileSystem.h> #include <wxDevCenter/DocView.h> + #include <wxDevCenter/WorkBar.h> #include <wx/dataobj.h> *************** *** 549,551 **** --- 550,590 ---- + ////////////////////////////////////////////////////////////////////// + // Fonctions de gestion des WorkBar + ////////////////////////////////////////////////////////////////////// + + // Ajoute une fenetre comme barre de travail. + bool MainFrame::AddWorkBar(WorkBar* pWorkBar, wxString strName) + { + pWorkBar->Create(this); + + // drop in some bars + cbDimInfo sizes( 160, 220, // when docked horizontally + 220, 160, // when docked vertically + 160, 220, // when floated + FALSE, // the bar is not fixed-size + 4, // vertical gap (bar border) + 4 // horizontal gap (bar border) + ); + m_pFrameLayout->AddBar( (wxWindow*)pWorkBar, // bar window + sizes, FL_ALIGN_LEFT, // alignment ( 0-top,1-bottom, etc) + 0, // insert into 0th row (vert. position) + 0, // offset from the start of row (in pixels) + strName, // name for reference in customization pop-ups + FALSE + ); + return true; + } + + // Retire une fenetre de barre de travail. + bool MainFrame::RemoveWorkBar(WorkBar* pWorkBar) + { + cbBarInfo* pBI = m_pFrameLayout->FindBarByWindow((wxWindow*)pWorkBar); + if(pBI!=NULL) + { + m_pFrameLayout->RemoveBar(pBI); + return true; + } + return false; + } |
|
From: Emilien K. <cur...@us...> - 2005-03-16 16:58:16
|
Update of /cvsroot/wxdevcenter/wxDevCenter In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1087 Modified Files: CHANGELOG Log Message: Merge de la branche "manager_virtualization". Index: CHANGELOG =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/CHANGELOG,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** CHANGELOG 4 Mar 2005 16:09:45 -0000 1.3 --- CHANGELOG 16 Mar 2005 16:58:05 -0000 1.4 *************** *** 4,7 **** --- 4,8 ---- CVS : ----- + - Change managers to the new object management system. - Add ProjectType, an auto-regitered ProjectTemplate (like DocType). - Add Project basic mecanisms (Project/ProjectTemplates/ProjectManager). |
|
From: Emilien K. <cur...@us...> - 2005-03-16 14:35:08
|
Update of /cvsroot/wxdevcenter/wxDevCenter/src/msw In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30967/src/msw Modified Files: FileSystemStandard.cpp Log Message: Oups ! Pas la bonne icone sur les répertoires. Index: FileSystemStandard.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/msw/FileSystemStandard.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** FileSystemStandard.cpp 16 Mar 2005 14:27:37 -0000 1.2 --- FileSystemStandard.cpp 16 Mar 2005 14:34:58 -0000 1.3 *************** *** 267,271 **** } else ! return wxDir::Exists(LogicalToPhysical(strPath))?WXDC_STDFS_FILETYPES:-1; } --- 267,271 ---- } else ! return wxDir::Exists(LogicalToPhysical(strPath))?WXDC_STDFS_DIRTYPE_NORMAL:-1; } |
Update of /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29232/include/wxDevCenter Modified Files: Application.h DocView.h FileSystem.h FileSystemStandard.h Frame.h MDIFrame.h Project.h Added Files: Manager.h Removed Files: DocManager.h Log Message: Merge de la branche "manager_virtualization". Index: Project.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/Project.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Project.h 7 Mar 2005 15:23:02 -0000 1.4 --- Project.h 16 Mar 2005 14:27:36 -0000 1.5 *************** *** 30,33 **** --- 30,34 ---- #define __WXDEVCENTER_PROJECT + #include <wxDevCenter/Manager.h> #include <wxDevCenter/FileTools.h> #include <wxDevCenter/FileSystem.h> *************** *** 45,49 **** * @warning Les classes de projets doivent impérativement être RTTI-dynamiques et leurs constructeurs ne peuvent prendre aucun paramètre. */ ! class WXDC_DLL_BASE Project : public wxObject { DECLARE_DYNAMIC_CLASS(Project); --- 46,50 ---- * @warning Les classes de projets doivent impérativement être RTTI-dynamiques et leurs constructeurs ne peuvent prendre aucun paramètre. */ ! class WXDC_DLL_BASE Project : public ManagedObject { DECLARE_DYNAMIC_CLASS(Project); *************** *** 102,105 **** --- 103,107 ---- + /** Classe de patron de projet. * Utilisé pour enregistrer les différents types de projets. *************** *** 110,128 **** * - Les infos RTTI de la classe du projet. */ ! class WXDC_DLL_BASE ProjectTemplate : public wxObject { protected: - /** Nom du type de projet.*/ - wxString m_strName; - /** Description du type de projet.*/ - wxString m_strDescript; /** Chemin relatif de son icone.*/ wxString m_strIcon; - /** Extensions des fichiers du type de projet.*/ wxArrayString m_strExtArray; - - /** Informations RTTI.*/ - wxClassInfo *m_pProjectClassInfo; public: /** Constructeur par défaut. --- 112,122 ---- * - Les infos RTTI de la classe du projet. */ ! class WXDC_DLL_BASE ProjectTemplate : public ObjectTemplate<Project> { protected: /** Chemin relatif de son icone.*/ wxString m_strIcon; /** Extensions des fichiers du type de projet.*/ wxArrayString m_strExtArray; public: /** Constructeur par défaut. *************** *** 164,168 **** /** Crée un objet projet. * Ne fait que allouer la mémoire et appeler le constructeur par défaut.*/ ! Project* CreateProject(); }; --- 158,162 ---- /** Crée un objet projet. * Ne fait que allouer la mémoire et appeler le constructeur par défaut.*/ ! Project* CreateProject(){return CreateObject();} }; *************** *** 186,204 **** - - /** Définition du type tableau dynamique de patrons de projets. - */ - WX_DEFINE_USER_EXPORTED_ARRAY(ProjectTemplate*, ProjectTemplateArray, class WXDC_DLL_BASE); - - /** Gestionnaire de projets. * Enregistre les différents types de projets et gère le projet actuellement ouvert. */ ! class WXDC_DLL_BASE ProjectManager : protected ProjectTemplateArray { - protected: - /** Projet actuellement ouvert. NULL si aucun.*/ - Project* m_pCurrentProject; - public: /** Constructeur par défaut.*/ --- 180,188 ---- /** Gestionnaire de projets. * Enregistre les différents types de projets et gère le projet actuellement ouvert. */ ! class WXDC_DLL_BASE ProjectManager : public SingleObjectTemplateManager<Project, ProjectTemplate> { public: /** Constructeur par défaut.*/ *************** *** 207,212 **** ~ProjectManager(); - /** Initialisation du gestionnaire.*/ - void Initialize(); /** Finalisation du gestionnaire.*/ void Finalize(); --- 191,194 ---- *************** *** 216,224 **** * @{ */ /** Test si un projet est actuellement ouvert.*/ ! bool HasProject()const{return m_pCurrentProject!=NULL;} /** Retourne l'adresse du projet courant.*/ ! Project* GetProject(){return m_pCurrentProject;} /** Retourne l'adresse du projet courant.*/ ! const Project* GetProject()const{return m_pCurrentProject;} /** Ferme le projet en cours. * @param bForce Vrai si le projet doit être fermé impérativement. --- 198,206 ---- * @{ */ /** Test si un projet est actuellement ouvert.*/ ! bool HasProject()const{return HasObject();} /** Retourne l'adresse du projet courant.*/ ! Project& GetProject(){return GetCurrentObject();} /** Retourne l'adresse du projet courant.*/ ! const Project& GetProject()const{return GetCurrentObject();} /** Ferme le projet en cours. * @param bForce Vrai si le projet doit être fermé impérativement. *************** *** 243,255 **** /** @name Gestion des types de projets. * @{ */ - /** Nombre de type de projets.*/ - unsigned int GetProjectTemplateCount()const{return GetCount();} - /** Accès à un type de projet par son index.*/ - ProjectTemplate* GetProjectTemplate(int index){return Item(index);} - const ProjectTemplate* GetProjectTemplate(int index)const{return Item(index);} - /** Accès à l'index d'un type de projet.*/ - int GetProjectTemplateIndex(const ProjectTemplate* pTemplate); - /** Enregistre un type de projet.*/ - bool RegisterProjectType(ProjectTemplate* pTemplate); /** Retourne le wildcard de tous les types de projets. * @param bShowStarDotStar Si vrai, ajoute le wildcard "*.*". --- 225,228 ---- Index: DocView.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/DocView.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** DocView.h 7 Mar 2005 15:23:02 -0000 1.7 --- DocView.h 16 Mar 2005 14:27:36 -0000 1.8 *************** *** 3,7 **** * @author Cursor * ! * @brief Déclaration des classes de manipulations des documents et des vues. * * Déclaration des classes de --- 3,7 ---- * @author Cursor * ! * @brief Déclaration des classes relatives aux documents et aux vues vues. * * Déclaration des classes de *************** *** 12,15 **** --- 12,18 ---- * . * - Vues (wxDevCenter::View) + * - Patron de documents (wxDevCenter::DocTempate). + * - Gestionnaire de types de documents (wxDevCenter::DocManager) + * - Déclaration de type de document (wxDevCenter::DocType) * - Type de document. * - Mini-Documents (wxDevCenter::MiniDoc) *************** *** 35,41 **** --- 38,62 ---- // 02111-1307, USA. + /** @page DocManagerDoc Architecture du gestionnaire de documents. + * Le gestionnaire de document englobe la gestion des patrons et des objets de documents et de vues. + * Il s'occupe aussi des minidocs et minivues. + * + * Il est basé sur l'architecture des gestionnaires. + * @see Gestionnaires + * + * @section + * + */ + + #ifndef __WXDEVCENTER_DOCVIEW #define __WXDEVCENTER_DOCVIEW + #include <wx/imaglist.h> + #include <wx/hashmap.h> + #include <wx/dynarray.h> + + #include <wxDevCenter/Manager.h> + #include <wxDevCenter/FileTools.h> #include <wxDevCenter/Frame.h> *************** *** 43,51 **** { - // Déclaration des classes utilisées. class Application; class DocManager; class DocTemplate; class Archive; class ViewFrame; --- 64,72 ---- { // Déclaration des classes utilisées. class Application; class DocManager; class DocTemplate; + class ViewTemplate; class Archive; class ViewFrame; *************** *** 54,58 **** // Prédéclaration des classes du fichier entete. class WXDC_DLL_BASE View; - class ViewArray; class WXDC_DLL_BASE Document; class WXDC_DLL_BASE Action; --- 75,78 ---- *************** *** 61,64 **** --- 81,88 ---- class WXDC_DLL_BASE MiniView; class WXDC_DLL_BASE MiniDoc; + + class DocManager; + class DocTemplate; + class DocTypeArray; *************** *** 80,87 **** #define IDM_EDIT_SELECTALL wxID_SELECTALL ! /** Interface "Vue". ! * Classe interface de vue pour la représentation visuelle des données des documents. ! */ ! class WXDC_DLL_BASE View : public wxPanel { friend class Application; --- 104,112 ---- #define IDM_EDIT_SELECTALL wxID_SELECTALL ! /* ! * Interface "Vue". ! * Classe interface de vue pour la représentation visuelle des données des documents. ! */ ! class WXDC_DLL_BASE View : public wxPanel, public InitializableInterface { friend class Application; *************** *** 104,110 **** MenuArray m_aMenu; ! /** Pointeur vers la structure d'association du type de vue. ! * @see ViewAssociation.*/ ! ViewAssociation *m_pViewAssociation; /** Interception des évènements menus. --- 129,134 ---- MenuArray m_aMenu; ! /** Adresse du patron de vue.*/ ! ViewTemplate *m_pViewTemplate; /** Interception des évènements menus. *************** *** 143,148 **** /** Retourne le documment auquel est attachée la vue.*/ Document* GetDocument(){return m_pDocument;} ! /** Retourne le descripteur du type de vue.*/ ! ViewAssociation* GetViewAssociation(){return m_pViewAssociation;} /** Processus post-création. --- 167,172 ---- /** Retourne le documment auquel est attachée la vue.*/ Document* GetDocument(){return m_pDocument;} ! /** Retourne le patron de la vue.*/ ! ViewTemplate* GetViewTemplate(){return m_pViewTemplate;} /** Processus post-création. *************** *** 171,184 **** ! /** Définition du type vecteur de pointeurs de vues. ! */ ! WX_DEFINE_USER_EXPORTED_ARRAY(View*, ViewArray, class WXDC_DLL_BASE); ! ! ! ! /** Interface "document" (classe de base). * Classe Interface de document à dériver pour créer des documents spécifiques. */ ! class WXDC_DLL_BASE Document : public wxObject { friend class DocManager; --- 195,203 ---- ! /** ! * Interface "document" (classe de base). * Classe Interface de document à dériver pour créer des documents spécifiques. */ ! class WXDC_DLL_BASE Document : public wxObject, public InitializableInterface { friend class DocManager; *************** *** 189,203 **** protected: /** Pointeur vers le gestionnaire de document.*/ ! DocManager *m_pDocumentManager; /** Pointeur vers le patron de document correspondant au type de ce document.*/ ! DocTemplate *m_pDocumentTemplate; /** Liste dynamique des vues attachées à ce document.*/ ! ViewArray m_ViewArray; /** Le document a-t-il été modifié ?*/ ! bool m_bIsDocumentModified; /** Nom du document.*/ ! wxString m_strName; /** Chemin du document.*/ ! FilePath m_strPath; public: Document(void); --- 208,222 ---- protected: /** Pointeur vers le gestionnaire de document.*/ ! DocManager* m_pDocumentManager; /** Pointeur vers le patron de document correspondant au type de ce document.*/ ! DocTemplate* m_pDocumentTemplate; /** Liste dynamique des vues attachées à ce document.*/ ! ObjectManager<View> m_ViewArray; /** Le document a-t-il été modifié ?*/ ! bool m_bIsDocumentModified; /** Nom du document.*/ ! wxString m_strName; /** Chemin du document.*/ ! FilePath m_strPath; public: Document(void); *************** *** 231,238 **** /** Détache une vue du document.*/ void DetachView(View *pView); - /** Détache puis détruit une vue attachée au document.*/ - void DeleteView(View *pView); - /** Détache et détruit toutes les vues attachées au document.*/ - void DeleteAllViews(); protected: --- 250,253 ---- *************** *** 284,386 **** }; - /** Interface de description d'une action utilisateur. - * Classe interface decrivant une action utilisateur pouvant être annulée par une commande "Undo" - * et fournissant toutes les données pour permettre au document de revenir à l'état d'avant l'action. - */ - class WXDC_DLL_BASE Action : public wxObject - { - protected: - /** Code de référence du type d'action.*/ - unsigned int m_nCode; - public: - Action(unsigned int nCode); - /** Retourne le code de l'action.*/ - inline unsigned int GetCode()const{return m_nCode;} - /** Fixe le code de l'action.*/ - inline void SetCode(unsigned int nCode){m_nCode=nCode;} - }; - - - /** Interface "document" implémentant des actions. - * Interfaces pour les documents implémentants des actions et une pile d'actions pour le retour arrière "Undo". - */ - class WXDC_DLL_BASE ActionDocument : public Document - { - /** Déclaration de classe dynamique. Déclare la classe comme pouvant être crée dynamiquement depuis ses infos RTTI de caractère.*/ - DECLARE_DYNAMIC_CLASS(wxDevCenter::ActionDocument); - protected: - /** Définit le type tableau dynamique d'actions ActionArray.*/ - WX_DEFINE_USER_EXPORTED_ARRAY(Action*, ActionArray, class WXDC_DLL_BASE); - /** Tableau dynamique des actions.*/ - ActionArray m_ActionArray; - /** Taille maximale pour le tableau dynamique des fonctions.*/ - int m_iActionArrayMaxSize; - public: - ActionDocument(); - virtual ~ActionDocument(); - - /** Fixe le nombre maximum d'annulation d'action possible. - * Fixe la taille du tableau des dernières actions effectuées.*/ - void SetUndoListSize(int iSize); - /** Retourne le nombre maximum d'annulation d'action possible. - * Retourne la taille du tableau des dernières actions effectuées.*/ - int GetUndoListSize()const{return m_iActionArrayMaxSize;} - /** Retourne le nombre d'annulations d'actions possibles. - * Retourne le nombre d'actions contenues dans le tableau des dernières actions effectuées.*/ - int GetUndoActionCount()const{return m_ActionArray.GetCount();} - /** Annule la dernière action effectuée. - * Restore l'état du document d'avant la dernière action. - * La fonction de base supprime l'action de la liste mais ne rafraichit pas les vues attachées.*/ - virtual void Undo(); - protected: - /** Retourne la dernière action effectuée si il y en a une.*/ - Action* GetUndoAction(){return m_ActionArray.GetCount()==0?NULL:m_ActionArray[m_ActionArray.GetCount()-1];}// Retourne la dernière action. - /** Ajoute une action. - * Ajoute une action à la liste des dernières actions. - * La fonction de base ne fait qu'ajouter l'action à la liste mais n'exécute pas cette action ni ne rafraichis les vues attachées.*/ - void AddAction(Action *pAction); - }; - - - - - - /** Classe de base de déclaration de types de documents. - * Cette classe (et surtout son constructeur) devrait être suffisante. - * Vous pouvez dériver cette classe pour ajouter des traitements spécifiques (ajouts d'autres vues ...) mais il faudra absolumant appeler les fonctions de base. - */ - class WXDC_DLL_BASE DocType : public DocTemplate - { - public: - /** Constructeur par défaut. - * Les paramètres de ce constructeur devraient être suffisants dans la majorité des cas. - * @param strDocName Nom du document associé. - * @param pDocClassInfo RTTI de la classe du document. - * @param strDocDescripton Description du document. - * @param strExt Liste des extensions (sans point ni étoile) séparés par des points-virgules ';' (exemple : "txt;log" ou "bmp;png;gif;jpg;jpeg"). - * @param strViewName Nom de la vue associée. - * @param pViewClassInfo RTTI de la classe de la vue. - * @param strViewDescripton Description de la vue. - * @param strIconBundleName Nom du jeu d'icones système à utiliser. - * @param pMiniDocClassInfo RTTI de la classe de mini-document. - */ - DocType(wxString strDocName, wxClassInfo *pDocClassInfo, wxString strDocDescripton, wxString strExt, - wxString strViewName, wxClassInfo *pViewClassInfo, wxString strViewDescripton, wxString strIconBundleName, wxClassInfo *pMiniDocClassInfo = NULL); - /** Destructeur.*/ - virtual ~DocType(void); - - /** Initialisation. - * Permet d'initialiser des données spécifiques aux types de documents comme des données globales/statiques. - * Appelé avant toute création d'un document de ce type. - * @return Si faux le type de documents ne sera pas utilisé. - */ - virtual bool Initialize(); - - /** Nettoyage. - * Appelé pendant le désenregistrement du type de document (fin de l'appli ...). - * Permet de nettoyer des données spécifiques aux types de documents comme des données globales/statiques. - */ - virtual void Free(); - }; --- 299,302 ---- *************** *** 502,505 **** --- 418,784 ---- + + /** + * Patron de vue. + */ + class WXDC_DLL_BASE ViewTemplate : public ObjectTemplate<View> + { + public: + /** Icones.*/ + wxString strIcons; + + /** Constructeur.*/ + ViewTemplate(wxClassInfo* pInfo, wxString strName, wxString strDescript, wxString strIcon): + ObjectTemplate<View>(pInfo, strName, strDescript), strIcons(strIcon){} + }; + + + + ////////////////////////////////////////////////////////////////////// + // DocTempate : + + /** Patron de document (document template). + * Référence un type de document avec l'ensemble de ces vues. + * A un type de document correspond : + * - un nom. + * - une description détaillée. + * - une info RTTI de la classe de document. + * - une liste d'extensions par lesquelles les fichiers serons reconnus. Les extensions sont case-insensitives. + * - une liste de vues associées. Chaque vue ayant : + * - un nom. + * - une description. + * - une info RTTI de la classe de vue. + * - une liste d'icones (éventuellement vide). + * - une info RTTI de minidoc. + * @see DocManager + * @see Document + * @see View + */ + class WXDC_DLL_BASE DocTemplate : public ObjectTemplate<Document> + { + friend class Application; + friend class DocManager; + private: + /** Gestionnaire de patron de vues.*/ + TemplateManager<View, ViewTemplate> m_ViewTemplateManager; + protected: + /** Tableau des extensions de fichiers.*/ + wxArrayString m_strExt; + public: + /** Constructeur. + * @param strName Nom du type de document. + * @param pDocClassInfo RTTI de la classe document. + * @param strExt Première extension de fichier liée au document. Cette extension est celle par défaut. + * @param strDescription Description détaillée du document (éventuellement vide). + */ + DocTemplate(wxString strName, wxClassInfo *pDocClassInfo, wxString strExt, wxString strDescription=""); + ~DocTemplate(); + + /** @name Gestion des patrons de vues. + * @{ */ + unsigned int GetViewTemplateCount()const{return m_ViewTemplateManager.GetTemplateCount();} + int FindViewTemplate(const ViewTemplate* pTemplate)const{return m_ViewTemplateManager.FindTemplate(pTemplate);} + ViewTemplate& GetViewTemplate(unsigned int nIndex){return m_ViewTemplateManager.GetTemplate(nIndex);} + const ViewTemplate& GetViewTemplate(unsigned int nIndex)const{return m_ViewTemplateManager.GetTemplate(nIndex);} + bool RegisterViewTemplate(ViewTemplate* pTemplate){return m_ViewTemplateManager.RegisterTemplate(pTemplate);} + bool RegisterViewTemplate(ViewTemplate& Templ){return m_ViewTemplateManager.RegisterTemplate(Templ);} + bool UnregisterViewTemplate(ViewTemplate* pTempl){return m_ViewTemplateManager.UnregisterTemplate(pTempl);} + void UnregisterViewTemplate(unsigned int Index){m_ViewTemplateManager.UnregisterTemplate(Index);} + virtual View* CreateView(unsigned int Index){return m_ViewTemplateManager.CreateObjectFromTemplate(Index);} + /** @} */ + + /** @name Données complémentaires du patron de document. + * @{ */ + /** Ajout d'une extension de fichier au type de document. + * @param strExt Nouvelle extension. + * @return Vrai si l'extension est correctement ajoutée. + */ + bool AddExtension(wxString strExt); + /** Extension du document. + * @param nIndex Indice de l'extension dans le tableau des extensions.*/ + wxString GetExtension(unsigned int nIndex=0)const{return m_strExt[nIndex];} + /** Nombre d'extensions enregistrées dans le tableau des extensions.*/ + unsigned int GetExtensionCount()const{return m_strExt.Count();} + /** Wilcard du document. Sélecteur de fichiers généré à partir des extensions de fichiers associées au type de document. + * @param bShowStarDotStar ...*/ + wxString GetDocWildcard(bool bShowStarDotStar=false)const; + /** @}*/ + }; + + + + + + + ////////////////////////////////////////////////////////////////////// + // DocManager + + /** Gestionnaire de documents. + * Référence les différents types de documents. + * Référence aussi tous les documents ouverts et toutes les vues ouvertes. + * Produit une liste d'icones à partir des icones de toutes les vues. + * @see DocTemplate + * @see Document + * @see View + */ + class WXDC_DLL_BASE DocManager : public MultiObjectTemplateManager<Document, DocTemplate> + { + friend class Application; + private: + /** Gestionnaire des vues.*/ + InitializableObjectManager<View> m_ViewManager; + protected: + /** Fenêtre conteneur par défaut des vues.*/ + wxWindow *m_pDefaultViewContainer; + + /** @name Manipulation des documents. + * @{*/ + public: + /** Nombre de documents.*/ + unsigned int GetDocumentCount()const{return MultiObjectTemplateManager<Document, DocTemplate>::GetObjectCount();} + /** Document par l'indice dans le tableau de référencement.*/ + const Document* GetDocument(unsigned int nIndex)const{return &(MultiObjectTemplateManager<Document, DocTemplate>::GetObject(nIndex));} + Document* GetDocument(unsigned int nIndex){return &(MultiObjectTemplateManager<Document, DocTemplate>::GetObject(nIndex));} + /** Document par son chemin.*/ + const Document* GetDocument(FilePath &strDocPath)const; + Document* GetDocument(FilePath &strDocPath); + /** Crée un document. + * Crée un document à partir de l'identifiant de son patron puis l'enregistre dans la liste des documents. + * @param nIndex Index du patron de document. + */ + Document* CreateDocument(unsigned int nIndex); + /** Ferme le document spécifié. + * Ferme un document et toutes ses vues attachées. + * Si le document a été modifié, une demande d'enregistrement est posée à l'utilisateur et le document est enregistré le cas échéant. + * @return Retourne false si l'utilisateur annule l'action.*/ + bool CloseDocument(Document *pDoc); + /** Ferme tous les documents ouverts. + * Ferme tous les documents ouverts et toutes les vues attachées. + * Si des documents sont modifiés, des demandes d'enregistrements sont posées. + * @return Retourne false si l'utilisateur annule l'action (repond "annuler" à une demande de sauvegarde).*/ + bool CloseAllDocuments(); + /** Sauvegarde les données modifiées du documents.*/ + bool SaveDocument(Document *pDoc); + protected: + /** Supprime le document spécifié. + * Le document est supposé libre de vue et sauevgardé si besoin est. + * Aucune vérification ne sera effectuée.*/ + void DeleteDocument(Document* pDocument); + /** @}*/ + + + /** @name Manipulation des patrons de documents. + * @{*/ + public: + /** Nombre de patrons de documents.*/ + unsigned int GetDocTemplateCount()const{return MultiObjectTemplateManager<Document, DocTemplate>::GetTemplateCount();} + /** Patron de document par son indice dans le tableau de référencement. + * @param nIndex Indice du type de document.*/ + const DocTemplate& GetDocTemplate(unsigned int nIndex)const{return MultiObjectTemplateManager<Document, DocTemplate>::GetTemplate(nIndex);} + DocTemplate& GetDocTemplate(unsigned int nIndex){return MultiObjectTemplateManager<Document, DocTemplate>::GetTemplate(nIndex);} + /** Retrouve l'identifiant du patron depuis son adresse.*/ + int FindDocTemplate(const DocTemplate* pTemplate)const{return MultiObjectTemplateManager<Document, DocTemplate>::FindTemplate(pTemplate);} + /** Patron de document correspondant à un nom de patron. + * @param strDocName Nom du patron de document.*/ + int GetDocTemplateFromName(wxString strDocName)const; + /** Patron de document correspondant à une extension de fichier. + * @param strExt Extension de fichier.*/ + int GetDocTemplateFromExt(wxString strExt)const; + /** Demande à l'utilisateur un type de document. + * Affiche une boite de dialogue qui permet de sélectionner un type de document. + * @return Renvoie l'identifiant du type de document sinon renvoie -1.*/ + int ChooseDocTemplate(void) const; + /** Demande à l'utilisateur un type de vue. + * Affiche une boite de dialogue qui permet de sélectionner le type de vue vis-à-vis du type de document spécifié. + * @param nDocTemplateIndex Identifiant du patron de document. + * @return Renvoie l'identifiant de la vue sinon renvoie -1.*/ + int ChooseViewType(unsigned int nDocTemplateIndex) const; + /** Enregistre les types de documents déclarés. + * Enregistres les types de documents déclarés mais pas encore enregistrés. + */ + void RegisterDocTypes(); + /** Ajoute un patron de document à la liste des patrons. + * @param Adresse du patron de document à ajouter. + * @return Indice du nouveau patron ou -1 si erreur. + */ + int RegisterDocTemplate(DocTemplate* pTemplate); + /** @}*/ + + + /** @name Manipulation des vues. + * @{*/ + /** Nombre de vues. + * @return Nombre de vues. */ + unsigned int GetViewCount()const{return m_ViewManager.GetCount();} + /** Vue par son indice du tableau des référencement. + * @return Vue demandée. */ + const View& GetView(unsigned int nIndex)const{return m_ViewManager.Item(nIndex);} + View& GetView(unsigned int nIndex){return m_ViewManager.Item(nIndex);} + /** Crée une vue. + * Crée une vue correspondant à l'indetifiant de vue spécifié et l'attache au document précisé. + * @param pDoc Document auquel attacher la vue. + * @param nViewIndex Indice de la vue correspondant au patron du type de document. + * @return Adresse de la nouvelle vue, -1 si erreur. + */ + View* CreateView(Document *pDoc, unsigned int nViewIndex); + /** Crée une vue. + * Crée une vue correspondant au patron de vue spécifié et l'attache au document précisé. + * @param pDoc Document auquel attacher la vue. + * @param pViewTemp Indice de la vue correspondant au patron du type de document. + * @return Adresse de la nouvelle vue, -1 si erreur. + */ + View* CreateView(Document *pDoc, ViewTemplate* pViewTemp); + /** Ferme la vue spécifiée. + * Si c'est la dernière vue du document attaché, demande d'enregistrer les modifications le cas échéant. + * @return Retourne false si l'utilisateur annule l'action.*/ + bool CloseView(View *pView); + /** Supprime une vue. Supprime une vue sans aucun test d'attachement aux documents. + * Enlève la vue des différentes listes et la détruit. + * Ne doit être appelée que de CloseDocument ou CloseView (ou associé).*/ + void DeleteView(View *pView); + /** @}*/ + + + DocManager(void); + virtual ~DocManager(void); + + /** Retourne le filtrage de fichier global. + * Retourne le filtrage de tous les documents enregistrés. + * @param bShowStarDotStar Affiche l'option "Tous les fichiers (*.*)" si vrai. + * @param bShowAllRegisteredExt Affiche l'option "Tous les documents" c'est à dire tous les types de documents enregistrés si vrai. + * @return Retourne le numéro du type de document correspondant à l'extension spécifiée sinon renvoie -1.*/ + wxString GetAllWildcard(bool bShowStarDotStar=true, bool bShowAllRegisteredExt=true)const; + + + /** @name Manipulation des icones de types de documents. + * @{*/ + /** Retourne la liste d'icones du gestionnaire de document correspondant à une taille donnée. + * Chaque image est forcément carrée. + * @param iSize Taille de chaque image. + * @return Adresse de la liste d'image.*/ + wxImageList* GetImageList(int iSize); + /** Retourne le bundle d'icones associé à un identifiant de type de document. + * @param nDocType Index du type de document. + * @param nViewType Index du type de vue. + * @return Adresse du bundle et NULL si aucun. + */ + wxIconBundle* GetIconBundle(unsigned int nDocType, unsigned int nViewType); + /** @}*/ + }; + + + + + + + + /** Interface de description d'une action utilisateur. + * Classe interface decrivant une action utilisateur pouvant être annulée par une commande "Undo" + * et fournissant toutes les données pour permettre au document de revenir à l'état d'avant l'action. + */ + class WXDC_DLL_BASE Action : public wxObject + { + protected: + /** Code de référence du type d'action.*/ + unsigned int m_nCode; + public: + Action(unsigned int nCode); + /** Retourne le code de l'action.*/ + inline unsigned int GetCode()const{return m_nCode;} + /** Fixe le code de l'action.*/ + inline void SetCode(unsigned int nCode){m_nCode=nCode;} + }; + + + /** Interface "document" implémentant des actions. + * Interfaces pour les documents implémentants des actions et une pile d'actions pour le retour arrière "Undo". + */ + class WXDC_DLL_BASE ActionDocument : public Document + { + /** Déclaration de classe dynamique. Déclare la classe comme pouvant être crée dynamiquement depuis ses infos RTTI de caractère.*/ + DECLARE_DYNAMIC_CLASS(wxDevCenter::ActionDocument); + protected: + /** Définit le type tableau dynamique d'actions ActionArray.*/ + WX_DEFINE_USER_EXPORTED_ARRAY(Action*, ActionArray, class WXDC_DLL_BASE); + /** Tableau dynamique des actions.*/ + ActionArray m_ActionArray; + /** Taille maximale pour le tableau dynamique des fonctions.*/ + int m_iActionArrayMaxSize; + public: + ActionDocument(); + virtual ~ActionDocument(); + + /** Fixe le nombre maximum d'annulation d'action possible. + * Fixe la taille du tableau des dernières actions effectuées.*/ + void SetUndoListSize(int iSize); + /** Retourne le nombre maximum d'annulation d'action possible. + * Retourne la taille du tableau des dernières actions effectuées.*/ + int GetUndoListSize()const{return m_iActionArrayMaxSize;} + /** Retourne le nombre d'annulations d'actions possibles. + * Retourne le nombre d'actions contenues dans le tableau des dernières actions effectuées.*/ + int GetUndoActionCount()const{return m_ActionArray.GetCount();} + /** Annule la dernière action effectuée. + * Restore l'état du document d'avant la dernière action. + * La fonction de base supprime l'action de la liste mais ne rafraichit pas les vues attachées.*/ + virtual void Undo(); + protected: + /** Retourne la dernière action effectuée si il y en a une.*/ + Action* GetUndoAction(){return m_ActionArray.GetCount()==0?NULL:m_ActionArray[m_ActionArray.GetCount()-1];}// Retourne la dernière action. + /** Ajoute une action. + * Ajoute une action à la liste des dernières actions. + * La fonction de base ne fait qu'ajouter l'action à la liste mais n'exécute pas cette action ni ne rafraichis les vues attachées.*/ + void AddAction(Action *pAction); + }; + + + + + + /** Classe de base de déclaration de types de documents. + * Cette classe (et surtout son constructeur) devrait être suffisante. + * Vous pouvez dériver cette classe pour ajouter des traitements spécifiques (ajouts d'autres vues ...) mais il faudra absolumant appeler les fonctions de base. + */ + class WXDC_DLL_BASE DocType : public DocTemplate + { + protected: + /** Unique vue attachée.*/ + ViewTemplate m_ViewTemplate; + public: + /** Constructeur par défaut. + * Les paramètres de ce constructeur devraient être suffisants dans la majorité des cas. + * @param strDocName Nom du document associé. + * @param pDocClassInfo RTTI de la classe du document. + * @param strDocDescripton Description du document. + * @param strExt Liste des extensions (sans point ni étoile) séparés par des points-virgules ';' (exemple : "txt;log" ou "bmp;png;gif;jpg;jpeg"). + * @param strViewName Nom de la vue associée. + * @param pViewClassInfo RTTI de la classe de la vue. + * @param strViewDescripton Description de la vue. + * @param strIconBundleName Nom du jeu d'icones système à utiliser. + * @param pMiniDocClassInfo RTTI de la classe de mini-document. + */ + DocType(wxString strDocName, wxClassInfo *pDocClassInfo, wxString strDocDescripton, wxString strExt, + wxString strViewName, wxClassInfo *pViewClassInfo, wxString strViewDescripton, wxString strIconBundleName, wxClassInfo *pMiniDocClassInfo = NULL); + /** Destructeur.*/ + virtual ~DocType(void); + + /** Initialisation. + * Permet d'initialiser des données spécifiques aux types de documents comme des données globales/statiques. + * Appelé avant toute création d'un document de ce type. + * @return Si faux le type de documents ne sera pas utilisé. + */ + virtual bool Initialize(); + + /** Nettoyage. + * Appelé pendant le désenregistrement du type de document (fin de l'appli ...). + * Permet de nettoyer des données spécifiques aux types de documents comme des données globales/statiques. + */ + virtual void Free(); + }; + + + + + + /** Evenement déclenchée par les minivues.*/ class WXDC_DLL_BASE MiniViewEvent : public wxNotifyEvent --- NEW FILE: Manager.h --- (This appears to be a binary file; contents omitted.) Index: FileSystemStandard.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/FileSystemStandard.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** FileSystemStandard.h 7 Mar 2005 15:23:02 -0000 1.9 --- FileSystemStandard.h 16 Mar 2005 14:27:36 -0000 1.10 *************** *** 36,39 **** --- 36,57 ---- { + #define WXDC_STDFS_NONE 0x0000 + #define WXDC_STDFS_UNKNOW 0x0001 + + #define WXDC_STDFS_DIRTYPE_NORMAL 0x0002 // WXDC_DOCMANAGER_TYPE_DIRECTORY + #define WXDC_STDFS_DIRTYPE_DESKTOP 0x0003 // WXDC_DOCMANAGER_TYPE_DESKTOP + #define WXDC_STDFS_DIRTYPE_HOME 0x0004 // WXDC_DOCMANAGER_TYPE_HOME + #define WXDC_STDFS_DIRTYPE_DOC 0x0005 // WXDC_DOCMANAGER_TYPE_DOCUMENTS + #define WXDC_STDFS_DIRTYPE_MOUNT 0x0006 // WXDC_DOCMANAGER_TYPE_COMPUTER + + #define WXDC_STDFS_DIRTYPE_FLOPPY 0x0007 // WXDC_DOCMANAGER_TYPE_FLOPPY + #define WXDC_STDFS_DIRTYPE_HARDDRIVE 0x0008 // WXDC_DOCMANAGER_TYPE_HARDDRIVE + #define WXDC_STDFS_DIRTYPE_CDROM 0x0009 // WXDC_DOCMANAGER_TYPE_CDROM + #define WXDC_STDFS_DIRTYPE_RAMDISK 0x000A // WXDC_DOCMANAGER_TYPE_RAMDISK + #define WXDC_STDFS_DIRTYPE_REMOTE 0x000B // WXDC_DOCMANAGER_TYPE_REMOTE + + #define WXDC_STDFS_FILETYPES 0x000C // Premier type de fichier + + /** Classe de base pour les systèmes de fichiers directs. * Implémentation partielle commune aux systèmes de fichiers réels (physiques) comme ceux de Windows ou Unix. *************** *** 42,45 **** --- 60,66 ---- { public: + virtual wxString GetFileSystemName()const{return WXDC_SYSTEM_STDFS_NAME;} + virtual wxIconBundle GetIconBundle()const{return wxGetApp().LoadAppIconBundle("desktop");} + wxString GetProtocoleName()const{return "file";} bool CreateDirectory(FilePath strDir); *************** *** 49,52 **** --- 70,79 ---- virtual wxImageList* GetImageList(int width); virtual int GetFileType(const FilePath& strPath); + + protected: + /** Retourne le type de répertoire. + * @param strPath Chemin à tester. + * @return Type de répertoire si celui-ci est un répertoire système, 0 sinon.*/ + virtual int GetDirectorySystemType(FilePath strPath)=0; }; Index: Application.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/Application.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Application.h 7 Mar 2005 15:23:02 -0000 1.8 --- Application.h 16 Mar 2005 14:27:36 -0000 1.9 *************** *** 28,32 **** #include <wxDevCenter/Plugin.h> #include <wxDevCenter/Project.h> ! #include <wxDevCenter/DocManager.h> #include <wxDevCenter/FileSystem.h> #include <wxDevCenter/Config.h> --- 28,32 ---- #include <wxDevCenter/Plugin.h> #include <wxDevCenter/Project.h> ! #include <wxDevCenter/DocView.h> #include <wxDevCenter/FileSystem.h> #include <wxDevCenter/Config.h> *************** *** 160,165 **** ProjectManager& GetProjectManager(){return m_ProjectManager;} /** Projet.*/ ! Project* GetProject(){return m_ProjectManager.GetProject();} ! const Project* GetProject()const{return m_ProjectManager.GetProject();} /** @}*/ --- 160,165 ---- ProjectManager& GetProjectManager(){return m_ProjectManager;} /** Projet.*/ ! Project& GetProject(){return m_ProjectManager.GetProject();} ! const Project& GetProject()const{return m_ProjectManager.GetProject();} /** @}*/ Index: Frame.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/Frame.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Frame.h 7 Mar 2005 15:23:02 -0000 1.4 --- Frame.h 16 Mar 2005 14:27:36 -0000 1.5 *************** *** 171,175 **** virtual void OnViewChanging(View *pOldView=NULL, View *pNewView=NULL); virtual void OnViewChanged(View *pNewView=NULL, View *pOldView=NULL); ! virtual void DeleteView(View *pView)=0; public: virtual void ScrollToView(View *pView)=0; --- 171,175 ---- virtual void OnViewChanging(View *pOldView=NULL, View *pNewView=NULL); virtual void OnViewChanged(View *pNewView=NULL, View *pOldView=NULL); ! virtual void RemoveView(View *pView)=0; public: virtual void ScrollToView(View *pView)=0; Index: MDIFrame.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/MDIFrame.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** MDIFrame.h 7 Mar 2005 15:23:02 -0000 1.3 --- MDIFrame.h 16 Mar 2005 14:27:36 -0000 1.4 *************** *** 48,52 **** // Fonctions virtuelles ! void DeleteView(View *pView); public: MDIFrame(wxWindow *pParent, TopFrame *pTopFrame, wxWindowID id); --- 48,52 ---- // Fonctions virtuelles ! void RemoveView(View *pView); public: MDIFrame(wxWindow *pParent, TopFrame *pTopFrame, wxWindowID id); --- DocManager.h DELETED --- Index: FileSystem.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/FileSystem.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** FileSystem.h 25 Feb 2005 20:45:55 -0000 1.3 --- FileSystem.h 16 Mar 2005 14:27:36 -0000 1.4 *************** *** 33,36 **** --- 33,37 ---- #define __WXDEVCENTER_FILESYSTEM + #include <wxDevCenter/Manager.h> #include <wxDevCenter/FileTools.h> *************** *** 100,117 **** - - #define WXDC_FS_DIRTYPE_NORMAL 0x0002 // WXDC_DOCMANAGER_TYPE_DIRECTORY - #define WXDC_FS_DIRTYPE_DESKTOP 0x0003 // WXDC_DOCMANAGER_TYPE_DESKTOP - #define WXDC_FS_DIRTYPE_HOME 0x0004 // WXDC_DOCMANAGER_TYPE_HOME - #define WXDC_FS_DIRTYPE_DOC 0x0005 // WXDC_DOCMANAGER_TYPE_DOCUMENTS - #define WXDC_FS_DIRTYPE_MOUNT 0x0006 // WXDC_DOCMANAGER_TYPE_COMPUTER - - #define WXDC_FS_DIRTYPE_FLOPPY 0x0007 // WXDC_DOCMANAGER_TYPE_FLOPPY - #define WXDC_FS_DIRTYPE_HARDDRIVE 0x0008 // WXDC_DOCMANAGER_TYPE_HARDDRIVE - #define WXDC_FS_DIRTYPE_CDROM 0x0009 // WXDC_DOCMANAGER_TYPE_CDROM - #define WXDC_FS_DIRTYPE_RAMDISK 0x0010 // WXDC_DOCMANAGER_TYPE_RAMDISK - #define WXDC_FS_DIRTYPE_REMOTE 0x0011 // WXDC_DOCMANAGER_TYPE_REMOTE - - /** Classe abstraite représentant un système de fichier. * Elle autorise la manipulation de fichier et leur ennumération. --- 101,104 ---- *************** *** 121,127 **** * @see UnixStandardFileSystem */ ! class WXDC_DLL_BASE FileSystem : public wxObject { public: /** @name Enumération du contenu. * @{ */ --- 108,123 ---- * @see UnixStandardFileSystem */ ! class WXDC_DLL_BASE FileSystem : public wxObject, public InitializableInterface { public: + /** @name Propriétés générales. + * @{ */ + /** Retourne le nom du système de fichier. + * Le nom n'est qu'une donnée de présentation est en aucun cas une clef unique.*/ + virtual wxString GetFileSystemName()const{return wxT("");} + /** Retourne le bundle d'icones du système de fichier.*/ + virtual wxIconBundle GetIconBundle()const{return wxIconBundle();} + /** @} */ + /** @name Enumération du contenu. * @{ */ *************** *** 155,162 **** * @return Retourne vrai si c'est un répertoire.*/ virtual bool IsDirectory(FilePath strPath)=0; - /** Retourne le type interne de répertoire système. - * @param strPath Chemin à tester. - * @return Type de répertoire si celui-ci est un répertoire système, 0 sinon.*/ - virtual int GetDirectorySystemType(FilePath strPath)=0; /** Retourne le répertoire parent. * @param strPath Chemin dont le parent doit être retourné. --- 151,154 ---- *************** *** 212,278 **** * Fait le lien entre les noms de fichiers, les systèmes de fichiers et les archives. */ ! class WXDC_DLL_BASE FileSystemManager : public wxObject { public: - /** Structure d'association des systèmes de fichiers avec d'autres infos.*/ - struct WXDC_DLL_BASE FileSystemManagerAssoc - { - /** Adresse de l'instance du système de fichier.*/ - FileSystem* pFileSystem; - /** Nom du système de fichier.*/ - wxString strName; - /** Bundle d'icone associé.*/ - wxIconBundle Icones; - }; - protected: - WX_DEFINE_USER_EXPORTED_ARRAY(FileSystemManagerAssoc*, FileSystemManagerAssocArray, class WXDC_DLL_BASE); - - /** Tableau des systèmes de fichiers enregistrés.*/ - FileSystemManagerAssocArray m_arFileSystems; - public: FileSystemManager(); virtual ~FileSystemManager(); - /** Enregistre un nouveau système de fichier. - * @param pFileSystem Système de fichier à enregistrer. - * @param strName Nom de présentation du système. - * @param Icones Bundle d'icone pour la représentation graphique. - */ - void RegisterFileSystem(FileSystem* pFileSystem, const wxString& strName, const wxIconBundle& Icones); - - /** Désinscrit le système de fichier. - * Le système de fichier est désinscrit mais pas détruit. - * @param pFileSystem Système de fichier à désinscrire. - */ - void RemoveFileSystem(FileSystem* pFileSystem); - - /** Supprime le système de fichier. - * Le système de fichier est désinscrit puis détruit. - * @param pFileSystem Système de fichier à supprimer. - */ - void DeleteFileSystem(FileSystem* pFileSystem); - - /** Retourne le nombre de systèmes de fichiers enregistrés. - * @return Nombre de systèmes enregistrés. - */ - unsigned int GetCount(); - - /** Cherche si un système de fichier est attaché. - * @param pFileSystem Système de fichier à supprimer. - * @return Index du système de fichier et -1 si non attaché.*/ - int Find(FileSystem* pFileSystem); - - /** Retourne une référence vers la description demandée. - * @param nIndex Indice du système de fichier. - * @return Référence de l'association du système de fichier. - */ - FileSystemManagerAssoc& GetFileSystem(int nIndex){return *m_arFileSystems[nIndex];} - - /** Retourne une référence vers la description demandée. - * @param pFileSystem Systeme de fichier demandé. - * @return Référence de l'association du système de fichier. - */ - FileSystemManagerAssoc& GetFileSystem(FileSystem* pFileSystem){return *m_arFileSystems[Find(pFileSystem)];} - /** Retourne le système de fichier correspondant à un chemin de fichier. * @param strPath Chemin du fichier. --- 204,213 ---- * Fait le lien entre les noms de fichiers, les systèmes de fichiers et les archives. */ ! class WXDC_DLL_BASE FileSystemManager : public InitializableObjectManager<FileSystem> { public: FileSystemManager(); virtual ~FileSystemManager(); /** Retourne le système de fichier correspondant à un chemin de fichier. * @param strPath Chemin du fichier. |
|
From: Emilien K. <cur...@us...> - 2005-03-16 14:27:53
|
Update of /cvsroot/wxdevcenter/wxDevCenter/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29232/src Modified Files: Application.cpp DocManager.cpp DocType.cpp Document.cpp FileSystem.cpp FileSystemCtrl.cpp FileSystemStandard.cpp MDIFrame.cpp MainFrame.cpp Project.cpp Added Files: Manager.cpp Log Message: Merge de la branche "manager_virtualization". Index: DocType.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/DocType.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** DocType.cpp 7 Dec 2004 13:36:28 -0000 1.2 --- DocType.cpp 16 Mar 2005 14:27:37 -0000 1.3 *************** *** 41,46 **** ! DocType::DocType(wxString strDocName, wxClassInfo *pDocClassInfo, wxString strDocDescripton, wxString strExt, wxString strViewName, wxClassInfo *pViewClassInfo, wxString strViewDescripton, wxString strIconBundleName, wxClassInfo *pMiniDocClassInfo): ! DocTemplate(strDocName, pDocClassInfo, "", strDocDescripton) { // Enregistrement des extensions. --- 41,47 ---- ! DocType::DocType(wxString strDocName, wxClassInfo *pDocClassInfo, wxString strDocDescripton, wxString strExt, wxString strViewName, wxClassInfo *pViewClassInfo, wxString strViewDescripton, wxString strIconBundleName, wxClassInfo *WXUNUSED(pMiniDocClassInfo)): ! DocTemplate(strDocName, pDocClassInfo, "", strDocDescripton), ! m_ViewTemplate(pViewClassInfo, strViewName, strViewDescripton, strIconBundleName) { // Enregistrement des extensions. *************** *** 51,62 **** // Enregistrement des données de la vue. ! AddView(strViewName, pViewClassInfo, strIconBundleName, strViewDescripton); // Enregistrement du mini-doc si précisé. ! if(pMiniDocClassInfo!=NULL) ! SetMiniDoc(pMiniDocClassInfo); // Déclaration du type de documents. ! wxGetApp().GetDocManager().AddDocTemplate(this); } --- 52,63 ---- // Enregistrement des données de la vue. ! RegisterViewTemplate(&m_ViewTemplate); // Enregistrement du mini-doc si précisé. ! // if(pMiniDocClassInfo!=NULL) ! // SetMiniDoc(pMiniDocClassInfo); // Déclaration du type de documents. ! wxGetApp().GetDocManager().RegisterDocTemplate(this); } Index: MDIFrame.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/MDIFrame.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MDIFrame.cpp 12 Jan 2005 13:50:55 -0000 1.2 --- MDIFrame.cpp 16 Mar 2005 14:27:37 -0000 1.3 *************** *** 93,97 **** { wxString str = pView->GetDocument()->GetDocumentName(); ! long type = pView->GetViewAssociation()->ID; View *pOldView = GetActiveView(); --- 93,97 ---- { wxString str = pView->GetDocument()->GetDocumentName(); ! long type = wxGetApp().GetDocManager().FindDocTemplate(pView->GetDocument()->GetDocTemplate()); View *pOldView = GetActiveView(); *************** *** 101,107 **** pView->SetFrame(this); ! OnViewChanging( pOldView, pView); AddPage(pView, str, true, type); ! OnViewChanged( pView, pOldView); } --- 101,107 ---- pView->SetFrame(this); ! OnViewChanging(pOldView, pView); AddPage(pView, str, true, type); ! OnViewChanged(pView, pOldView); } *************** *** 154,158 **** // Supprime une vue, si elle est attachée, et sans aucun test d'attachement sur le document ! void MDIFrame::DeleteView(View *pView) { int i, iPage; --- 154,158 ---- // Supprime une vue, si elle est attachée, et sans aucun test d'attachement sur le document ! void MDIFrame::RemoveView(View *pView) { int i, iPage; *************** *** 178,184 **** // On retire la vue RemovePage(i); - // On détruit la vue - pView->Destroy(); - break;; } } --- 178,181 ---- Index: FileSystem.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/FileSystem.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** FileSystem.cpp 3 Dec 2004 16:47:45 -0000 1.1 --- FileSystem.cpp 16 Mar 2005 14:27:37 -0000 1.2 *************** *** 188,192 **** FileSystemManager::FileSystemManager(): ! wxObject() { } --- 188,192 ---- FileSystemManager::FileSystemManager(): ! InitializableObjectManager<FileSystem>() { } *************** *** 194,247 **** FileSystemManager::~FileSystemManager() { - while(m_arFileSystems.GetCount()>0) - { - delete m_arFileSystems[0]->pFileSystem; - delete m_arFileSystems[0]; - m_arFileSystems.RemoveAt(0); - } - } - - // Enregistre un nouveau système de fichier. - void FileSystemManager::RegisterFileSystem(FileSystem* pFileSystem, const wxString& strName, const wxIconBundle& Icones) - { - FileSystemManagerAssoc* pFSMA = new FileSystemManagerAssoc; - pFSMA->pFileSystem = pFileSystem; - pFSMA->strName = strName; - pFSMA->Icones = Icones; - m_arFileSystems.Add(pFSMA); - } - - // Désinscrit le système de fichier. - void FileSystemManager::RemoveFileSystem(FileSystem* pFileSystem) - { - int iIndex = Find(pFileSystem); - if(iIndex!=-1) - m_arFileSystems.RemoveAt(iIndex); - } - - // Supprime le système de fichier. - void FileSystemManager::DeleteFileSystem(FileSystem* pFileSystem) - { - int iIndex = Find(pFileSystem); - if(iIndex!=-1) - { - delete m_arFileSystems[iIndex]; - m_arFileSystems.RemoveAt(iIndex); - } - } - - // Retourne le nombre de systèmes de fichiers enregistrés. - unsigned int FileSystemManager::GetCount() - { - return m_arFileSystems.GetCount(); - } - - // Cherche si un système de fichier est attaché. - int FileSystemManager::Find(FileSystem* pFileSystem) - { - for(unsigned int n=0; n<m_arFileSystems.GetCount(); n++) - if(m_arFileSystems[n]->pFileSystem == pFileSystem) - return (int)n; - return -1; } --- 194,197 ---- *************** *** 250,256 **** { wxString strProtocol = strPath.GetFileProtocol(); ! for(unsigned int n=0; n<m_arFileSystems.GetCount(); n++) ! if(m_arFileSystems[n]->pFileSystem->GetProtocoleName()==strProtocol) ! return m_arFileSystems[n]->pFileSystem; return NULL; } --- 200,206 ---- { wxString strProtocol = strPath.GetFileProtocol(); ! for(unsigned int n=0; n<GetCount(); n++) ! if(Item(n).GetProtocoleName()==strProtocol) ! return &Item(n); return NULL; } Index: FileSystemCtrl.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/FileSystemCtrl.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** FileSystemCtrl.cpp 25 Feb 2005 20:58:04 -0000 1.6 --- FileSystemCtrl.cpp 16 Mar 2005 14:27:37 -0000 1.7 *************** *** 26,30 **** #include <wxDevCenter/FileSystem.h> - #include <wxDevCenter/DocManager.h> #include <wx/toolbar.h> --- 26,29 ---- *************** *** 683,689 **** for(unsigned int n=0; n<pFSM->GetCount(); n++) { ! FileSystemManager::FileSystemManagerAssoc& FSMA = pFSM->GetFileSystem((int)n); ! wxBitmap bmp = FSMA.Icones.GetIcon(48); ! AttachFileSystem(FSMA.pFileSystem, FSMA.strName, bmp); } } --- 682,687 ---- for(unsigned int n=0; n<pFSM->GetCount(); n++) { ! wxBitmap bmp = pFSM->Item(n).GetIconBundle().GetIcon(48); ! AttachFileSystem(&(pFSM->Item(n)), pFSM->Item(n).GetFileSystemName(), bmp); } } Index: DocManager.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/DocManager.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** DocManager.cpp 7 Mar 2005 15:23:03 -0000 1.7 --- DocManager.cpp 16 Mar 2005 14:27:37 -0000 1.8 *************** *** 23,29 **** #include <wxDevCenter.h> - #include <wxDevCenter/DocManager.h> #include <wxDevCenter/DocView.h> - #include <wxDevCenter/DocManager.h> #include <wxDevCenter/MDIFrame.h> --- 23,27 ---- *************** *** 33,47 **** - WX_DEFINE_OBJARRAY(ViewInfoArray); - - /** Compteur d'identifiants. - * Compteur servant à créer des identifiants uniques pour les types de documents et de vues.*/ - static unsigned int g_nDocIdentCount = WXDC_DOCMANAGER_TYPE_CUSTOMFIRST; - /** Fonction retournant un nouveel identifiant. - * @return Nouvel identifiant. - */ - static inline unsigned int GetNewIdent(){return g_nDocIdentCount++;} - - ////////////////////////////////////////////////////////////////////// // DocTemplate --- 31,34 ---- *************** *** 49,59 **** // Constructeur-initialisation DocTemplate::DocTemplate(wxString strName, wxClassInfo *pDocClassInfo, wxString strExt, wxString strDescription): ! wxObject(), ! m_nID(GetNewIdent()), ! m_strDocName(strName), ! m_pDocClassInfo(pDocClassInfo), ! m_strDescription(strDescription) { - m_ViewInfoArray.Alloc(2); m_strExt.Alloc(4); m_strExt.Add(strExt); --- 36,42 ---- // Constructeur-initialisation DocTemplate::DocTemplate(wxString strName, wxClassInfo *pDocClassInfo, wxString strExt, wxString strDescription): ! ObjectTemplate<Document>(pDocClassInfo, strName, strDescription), ! m_ViewTemplateManager() { m_strExt.Alloc(4); m_strExt.Add(strExt); *************** *** 64,79 **** } - void DocTemplate::AddView(wxString name, wxClassInfo *pCI, wxString strIcon, wxString description) - { - ViewAssociation Assoc; - Assoc.ID = m_ViewInfoArray.GetCount()==0?m_nID:GetNewIdent(); - Assoc.strName = name; - Assoc.pClassInfo = pCI; - Assoc.strDescription = description; - Assoc.strIcons = strIcon; - m_ViewInfoArray.Add(Assoc); - } - - bool DocTemplate::AddExtension(wxString strExt) { --- 47,50 ---- *************** *** 91,95 **** str += "*." + GetExtension(i) + ";"; str.RemoveLast(); ! strWildcard = m_strDocName + " (" + str + ")|" + str; if(bShowStarDotStar) strWildcard += "|" + wxString(WXDC_FILE_WILDCARD_ALLFILE) + "|*.*"; --- 62,66 ---- str += "*." + GetExtension(i) + ";"; str.RemoveLast(); ! strWildcard = GetName() + " (" + str + ")|" + str; if(bShowStarDotStar) strWildcard += "|" + wxString(WXDC_FILE_WILDCARD_ALLFILE) + "|*.*"; *************** *** 102,106 **** // DocManager ! DocManager::DocManager(void) { --- 73,80 ---- // DocManager ! DocManager::DocManager(void): ! MultiObjectTemplateManager<Document, DocTemplate>(), ! m_ViewManager(), ! m_pDefaultViewContainer(NULL) { *************** *** 111,134 **** } - void DocManager::InitDocManager() - { - m_arIconNames.Alloc(25); - m_arIconNames.Add("", WXDC_DOCMANAGER_TYPE_SYSCOUNT); - m_arIconNames[WXDC_DOCMANAGER_TYPE_NONE ] = wxT("none"); - m_arIconNames[WXDC_DOCMANAGER_TYPE_UNKNOW ] = wxT("unknow"); - m_arIconNames[WXDC_DOCMANAGER_TYPE_DIRECTORY ] = wxT("dir"); - m_arIconNames[WXDC_DOCMANAGER_TYPE_DESKTOP ] = wxT("desktop"); - m_arIconNames[WXDC_DOCMANAGER_TYPE_HOME ] = wxT("desktop"); - m_arIconNames[WXDC_DOCMANAGER_TYPE_DOCUMENTS ] = wxT("docs"); - m_arIconNames[WXDC_DOCMANAGER_TYPE_COMPUTER ] = wxT("computer"); - - m_arIconNames[WXDC_DOCMANAGER_TYPE_FLOPPY ] = wxT("floppy"); - m_arIconNames[WXDC_DOCMANAGER_TYPE_HARDDRIVE] = wxT("harddrive"); - m_arIconNames[WXDC_DOCMANAGER_TYPE_CDROM ] = wxT("cd-dvd"); - m_arIconNames[WXDC_DOCMANAGER_TYPE_RAMDISK ] = wxT("ramdisk"); - m_arIconNames[WXDC_DOCMANAGER_TYPE_REMOTE ] = wxT("remote"); - } - - /** --- 85,88 ---- *************** *** 138,164 **** // Document par son chemin. ! Document* DocManager::GetDocument(FilePath &strDocPath)const { ! for(int i=0; i<(int)m_DocArray.GetCount(); i++) ! { ! if(m_DocArray[i]->GetDocumentPath()==strDocPath) ! return m_DocArray[i]; ! } return NULL; } ! // Enregistre un document. ! void DocManager::RegisterDocument(Document* pDocument) { ! m_DocArray.Add(pDocument); } // Crée un document. ! Document* DocManager::CreateDocument(DocTemplate* pDocTemplate) { ! Document *pDoc = (Document*)pDocTemplate->m_pDocClassInfo->CreateObject(); ! m_DocArray.Add(pDoc); pDoc->m_pDocumentManager = this; ! pDoc->m_pDocumentTemplate = pDocTemplate; return pDoc; } --- 92,117 ---- // Document par son chemin. ! const Document* DocManager::GetDocument(FilePath &strDocPath)const { ! for(unsigned int n=0; n<GetDocumentCount(); n++) ! if(GetDocument(n)->GetDocumentPath()==strDocPath) ! return GetDocument(n); return NULL; } ! Document* DocManager::GetDocument(FilePath &strDocPath) { ! for(unsigned int n=0; n<GetDocumentCount(); n++) ! if(GetDocument(n)->GetDocumentPath()==strDocPath) ! return GetDocument(n); ! return NULL; } // Crée un document. ! Document* DocManager::CreateDocument(unsigned int nIndex) { ! Document *pDoc = CreateObject(nIndex); pDoc->m_pDocumentManager = this; ! pDoc->m_pDocumentTemplate = &GetTemplate(nIndex); return pDoc; } *************** *** 173,177 **** // Le document sera détruit automatiquement par la fermeture de la dernière vue. for(int i = pDoc->m_ViewArray.GetCount()-1; i>=0; i--) ! CloseView(pDoc->m_ViewArray.Item(i)); return true; } --- 126,130 ---- // Le document sera détruit automatiquement par la fermeture de la dernière vue. for(int i = pDoc->m_ViewArray.GetCount()-1; i>=0; i--) ! CloseView(&pDoc->m_ViewArray.Item(i)); return true; } *************** *** 183,189 **** bool DocManager::CloseAllDocuments() { ! while(m_DocArray.GetCount()>0) { ! if(!CloseDocument(m_DocArray[0])) return false; } --- 136,142 ---- bool DocManager::CloseAllDocuments() { ! while(GetDocumentCount()>0) { ! if(!CloseDocument(GetDocument(0))) return false; } *************** *** 204,211 **** // Pré-ferme le document. pDocument->OnCloseDocument(); ! // Retire le document de la liste des documents du DocManager ! m_DocArray.Remove(pDocument); ! // Détruit le document. ! delete pDocument; } --- 157,162 ---- // Pré-ferme le document. pDocument->OnCloseDocument(); ! // Détruit le document (finalise, désenregistre et détruit). ! DestroyObject(pDocument); } *************** *** 216,285 **** // Patron de document correspondant à une extension ! int DocManager::GetDocTemplateID(wxString strExt)const { ! int i,j; ! for(i=0; i<(int)m_DocTemplateArray.Count(); i++) ! { ! for(j=0; j<(int)m_DocTemplateArray[i]->GetExtensionCount(); j++) ! { ! if(strExt.CmpNoCase(m_DocTemplateArray[i]->GetExtension(j))==0) ! return m_DocTemplateArray[i]->m_nID; ! } ! } return -1; } // Patron de document correspondant à un nom de patron. ! DocTemplate* DocManager::GetDocTemplate(wxString DocName)const { ! unsigned int i; ! for(i=0; i<m_DocTemplateArray.GetCount(); i++) ! { ! if(m_DocTemplateArray[i]->m_strDocName==DocName) ! return m_DocTemplateArray[i]; ! } ! return NULL; } // Demande à l'utilisateur un type de document. ! int DocManager::ChooseDocTemplate(void) const { wxArrayString aDocTemplateStrings; ! wxString str; unsigned int n; - int i; aDocTemplateStrings.Empty(); ! for(n=0; n<m_DocTemplateArray.GetCount(); n++) { ! str = m_DocTemplateArray[n]->m_strDocName + " - " + m_DocTemplateArray[n]->m_strDescription; aDocTemplateStrings.Add(str); } ! str.Printf("%s - %s", WXDC_NAME, WXDC_DOCUMENT_REQUEST_NEW); ! i = wxGetSingleChoiceIndex(WXDC_DOCUMENT_REQUEST_TYPE, str, aDocTemplateStrings, NULL, -1, -1, true, 350, 200); ! return i!=-1?m_DocTemplateArray[i]->m_nID:-1; } // Demande à l'utilisateur un type de vue. ! int DocManager::ChooseViewType(unsigned int nDocTemplateID) const { wxArrayString aViewStrings; ! wxString str; unsigned int n; ! int i; ! unsigned int nIndex = DocTemplateIndexFromID(nDocTemplateID); aViewStrings.Empty(); ! for(n=0; n<m_DocTemplateArray[nIndex]->GetViewCount(); n++) { ! str = m_DocTemplateArray[nIndex]->GetViewName(n) + " - " + m_DocTemplateArray[nIndex]->GetViewDescription(n); aViewStrings.Add(str); } ! str.Printf("%s - %s", WXDC_NAME, WXDC_VIEW_REQUEST_NEW); ! i = wxGetSingleChoiceIndex(WXDC_VIEW_REQUEST_TYPE, str, aViewStrings, NULL, -1, -1, true, 350, 200); ! return i!=-1?m_DocTemplateArray[nIndex]->m_ViewInfoArray[i].ID:-1; } --- 167,232 ---- // Patron de document correspondant à une extension ! int DocManager::GetDocTemplateFromExt(wxString strExt)const { ! unsigned int m, n; ! for(m=0; m<GetDocTemplateCount(); m++) ! for(n=0; n<GetDocTemplate(m).GetExtensionCount(); n++) ! if(strExt.CmpNoCase(GetDocTemplate(m).GetExtension(n))==0) ! return (int)m; return -1; } // Patron de document correspondant à un nom de patron. ! int DocManager::GetDocTemplateFromName(wxString strDocName)const { ! unsigned int m; ! for(m=0; m<GetDocTemplateCount(); m++) ! if(GetDocTemplate(m).GetName()==strDocName) ! return m; ! return -1; } // Demande à l'utilisateur un type de document. ! int DocManager::ChooseDocTemplate()const { wxArrayString aDocTemplateStrings; ! wxString str, s; unsigned int n; aDocTemplateStrings.Empty(); ! for(n=0; n<GetDocTemplateCount(); n++) { ! str = GetDocTemplate(n).GetName(); ! s = GetDocTemplate(n).GetDescript(); ! if(!s.IsEmpty()) ! str << wxT(" - ") << s; aDocTemplateStrings.Add(str); } ! str.Printf(wxT("%s - %s"), WXDC_NAME, WXDC_DOCUMENT_REQUEST_NEW); ! return wxGetSingleChoiceIndex(WXDC_DOCUMENT_REQUEST_TYPE, str, aDocTemplateStrings, NULL, -1, -1, true, 350, 200); } // Demande à l'utilisateur un type de vue. ! int DocManager::ChooseViewType(unsigned int nDocTemplateIndex) const { wxArrayString aViewStrings; ! wxString str, s; unsigned int n; ! const DocTemplate& DocTempl = GetDocTemplate(nDocTemplateIndex); aViewStrings.Empty(); ! for(n=0; n<DocTempl.GetViewTemplateCount(); n++) { ! str = DocTempl.GetViewTemplate(n).GetName(); ! s = DocTempl.GetViewTemplate(n).GetDescript(); ! if(!s.IsEmpty()) ! str << wxT(" - ") << s; aViewStrings.Add(str); } ! str.Printf(wxT("%s - %s"), WXDC_NAME, WXDC_VIEW_REQUEST_NEW); ! return wxGetSingleChoiceIndex(WXDC_VIEW_REQUEST_TYPE, str, aViewStrings, NULL, -1, -1, true, 350, 200); } *************** *** 287,291 **** void DocManager::RegisterDocTypes() { ! for(unsigned int n=0; n<m_DocTemplateArray.GetCount(); n++) { if(m_DocTemplateArray[n]->Initialize()) --- 234,238 ---- void DocManager::RegisterDocTypes() { ! /* for(unsigned int n=0; n<m_DocTemplateArray.GetCount(); n++) { if(m_DocTemplateArray[n]->Initialize()) *************** *** 305,315 **** n--; } ! } } // Ajoute un patron de document à la liste des patrons. ! void DocManager::AddDocTemplate(DocTemplate* pTemplate) { ! m_DocTemplateArray.Add(pTemplate); } --- 252,265 ---- n--; } ! }*/ } // Ajoute un patron de document à la liste des patrons. ! int DocManager::RegisterDocTemplate(DocTemplate* pTemplate) { ! if(!RegisterTemplate(pTemplate)) ! return -1; ! else ! return FindTemplate(pTemplate); } *************** *** 322,354 **** // Crée une vue ! View* DocManager::CreateView(Document *pDoc, unsigned int nDocViewID) { View *pView = NULL; DocTemplate *pTemplate = pDoc->m_pDocumentTemplate; - ViewAssociation *pVA = NULL; ! for(unsigned int n=0; n<pTemplate->m_ViewInfoArray.GetCount(); n++) { ! if(pTemplate->m_ViewInfoArray[n].ID == nDocViewID) ! pVA = &(pTemplate->m_ViewInfoArray[n]); ! } ! if(pVA==NULL) return NULL; ! pView = (View*)pVA->pClassInfo->CreateObject(); ! pView->m_pViewAssociation = pVA; pView->m_pDocument = NULL; if(pDoc!=NULL) pDoc->AttachView(pView); - pView->Create(m_pDefaultViewContainer, -1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER); pView->Hide(); pView->OnCreate(); pView->Show(); ! m_ViewArray.Add(pView); return pView; } // Ferme la vue spécifiée. bool DocManager::CloseView(View *pView) --- 272,333 ---- // Crée une vue ! View* DocManager::CreateView(Document *pDoc, unsigned int nViewIndex) { View *pView = NULL; DocTemplate *pTemplate = pDoc->m_pDocumentTemplate; ! pView = pTemplate->GetViewTemplate(nViewIndex).CreateObject(); ! if(pView==NULL) ! return NULL; ! ! if(!m_ViewManager.Register(pView)) { ! delete pView; return NULL; + } ! pView->m_pViewTemplate = &pTemplate->GetViewTemplate(nViewIndex); pView->m_pDocument = NULL; if(pDoc!=NULL) pDoc->AttachView(pView); pView->Create(m_pDefaultViewContainer, -1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER); pView->Hide(); pView->OnCreate(); pView->Show(); ! return pView; ! } + /** Crée une vue. + * Crée une vue correspondant au patron de vue spécifié et l'attache au document précisé. + * @param pDoc Document auquel attacher la vue. + * @param pViewTemp Indice de la vue correspondant au patron du type de document. + * @return Adresse de la nouvelle vue, -1 si erreur. + */ + View* DocManager::CreateView(Document *pDoc, ViewTemplate* pViewTemp) + { + View *pView = NULL; + + pView = pViewTemp->CreateObject(); + if(pView==NULL) + return NULL; + + if(!m_ViewManager.Register(pView)) + { + delete pView; + return NULL; + } + + pView->m_pViewTemplate = pViewTemp; + pView->m_pDocument = NULL; + if(pDoc!=NULL) + pDoc->AttachView(pView); + pView->Create(m_pDefaultViewContainer, -1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER); + pView->Hide(); + pView->OnCreate(); + pView->Show(); return pView; } + // Ferme la vue spécifiée. bool DocManager::CloseView(View *pView) *************** *** 356,360 **** Document *pDoc = pView->GetDocument(); ! // On s'assure que le document peut etre fermé si s'est la dernière vue. if(pDoc->m_ViewArray.GetCount()==1) { --- 335,339 ---- Document *pDoc = pView->GetDocument(); ! // On s'assure que le document peut être fermé si s'est la dernière vue. if(pDoc->m_ViewArray.GetCount()==1) { *************** *** 384,440 **** pView->GetDocument()->DetachView(pView); - // Détache la vue de la liste des vues du DocManager. - m_ViewArray.Remove(pView); - // Destruction de la vue. ! pView->GetFrame()->DeleteView(pView); ! } ! ! ! /** ! * Manipulation des minidocuments et des minivues. ! */ ! ! // Crée une MiniVue ! MiniView* DocManager::CreateMiniView(FilePath strSourcePath, wxWindow* pParent, wxWindowID id) ! { ! DocTemplate *pDocTemplate = GetDocTemplate(GetDocTemplateID(strSourcePath.GetFileExt())); ! Archive *pArchive = NULL; ! MiniView *pMiniView = NULL; ! MiniDoc *pMiniDoc = NULL; ! wxClassInfo *pMiniDocCI = NULL; ! ! if(pDocTemplate!=NULL) ! if((pMiniDocCI = pDocTemplate->GetMiniDocClassInfo())!=NULL) ! { ! /** Création du mini-doc si aucun n'existe.*/ ! if((pMiniDoc=GetMiniDoc(strSourcePath))==NULL) ! { ! if((pArchive = wxGetApp().CreateDocumentArchive(strSourcePath, Archive::read))==NULL) ! return NULL; ! pMiniDoc = (MiniDoc*) pMiniDocCI->CreateObject(); ! pMiniDoc->m_strDocFilePath = strSourcePath; ! if(!pMiniDoc->OnInitialize(pArchive)) ! { ! delete pMiniDoc; ! return NULL; ! } ! m_MiniDocArray.Add(pMiniDoc); ! } ! /** Création de la mini-vue.*/ ! pMiniView = pMiniDoc->CreateMiniView(pParent, id); ! pMiniView->SetTitle(strSourcePath); ! pMiniView->m_pMiniDoc = pMiniDoc; ! } ! return pMiniView; ! } ! // Retourne le mini-doc si celui si existe. ! MiniDoc* DocManager::GetMiniDoc(FilePath strDocPath) ! { ! for(int i=0; i<(int)m_MiniDocArray.GetCount(); i++) ! if(m_MiniDocArray[i]->GetFilePath()==strDocPath) ! return m_MiniDocArray[i]; ! return NULL; } --- 363,371 ---- pView->GetDocument()->DetachView(pView); // Destruction de la vue. ! pView->GetFrame()->RemoveView(pView); ! // Désenregistre la vue (désinscrit la vue, la finalize et la détruit). ! m_ViewManager.Unregister(pView); } *************** *** 448,452 **** wxString DocManager::GetAllWildcard(bool bShowStarDotStar, bool bShowAllRegisteredExt)const { ! int i, j; wxString strWild; strWild.Empty(); --- 379,383 ---- wxString DocManager::GetAllWildcard(bool bShowStarDotStar, bool bShowAllRegisteredExt)const { ! unsigned int m, n; wxString strWild; strWild.Empty(); *************** *** 454,477 **** if(bShowAllRegisteredExt) { ! strWild = wxString(WXDC_FILE_WILDCARD_ALLREGISTERED) + "|"; ! for(i=0; i<(int)GetDocTemplateCount(); i++) { ! for(j=0; j<(int)m_DocTemplateArray[i]->GetExtensionCount(); j++) { ! strWild += "*." + m_DocTemplateArray[i]->GetExtension(j) + ";"; } } strWild.RemoveLast(); ! strWild += "|"; } ! for(i=0; i<(int)GetDocTemplateCount(); i++) { ! strWild += m_DocTemplateArray[i]->GetDocWildcard(false); } if(bShowStarDotStar) { ! strWild += wxString(WXDC_FILE_WILDCARD_ALLFILE) + "|*.*|"; } return strWild; --- 385,408 ---- if(bShowAllRegisteredExt) { ! strWild = wxString(WXDC_FILE_WILDCARD_ALLREGISTERED) + wxT("|"); ! for(m=0; m<GetDocTemplateCount(); m++) { ! for(n=0; n<GetDocTemplate(m).GetExtensionCount(); n++) { ! strWild += wxT("*.") + GetDocTemplate(m).GetExtension(n) + wxT(";"); } } strWild.RemoveLast(); ! strWild += wxT("|"); } ! for(m=0; m<GetDocTemplateCount(); m++) { ! strWild += GetDocTemplate(m).GetDocWildcard(false); } if(bShowStarDotStar) { ! strWild += wxString(WXDC_FILE_WILDCARD_ALLFILE) + wxT("|*.*|"); } return strWild; *************** *** 483,491 **** wxImageList* DocManager::GetImageList(int iSize) { ! wxImageList * pIL = new wxImageList(iSize, iSize, true, g_nDocIdentCount); ! for(unsigned int n=0; n<g_nDocIdentCount; n++) { ! wxIconBundle IB = wxGetApp().LoadAppIconBundle(m_arIconNames[n]); pIL->Add(IB.GetIcon(iSize)); } --- 414,422 ---- wxImageList* DocManager::GetImageList(int iSize) { ! wxImageList * pIL = new wxImageList(iSize, iSize, true, GetDocTemplateCount()); ! for(unsigned int n=0; n<GetDocTemplateCount(); n++) { ! wxIconBundle IB = wxGetApp().LoadAppIconBundle(GetDocTemplate(n).GetViewTemplate(0).strIcons); pIL->Add(IB.GetIcon(iSize)); } *************** *** 494,515 **** // Retourne le bundle d'icones associé à un identifiant de type de document. ! wxIconBundle* DocManager::GetIconBundle(unsigned int ID) { ! if(m_arIconBundle.GetCount()<=ID) ! m_arIconBundle.Add(NULL, ID - m_arIconBundle.GetCount() + 1); ! if(m_arIconNames.GetCount()<=ID) ! m_arIconNames.Add("", ID - m_arIconBundle.GetCount() + 1); ! ! if(m_arIconNames[ID].IsEmpty()) ! return NULL; ! else ! { ! if(m_arIconBundle[ID]==NULL) ! { ! wxIconBundle IB = wxGetApp().LoadAppIconBundle(m_arIconNames[ID]); ! m_arIconBundle[ID] = new wxIconBundle(IB); ! } ! return m_arIconBundle[ID]; ! } } --- 425,431 ---- // Retourne le bundle d'icones associé à un identifiant de type de document. ! wxIconBundle* DocManager::GetIconBundle(unsigned int nDocType, unsigned int nViewType) { ! return new wxIconBundle(wxGetApp().LoadAppIconBundle(GetDocTemplate(nDocType).GetViewTemplate(nViewType).strIcons)); } Index: MainFrame.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/MainFrame.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** MainFrame.cpp 25 Feb 2005 20:58:04 -0000 1.6 --- MainFrame.cpp 16 Mar 2005 14:27:37 -0000 1.7 *************** *** 29,33 **** #include <wxDevCenter/MDIFrame.h> #include <wxDevCenter/FileSystem.h> - #include <wxDevCenter/DocManager.h> #include <wxDevCenter/DocView.h> --- 29,32 ---- *************** *** 316,321 **** if(pActiveView!=NULL) { ! View *pNewView = wxGetApp().GetDocManager().CreateView(pActiveView->GetDocument(), pActiveView->GetViewAssociation()->ID); ! pActiveView->GetDocument()->AttachView(pNewView); AddView(pNewView); pNewView->OnInitialUpdate(); --- 315,319 ---- if(pActiveView!=NULL) { ! View *pNewView = wxGetApp().GetDocManager().CreateView(pActiveView->GetDocument(), pActiveView->GetViewTemplate()); AddView(pNewView); pNewView->OnInitialUpdate(); *************** *** 330,334 **** { Document *pDoc = pActiveView->GetDocument(); ! int iTypeView = wxGetApp().GetDocManager().ChooseViewType(pDoc->GetDocTemplate()->GetDocType()); if(iTypeView!=-1) { --- 328,332 ---- { Document *pDoc = pActiveView->GetDocument(); ! int iTypeView = wxGetApp().GetDocManager().ChooseViewType(wxGetApp().GetDocManager().FindTemplate(pDoc->GetDocTemplate())); if(iTypeView!=-1) { *************** *** 366,370 **** void MainFrame::OnUpdateWhenHasDoc(wxUpdateUIEvent &event) { ! event.Enable(wxGetApp().GetDocManager().GetDocCount()!=0); } --- 364,368 ---- void MainFrame::OnUpdateWhenHasDoc(wxUpdateUIEvent &event) { ! event.Enable(wxGetApp().GetDocManager().GetDocumentCount()!=0); } *************** *** 456,460 **** { InsertViewMenu(pNewView); ! SetIcons(*(wxGetApp().GetDocManager().GetIconBundle(pNewView->GetViewAssociation()->ID))); str.Append(WXDC_NAME).Append(wxT(" - ")).Append(pNewView->GetDocument()->GetDocumentName()); if(pNewView->GetDocument()->GetModifiedFlag()) --- 454,458 ---- { InsertViewMenu(pNewView); ! SetIcons(wxGetApp().LoadAppIconBundle(pNewView->GetViewTemplate()->strIcons)); str.Append(WXDC_NAME).Append(wxT(" - ")).Append(pNewView->GetDocument()->GetDocumentName()); if(pNewView->GetDocument()->GetModifiedFlag()) Index: Project.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/Project.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Project.cpp 4 Mar 2005 16:09:46 -0000 1.3 --- Project.cpp 16 Mar 2005 14:27:37 -0000 1.4 *************** *** 36,40 **** */ Project::Project(): ! wxObject(), m_strName(""), m_strPath(""), --- 36,40 ---- */ Project::Project(): ! ManagedObject(), m_strName(""), m_strPath(""), *************** *** 86,94 **** */ ProjectTemplate::ProjectTemplate(wxClassInfo* pProjectClassInfo, wxString strName, wxString strDescript, wxString strIcon, wxString strExt): ! wxObject(), ! m_strName(strName), ! m_strDescript(strDescript), ! m_strIcon(strIcon), ! m_pProjectClassInfo(pProjectClassInfo) { if(!strExt.IsEmpty()) --- 86,91 ---- */ ProjectTemplate::ProjectTemplate(wxClassInfo* pProjectClassInfo, wxString strName, wxString strDescript, wxString strIcon, wxString strExt): ! ObjectTemplate<Project>(pProjectClassInfo, strName, strDescript), ! m_strIcon(strIcon) { if(!strExt.IsEmpty()) *************** *** 121,129 **** } ! // Crée un objet projet. ! Project* ProjectTemplate::CreateProject() ! { ! return (Project*)m_pProjectClassInfo->CreateObject(); ! } --- 118,126 ---- } ! //// Crée un objet projet. ! //Project* ProjectTemplate::CreateProject() ! //{ ! // return (Project*)m_pProjectClassInfo->CreateObject(); ! //} *************** *** 136,140 **** ProjectTemplate(pProjectClassInfo, strName, strDescript, strIcon, strExt) { ! wxGetApp().GetProjectManager().RegisterProjectType(this); } --- 133,137 ---- ProjectTemplate(pProjectClassInfo, strName, strDescript, strIcon, strExt) { ! wxGetApp().GetProjectManager().RegisterTemplate(this); } *************** *** 146,151 **** // Constructeur par défaut. ProjectManager::ProjectManager(): ! ProjectTemplateArray(), ! m_pCurrentProject(NULL) { } --- 143,147 ---- // Constructeur par défaut. ProjectManager::ProjectManager(): ! SingleObjectTemplateManager<Project, ProjectTemplate>() { } *************** *** 157,170 **** } - // Initialisation du gestionnaire. - void ProjectManager::Initialize() - { - } - // Finalisation du gestionnaire. void ProjectManager::Finalize() { ! for(unsigned int n=0; n<GetProjectTemplateCount(); n++) ! GetProjectTemplate(n)->Finalize(); } --- 153,161 ---- } // Finalisation du gestionnaire. void ProjectManager::Finalize() { ! for(unsigned int n=0; n<GetTemplateCount(); n++) ! GetTemplate(n).Finalize(); } *************** *** 176,187 **** { // Préfermeture. ! if(!m_pCurrentProject->CanCloseProject() && !bForce) return false; // Fermeture. ! if(!m_pCurrentProject->OnCloseProject() && !bForce) return false; // Destruction. ! delete m_pCurrentProject; ! m_pCurrentProject = NULL; } return true; --- 167,177 ---- { // Préfermeture. ! if(!GetProject().CanCloseProject() && !bForce) return false; // Fermeture. ! if(!GetProject().OnCloseProject() && !bForce) return false; // Destruction. ! DestroyCurrentObject(); } return true; *************** *** 201,207 **** return false; ! m_pCurrentProject = GetProjectTemplate(iTemplateIndex)->CreateProject(); ! if(m_pCurrentProject) { // Appelle de le chargement du projet. --- 191,197 ---- return false; ! CreateObject(iTemplateIndex); ! if(HasObject()) { // Appelle de le chargement du projet. *************** *** 209,213 **** if(pAr!=NULL) { ! if(m_pCurrentProject->OnOpenProject(*pAr)) { delete pAr; --- 199,203 ---- if(pAr!=NULL) { ! if(GetProject().OnOpenProject(*pAr)) { delete pAr; *************** *** 215,219 **** } } ! delete m_pCurrentProject; } return false; --- 205,209 ---- } } ! DestroyCurrentObject(); } return false; *************** *** 226,234 **** { // Appelle de le chargement du projet. ! FilePath path = m_pCurrentProject->GetPath(); Archive* pAr = wxGetApp().CreateDocumentArchive(path, Archive::write); if(pAr!=NULL) { ! if(m_pCurrentProject->OnSaveProject(*pAr)) { delete pAr; --- 216,224 ---- { // Appelle de le chargement du projet. ! FilePath path = GetProject().GetPath(); Archive* pAr = wxGetApp().CreateDocumentArchive(path, Archive::write); if(pAr!=NULL) { ! if(GetProject().OnSaveProject(*pAr)) { delete pAr; *************** *** 253,262 **** return false; ! m_pCurrentProject = GetProjectTemplate(iTemplateIndex)->CreateProject(); // Appelle de l'initialisation du projet. ! if(!m_pCurrentProject->OnCreateProject()) { ! delete m_pCurrentProject; return false; } --- 243,252 ---- return false; ! CreateObject(iTemplateIndex); // Appelle de l'initialisation du projet. ! if(!GetProject().OnCreateProject()) { ! DestroyCurrentObject(); return false; } *************** *** 265,291 **** } - // Accès à l'index d'un type de projet. - int ProjectManager::GetProjectTemplateIndex(const ProjectTemplate* pTemplate) - { - for(unsigned int n=0; n<GetCount(); n++) - if(Item(n)==pTemplate) - return n; - return -1; - } - - // Enregistre un type de projet. - bool ProjectManager::RegisterProjectType(ProjectTemplate* pTemplate) - { - if(GetProjectTemplateIndex(pTemplate)==-1) - { - if(pTemplate->Initialize()) - { - Add(pTemplate); - return true; - } - } - return false; - } - // Retourne le wildcard de tous les types de projets. wxString ProjectManager::GetAllWildcard(bool bShowStarDotStar, bool bShowAllRegisteredExt)const --- 255,258 ---- *************** *** 298,306 **** { strWild = wxString(WXDC_FILE_WILDCARD_ALLREGISTERED) + wxT("|"); ! for(m=0; m<GetCount(); m++) { ! for(n=0; n<GetProjectTemplate(m)->GetExtensionCount(); n++) { ! strWild << wxT("*.") << GetProjectTemplate(m)->GetExtension(n) << wxT(";"); } } --- 265,273 ---- { strWild = wxString(WXDC_FILE_WILDCARD_ALLREGISTERED) + wxT("|"); ! for(m=0; m<GetTemplateCount(); m++) { ! for(n=0; n<GetTemplate(m).GetExtensionCount(); n++) { ! strWild << wxT("*.") << GetTemplate(m).GetExtension(n) << wxT(";"); } } *************** *** 309,314 **** } ! for(n=0; n<GetCount(); n++) ! strWild << GetProjectTemplate(n)->GetDocWildcard(false); if(bShowStarDotStar) --- 276,281 ---- } ! for(n=0; n<GetTemplateCount(); n++) ! strWild << GetTemplate(n).GetDocWildcard(false); if(bShowStarDotStar) *************** *** 321,326 **** { wxArrayString ar; ! for(unsigned int n=0; n<GetProjectTemplateCount(); n++) ! ar.Add(GetProjectTemplate(n)->GetName() + wxT(" - ") + GetProjectTemplate(n)->GetDescript()); return wxGetSingleChoiceIndex(WXDC_PROJECT_QUERY_TYPE, WXDC_NAME, ar); } --- 288,293 ---- { wxArrayString ar; ! for(unsigned int n=0; n<GetTemplateCount(); n++) ! ar.Add(GetTemplate(n).GetName() + wxT(" - ") + GetTemplate(n).GetDescript()); return wxGetSingleChoiceIndex(WXDC_PROJECT_QUERY_TYPE, WXDC_NAME, ar); } *************** *** 330,336 **** { wxString strExt = strFile.GetFileExt(); ! for(unsigned int n=0; n<GetProjectTemplateCount(); n++) ! for(unsigned int m=0; m<GetProjectTemplate(n)->GetExtensionCount(); m++) ! if(strExt==GetProjectTemplate(n)->GetExtension(m)) return (int)n; return -1; --- 297,303 ---- { wxString strExt = strFile.GetFileExt(); ! for(unsigned int n=0; n<GetTemplateCount(); n++) ! for(unsigned int m=0; m<GetTemplate(n).GetExtensionCount(); m++) ! if(strExt==GetTemplate(n).GetExtension(m)) return (int)n; return -1; Index: Application.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/Application.cpp,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** Application.cpp 10 Mar 2005 16:04:34 -0000 1.16 --- Application.cpp 16 Mar 2005 14:27:36 -0000 1.17 *************** *** 62,66 **** // Initialise le DocManager ! m_DocManager.InitDocManager(); // Initialise le ProjectManager --- 62,66 ---- // Initialise le DocManager ! m_DocManager.Initialize(); // Initialise le ProjectManager *************** *** 76,81 **** // Initialise le gestionnaire de systèmes de fichiers m_pStandardFileSystem = new FileSystemStandard; ! wxIconBundle IB = LoadAppIconBundle("desktop"); ! m_FileSystemManager.RegisterFileSystem(m_pStandardFileSystem, WXDC_SYSTEM_STDFS_NAME, IB); // Crée la fenetre principale --- 76,80 ---- // Initialise le gestionnaire de systèmes de fichiers m_pStandardFileSystem = new FileSystemStandard; ! m_FileSystemManager.Register(m_pStandardFileSystem); // Crée la fenetre principale *************** *** 143,147 **** if(iProjectType==wxNOT_FOUND // Pas de sélection de type || iProjectType==0 // "Tous les types enregistrés" ! || iProjectType==(int)m_ProjectManager.GetProjectTemplateCount()) // "*.*" iProjectType = -1; --- 142,146 ---- if(iProjectType==wxNOT_FOUND // Pas de sélection de type || iProjectType==0 // "Tous les types enregistrés" ! || iProjectType==(int)m_ProjectManager.GetTemplateCount()) // "*.*" iProjectType = -1; *************** *** 218,222 **** if(nDocView==-1) { ! if(m_DocManager.GetDocTemplate(nDocType)->GetViewCount()>1) { nDocView = m_DocManager.ChooseViewType(nDocType); --- 217,221 ---- if(nDocView==-1) { ! if(m_DocManager.GetDocTemplate(nDocType).GetViewTemplateCount()>1) { nDocView = m_DocManager.ChooseViewType(nDocType); *************** *** 225,229 **** } else ! nDocView = nDocType; } --- 224,228 ---- } else ! nDocView = 0; } *************** *** 267,271 **** if(pDoc!=NULL) { ! pView = pDoc->m_ViewArray[0]; pView->GetFrame()->ScrollToView(pView); return true; --- 266,270 ---- if(pDoc!=NULL) { ! pView = &(pDoc->m_ViewArray[0]); pView->GetFrame()->ScrollToView(pView); return true; *************** *** 278,282 **** if(iDocType==-1) { ! iDocType = m_DocManager.GetDocTemplateID(strExt); } --- 277,281 ---- if(iDocType==-1) { ! iDocType = m_DocManager.GetDocTemplateFromExt(strExt); } *************** *** 288,293 **** // Détermine le type de vue. ! if(m_DocManager.GetDocTemplate((unsigned int)iDocType)->GetViewCount()<2) ! nDocView = iDocType; else nDocView = m_DocManager.ChooseViewType(iDocType); --- 287,292 ---- // Détermine le type de vue. ! if(m_DocManager.GetDocTemplate((unsigned int)iDocType).GetViewTemplateCount()<2) ! nDocView = 0; else nDocView = m_DocManager.ChooseViewType(iDocType); *************** *** 325,332 **** iDocType = -1; - // On transforme l'index du wildcard en identifiant de type de document (ID ET PAS INDEX). - if(iDocType!=-1) - iDocType = GetDocManager().DocTemplateIDFromIndex((unsigned int)iDocType-1); - wxArrayString files; FD.GetSelectedFileList(files); --- 324,327 ---- Index: Document.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/Document.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Document.cpp 15 Jan 2005 09:47:22 -0000 1.3 --- Document.cpp 16 Mar 2005 14:27:37 -0000 1.4 *************** *** 25,29 **** #include <wxDevCenter/DocView.h> - #include <wxDevCenter/DocManager.h> #include <wxDevCenter/FileSystem.h> #include <wxDevCenter/FileTools.h> --- 25,28 ---- *************** *** 77,81 **** unsigned int i; for(i=0; i<m_ViewArray.GetCount(); i++) ! m_ViewArray[i]->OnChangeFilename(); } --- 76,80 ---- unsigned int i; for(i=0; i<m_ViewArray.GetCount(); i++) ! m_ViewArray[i].OnChangeFilename(); } *************** *** 103,108 **** for(i=0; i<m_ViewArray.GetCount(); i++) { ! if(m_ViewArray[i]!=pSender) ! m_ViewArray[i]->OnUpdate(pSender, nUpdateCode, pUpdateInfo); } } --- 102,107 ---- for(i=0; i<m_ViewArray.GetCount(); i++) { ! if(&m_ViewArray[i]!=pSender) ! m_ViewArray[i].OnUpdate(pSender, nUpdateCode, pUpdateInfo); } } *************** *** 114,118 **** pView->m_pDocument->DetachView(pView); pView->m_pDocument = this; ! m_ViewArray.Add(pView); } --- 113,117 ---- pView->m_pDocument->DetachView(pView); pView->m_pDocument = this; ! m_ViewArray.Register(pView); } *************** *** 120,145 **** void Document::DetachView(View *pView) { ! m_ViewArray.Remove(pView); pView->m_pDocument = NULL; } - // Supprime la vue de la liste des vues (la détruit et enlève le pointeur) - void Document::DeleteView(View *pView) - { - m_ViewArray.Remove(pView); - pView->Destroy(); - } - - // Supprime toutes les vues de la liste des vues (les détruit et enlève les pointeurs) - void Document::DeleteAllViews() - { - for(int i=m_ViewArray.GetCount()-1; i>=0; i--) - { - m_ViewArray[i]->Destroy(); - } - m_ViewArray.Clear(); - } - - ////////////////////////////////////////////////////////////////////// // Processus de sérialisation du document --- 119,126 ---- void Document::DetachView(View *pView) { ! m_ViewArray.Unregister(pView); pView->m_pDocument = NULL; } ////////////////////////////////////////////////////////////////////// // Processus de sérialisation du document --- NEW FILE: Manager.cpp --- (This appears to be a binary file; contents omitted.) Index: FileSystemStandard.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/FileSystemStandard.cpp,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** FileSystemStandard.cpp 7 Mar 2005 15:23:04 -0000 1.13 --- FileSystemStandard.cpp 16 Mar 2005 14:27:37 -0000 1.14 *************** *** 52,60 **** } - wxImageList* FileSystemStandardBase::GetImageList(int width) - { - return wxGetApp().GetDocManager().GetImageList(width); - } - int FileSystemStandardBase::GetFileType(const FilePath& strPath) { --- 52,55 ---- *************** *** 66,76 **** else { ! type = wxGetApp().GetDocManager().GetDocTemplateID(strPath.GetFileExt()); ! if(type==-1) ! type = WXDC_DOCMANAGER_TYPE_UNKNOW; } return type; } ////////////////////////////////////////////////////////////////////// --- 61,111 ---- else { ! type = wxGetApp().GetDocManager().GetDocTemplateFromExt(strPath.GetFileExt()); ! if(type!=-1) ! type += WXDC_STDFS_FILETYPES; ! else ! type = WXDC_STDFS_UNKNOW; } return type; } + wxImageList* FileSystemStandardBase::GetImageList(int width) + { + wxImageList* pIL = new wxImageList(width, width, true, WXDC_STDFS_FILETYPES + wxGetApp().GetDocManager().GetDocTemplateCount()); + + wxIconBundle IB; + IB = wxGetApp().LoadAppIconBundle(wxT("none")); + pIL->Add(IB.GetIcon(width)); + IB = wxGetApp().LoadAppIconBundle(wxT("unknow")); + pIL->Add(IB.GetIcon(width)); + IB = wxGetApp().LoadAppIconBundle(wxT("dir")); + pIL->Add(IB.GetIcon(width)); + IB = wxGetApp().LoadAppIconBundle(wxT("desktop")); + pIL->Add(IB.GetIcon(width)); + IB = wxGetApp().LoadAppIconBundle(wxT("desktop")); + pIL->Add(IB.GetIcon(width)); + IB = wxGetApp().LoadAppIconBundle(wxT("docs")); + pIL->Add(IB.GetIcon(width)); + IB = wxGetApp().LoadAppIconBundle(wxT("computer")); + pIL->Add(IB.GetIcon(width)); + IB = wxGetApp().LoadAppIconBundle(wxT("floppy")); + pIL->Add(IB.GetIcon(width)); + IB = wxGetApp().LoadAppIconBundle(wxT("harddrive")); + pIL->Add(IB.GetIcon(width)); + IB = wxGetApp().LoadAppIconBundle(wxT("cd-dvd")); + pIL->Add(IB.GetIcon(width)); + IB = wxGetApp().LoadAppIconBundle(wxT("ramdisk")); + pIL->Add(IB.GetIcon(width)); + IB = wxGetApp().LoadAppIconBundle(wxT("remote")); + pIL->Add(IB.GetIcon(width)); + + for(unsigned long l=0; l<wxGetApp().GetDocManager().GetDocTemplateCount(); l++) + { + IB = wxGetApp().LoadAppIconBundle(wxGetApp().GetDocManager().GetDocTemplate(l).GetViewTemplate(0).strIcons); + pIL->Add(IB.GetIcon(width)); + } + return pIL; + } + ////////////////////////////////////////////////////////////////////// |
|
From: Emilien K. <cur...@us...> - 2005-03-16 14:27:49
|
Update of /cvsroot/wxdevcenter/wxDevCenter/src/unix In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29232/src/unix Modified Files: FileSystemStandard.cpp Log Message: Merge de la branche "manager_virtualization". Index: FileSystemStandard.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/unix/FileSystemStandard.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** FileSystemStandard.cpp 26 Jan 2005 16:11:46 -0000 1.1 --- FileSystemStandard.cpp 16 Mar 2005 14:27:38 -0000 1.2 *************** *** 90,102 **** { if(strPath.IsEmpty()) ! return WXDC_FS_DIRTYPE_MOUNT; else if(strPath=="file:/mnt") ! return WXDC_FS_DIRTYPE_MOUNT; else if(strPath=="file:/home") ! return WXDC_FS_DIRTYPE_HOME; else if(strPath.GetFileDir()=="file:/home") ! return WXDC_FS_DIRTYPE_DOC; else ! return WXDC_FS_DIRTYPE_NORMAL; } --- 90,102 ---- { if(strPath.IsEmpty()) ! return WXDC_STDFS_DIRTYPE_MOUNT; else if(strPath=="file:/mnt") ! return WXDC_STDFS_DIRTYPE_MOUNT; else if(strPath=="file:/home") ! return WXDC_STDFS_DIRTYPE_HOME; else if(strPath.GetFileDir()=="file:/home") ! return WXDC_STDFS_DIRTYPE_DOC; else ! return WXDC_STDFS_DIRTYPE_NORMAL; } |
|
From: Emilien K. <cur...@us...> - 2005-03-16 14:27:49
|
Update of /cvsroot/wxdevcenter/wxDevCenter In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29232 Modified Files: wxDevCenter.bkl Log Message: Merge de la branche "manager_virtualization". Index: wxDevCenter.bkl =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/wxDevCenter.bkl,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** wxDevCenter.bkl 4 Mar 2005 16:12:27 -0000 1.8 --- wxDevCenter.bkl 16 Mar 2005 14:27:39 -0000 1.9 *************** *** 111,115 **** wxDevCenter/Application.h wxDevCenter/Config.h - wxDevCenter/DocManager.h wxDevCenter/DocView.h wxDevCenter/FileSystem.h --- 111,114 ---- |
|
From: Emilien K. <cur...@us...> - 2005-03-16 14:27:47
|
Update of /cvsroot/wxdevcenter/wxDevCenter/src/msw In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29232/src/msw Modified Files: FileSystemStandard.cpp Log Message: Merge de la branche "manager_virtualization". Index: FileSystemStandard.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/msw/FileSystemStandard.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** FileSystemStandard.cpp 26 Jan 2005 16:11:46 -0000 1.1 --- FileSystemStandard.cpp 16 Mar 2005 14:27:37 -0000 1.2 *************** *** 236,248 **** { if(strPath.IsEmpty()) ! return WXDC_FS_DIRTYPE_MOUNT; else if(strPath==(GetProtocoleName() + wxT(":"))) ! return WXDC_FS_DIRTYPE_MOUNT; else if(strPath==(GetProtocoleName() + wxT(":") + m_strNameDesktop)) ! return WXDC_FS_DIRTYPE_DESKTOP; else if(strPath==(GetProtocoleName() + wxT(":") + m_strNameMyDocs)) ! return WXDC_FS_DIRTYPE_DOC; else if(strPath==(GetProtocoleName() + wxT(":") + m_strNameComputer)) ! return WXDC_FS_DIRTYPE_MOUNT; else if(strPath.Matches(GetProtocoleName() + wxT(":") + m_strNameComputer + wxT("??:"))) { --- 236,248 ---- { if(strPath.IsEmpty()) ! return WXDC_STDFS_DIRTYPE_MOUNT; else if(strPath==(GetProtocoleName() + wxT(":"))) ! return WXDC_STDFS_DIRTYPE_MOUNT; else if(strPath==(GetProtocoleName() + wxT(":") + m_strNameDesktop)) ! return WXDC_STDFS_DIRTYPE_DESKTOP; else if(strPath==(GetProtocoleName() + wxT(":") + m_strNameMyDocs)) ! return WXDC_STDFS_DIRTYPE_DOC; else if(strPath==(GetProtocoleName() + wxT(":") + m_strNameComputer)) ! return WXDC_STDFS_DIRTYPE_MOUNT; else if(strPath.Matches(GetProtocoleName() + wxT(":") + m_strNameComputer + wxT("??:"))) { *************** *** 253,271 **** { case DRIVE_REMOVABLE: ! return WXDC_FS_DIRTYPE_FLOPPY; case DRIVE_FIXED: ! return WXDC_FS_DIRTYPE_HARDDRIVE; case DRIVE_REMOTE: ! return WXDC_FS_DIRTYPE_REMOTE; case DRIVE_CDROM: ! return WXDC_FS_DIRTYPE_CDROM; case DRIVE_RAMDISK: ! return WXDC_FS_DIRTYPE_RAMDISK; default: ! return WXDC_DOCMANAGER_TYPE_UNKNOW; } } else ! return wxDir::Exists(LogicalToPhysical(strPath))?WXDC_FS_DIRTYPE_NORMAL:-1; } --- 253,271 ---- { case DRIVE_REMOVABLE: ! return WXDC_STDFS_DIRTYPE_FLOPPY; case DRIVE_FIXED: ! return WXDC_STDFS_DIRTYPE_HARDDRIVE; case DRIVE_REMOTE: ! return WXDC_STDFS_DIRTYPE_REMOTE; case DRIVE_CDROM: ! return WXDC_STDFS_DIRTYPE_CDROM; case DRIVE_RAMDISK: ! return WXDC_STDFS_DIRTYPE_RAMDISK; default: ! return WXDC_STDFS_UNKNOW; } } else ! return wxDir::Exists(LogicalToPhysical(strPath))?WXDC_STDFS_FILETYPES:-1; } |
|
From: Emilien K. <cur...@us...> - 2005-03-16 14:26:45
|
Update of /cvsroot/wxdevcenter/StdPlugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29039/src Modified Files: BitmapDocView.cpp SimpleTextDocView.cpp Log Message: Merge de la branche "manager_virtualization". Index: SimpleTextDocView.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/src/SimpleTextDocView.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** SimpleTextDocView.cpp 7 Mar 2005 15:23:54 -0000 1.9 --- SimpleTextDocView.cpp 16 Mar 2005 14:26:35 -0000 1.10 *************** *** 278,282 **** for(n=0; n<nb; n++) { ! pView = wxGetApp().GetDocManager().GetView(n); if(pView->IsKindOf(CLASSINFO(SimpleTextView))) { --- 278,282 ---- for(n=0; n<nb; n++) { ! pView = &(wxGetApp().GetDocManager().GetView(n)); if(pView->IsKindOf(CLASSINFO(SimpleTextView))) { *************** *** 575,579 **** for(int i=0; i<(int)m_ViewArray.GetCount(); i++) { ! pView = m_ViewArray[i]; if(pView->IsKindOf(CLASSINFO(SimpleTextView))) { --- 575,579 ---- for(int i=0; i<(int)m_ViewArray.GetCount(); i++) { ! pView = &(m_ViewArray[i]); if(pView->IsKindOf(CLASSINFO(SimpleTextView))) { *************** *** 601,605 **** bool SimpleTextDocument::CanCloseDocument() { ! SimpleTextView *pView = (SimpleTextView*)m_ViewArray[0]; if(pView!=NULL) { --- 601,605 ---- bool SimpleTextDocument::CanCloseDocument() { ! SimpleTextView *pView = (SimpleTextView*)&(m_ViewArray[0]); if(pView!=NULL) { Index: BitmapDocView.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/src/BitmapDocView.cpp,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** BitmapDocView.cpp 4 Mar 2005 16:35:16 -0000 1.20 --- BitmapDocView.cpp 16 Mar 2005 14:26:35 -0000 1.21 *************** *** 10,14 **** #include <wxDevCenter/FileSystem.h> ! #include <wxDevCenter/DocManager.h> #include <wx/dcmemory.h> --- 10,14 ---- #include <wxDevCenter/FileSystem.h> ! #include <wxDevCenter/DocView.h> #include <wx/dcmemory.h> |
|
From: Emilien K. <cur...@us...> - 2005-03-16 14:01:43
|
Update of /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22952/include/wxDevCenter Modified Files: Tag: manager-virtualization DocView.h Log Message: Suppression de l'ancienne gestion des minidoc/minivues. Index: DocView.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/DocView.h,v retrieving revision 1.7.2.1 retrieving revision 1.7.2.2 diff -C2 -d -r1.7.2.1 -r1.7.2.2 *** DocView.h 15 Mar 2005 21:27:31 -0000 1.7.2.1 --- DocView.h 16 Mar 2005 14:01:18 -0000 1.7.2.2 *************** *** 61,85 **** #include <wxDevCenter/Frame.h> - #define WXDC_DOCMANAGER_TYPE_NONE 0 - #define WXDC_DOCMANAGER_TYPE_UNKNOW 1 - #define WXDC_DOCMANAGER_TYPE_DIRECTORY 2 - #define WXDC_DOCMANAGER_TYPE_DESKTOP 3 - #define WXDC_DOCMANAGER_TYPE_HOME 4 - #define WXDC_DOCMANAGER_TYPE_DOCUMENTS 5 - #define WXDC_DOCMANAGER_TYPE_COMPUTER 6 - - #define WXDC_DOCMANAGER_TYPE_FLOPPY 7 - #define WXDC_DOCMANAGER_TYPE_HARDDRIVE 8 - #define WXDC_DOCMANAGER_TYPE_CDROM 9 - #define WXDC_DOCMANAGER_TYPE_RAMDISK 10 - #define WXDC_DOCMANAGER_TYPE_REMOTE 11 - - - #define WXDC_DOCMANAGER_TYPE_SYSCOUNT 12 - #define WXDC_DOCMANAGER_TYPE_CUSTOMFIRST 12 - #define WXDC_DOCMANAGER_TYPE_DIRFIRST 2 - - - namespace wxDevCenter { --- 61,64 ---- *************** *** 322,327 **** /** ! * Structure d'association de vue. Structure qui stoque les informations relatives à une vue attachée. */ class WXDC_DLL_BASE ViewTemplate : public ObjectTemplate<View> --- 301,424 ---- + + /** Classe de base des Mini-doc. + * Les mini-documents sont des structures de données qui représentent un fichier. + * Contrairement aux Documents, les Mini-documents ne contiennent que des propriétés et ne peuvent pas les modifier. + * Pour afficher un Mini-doc, on utilise une mini-vue. + * @see Document + * @see MiniView + */ + class WXDC_DLL_BASE MiniDoc : public wxObject + { + friend class DocManager; + friend class DocTemplate; + protected: + /** Déclaration de classe dynamique. + * Déclare la classe comme pouvant être crée dynamiquement depuis ses infos RTTI de caractère.*/ + DECLARE_DYNAMIC_CLASS(MiniDoc) + /** Déclaration du type tableau dynamique de MiniView.*/ + WX_DEFINE_USER_EXPORTED_ARRAY(MiniView*, MiniViewArray, class WXDC_DLL_BASE); + /** Tableau des mini-vues attachées.*/ + MiniViewArray m_MiniViewArray; + /** Autodestruction du mini-doc en cas de fermeture de la dernière mini-vue.*/ + bool m_bAutoRemove; + /** Chemin du minidoc.*/ + FilePath m_strDocFilePath; + + /** Initialisation du document. + * Initialise les membres du document et lit le fichier source via l'archive. + * @param pArchive Archive du fichier source. + * @return True si l'initialisation est correcte. + */ + virtual bool OnInitialize(Archive *pArchive); + /** Modification du document. + * Modification du document due à la modification externe du fichier source. + * @param pArchive Archive du fichier source pour relire les donées. + * @return True si la modification est correcte. + */ + virtual bool OnFileModified(Archive *pArchive); + /** Fermeture du document. + * Le document doit être fermé. + * @return False si le document ne peut être fermé, mini-vues restant actives. + */ + virtual bool OnClose(); + /** Mise à jour des mini-vues attachées.*/ + void UpdateAllMiniViews(); + public: + /** Constructeur.*/ + MiniDoc(bool bAutoRemove=false); + /** Destructeur.*/ + virtual ~MiniDoc(); + + /** Crée une MiniVue. + * @param pParent Fenetre parent de la minivue. + * @param id Identifiant de filiation. + * @return NULL si la création échoue. + */ + virtual MiniView* CreateMiniView(wxWindow* pParent, wxWindowID id); + /** Retire une MiniVue. + * Ne pas appeler directement, appelé depuis le destructeur MiniView::~MiniView + * Ne fait que retirer le lien du minidoc vers la minivue. + */ + virtual void RemoveMiniView(MiniView *pMiniView); + /** Chemin du fichier du Minidoc.*/ + FilePath GetFilePath()const{return m_strDocFilePath;} + }; + + + /** Classe de base des mini-vues. + * Les mini-vues sont des fenetres-contrôles qui représentent un MiniDoc. + * Contrairement aux couples documents/vues, les mini-vues sont là pour inclure une représentation de document dans une vue (ou dans une autre mini-vue). + * De plus les mini-vues (et c'est là leur intérêt) sont en lecture-seule et donc ne peuvent être modifiées. + * @see MiniDoc + * @see View. + */ + class WXDC_DLL_BASE MiniView : public wxWindow + { + friend class MiniDoc; + friend class DocManager; + protected: + /** Déclaration de la table des évènements.*/ + DECLARE_EVENT_TABLE() + /** Mini-document de référence.*/ + MiniDoc *m_pMiniDoc; + /** Post-création. + * Fonction appelée appelée après l'allocation. + * Les mini-vues, à l'instar des vues, ont un processus de création en deux temps et contrairement aux fenêtres satndards, aucune fenêtre fille ne peut être crée dans le constructeur mais elle le peuvent dans OnCreate. + * @return True si OK. + * @see View::OnCreate + */ + virtual bool OnCreate(); + /** Initialisation depuis une archive. + * @return True si OK. + */ + virtual bool OnInitialize(); + /** Mise à jour après modification du fichier. + */ + virtual void OnUpdate(); + + /** Interception du double-clic gauche.*/ + void OnMouseLeftDoubleClick(wxMouseEvent& event); + /** Interception du relachement de bouton gauche.*/ + void OnMouseLeftUp(wxMouseEvent& event); + /** Interception de la sortie de la souris de la fenetre.*/ + void OnMouseLeave(wxMouseEvent& event); + /** Interception du relachement du bouton droit de la souris.*/ + void OnMouseRightUp(wxMouseEvent& event); + public: + /** Constructeur générique des controles. + * @param pParent Fenetre parent de la minivue. + * @param id Identifiant de filiation. + */ + MiniView(wxWindow* pParent, wxWindowID id); + /** Destructeur.*/ + virtual ~MiniView(void); + }; + + + + /** ! * Patron de vue. */ class WXDC_DLL_BASE ViewTemplate : public ObjectTemplate<View> *************** *** 368,373 **** /** Tableau des extensions de fichiers.*/ wxArrayString m_strExt; - /** Information RTTI du mini-document.*/ - wxClassInfo *m_pMiniDocClassInfo; public: /** Constructeur. --- 465,468 ---- *************** *** 409,421 **** wxString GetDocWildcard(bool bShowStarDotStar=false)const; /** @}*/ - - - ///** @name Manipulation du Mini-document. - // * @{*/ - ///** RTTI du mini-doc.*/ - //wxClassInfo* GetMiniDocClassInfo()const{return m_pMiniDocClassInfo;} - ///** Fixe les informations RTTI du Mini-document attaché.*/ - //void SetMiniDocClassInfo(wxClassInfo *pMiniDocClassInfo){m_pMiniDocClassInfo=pMiniDocClassInfo;} - ///** @}*/ }; --- 504,507 ---- *************** *** 554,575 **** - - /** @name Manipulation des minidocuments et des minivues. - * @{*/ - /** Crée une MiniVue. - * @param strSourcePath Chemin vers le fichier source. - * @param pParent Adresse de la fenetre parent dans laquelle inclure la mini-vue. - * @param id Identifiant de filiation. - * @return Retourne la nouvelle mini-vue ou NULL si échoué. - */ - MiniView* CreateMiniView(FilePath strSourcePath, wxWindow* pParent, wxWindowID id=-1); - /** Retourne le mini-doc si celui si existe. - * @param strDocPath Chemin du document. - * @return Retourne l'adresse du minidoc ou NULL si aucun minidoc n'est créé pour ce fichier. - */ - MiniDoc* GetMiniDoc(FilePath strDocPath); - /** @}*/ - - DocManager(void); virtual ~DocManager(void); --- 640,643 ---- *************** *** 710,826 **** - /** Classe de base des Mini-doc. - * Les mini-documents sont des structures de données qui représentent un fichier. - * Contrairement aux Documents, les Mini-documents ne contiennent que des propriétés et ne peuvent pas les modifier. - * Pour afficher un Mini-doc, on utilise une mini-vue. - * @see Document - * @see MiniView - */ - class WXDC_DLL_BASE MiniDoc : public wxObject - { - friend class DocManager; - friend class DocTemplate; - protected: - /** Déclaration de classe dynamique. - * Déclare la classe comme pouvant être crée dynamiquement depuis ses infos RTTI de caractère.*/ - DECLARE_DYNAMIC_CLASS(MiniDoc) - /** Déclaration du type tableau dynamique de MiniView.*/ - WX_DEFINE_USER_EXPORTED_ARRAY(MiniView*, MiniViewArray, class WXDC_DLL_BASE); - /** Tableau des mini-vues attachées.*/ - MiniViewArray m_MiniViewArray; - /** Autodestruction du mini-doc en cas de fermeture de la dernière mini-vue.*/ - bool m_bAutoRemove; - /** Chemin du minidoc.*/ - FilePath m_strDocFilePath; - - /** Initialisation du document. - * Initialise les membres du document et lit le fichier source via l'archive. - * @param pArchive Archive du fichier source. - * @return True si l'initialisation est correcte. - */ - virtual bool OnInitialize(Archive *pArchive); - /** Modification du document. - * Modification du document due à la modification externe du fichier source. - * @param pArchive Archive du fichier source pour relire les donées. - * @return True si la modification est correcte. - */ - virtual bool OnFileModified(Archive *pArchive); - /** Fermeture du document. - * Le document doit être fermé. - * @return False si le document ne peut être fermé, mini-vues restant actives. - */ - virtual bool OnClose(); - /** Mise à jour des mini-vues attachées.*/ - void UpdateAllMiniViews(); - public: - /** Constructeur.*/ - MiniDoc(bool bAutoRemove=false); - /** Destructeur.*/ - virtual ~MiniDoc(); - - /** Crée une MiniVue. - * @param pParent Fenetre parent de la minivue. - * @param id Identifiant de filiation. - * @return NULL si la création échoue. - */ - virtual MiniView* CreateMiniView(wxWindow* pParent, wxWindowID id); - /** Retire une MiniVue. - * Ne pas appeler directement, appelé depuis le destructeur MiniView::~MiniView - * Ne fait que retirer le lien du minidoc vers la minivue. - */ - virtual void RemoveMiniView(MiniView *pMiniView); - /** Chemin du fichier du Minidoc.*/ - FilePath GetFilePath()const{return m_strDocFilePath;} - }; - - - /** Classe de base des mini-vues. - * Les mini-vues sont des fenetres-contrôles qui représentent un MiniDoc. - * Contrairement aux couples documents/vues, les mini-vues sont là pour inclure une représentation de document dans une vue (ou dans une autre mini-vue). - * De plus les mini-vues (et c'est là leur intérêt) sont en lecture-seule et donc ne peuvent être modifiées. - * @see MiniDoc - * @see View. - */ - class WXDC_DLL_BASE MiniView : public wxWindow - { - friend class MiniDoc; - friend class DocManager; - protected: - /** Déclaration de la table des évènements.*/ - DECLARE_EVENT_TABLE() - /** Mini-document de référence.*/ - MiniDoc *m_pMiniDoc; - /** Post-création. - * Fonction appelée appelée après l'allocation. - * Les mini-vues, à l'instar des vues, ont un processus de création en deux temps et contrairement aux fenêtres satndards, aucune fenêtre fille ne peut être crée dans le constructeur mais elle le peuvent dans OnCreate. - * @return True si OK. - * @see View::OnCreate - */ - virtual bool OnCreate(); - /** Initialisation depuis une archive. - * @return True si OK. - */ - virtual bool OnInitialize(); - /** Mise à jour après modification du fichier. - */ - virtual void OnUpdate(); - - /** Interception du double-clic gauche.*/ - void OnMouseLeftDoubleClick(wxMouseEvent& event); - /** Interception du relachement de bouton gauche.*/ - void OnMouseLeftUp(wxMouseEvent& event); - /** Interception de la sortie de la souris de la fenetre.*/ - void OnMouseLeave(wxMouseEvent& event); - /** Interception du relachement du bouton droit de la souris.*/ - void OnMouseRightUp(wxMouseEvent& event); - public: - /** Constructeur générique des controles. - * @param pParent Fenetre parent de la minivue. - * @param id Identifiant de filiation. - */ - MiniView(wxWindow* pParent, wxWindowID id); - /** Destructeur.*/ - virtual ~MiniView(void); - }; --- 778,781 ---- |
|
From: Emilien K. <cur...@us...> - 2005-03-16 14:01:30
|
Update of /cvsroot/wxdevcenter/wxDevCenter/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22952/src Modified Files: Tag: manager-virtualization DocManager.cpp Log Message: Suppression de l'ancienne gestion des minidoc/minivues. Index: DocManager.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/DocManager.cpp,v retrieving revision 1.7.2.2 retrieving revision 1.7.2.3 diff -C2 -d -r1.7.2.2 -r1.7.2.3 *** DocManager.cpp 16 Mar 2005 09:08:21 -0000 1.7.2.2 --- DocManager.cpp 16 Mar 2005 14:01:20 -0000 1.7.2.3 *************** *** 31,43 **** - /** Compteur d'identifiants. - * Compteur servant à créer des identifiants uniques pour les types de documents et de vues.*/ - static unsigned int g_nDocIdentCount = WXDC_DOCMANAGER_TYPE_CUSTOMFIRST; - /** Fonction retournant un nouveel identifiant. - * @return Nouvel identifiant. - */ - static inline unsigned int GetNewIdent(){return g_nDocIdentCount++;} - - ////////////////////////////////////////////////////////////////////// // DocTemplate --- 31,34 ---- *************** *** 380,431 **** - /** - * Manipulation des minidocuments et des minivues. - */ - - //// Crée une MiniVue - //MiniView* DocManager::CreateMiniView(FilePath strSourcePath, wxWindow* pParent, wxWindowID id) - //{ - // DocTemplate *pDocTemplate = &GetDocTemplate(GetDocTemplateFromExt(strSourcePath.GetFileExt())); - // Archive *pArchive = NULL; - // MiniView *pMiniView = NULL; - // MiniDoc *pMiniDoc = NULL; - // wxClassInfo *pMiniDocCI = NULL; - // - // if(pDocTemplate!=NULL) - // if((pMiniDocCI = pDocTemplate->GetMiniDocClassInfo())!=NULL) - // { - // /** Création du mini-doc si aucun n'existe.*/ - // if((pMiniDoc=GetMiniDoc(strSourcePath))==NULL) - // { - // if((pArchive = wxGetApp().CreateDocumentArchive(strSourcePath, Archive::read))==NULL) - // return NULL; - // pMiniDoc = (MiniDoc*) pMiniDocCI->CreateObject(); - // pMiniDoc->m_strDocFilePath = strSourcePath; - // if(!pMiniDoc->OnInitialize(pArchive)) - // { - // delete pMiniDoc; - // return NULL; - // } - // pDocTemplate->m_pMiniDoc = pMiniDoc; - // } - // /** Création de la mini-vue.*/ - // pMiniView = pMiniDoc->CreateMiniView(pParent, id); - // pMiniView->SetTitle(strSourcePath); - // pMiniView->m_pMiniDoc = pMiniDoc; - // } - // return pMiniView; - //} - // - //// Retourne le mini-doc si celui si existe. - //MiniDoc* DocManager::GetMiniDoc(FilePath strDocPath) - //{ - // for(unsigned int n=0; n<GetDocTemplateCount(); n++) - // if(GetDocTemplate(n).GetFilePath()==strDocPath) - // return m_MiniDocArray[i]; - // return NULL; - //} - - /** --- 371,374 ---- |
|
From: Emilien K. <cur...@us...> - 2005-03-16 13:59:38
|
Update of /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22395/include/wxDevCenter Modified Files: Tag: manager-virtualization Manager.h Log Message: Création d'une classe RespectiveUniqueObjectTemplateManager en vue de la gestion des minidoc/minivues. Index: Manager.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/Attic/Manager.h,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -C2 -d -r1.1.2.3 -r1.1.2.4 *** Manager.h 15 Mar 2005 21:27:31 -0000 1.1.2.3 --- Manager.h 16 Mar 2005 13:59:27 -0000 1.1.2.4 *************** *** 423,427 **** }; - /** Gestionnaire de patrons à instantiation multiple. * Gestionnaire de patrons dont plusieurs objets peuvent être instanciés. --- 423,426 ---- *************** *** 489,492 **** --- 488,575 ---- + /** Gestionnaire de patrons à instantition unique pour chaque patron. + * Gestionnaire de patrons dont chaque patron ne peut avoir qu'une seule instantiation. + * @ref Gestionnaires + */ + template<class ObjectType, class Template=ObjectTemplate<ObjectType> > + class WXDC_DLL_BASE RespectiveUniqueObjectTemplateManager : public TemplateManager<ObjectType, Template> + { + private: + /** Gestionnaire interne des objets créés depuis les patrons.*/ + InitializableObjectManager<ObjectType> m_ObjectManager; + public: + /** Constructeur.*/ + RespectiveUniqueObjectTemplateManager():TemplateManager<ObjectType, Template>(),m_ObjectManager(){} + + /** @name Fonctions d'acces aux objets. + * @{ */ + /** Teste si un patron a un objet d'instancié. + * @param nIndex Index du patron.*/ + bool HasObject(unsigned int nIndex)const + { + for(unsigned int n=0; n<m_ObjectManager.GetCount(); n++) + if(m_ObjectManager.Item(n).GetClassInfo()==&(GetTemplate(nIndex).GetClassInfo())) + return true; + return false; + } + /** Accesseur sur un objet. + * @param nIndex Index du patron de l'objet.*/ + ObjectType* GetObject(unsigned int nIndex) + { + for(unsigned int n=0; n<m_ObjectManager.GetCount(); n++) + if(m_ObjectManager.Item(n).GetClassInfo()==&(GetTemplate(nIndex).GetClassInfo())) + return &(m_ObjectManager.Item(n)); + return false; + } + /** Accesseur constant sur un objet. + * @param nIndex Index du patron de l'objet.*/ + const ObjectType* GetObject(unsigned int nIndex)const + { + for(unsigned int n=0; n<m_ObjectManager.GetCount(); n++) + if(m_ObjectManager.Item(n).GetClassInfo()==&(GetTemplate(nIndex).GetClassInfo())) + return &(m_ObjectManager.Item(n)); + return false; + } + /** Crée un objet. + * @param nIndex Index du patron de l'objet. + * @param bOverride Si vrai alors supprime l'éventuel objet préexistant pour le patron et si faux si un objet est déjà crée pour le patron demandé, retourne cet objet. + * @return Adresse de l'objet, NULL si erreur. */ + ObjectType* CreateObject(unsigned int nIndex, bool bOverride=false) + { + if(bOverride) + DestroyObject(nIndex); + ObjectType* pObj = GetObject(nIndex); + if(pObj==NULL) + { + pObj = TemplateManager<ObjectType, Template>::CreateObjectFromTemplate(Index); + m_ObjectManager.Register(pObject); + } + return pObj; + } + /** Supprime un objet. + * @param nIndex Index du patron de l'objet.*/ + void DestroyObject(unsigned int nIndex) + { + ObjectType* pObj = GetObject(nIndex); + if(pObj!=NULL) + { + m_ObjectManager.Unregister(pObj); + delete pObj; + } + } + /** @} */ + + /** @name Initialisation et finalisation. + * @{ */ + /** Initialise l'objet. + * Si l'initialisation rend faux alors l'objet ne sera pas enregistré. + * @return Status d'initialisation.*/ + virtual bool Initialize(){return TemplateManager<ObjectType, Template>::Initialize() && m_ObjectManager.Initialize();} + /** Finalise l'objet.*/ + virtual void Finalize(){m_ObjectManager.Finalize(); TemplateManager<ObjectType, Template>::Finalize();} + /** @} */ + }; + + } #endif |
|
From: Emilien K. <cur...@us...> - 2005-03-16 09:08:38
|
Update of /cvsroot/wxdevcenter/wxDevCenter/src/unix In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18062/src/unix Modified Files: Tag: manager-virtualization FileSystemStandard.cpp Log Message: Fix dans l'énumération des wildcards. Fix la numérotation des types de documents pour l'affichage des icones dans les StdFS. Index: FileSystemStandard.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/unix/FileSystemStandard.cpp,v retrieving revision 1.1 retrieving revision 1.1.4.1 diff -C2 -d -r1.1 -r1.1.4.1 *** FileSystemStandard.cpp 26 Jan 2005 16:11:46 -0000 1.1 --- FileSystemStandard.cpp 16 Mar 2005 09:08:22 -0000 1.1.4.1 *************** *** 90,102 **** { if(strPath.IsEmpty()) ! return WXDC_FS_DIRTYPE_MOUNT; else if(strPath=="file:/mnt") ! return WXDC_FS_DIRTYPE_MOUNT; else if(strPath=="file:/home") ! return WXDC_FS_DIRTYPE_HOME; else if(strPath.GetFileDir()=="file:/home") ! return WXDC_FS_DIRTYPE_DOC; else ! return WXDC_FS_DIRTYPE_NORMAL; } --- 90,102 ---- { if(strPath.IsEmpty()) ! return WXDC_STDFS_DIRTYPE_MOUNT; else if(strPath=="file:/mnt") ! return WXDC_STDFS_DIRTYPE_MOUNT; else if(strPath=="file:/home") ! return WXDC_STDFS_DIRTYPE_HOME; else if(strPath.GetFileDir()=="file:/home") ! return WXDC_STDFS_DIRTYPE_DOC; else ! return WXDC_STDFS_DIRTYPE_NORMAL; } |
|
From: Emilien K. <cur...@us...> - 2005-03-16 09:08:36
|
Update of /cvsroot/wxdevcenter/wxDevCenter/src/msw In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18062/src/msw Modified Files: Tag: manager-virtualization FileSystemStandard.cpp Log Message: Fix dans l'énumération des wildcards. Fix la numérotation des types de documents pour l'affichage des icones dans les StdFS. Index: FileSystemStandard.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/msw/FileSystemStandard.cpp,v retrieving revision 1.1 retrieving revision 1.1.4.1 diff -C2 -d -r1.1 -r1.1.4.1 *** FileSystemStandard.cpp 26 Jan 2005 16:11:46 -0000 1.1 --- FileSystemStandard.cpp 16 Mar 2005 09:08:22 -0000 1.1.4.1 *************** *** 236,248 **** { if(strPath.IsEmpty()) ! return WXDC_FS_DIRTYPE_MOUNT; else if(strPath==(GetProtocoleName() + wxT(":"))) ! return WXDC_FS_DIRTYPE_MOUNT; else if(strPath==(GetProtocoleName() + wxT(":") + m_strNameDesktop)) ! return WXDC_FS_DIRTYPE_DESKTOP; else if(strPath==(GetProtocoleName() + wxT(":") + m_strNameMyDocs)) ! return WXDC_FS_DIRTYPE_DOC; else if(strPath==(GetProtocoleName() + wxT(":") + m_strNameComputer)) ! return WXDC_FS_DIRTYPE_MOUNT; else if(strPath.Matches(GetProtocoleName() + wxT(":") + m_strNameComputer + wxT("??:"))) { --- 236,248 ---- { if(strPath.IsEmpty()) ! return WXDC_STDFS_DIRTYPE_MOUNT; else if(strPath==(GetProtocoleName() + wxT(":"))) ! return WXDC_STDFS_DIRTYPE_MOUNT; else if(strPath==(GetProtocoleName() + wxT(":") + m_strNameDesktop)) ! return WXDC_STDFS_DIRTYPE_DESKTOP; else if(strPath==(GetProtocoleName() + wxT(":") + m_strNameMyDocs)) ! return WXDC_STDFS_DIRTYPE_DOC; else if(strPath==(GetProtocoleName() + wxT(":") + m_strNameComputer)) ! return WXDC_STDFS_DIRTYPE_MOUNT; else if(strPath.Matches(GetProtocoleName() + wxT(":") + m_strNameComputer + wxT("??:"))) { *************** *** 253,271 **** { case DRIVE_REMOVABLE: ! return WXDC_FS_DIRTYPE_FLOPPY; case DRIVE_FIXED: ! return WXDC_FS_DIRTYPE_HARDDRIVE; case DRIVE_REMOTE: ! return WXDC_FS_DIRTYPE_REMOTE; case DRIVE_CDROM: ! return WXDC_FS_DIRTYPE_CDROM; case DRIVE_RAMDISK: ! return WXDC_FS_DIRTYPE_RAMDISK; default: ! return WXDC_DOCMANAGER_TYPE_UNKNOW; } } else ! return wxDir::Exists(LogicalToPhysical(strPath))?WXDC_FS_DIRTYPE_NORMAL:-1; } --- 253,271 ---- { case DRIVE_REMOVABLE: ! return WXDC_STDFS_DIRTYPE_FLOPPY; case DRIVE_FIXED: ! return WXDC_STDFS_DIRTYPE_HARDDRIVE; case DRIVE_REMOTE: ! return WXDC_STDFS_DIRTYPE_REMOTE; case DRIVE_CDROM: ! return WXDC_STDFS_DIRTYPE_CDROM; case DRIVE_RAMDISK: ! return WXDC_STDFS_DIRTYPE_RAMDISK; default: ! return WXDC_STDFS_UNKNOW; } } else ! return wxDir::Exists(LogicalToPhysical(strPath))?WXDC_STDFS_FILETYPES:-1; } |
|
From: Emilien K. <cur...@us...> - 2005-03-16 09:08:32
|
Update of /cvsroot/wxdevcenter/wxDevCenter/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18062/src Modified Files: Tag: manager-virtualization DocManager.cpp FileSystemStandard.cpp Log Message: Fix dans l'énumération des wildcards. Fix la numérotation des types de documents pour l'affichage des icones dans les StdFS. Index: DocManager.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/DocManager.cpp,v retrieving revision 1.7.2.1 retrieving revision 1.7.2.2 diff -C2 -d -r1.7.2.1 -r1.7.2.2 *** DocManager.cpp 15 Mar 2005 21:27:32 -0000 1.7.2.1 --- DocManager.cpp 16 Mar 2005 09:08:21 -0000 1.7.2.2 *************** *** 445,449 **** for(m=0; m<GetDocTemplateCount(); m++) { ! for(n=0; n<GetDocTemplate(n).GetExtensionCount(); n++) { strWild += wxT("*.") + GetDocTemplate(m).GetExtension(n) + wxT(";"); --- 445,449 ---- for(m=0; m<GetDocTemplateCount(); m++) { ! for(n=0; n<GetDocTemplate(m).GetExtensionCount(); n++) { strWild += wxT("*.") + GetDocTemplate(m).GetExtension(n) + wxT(";"); Index: FileSystemStandard.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/FileSystemStandard.cpp,v retrieving revision 1.13.2.1 retrieving revision 1.13.2.2 diff -C2 -d -r1.13.2.1 -r1.13.2.2 *** FileSystemStandard.cpp 15 Mar 2005 21:27:32 -0000 1.13.2.1 --- FileSystemStandard.cpp 16 Mar 2005 09:08:21 -0000 1.13.2.2 *************** *** 61,67 **** else { ! type = WXDC_FS_DIRTYPE_NB + wxGetApp().GetDocManager().GetDocTemplateFromExt(strPath.GetFileExt()); ! if(type==-1) ! type = WXDC_DOCMANAGER_TYPE_UNKNOW; } return type; --- 61,69 ---- else { ! type = wxGetApp().GetDocManager().GetDocTemplateFromExt(strPath.GetFileExt()); ! if(type!=-1) ! type += WXDC_STDFS_FILETYPES; ! else ! type = WXDC_STDFS_UNKNOW; } return type; *************** *** 70,74 **** wxImageList* FileSystemStandardBase::GetImageList(int width) { ! wxImageList* pIL = new wxImageList(width, width, true, WXDC_FS_DIRTYPE_NB + wxGetApp().GetDocManager().GetDocTemplateCount()); wxIconBundle IB; --- 72,76 ---- wxImageList* FileSystemStandardBase::GetImageList(int width) { ! wxImageList* pIL = new wxImageList(width, width, true, WXDC_STDFS_FILETYPES + wxGetApp().GetDocManager().GetDocTemplateCount()); wxIconBundle IB; |
|
From: Emilien K. <cur...@us...> - 2005-03-16 09:08:31
|
Update of /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18062/include/wxDevCenter Modified Files: Tag: manager-virtualization FileSystemStandard.h Log Message: Fix dans l'énumération des wildcards. Fix la numérotation des types de documents pour l'affichage des icones dans les StdFS. Index: FileSystemStandard.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/FileSystemStandard.h,v retrieving revision 1.9.2.2 retrieving revision 1.9.2.3 diff -C2 -d -r1.9.2.2 -r1.9.2.3 *** FileSystemStandard.h 15 Mar 2005 21:27:31 -0000 1.9.2.2 --- FileSystemStandard.h 16 Mar 2005 09:08:20 -0000 1.9.2.3 *************** *** 36,52 **** { ! #define WXDC_FS_DIRTYPE_NORMAL 0x0002 // WXDC_DOCMANAGER_TYPE_DIRECTORY ! #define WXDC_FS_DIRTYPE_DESKTOP 0x0003 // WXDC_DOCMANAGER_TYPE_DESKTOP ! #define WXDC_FS_DIRTYPE_HOME 0x0004 // WXDC_DOCMANAGER_TYPE_HOME ! #define WXDC_FS_DIRTYPE_DOC 0x0005 // WXDC_DOCMANAGER_TYPE_DOCUMENTS ! #define WXDC_FS_DIRTYPE_MOUNT 0x0006 // WXDC_DOCMANAGER_TYPE_COMPUTER ! #define WXDC_FS_DIRTYPE_FLOPPY 0x0007 // WXDC_DOCMANAGER_TYPE_FLOPPY ! #define WXDC_FS_DIRTYPE_HARDDRIVE 0x0008 // WXDC_DOCMANAGER_TYPE_HARDDRIVE ! #define WXDC_FS_DIRTYPE_CDROM 0x0009 // WXDC_DOCMANAGER_TYPE_CDROM ! #define WXDC_FS_DIRTYPE_RAMDISK 0x0010 // WXDC_DOCMANAGER_TYPE_RAMDISK ! #define WXDC_FS_DIRTYPE_REMOTE 0x0011 // WXDC_DOCMANAGER_TYPE_REMOTE - #define WXDC_FS_DIRTYPE_NB 0x0012 // Nombre de type de répertoires. /** Classe de base pour les systèmes de fichiers directs. --- 36,56 ---- { ! #define WXDC_STDFS_NONE 0x0000 ! #define WXDC_STDFS_UNKNOW 0x0001 ! #define WXDC_STDFS_DIRTYPE_NORMAL 0x0002 // WXDC_DOCMANAGER_TYPE_DIRECTORY ! #define WXDC_STDFS_DIRTYPE_DESKTOP 0x0003 // WXDC_DOCMANAGER_TYPE_DESKTOP ! #define WXDC_STDFS_DIRTYPE_HOME 0x0004 // WXDC_DOCMANAGER_TYPE_HOME ! #define WXDC_STDFS_DIRTYPE_DOC 0x0005 // WXDC_DOCMANAGER_TYPE_DOCUMENTS ! #define WXDC_STDFS_DIRTYPE_MOUNT 0x0006 // WXDC_DOCMANAGER_TYPE_COMPUTER ! ! #define WXDC_STDFS_DIRTYPE_FLOPPY 0x0007 // WXDC_DOCMANAGER_TYPE_FLOPPY ! #define WXDC_STDFS_DIRTYPE_HARDDRIVE 0x0008 // WXDC_DOCMANAGER_TYPE_HARDDRIVE ! #define WXDC_STDFS_DIRTYPE_CDROM 0x0009 // WXDC_DOCMANAGER_TYPE_CDROM ! #define WXDC_STDFS_DIRTYPE_RAMDISK 0x000A // WXDC_DOCMANAGER_TYPE_RAMDISK ! #define WXDC_STDFS_DIRTYPE_REMOTE 0x000B // WXDC_DOCMANAGER_TYPE_REMOTE ! ! #define WXDC_STDFS_FILETYPES 0x000C // Premier type de fichier /** Classe de base pour les systèmes de fichiers directs. |
|
From: Emilien K. <cur...@us...> - 2005-03-15 21:33:09
|
Update of /cvsroot/wxdevcenter/StdPlugin/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31394/src Modified Files: Tag: manager_virtualization BitmapDocView.cpp SimpleTextDocView.cpp Log Message: Passage du DocManager et consorts à la nouvelle architecture des gestionnaires. Index: SimpleTextDocView.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/src/SimpleTextDocView.cpp,v retrieving revision 1.9 retrieving revision 1.9.2.1 diff -C2 -d -r1.9 -r1.9.2.1 *** SimpleTextDocView.cpp 7 Mar 2005 15:23:54 -0000 1.9 --- SimpleTextDocView.cpp 15 Mar 2005 21:32:56 -0000 1.9.2.1 *************** *** 278,282 **** for(n=0; n<nb; n++) { ! pView = wxGetApp().GetDocManager().GetView(n); if(pView->IsKindOf(CLASSINFO(SimpleTextView))) { --- 278,282 ---- for(n=0; n<nb; n++) { ! pView = &(wxGetApp().GetDocManager().GetView(n)); if(pView->IsKindOf(CLASSINFO(SimpleTextView))) { *************** *** 575,579 **** for(int i=0; i<(int)m_ViewArray.GetCount(); i++) { ! pView = m_ViewArray[i]; if(pView->IsKindOf(CLASSINFO(SimpleTextView))) { --- 575,579 ---- for(int i=0; i<(int)m_ViewArray.GetCount(); i++) { ! pView = &(m_ViewArray[i]); if(pView->IsKindOf(CLASSINFO(SimpleTextView))) { *************** *** 601,605 **** bool SimpleTextDocument::CanCloseDocument() { ! SimpleTextView *pView = (SimpleTextView*)m_ViewArray[0]; if(pView!=NULL) { --- 601,605 ---- bool SimpleTextDocument::CanCloseDocument() { ! SimpleTextView *pView = (SimpleTextView*)&(m_ViewArray[0]); if(pView!=NULL) { Index: BitmapDocView.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/StdPlugin/src/BitmapDocView.cpp,v retrieving revision 1.20 retrieving revision 1.20.2.1 diff -C2 -d -r1.20 -r1.20.2.1 *** BitmapDocView.cpp 4 Mar 2005 16:35:16 -0000 1.20 --- BitmapDocView.cpp 15 Mar 2005 21:32:56 -0000 1.20.2.1 *************** *** 10,14 **** #include <wxDevCenter/FileSystem.h> ! #include <wxDevCenter/DocManager.h> #include <wx/dcmemory.h> --- 10,14 ---- #include <wxDevCenter/FileSystem.h> ! #include <wxDevCenter/DocView.h> #include <wx/dcmemory.h> |
|
From: Emilien K. <cur...@us...> - 2005-03-15 21:27:51
|
Update of /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29768/include/wxDevCenter Modified Files: Tag: manager-virtualization Application.h DocView.h FileSystem.h FileSystemStandard.h Frame.h MDIFrame.h Manager.h Project.h Removed Files: Tag: manager-virtualization DocManager.h Log Message: Passage du DocManager et consorts à la nouvelle architecture des gestionnaires. Diverses modifs de l'archi des gestionnaires. Index: Project.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/Project.h,v retrieving revision 1.4.2.1 retrieving revision 1.4.2.2 diff -C2 -d -r1.4.2.1 -r1.4.2.2 *** Project.h 8 Mar 2005 17:26:27 -0000 1.4.2.1 --- Project.h 15 Mar 2005 21:27:31 -0000 1.4.2.2 *************** *** 191,196 **** ~ProjectManager(); - /** Initialisation du gestionnaire.*/ - void Initialize(); /** Finalisation du gestionnaire.*/ void Finalize(); --- 191,194 ---- Index: DocView.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/DocView.h,v retrieving revision 1.7 retrieving revision 1.7.2.1 diff -C2 -d -r1.7 -r1.7.2.1 *** DocView.h 7 Mar 2005 15:23:02 -0000 1.7 --- DocView.h 15 Mar 2005 21:27:31 -0000 1.7.2.1 *************** *** 3,7 **** * @author Cursor * ! * @brief Déclaration des classes de manipulations des documents et des vues. * * Déclaration des classes de --- 3,7 ---- * @author Cursor * ! * @brief Déclaration des classes relatives aux documents et aux vues vues. * * Déclaration des classes de *************** *** 12,15 **** --- 12,18 ---- * . * - Vues (wxDevCenter::View) + * - Patron de documents (wxDevCenter::DocTempate). + * - Gestionnaire de types de documents (wxDevCenter::DocManager) + * - Déclaration de type de document (wxDevCenter::DocType) * - Type de document. * - Mini-Documents (wxDevCenter::MiniDoc) *************** *** 35,51 **** // 02111-1307, USA. #ifndef __WXDEVCENTER_DOCVIEW #define __WXDEVCENTER_DOCVIEW #include <wxDevCenter/Frame.h> namespace wxDevCenter { - // Déclaration des classes utilisées. class Application; class DocManager; class DocTemplate; class Archive; class ViewFrame; --- 38,93 ---- // 02111-1307, USA. + /** @page DocManagerDoc Architecture du gestionnaire de documents. + * Le gestionnaire de document englobe la gestion des patrons et des objets de documents et de vues. + * Il s'occupe aussi des minidocs et minivues. + * + * Il est basé sur l'architecture des gestionnaires. + * @see Gestionnaires + * + * @section + * + */ + + #ifndef __WXDEVCENTER_DOCVIEW #define __WXDEVCENTER_DOCVIEW + #include <wx/imaglist.h> + #include <wx/hashmap.h> + #include <wx/dynarray.h> + + #include <wxDevCenter/Manager.h> + #include <wxDevCenter/FileTools.h> #include <wxDevCenter/Frame.h> + #define WXDC_DOCMANAGER_TYPE_NONE 0 + #define WXDC_DOCMANAGER_TYPE_UNKNOW 1 + #define WXDC_DOCMANAGER_TYPE_DIRECTORY 2 + #define WXDC_DOCMANAGER_TYPE_DESKTOP 3 + #define WXDC_DOCMANAGER_TYPE_HOME 4 + #define WXDC_DOCMANAGER_TYPE_DOCUMENTS 5 + #define WXDC_DOCMANAGER_TYPE_COMPUTER 6 + + #define WXDC_DOCMANAGER_TYPE_FLOPPY 7 + #define WXDC_DOCMANAGER_TYPE_HARDDRIVE 8 + #define WXDC_DOCMANAGER_TYPE_CDROM 9 + #define WXDC_DOCMANAGER_TYPE_RAMDISK 10 + #define WXDC_DOCMANAGER_TYPE_REMOTE 11 + + + #define WXDC_DOCMANAGER_TYPE_SYSCOUNT 12 + #define WXDC_DOCMANAGER_TYPE_CUSTOMFIRST 12 + #define WXDC_DOCMANAGER_TYPE_DIRFIRST 2 + + + namespace wxDevCenter { // Déclaration des classes utilisées. class Application; class DocManager; class DocTemplate; + class ViewTemplate; class Archive; class ViewFrame; *************** *** 54,58 **** // Prédéclaration des classes du fichier entete. class WXDC_DLL_BASE View; - class ViewArray; class WXDC_DLL_BASE Document; class WXDC_DLL_BASE Action; --- 96,99 ---- *************** *** 61,64 **** --- 102,109 ---- class WXDC_DLL_BASE MiniView; class WXDC_DLL_BASE MiniDoc; + + class DocManager; + class DocTemplate; + class DocTypeArray; *************** *** 80,87 **** #define IDM_EDIT_SELECTALL wxID_SELECTALL ! /** Interface "Vue". ! * Classe interface de vue pour la représentation visuelle des données des documents. ! */ ! class WXDC_DLL_BASE View : public wxPanel { friend class Application; --- 125,133 ---- #define IDM_EDIT_SELECTALL wxID_SELECTALL ! /* ! * Interface "Vue". ! * Classe interface de vue pour la représentation visuelle des données des documents. ! */ ! class WXDC_DLL_BASE View : public wxPanel, public InitializableInterface { friend class Application; *************** *** 104,110 **** MenuArray m_aMenu; ! /** Pointeur vers la structure d'association du type de vue. ! * @see ViewAssociation.*/ ! ViewAssociation *m_pViewAssociation; /** Interception des évènements menus. --- 150,155 ---- MenuArray m_aMenu; ! /** Adresse du patron de vue.*/ ! ViewTemplate *m_pViewTemplate; /** Interception des évènements menus. *************** *** 143,148 **** /** Retourne le documment auquel est attachée la vue.*/ Document* GetDocument(){return m_pDocument;} ! /** Retourne le descripteur du type de vue.*/ ! ViewAssociation* GetViewAssociation(){return m_pViewAssociation;} /** Processus post-création. --- 188,193 ---- /** Retourne le documment auquel est attachée la vue.*/ Document* GetDocument(){return m_pDocument;} ! /** Retourne le patron de la vue.*/ ! ViewTemplate* GetViewTemplate(){return m_pViewTemplate;} /** Processus post-création. *************** *** 171,184 **** ! /** Définition du type vecteur de pointeurs de vues. ! */ ! WX_DEFINE_USER_EXPORTED_ARRAY(View*, ViewArray, class WXDC_DLL_BASE); ! ! ! ! /** Interface "document" (classe de base). * Classe Interface de document à dériver pour créer des documents spécifiques. */ ! class WXDC_DLL_BASE Document : public wxObject { friend class DocManager; --- 216,224 ---- ! /** ! * Interface "document" (classe de base). * Classe Interface de document à dériver pour créer des documents spécifiques. */ ! class WXDC_DLL_BASE Document : public wxObject, public InitializableInterface { friend class DocManager; *************** *** 189,203 **** protected: /** Pointeur vers le gestionnaire de document.*/ ! DocManager *m_pDocumentManager; /** Pointeur vers le patron de document correspondant au type de ce document.*/ ! DocTemplate *m_pDocumentTemplate; /** Liste dynamique des vues attachées à ce document.*/ ! ViewArray m_ViewArray; /** Le document a-t-il été modifié ?*/ ! bool m_bIsDocumentModified; /** Nom du document.*/ ! wxString m_strName; /** Chemin du document.*/ ! FilePath m_strPath; public: Document(void); --- 229,243 ---- protected: /** Pointeur vers le gestionnaire de document.*/ ! DocManager* m_pDocumentManager; /** Pointeur vers le patron de document correspondant au type de ce document.*/ ! DocTemplate* m_pDocumentTemplate; /** Liste dynamique des vues attachées à ce document.*/ ! ObjectManager<View> m_ViewArray; /** Le document a-t-il été modifié ?*/ ! bool m_bIsDocumentModified; /** Nom du document.*/ ! wxString m_strName; /** Chemin du document.*/ ! FilePath m_strPath; public: Document(void); *************** *** 231,238 **** /** Détache une vue du document.*/ void DetachView(View *pView); - /** Détache puis détruit une vue attachée au document.*/ - void DeleteView(View *pView); - /** Détache et détruit toutes les vues attachées au document.*/ - void DeleteAllViews(); protected: --- 271,274 ---- *************** *** 284,287 **** --- 320,608 ---- }; + + + /** + * Structure d'association de vue. Structure qui stoque les informations relatives à une vue attachée. + */ + class WXDC_DLL_BASE ViewTemplate : public ObjectTemplate<View> + { + public: + /** Icones.*/ + wxString strIcons; + + /** Constructeur.*/ + ViewTemplate(wxClassInfo* pInfo, wxString strName, wxString strDescript, wxString strIcon): + ObjectTemplate<View>(pInfo, strName, strDescript), strIcons(strIcon){} + }; + + + + ////////////////////////////////////////////////////////////////////// + // DocTempate : + + /** Patron de document (document template). + * Référence un type de document avec l'ensemble de ces vues. + * A un type de document correspond : + * - un nom. + * - une description détaillée. + * - une info RTTI de la classe de document. + * - une liste d'extensions par lesquelles les fichiers serons reconnus. Les extensions sont case-insensitives. + * - une liste de vues associées. Chaque vue ayant : + * - un nom. + * - une description. + * - une info RTTI de la classe de vue. + * - une liste d'icones (éventuellement vide). + * - une info RTTI de minidoc. + * @see DocManager + * @see Document + * @see View + */ + class WXDC_DLL_BASE DocTemplate : public ObjectTemplate<Document> + { + friend class Application; + friend class DocManager; + private: + /** Gestionnaire de patron de vues.*/ + TemplateManager<View, ViewTemplate> m_ViewTemplateManager; + protected: + /** Tableau des extensions de fichiers.*/ + wxArrayString m_strExt; + /** Information RTTI du mini-document.*/ + wxClassInfo *m_pMiniDocClassInfo; + public: + /** Constructeur. + * @param strName Nom du type de document. + * @param pDocClassInfo RTTI de la classe document. + * @param strExt Première extension de fichier liée au document. Cette extension est celle par défaut. + * @param strDescription Description détaillée du document (éventuellement vide). + */ + DocTemplate(wxString strName, wxClassInfo *pDocClassInfo, wxString strExt, wxString strDescription=""); + ~DocTemplate(); + + /** @name Gestion des patrons de vues. + * @{ */ + unsigned int GetViewTemplateCount()const{return m_ViewTemplateManager.GetTemplateCount();} + int FindViewTemplate(const ViewTemplate* pTemplate)const{return m_ViewTemplateManager.FindTemplate(pTemplate);} + ViewTemplate& GetViewTemplate(unsigned int nIndex){return m_ViewTemplateManager.GetTemplate(nIndex);} + const ViewTemplate& GetViewTemplate(unsigned int nIndex)const{return m_ViewTemplateManager.GetTemplate(nIndex);} + bool RegisterViewTemplate(ViewTemplate* pTemplate){return m_ViewTemplateManager.RegisterTemplate(pTemplate);} + bool RegisterViewTemplate(ViewTemplate& Templ){return m_ViewTemplateManager.RegisterTemplate(Templ);} + bool UnregisterViewTemplate(ViewTemplate* pTempl){return m_ViewTemplateManager.UnregisterTemplate(pTempl);} + void UnregisterViewTemplate(unsigned int Index){m_ViewTemplateManager.UnregisterTemplate(Index);} + virtual View* CreateView(unsigned int Index){return m_ViewTemplateManager.CreateObjectFromTemplate(Index);} + /** @} */ + + /** @name Données complémentaires du patron de document. + * @{ */ + /** Ajout d'une extension de fichier au type de document. + * @param strExt Nouvelle extension. + * @return Vrai si l'extension est correctement ajoutée. + */ + bool AddExtension(wxString strExt); + /** Extension du document. + * @param nIndex Indice de l'extension dans le tableau des extensions.*/ + wxString GetExtension(unsigned int nIndex=0)const{return m_strExt[nIndex];} + /** Nombre d'extensions enregistrées dans le tableau des extensions.*/ + unsigned int GetExtensionCount()const{return m_strExt.Count();} + /** Wilcard du document. Sélecteur de fichiers généré à partir des extensions de fichiers associées au type de document. + * @param bShowStarDotStar ...*/ + wxString GetDocWildcard(bool bShowStarDotStar=false)const; + /** @}*/ + + + ///** @name Manipulation du Mini-document. + // * @{*/ + ///** RTTI du mini-doc.*/ + //wxClassInfo* GetMiniDocClassInfo()const{return m_pMiniDocClassInfo;} + ///** Fixe les informations RTTI du Mini-document attaché.*/ + //void SetMiniDocClassInfo(wxClassInfo *pMiniDocClassInfo){m_pMiniDocClassInfo=pMiniDocClassInfo;} + ///** @}*/ + }; + + + + + + + ////////////////////////////////////////////////////////////////////// + // DocManager + + /** Gestionnaire de documents. + * Référence les différents types de documents. + * Référence aussi tous les documents ouverts et toutes les vues ouvertes. + * Produit une liste d'icones à partir des icones de toutes les vues. + * @see DocTemplate + * @see Document + * @see View + */ + class WXDC_DLL_BASE DocManager : public MultiObjectTemplateManager<Document, DocTemplate> + { + friend class Application; + private: + /** Gestionnaire des vues.*/ + InitializableObjectManager<View> m_ViewManager; + protected: + /** Fenêtre conteneur par défaut des vues.*/ + wxWindow *m_pDefaultViewContainer; + + /** @name Manipulation des documents. + * @{*/ + public: + /** Nombre de documents.*/ + unsigned int GetDocumentCount()const{return MultiObjectTemplateManager<Document, DocTemplate>::GetObjectCount();} + /** Document par l'indice dans le tableau de référencement.*/ + const Document* GetDocument(unsigned int nIndex)const{return &(MultiObjectTemplateManager<Document, DocTemplate>::GetObject(nIndex));} + Document* GetDocument(unsigned int nIndex){return &(MultiObjectTemplateManager<Document, DocTemplate>::GetObject(nIndex));} + /** Document par son chemin.*/ + const Document* GetDocument(FilePath &strDocPath)const; + Document* GetDocument(FilePath &strDocPath); + /** Crée un document. + * Crée un document à partir de l'identifiant de son patron puis l'enregistre dans la liste des documents. + * @param nIndex Index du patron de document. + */ + Document* CreateDocument(unsigned int nIndex); + /** Ferme le document spécifié. + * Ferme un document et toutes ses vues attachées. + * Si le document a été modifié, une demande d'enregistrement est posée à l'utilisateur et le document est enregistré le cas échéant. + * @return Retourne false si l'utilisateur annule l'action.*/ + bool CloseDocument(Document *pDoc); + /** Ferme tous les documents ouverts. + * Ferme tous les documents ouverts et toutes les vues attachées. + * Si des documents sont modifiés, des demandes d'enregistrements sont posées. + * @return Retourne false si l'utilisateur annule l'action (repond "annuler" à une demande de sauvegarde).*/ + bool CloseAllDocuments(); + /** Sauvegarde les données modifiées du documents.*/ + bool SaveDocument(Document *pDoc); + protected: + /** Supprime le document spécifié. + * Le document est supposé libre de vue et sauevgardé si besoin est. + * Aucune vérification ne sera effectuée.*/ + void DeleteDocument(Document* pDocument); + /** @}*/ + + + /** @name Manipulation des patrons de documents. + * @{*/ + public: + /** Nombre de patrons de documents.*/ + unsigned int GetDocTemplateCount()const{return MultiObjectTemplateManager<Document, DocTemplate>::GetTemplateCount();} + /** Patron de document par son indice dans le tableau de référencement. + * @param nIndex Indice du type de document.*/ + const DocTemplate& GetDocTemplate(unsigned int nIndex)const{return MultiObjectTemplateManager<Document, DocTemplate>::GetTemplate(nIndex);} + DocTemplate& GetDocTemplate(unsigned int nIndex){return MultiObjectTemplateManager<Document, DocTemplate>::GetTemplate(nIndex);} + /** Retrouve l'identifiant du patron depuis son adresse.*/ + int FindDocTemplate(const DocTemplate* pTemplate)const{return MultiObjectTemplateManager<Document, DocTemplate>::FindTemplate(pTemplate);} + /** Patron de document correspondant à un nom de patron. + * @param strDocName Nom du patron de document.*/ + int GetDocTemplateFromName(wxString strDocName)const; + /** Patron de document correspondant à une extension de fichier. + * @param strExt Extension de fichier.*/ + int GetDocTemplateFromExt(wxString strExt)const; + /** Demande à l'utilisateur un type de document. + * Affiche une boite de dialogue qui permet de sélectionner un type de document. + * @return Renvoie l'identifiant du type de document sinon renvoie -1.*/ + int ChooseDocTemplate(void) const; + /** Demande à l'utilisateur un type de vue. + * Affiche une boite de dialogue qui permet de sélectionner le type de vue vis-à-vis du type de document spécifié. + * @param nDocTemplateIndex Identifiant du patron de document. + * @return Renvoie l'identifiant de la vue sinon renvoie -1.*/ + int ChooseViewType(unsigned int nDocTemplateIndex) const; + /** Enregistre les types de documents déclarés. + * Enregistres les types de documents déclarés mais pas encore enregistrés. + */ + void RegisterDocTypes(); + /** Ajoute un patron de document à la liste des patrons. + * @param Adresse du patron de document à ajouter. + * @return Indice du nouveau patron ou -1 si erreur. + */ + int RegisterDocTemplate(DocTemplate* pTemplate); + /** @}*/ + + + /** @name Manipulation des vues. + * @{*/ + /** Nombre de vues. + * @return Nombre de vues. */ + unsigned int GetViewCount()const{return m_ViewManager.GetCount();} + /** Vue par son indice du tableau des référencement. + * @return Vue demandée. */ + const View& GetView(unsigned int nIndex)const{return m_ViewManager.Item(nIndex);} + View& GetView(unsigned int nIndex){return m_ViewManager.Item(nIndex);} + /** Crée une vue. + * Crée une vue correspondant à l'indetifiant de vue spécifié et l'attache au document précisé. + * @param pDoc Document auquel attacher la vue. + * @param nViewIndex Indice de la vue correspondant au patron du type de document. + * @return Adresse de la nouvelle vue, -1 si erreur. + */ + View* CreateView(Document *pDoc, unsigned int nViewIndex); + /** Crée une vue. + * Crée une vue correspondant au patron de vue spécifié et l'attache au document précisé. + * @param pDoc Document auquel attacher la vue. + * @param pViewTemp Indice de la vue correspondant au patron du type de document. + * @return Adresse de la nouvelle vue, -1 si erreur. + */ + View* CreateView(Document *pDoc, ViewTemplate* pViewTemp); + /** Ferme la vue spécifiée. + * Si c'est la dernière vue du document attaché, demande d'enregistrer les modifications le cas échéant. + * @return Retourne false si l'utilisateur annule l'action.*/ + bool CloseView(View *pView); + /** Supprime une vue. Supprime une vue sans aucun test d'attachement aux documents. + * Enlève la vue des différentes listes et la détruit. + * Ne doit être appelée que de CloseDocument ou CloseView (ou associé).*/ + void DeleteView(View *pView); + /** @}*/ + + + + /** @name Manipulation des minidocuments et des minivues. + * @{*/ + /** Crée une MiniVue. + * @param strSourcePath Chemin vers le fichier source. + * @param pParent Adresse de la fenetre parent dans laquelle inclure la mini-vue. + * @param id Identifiant de filiation. + * @return Retourne la nouvelle mini-vue ou NULL si échoué. + */ + MiniView* CreateMiniView(FilePath strSourcePath, wxWindow* pParent, wxWindowID id=-1); + /** Retourne le mini-doc si celui si existe. + * @param strDocPath Chemin du document. + * @return Retourne l'adresse du minidoc ou NULL si aucun minidoc n'est créé pour ce fichier. + */ + MiniDoc* GetMiniDoc(FilePath strDocPath); + /** @}*/ + + + DocManager(void); + virtual ~DocManager(void); + + /** Retourne le filtrage de fichier global. + * Retourne le filtrage de tous les documents enregistrés. + * @param bShowStarDotStar Affiche l'option "Tous les fichiers (*.*)" si vrai. + * @param bShowAllRegisteredExt Affiche l'option "Tous les documents" c'est à dire tous les types de documents enregistrés si vrai. + * @return Retourne le numéro du type de document correspondant à l'extension spécifiée sinon renvoie -1.*/ + wxString GetAllWildcard(bool bShowStarDotStar=true, bool bShowAllRegisteredExt=true)const; + + + /** @name Manipulation des icones de types de documents. + * @{*/ + /** Retourne la liste d'icones du gestionnaire de document correspondant à une taille donnée. + * Chaque image est forcément carrée. + * @param iSize Taille de chaque image. + * @return Adresse de la liste d'image.*/ + wxImageList* GetImageList(int iSize); + /** Retourne le bundle d'icones associé à un identifiant de type de document. + * @param nDocType Index du type de document. + * @param nViewType Index du type de vue. + * @return Adresse du bundle et NULL si aucun. + */ + wxIconBundle* GetIconBundle(unsigned int nDocType, unsigned int nViewType); + /** @}*/ + }; + + + + + + + /** Interface de description d'une action utilisateur. * Classe interface decrivant une action utilisateur pouvant être annulée par une commande "Undo" *************** *** 352,355 **** --- 673,679 ---- class WXDC_DLL_BASE DocType : public DocTemplate { + protected: + /** Unique vue attachée.*/ + ViewTemplate m_ViewTemplate; public: /** Constructeur par défaut. Index: Manager.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/Attic/Manager.h,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -C2 -d -r1.1.2.2 -r1.1.2.3 *** Manager.h 8 Mar 2005 18:46:24 -0000 1.1.2.2 --- Manager.h 15 Mar 2005 21:27:31 -0000 1.1.2.3 *************** *** 70,78 **** #define __WXDEVCENTER_MANAGER - #include <vector> - namespace wxDevCenter { /** Classe de base de gestionnaire d'objets. * Gestion d'objets enregistrés. --- 70,145 ---- #define __WXDEVCENTER_MANAGER namespace wxDevCenter { + template<class ItemType> + class WXDC_DLL_BASE Vector : public wxObject + { + private: + /** Tableau des données.*/ + ItemType* m_pItemArray; + /** Nombre d'éléments dans le tableau.*/ + unsigned long m_lNbItem; + + /** Interroge la place mémoire allouée. + * @return le nombre d'élément stockable.*/ + unsigned long GetAlloc()const{return sizeof(m_pItemArray)/sizeof(ItemType);} + /** Réalloue le tableau pour agrandissement.*/ + void Realloc(unsigned long size) + { + if(size>GetAlloc()) + { + size = (size*5) / 4; + if(size<20) + size=20; + } + + ItemType* pNew = new ItemType[size]; + if(m_pItemArray!=NULL) + { + for(register unsigned long l=0; l<m_lNbItem; l++) + pNew[l] = m_pItemArray[l]; + delete [] m_pItemArray; + } + m_pItemArray = pNew; + } + + public: + /** Constructeur.*/ + Vector():wxObject(),m_pItemArray(NULL), m_lNbItem(0){} + /** Destructeur.*/ + virtual ~Vector(){if(m_pItemArray!=NULL)delete [] m_pItemArray;} + + /** Ajout d'un elément. + * @param item Elément à ajouter. */ + void Add(const ItemType& item) + { + Realloc(m_lNbItem+1); + m_pItemArray[m_lNbItem++] = item; + } + /** Supprime des éléments. + * @param index Index du premier élément à supprimer. + * @param number Nombre d'éléments à supprimer.*/ + void Remove(unsigned long index, unsigned long number=1) + { + unsigned long after; + for(after=index+number; after<m_lNbItem; after++, index++) + m_pItemArray[index] = m_pItemArray[after]; + m_lNbItem -= number; + } + /** Acces sur un élément.*/ + ItemType& Item(unsigned long index){return m_pItemArray[index];} + /** Acces constant sur un élément.*/ + const ItemType& Item(unsigned long index)const{return m_pItemArray[index];} + /** Acces sur un élément.*/ + ItemType& operator[](unsigned long index){return m_pItemArray[index];} + /** Acces constant sur un élément.*/ + const ItemType& operator[](unsigned long index)const{return m_pItemArray[index];} + /** Nombre d'élément.*/ + unsigned long GetCount()const{return m_lNbItem;} + }; + + + /** Classe de base de gestionnaire d'objets. * Gestion d'objets enregistrés. *************** *** 80,87 **** */ template<class ItemType> ! class WXDC_DLL_BASE ObjectManager : public wxObject, protected std::vector<ItemType*> { public: ! ObjectManager(void):wxObject(),std::vector<ItemType*>(){} virtual ~ObjectManager(void){} --- 147,154 ---- */ template<class ItemType> ! class WXDC_DLL_BASE ObjectManager : protected Vector<ItemType*> { public: ! ObjectManager(void):Vector<ItemType*>(){} virtual ~ObjectManager(void){} *************** *** 90,114 **** /** Retourne le nombre d'objets enregistrés. * @return Nombre d'objets enregistrés.*/ ! unsigned int GetCount()const{return size();} /** Recherche un objet. * @param pObj Adresse de l'objet à rechercher. * @return Index de l'objet ou -1 si non trouvé.*/ ! int Find(const ItemType* pObj)const{for(unsigned int n=0; n<size(); n++)if(pObj==at(n))return (int)n; return -1;} /** Accès à un objet. * @param nIndex Index de l'objet. * @return Référence de l'objet.*/ ! ItemType& Item(unsigned int nIndex){return *at(nIndex);} /** Accès constant à un objet. * @param nIndex Index de l'objet. * @return Référence de l'objet.*/ ! const ItemType& Item(unsigned int nIndex)const{return *at(nIndex);} /** Enregistrement d'un objet. * @param pObj Adresse de l'objet. * @return Vrai si correctement enregistré.*/ ! bool Register(ItemType* pObj){if(Find(pObj)!=-1)return false;push_back(pObj);return true;} /** Enregistrement d'un objet. * @param Obj Objet à enregistrer. * @return Vrai si correctement enregistré.*/ ! bool Register(ItemType& Obj){if(Find(&Obj)!=-1)return false;push_back(&Obj);return true;} /** Désenregistrement d'un objet. * @param pObj Adresse de l'objet. --- 157,189 ---- /** Retourne le nombre d'objets enregistrés. * @return Nombre d'objets enregistrés.*/ ! unsigned int GetCount()const{return Vector<ItemType*>::GetCount();} /** Recherche un objet. * @param pObj Adresse de l'objet à rechercher. * @return Index de l'objet ou -1 si non trouvé.*/ ! int Find(const ItemType* pObj)const{for(unsigned int n=0; n<GetCount(); n++)if(pObj==&Item(n))return (int)n; return -1;} /** Accès à un objet. * @param nIndex Index de l'objet. * @return Référence de l'objet.*/ ! ItemType& Item(unsigned int nIndex){return *(Vector<ItemType*>::Item(nIndex));} /** Accès constant à un objet. * @param nIndex Index de l'objet. * @return Référence de l'objet.*/ ! const ItemType& Item(unsigned int nIndex)const{return *(Vector<ItemType*>::Item(nIndex));} ! /** Opérateur d'accès à un objet. ! * @param nIndex Index de l'objet. ! * @return Référence de l'objet.*/ ! ItemType& operator[](unsigned int nIndex){return *(Vector<ItemType*>::Item(nIndex));} ! /** Opérateur d'accès constant à un objet. ! * @param nIndex Index de l'objet. ! * @return Référence de l'objet.*/ ! const ItemType& operator[](unsigned int nIndex)const{return *(Vector<ItemType*>::Item(nIndex));} /** Enregistrement d'un objet. * @param pObj Adresse de l'objet. * @return Vrai si correctement enregistré.*/ ! bool Register(ItemType* pObj){if(Find(pObj)!=-1)return false;Add(pObj);return true;} /** Enregistrement d'un objet. * @param Obj Objet à enregistrer. * @return Vrai si correctement enregistré.*/ ! bool Register(ItemType& Obj){if(Find(&Obj)!=-1)return false;Add(&Obj);return true;} /** Désenregistrement d'un objet. * @param pObj Adresse de l'objet. *************** *** 119,123 **** if(pos!=-1) { ! erase(begin()+pos); return true; } --- 194,198 ---- if(pos!=-1) { ! Remove(pos); return true; } *************** *** 126,130 **** /** Désenregistrement d'un objet. * @param Index Index de l'objet à supprimer.*/ ! void Unregister(unsigned int Index){erase(begin()+Index);} /** @} */ }; --- 201,205 ---- /** Désenregistrement d'un objet. * @param Index Index de l'objet à supprimer.*/ ! void Unregister(unsigned int Index){Remove(Index);} /** @} */ }; *************** *** 150,154 **** */ template<class ItemType> ! class WXDC_DLL_BASE InitializableObjectManager : public ObjectManager<ItemType> { public: --- 225,229 ---- */ template<class ItemType> ! class WXDC_DLL_BASE InitializableObjectManager : public ObjectManager<ItemType>, public InitializableInterface { public: *************** *** 180,184 **** /** Désenregistrement d'un objet. * @param Index Index de l'objet à supprimer.*/ ! void Unregister(unsigned int Index){Item(Index).Finalize();ObjectManager<ItemType>::Unregister(pObj);} /** @} */ }; --- 255,259 ---- /** Désenregistrement d'un objet. * @param Index Index de l'objet à supprimer.*/ ! void Unregister(unsigned int Index){Item(Index).Finalize();ObjectManager<ItemType>::Unregister(Index);} /** @} */ }; *************** *** 241,244 **** --- 316,329 ---- return pObj; } + + /** Accesseur sur le nom. + * @return Nom du patron.*/ + wxString GetName()const{return m_strName;} + /** Accesseur sur la description. + * @return Desription du patron.*/ + wxString GetDescript()const{return m_strDescript;} + /** Accesseur sur les infos RTTI. + * @return wxClassInfo du type de l'objet.*/ + wxClassInfo& GetClassInfo(){return *m_pClassInfo;} }; *************** *** 258,262 **** * @param pTemplate Adresse du patron à rechercher. * @return Index du patron ou -1 si non trouvé.*/ ! int FindTemplate(const Template* pTemplate)const{return InitializableObjectManager<Template>::Find(pTempl);} /** Accès à un patron. * @param nIndex Index du patron. --- 343,347 ---- * @param pTemplate Adresse du patron à rechercher. * @return Index du patron ou -1 si non trouvé.*/ ! int FindTemplate(const Template* pTemplate)const{return InitializableObjectManager<Template>::Find(pTemplate);} /** Accès à un patron. * @param nIndex Index du patron. *************** *** 290,296 **** * @param Index Index du patron. * @return adresse de l'objet ainsi créé. NULL si erreur.*/ ! virtual ObjectType* CreateObject(unsigned int Index){return GetTemplate(Index).CreateObject();} /** @} */ }; --- 375,390 ---- * @param Index Index du patron. * @return adresse de l'objet ainsi créé. NULL si erreur.*/ ! virtual ObjectType* CreateObjectFromTemplate(unsigned int Index){return GetTemplate(Index).CreateObject();} /** @} */ + /** @name Initialisation et finalisation. + * @{ */ + /** Initialise l'objet. + * Si l'initialisation rend faux alors l'objet ne sera pas enregistré. + * @return Status d'initialisation.*/ + virtual bool Initialize(){return InitializableObjectManager<Template>::Initialize();} + /** Finalise l'objet.*/ + virtual void Finalize(){InitializableObjectManager<Template>::Finalize();} + /** @} */ }; *************** *** 316,320 **** * @param Index Index du patron. * @return adresse de l'objet ainsi créé. NULL si erreur.*/ ! virtual ObjectType* CreateObject(unsigned int Index){m_pCurrentObject = TemplateManager<ObjectType, Template>::CreateObject(Index); return m_pCurrentObject;} public: --- 410,414 ---- * @param Index Index du patron. * @return adresse de l'objet ainsi créé. NULL si erreur.*/ ! virtual ObjectType* CreateObject(unsigned int Index){m_pCurrentObject = TemplateManager<ObjectType, Template>::CreateObjectFromTemplate(Index); return m_pCurrentObject;} public: *************** *** 335,340 **** */ template<class ObjectType, class Template=ObjectTemplate<ObjectType> > ! class WXDC_DLL_BASE MultiObjectTemplateManager : public TemplateManager<ObjectType, Template>, public InitializableObjectManager<ObjectType> { }; --- 429,489 ---- */ template<class ObjectType, class Template=ObjectTemplate<ObjectType> > ! class WXDC_DLL_BASE MultiObjectTemplateManager : public TemplateManager<ObjectType, Template> { + private: + /** Gestionnaire interne des objets créés depuis les patrons.*/ + InitializableObjectManager<ObjectType> m_ObjectManager; + protected: + /** Création d'un objet depuis un patron enregistré. + * Le nouvel objet est initialisé puis enregistré dans la liste des objets. + * @warning Aucune suppression de l'objet courant n'est effectuée. + * @param Index Index du patron. + * @return adresse de l'objet ainsi créé. NULL si erreur.*/ + virtual ObjectType* CreateObject(unsigned int Index){ObjectType* pObject = TemplateManager<ObjectType, Template>::CreateObjectFromTemplate(Index); m_ObjectManager.Register(pObject); return pObject;} + + /** Détruit un objet enregistré. + * L'objet est finalisé puis désenregistré. + * @param pObject Objet à détruire.*/ + virtual void DestroyObject(ObjectType* pObject) + { + if(m_ObjectManager.Find(pObject)!=-1) + { + m_ObjectManager.Unregister(pObject); + delete pObject; + } + } + + public: + /** Constructeur.*/ + MultiObjectTemplateManager():TemplateManager<ObjectType, Template>(),m_ObjectManager(){} + + /** @name Fonctions d'accès aux objets. + * @{ */ + /** Retourne le nombre d'objets enregistrés. + * @return Nombre d'objets enregistrés.*/ + unsigned int GetObjectCount()const{return m_ObjectManager.GetCount();} + /** Recherche d'un objet. + * @param pObj Adresse de l'objet à rechercher. + * @return Index de l'objet ou -1 si non trouvé.*/ + int FindObject(const ObjectType* pObj)const{return m_ObjectManager.Find(pObj);} + /** Accès à un objet. + * @param nIndex Index de l'objet. + * @return Référence de l'objet.*/ + ObjectType& GetObject(unsigned int nIndex){return m_ObjectManager.Item(nIndex);} + /** Accès constant à un objet. + * @param nIndex Index de l'objet. + * @return Référence de l'objet.*/ + const ObjectType& GetObject(unsigned int nIndex)const{return m_ObjectManager.Item(nIndex);} + /** @} */ + + /** @name Initialisation et finalisation. + * @{ */ + /** Initialise l'objet. + * Si l'initialisation rend faux alors l'objet ne sera pas enregistré. + * @return Status d'initialisation.*/ + virtual bool Initialize(){return TemplateManager<ObjectType, Template>::Initialize() && m_ObjectManager.Initialize();} + /** Finalise l'objet.*/ + virtual void Finalize(){m_ObjectManager.Finalize(); TemplateManager<ObjectType, Template>::Finalize();} + /** @} */ }; Index: FileSystemStandard.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/FileSystemStandard.h,v retrieving revision 1.9.2.1 retrieving revision 1.9.2.2 diff -C2 -d -r1.9.2.1 -r1.9.2.2 *** FileSystemStandard.h 8 Mar 2005 18:46:24 -0000 1.9.2.1 --- FileSystemStandard.h 15 Mar 2005 21:27:31 -0000 1.9.2.2 *************** *** 36,39 **** --- 36,53 ---- { + #define WXDC_FS_DIRTYPE_NORMAL 0x0002 // WXDC_DOCMANAGER_TYPE_DIRECTORY + #define WXDC_FS_DIRTYPE_DESKTOP 0x0003 // WXDC_DOCMANAGER_TYPE_DESKTOP + #define WXDC_FS_DIRTYPE_HOME 0x0004 // WXDC_DOCMANAGER_TYPE_HOME + #define WXDC_FS_DIRTYPE_DOC 0x0005 // WXDC_DOCMANAGER_TYPE_DOCUMENTS + #define WXDC_FS_DIRTYPE_MOUNT 0x0006 // WXDC_DOCMANAGER_TYPE_COMPUTER + + #define WXDC_FS_DIRTYPE_FLOPPY 0x0007 // WXDC_DOCMANAGER_TYPE_FLOPPY + #define WXDC_FS_DIRTYPE_HARDDRIVE 0x0008 // WXDC_DOCMANAGER_TYPE_HARDDRIVE + #define WXDC_FS_DIRTYPE_CDROM 0x0009 // WXDC_DOCMANAGER_TYPE_CDROM + #define WXDC_FS_DIRTYPE_RAMDISK 0x0010 // WXDC_DOCMANAGER_TYPE_RAMDISK + #define WXDC_FS_DIRTYPE_REMOTE 0x0011 // WXDC_DOCMANAGER_TYPE_REMOTE + + #define WXDC_FS_DIRTYPE_NB 0x0012 // Nombre de type de répertoires. + /** Classe de base pour les systèmes de fichiers directs. * Implémentation partielle commune aux systèmes de fichiers réels (physiques) comme ceux de Windows ou Unix. *************** *** 52,55 **** --- 66,75 ---- virtual wxImageList* GetImageList(int width); virtual int GetFileType(const FilePath& strPath); + + protected: + /** Retourne le type de répertoire. + * @param strPath Chemin à tester. + * @return Type de répertoire si celui-ci est un répertoire système, 0 sinon.*/ + virtual int GetDirectorySystemType(FilePath strPath)=0; }; Index: Application.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/Application.h,v retrieving revision 1.8.2.1 retrieving revision 1.8.2.2 diff -C2 -d -r1.8.2.1 -r1.8.2.2 *** Application.h 8 Mar 2005 17:26:27 -0000 1.8.2.1 --- Application.h 15 Mar 2005 21:27:31 -0000 1.8.2.2 *************** *** 28,32 **** #include <wxDevCenter/Plugin.h> #include <wxDevCenter/Project.h> ! #include <wxDevCenter/DocManager.h> #include <wxDevCenter/FileSystem.h> #include <wxDevCenter/Config.h> --- 28,32 ---- #include <wxDevCenter/Plugin.h> #include <wxDevCenter/Project.h> ! #include <wxDevCenter/DocView.h> #include <wxDevCenter/FileSystem.h> #include <wxDevCenter/Config.h> Index: Frame.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/Frame.h,v retrieving revision 1.4 retrieving revision 1.4.2.1 diff -C2 -d -r1.4 -r1.4.2.1 *** Frame.h 7 Mar 2005 15:23:02 -0000 1.4 --- Frame.h 15 Mar 2005 21:27:31 -0000 1.4.2.1 *************** *** 171,175 **** virtual void OnViewChanging(View *pOldView=NULL, View *pNewView=NULL); virtual void OnViewChanged(View *pNewView=NULL, View *pOldView=NULL); ! virtual void DeleteView(View *pView)=0; public: virtual void ScrollToView(View *pView)=0; --- 171,175 ---- virtual void OnViewChanging(View *pOldView=NULL, View *pNewView=NULL); virtual void OnViewChanged(View *pNewView=NULL, View *pOldView=NULL); ! virtual void RemoveView(View *pView)=0; public: virtual void ScrollToView(View *pView)=0; Index: MDIFrame.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/MDIFrame.h,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -C2 -d -r1.3 -r1.3.2.1 *** MDIFrame.h 7 Mar 2005 15:23:02 -0000 1.3 --- MDIFrame.h 15 Mar 2005 21:27:31 -0000 1.3.2.1 *************** *** 48,52 **** // Fonctions virtuelles ! void DeleteView(View *pView); public: MDIFrame(wxWindow *pParent, TopFrame *pTopFrame, wxWindowID id); --- 48,52 ---- // Fonctions virtuelles ! void RemoveView(View *pView); public: MDIFrame(wxWindow *pParent, TopFrame *pTopFrame, wxWindowID id); --- DocManager.h DELETED --- Index: FileSystem.h =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/include/wxDevCenter/FileSystem.h,v retrieving revision 1.3.2.1 retrieving revision 1.3.2.2 diff -C2 -d -r1.3.2.1 -r1.3.2.2 *** FileSystem.h 8 Mar 2005 18:46:24 -0000 1.3.2.1 --- FileSystem.h 15 Mar 2005 21:27:31 -0000 1.3.2.2 *************** *** 101,118 **** - - #define WXDC_FS_DIRTYPE_NORMAL 0x0002 // WXDC_DOCMANAGER_TYPE_DIRECTORY - #define WXDC_FS_DIRTYPE_DESKTOP 0x0003 // WXDC_DOCMANAGER_TYPE_DESKTOP - #define WXDC_FS_DIRTYPE_HOME 0x0004 // WXDC_DOCMANAGER_TYPE_HOME - #define WXDC_FS_DIRTYPE_DOC 0x0005 // WXDC_DOCMANAGER_TYPE_DOCUMENTS - #define WXDC_FS_DIRTYPE_MOUNT 0x0006 // WXDC_DOCMANAGER_TYPE_COMPUTER - - #define WXDC_FS_DIRTYPE_FLOPPY 0x0007 // WXDC_DOCMANAGER_TYPE_FLOPPY - #define WXDC_FS_DIRTYPE_HARDDRIVE 0x0008 // WXDC_DOCMANAGER_TYPE_HARDDRIVE - #define WXDC_FS_DIRTYPE_CDROM 0x0009 // WXDC_DOCMANAGER_TYPE_CDROM - #define WXDC_FS_DIRTYPE_RAMDISK 0x0010 // WXDC_DOCMANAGER_TYPE_RAMDISK - #define WXDC_FS_DIRTYPE_REMOTE 0x0011 // WXDC_DOCMANAGER_TYPE_REMOTE - - /** Classe abstraite représentant un système de fichier. * Elle autorise la manipulation de fichier et leur ennumération. --- 101,104 ---- *************** *** 165,172 **** * @return Retourne vrai si c'est un répertoire.*/ virtual bool IsDirectory(FilePath strPath)=0; - /** Retourne le type interne de répertoire système. - * @param strPath Chemin à tester. - * @return Type de répertoire si celui-ci est un répertoire système, 0 sinon.*/ - virtual int GetDirectorySystemType(FilePath strPath)=0; /** Retourne le répertoire parent. * @param strPath Chemin dont le parent doit être retourné. --- 151,154 ---- |
|
From: Emilien K. <cur...@us...> - 2005-03-15 21:27:50
|
Update of /cvsroot/wxdevcenter/wxDevCenter/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29768/src Modified Files: Tag: manager-virtualization Application.cpp DocManager.cpp DocType.cpp Document.cpp FileSystemCtrl.cpp FileSystemStandard.cpp MDIFrame.cpp MainFrame.cpp Project.cpp Log Message: Passage du DocManager et consorts à la nouvelle architecture des gestionnaires. Diverses modifs de l'archi des gestionnaires. Index: DocType.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/DocType.cpp,v retrieving revision 1.2 retrieving revision 1.2.4.1 diff -C2 -d -r1.2 -r1.2.4.1 *** DocType.cpp 7 Dec 2004 13:36:28 -0000 1.2 --- DocType.cpp 15 Mar 2005 21:27:32 -0000 1.2.4.1 *************** *** 41,46 **** ! DocType::DocType(wxString strDocName, wxClassInfo *pDocClassInfo, wxString strDocDescripton, wxString strExt, wxString strViewName, wxClassInfo *pViewClassInfo, wxString strViewDescripton, wxString strIconBundleName, wxClassInfo *pMiniDocClassInfo): ! DocTemplate(strDocName, pDocClassInfo, "", strDocDescripton) { // Enregistrement des extensions. --- 41,47 ---- ! DocType::DocType(wxString strDocName, wxClassInfo *pDocClassInfo, wxString strDocDescripton, wxString strExt, wxString strViewName, wxClassInfo *pViewClassInfo, wxString strViewDescripton, wxString strIconBundleName, wxClassInfo *WXUNUSED(pMiniDocClassInfo)): ! DocTemplate(strDocName, pDocClassInfo, "", strDocDescripton), ! m_ViewTemplate(pViewClassInfo, strViewName, strViewDescripton, strIconBundleName) { // Enregistrement des extensions. *************** *** 51,62 **** // Enregistrement des données de la vue. ! AddView(strViewName, pViewClassInfo, strIconBundleName, strViewDescripton); // Enregistrement du mini-doc si précisé. ! if(pMiniDocClassInfo!=NULL) ! SetMiniDoc(pMiniDocClassInfo); // Déclaration du type de documents. ! wxGetApp().GetDocManager().AddDocTemplate(this); } --- 52,63 ---- // Enregistrement des données de la vue. ! RegisterViewTemplate(&m_ViewTemplate); // Enregistrement du mini-doc si précisé. ! // if(pMiniDocClassInfo!=NULL) ! // SetMiniDoc(pMiniDocClassInfo); // Déclaration du type de documents. ! wxGetApp().GetDocManager().RegisterDocTemplate(this); } Index: FileSystemCtrl.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/FileSystemCtrl.cpp,v retrieving revision 1.6.2.1 retrieving revision 1.6.2.2 diff -C2 -d -r1.6.2.1 -r1.6.2.2 *** FileSystemCtrl.cpp 8 Mar 2005 18:46:25 -0000 1.6.2.1 --- FileSystemCtrl.cpp 15 Mar 2005 21:27:32 -0000 1.6.2.2 *************** *** 26,30 **** #include <wxDevCenter/FileSystem.h> - #include <wxDevCenter/DocManager.h> #include <wx/toolbar.h> --- 26,29 ---- Index: DocManager.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/DocManager.cpp,v retrieving revision 1.7 retrieving revision 1.7.2.1 diff -C2 -d -r1.7 -r1.7.2.1 *** DocManager.cpp 7 Mar 2005 15:23:03 -0000 1.7 --- DocManager.cpp 15 Mar 2005 21:27:32 -0000 1.7.2.1 *************** *** 23,29 **** #include <wxDevCenter.h> - #include <wxDevCenter/DocManager.h> #include <wxDevCenter/DocView.h> - #include <wxDevCenter/DocManager.h> #include <wxDevCenter/MDIFrame.h> --- 23,27 ---- *************** *** 33,38 **** - WX_DEFINE_OBJARRAY(ViewInfoArray); - /** Compteur d'identifiants. * Compteur servant à créer des identifiants uniques pour les types de documents et de vues.*/ --- 31,34 ---- *************** *** 49,59 **** // Constructeur-initialisation DocTemplate::DocTemplate(wxString strName, wxClassInfo *pDocClassInfo, wxString strExt, wxString strDescription): ! wxObject(), ! m_nID(GetNewIdent()), ! m_strDocName(strName), ! m_pDocClassInfo(pDocClassInfo), ! m_strDescription(strDescription) { - m_ViewInfoArray.Alloc(2); m_strExt.Alloc(4); m_strExt.Add(strExt); --- 45,51 ---- // Constructeur-initialisation DocTemplate::DocTemplate(wxString strName, wxClassInfo *pDocClassInfo, wxString strExt, wxString strDescription): ! ObjectTemplate<Document>(pDocClassInfo, strName, strDescription), ! m_ViewTemplateManager() { m_strExt.Alloc(4); m_strExt.Add(strExt); *************** *** 64,79 **** } - void DocTemplate::AddView(wxString name, wxClassInfo *pCI, wxString strIcon, wxString description) - { - ViewAssociation Assoc; - Assoc.ID = m_ViewInfoArray.GetCount()==0?m_nID:GetNewIdent(); - Assoc.strName = name; - Assoc.pClassInfo = pCI; - Assoc.strDescription = description; - Assoc.strIcons = strIcon; - m_ViewInfoArray.Add(Assoc); - } - - bool DocTemplate::AddExtension(wxString strExt) { --- 56,59 ---- *************** *** 91,95 **** str += "*." + GetExtension(i) + ";"; str.RemoveLast(); ! strWildcard = m_strDocName + " (" + str + ")|" + str; if(bShowStarDotStar) strWildcard += "|" + wxString(WXDC_FILE_WILDCARD_ALLFILE) + "|*.*"; --- 71,75 ---- str += "*." + GetExtension(i) + ";"; str.RemoveLast(); ! strWildcard = GetName() + " (" + str + ")|" + str; if(bShowStarDotStar) strWildcard += "|" + wxString(WXDC_FILE_WILDCARD_ALLFILE) + "|*.*"; *************** *** 102,106 **** // DocManager ! DocManager::DocManager(void) { --- 82,89 ---- // DocManager ! DocManager::DocManager(void): ! MultiObjectTemplateManager<Document, DocTemplate>(), ! m_ViewManager(), ! m_pDefaultViewContainer(NULL) { *************** *** 111,134 **** } - void DocManager::InitDocManager() - { - m_arIconNames.Alloc(25); - m_arIconNames.Add("", WXDC_DOCMANAGER_TYPE_SYSCOUNT); - m_arIconNames[WXDC_DOCMANAGER_TYPE_NONE ] = wxT("none"); - m_arIconNames[WXDC_DOCMANAGER_TYPE_UNKNOW ] = wxT("unknow"); - m_arIconNames[WXDC_DOCMANAGER_TYPE_DIRECTORY ] = wxT("dir"); - m_arIconNames[WXDC_DOCMANAGER_TYPE_DESKTOP ] = wxT("desktop"); - m_arIconNames[WXDC_DOCMANAGER_TYPE_HOME ] = wxT("desktop"); - m_arIconNames[WXDC_DOCMANAGER_TYPE_DOCUMENTS ] = wxT("docs"); - m_arIconNames[WXDC_DOCMANAGER_TYPE_COMPUTER ] = wxT("computer"); - - m_arIconNames[WXDC_DOCMANAGER_TYPE_FLOPPY ] = wxT("floppy"); - m_arIconNames[WXDC_DOCMANAGER_TYPE_HARDDRIVE] = wxT("harddrive"); - m_arIconNames[WXDC_DOCMANAGER_TYPE_CDROM ] = wxT("cd-dvd"); - m_arIconNames[WXDC_DOCMANAGER_TYPE_RAMDISK ] = wxT("ramdisk"); - m_arIconNames[WXDC_DOCMANAGER_TYPE_REMOTE ] = wxT("remote"); - } - - /** --- 94,97 ---- *************** *** 138,164 **** // Document par son chemin. ! Document* DocManager::GetDocument(FilePath &strDocPath)const { ! for(int i=0; i<(int)m_DocArray.GetCount(); i++) ! { ! if(m_DocArray[i]->GetDocumentPath()==strDocPath) ! return m_DocArray[i]; ! } return NULL; } ! // Enregistre un document. ! void DocManager::RegisterDocument(Document* pDocument) { ! m_DocArray.Add(pDocument); } // Crée un document. ! Document* DocManager::CreateDocument(DocTemplate* pDocTemplate) { ! Document *pDoc = (Document*)pDocTemplate->m_pDocClassInfo->CreateObject(); ! m_DocArray.Add(pDoc); pDoc->m_pDocumentManager = this; ! pDoc->m_pDocumentTemplate = pDocTemplate; return pDoc; } --- 101,126 ---- // Document par son chemin. ! const Document* DocManager::GetDocument(FilePath &strDocPath)const { ! for(unsigned int n=0; n<GetDocumentCount(); n++) ! if(GetDocument(n)->GetDocumentPath()==strDocPath) ! return GetDocument(n); return NULL; } ! Document* DocManager::GetDocument(FilePath &strDocPath) { ! for(unsigned int n=0; n<GetDocumentCount(); n++) ! if(GetDocument(n)->GetDocumentPath()==strDocPath) ! return GetDocument(n); ! return NULL; } // Crée un document. ! Document* DocManager::CreateDocument(unsigned int nIndex) { ! Document *pDoc = CreateObject(nIndex); pDoc->m_pDocumentManager = this; ! pDoc->m_pDocumentTemplate = &GetTemplate(nIndex); return pDoc; } *************** *** 173,177 **** // Le document sera détruit automatiquement par la fermeture de la dernière vue. for(int i = pDoc->m_ViewArray.GetCount()-1; i>=0; i--) ! CloseView(pDoc->m_ViewArray.Item(i)); return true; } --- 135,139 ---- // Le document sera détruit automatiquement par la fermeture de la dernière vue. for(int i = pDoc->m_ViewArray.GetCount()-1; i>=0; i--) ! CloseView(&pDoc->m_ViewArray.Item(i)); return true; } *************** *** 183,189 **** bool DocManager::CloseAllDocuments() { ! while(m_DocArray.GetCount()>0) { ! if(!CloseDocument(m_DocArray[0])) return false; } --- 145,151 ---- bool DocManager::CloseAllDocuments() { ! while(GetDocumentCount()>0) { ! if(!CloseDocument(GetDocument(0))) return false; } *************** *** 204,211 **** // Pré-ferme le document. pDocument->OnCloseDocument(); ! // Retire le document de la liste des documents du DocManager ! m_DocArray.Remove(pDocument); ! // Détruit le document. ! delete pDocument; } --- 166,171 ---- // Pré-ferme le document. pDocument->OnCloseDocument(); ! // Détruit le document (finalise, désenregistre et détruit). ! DestroyObject(pDocument); } *************** *** 216,285 **** // Patron de document correspondant à une extension ! int DocManager::GetDocTemplateID(wxString strExt)const { ! int i,j; ! for(i=0; i<(int)m_DocTemplateArray.Count(); i++) ! { ! for(j=0; j<(int)m_DocTemplateArray[i]->GetExtensionCount(); j++) ! { ! if(strExt.CmpNoCase(m_DocTemplateArray[i]->GetExtension(j))==0) ! return m_DocTemplateArray[i]->m_nID; ! } ! } return -1; } // Patron de document correspondant à un nom de patron. ! DocTemplate* DocManager::GetDocTemplate(wxString DocName)const { ! unsigned int i; ! for(i=0; i<m_DocTemplateArray.GetCount(); i++) ! { ! if(m_DocTemplateArray[i]->m_strDocName==DocName) ! return m_DocTemplateArray[i]; ! } ! return NULL; } // Demande à l'utilisateur un type de document. ! int DocManager::ChooseDocTemplate(void) const { wxArrayString aDocTemplateStrings; ! wxString str; unsigned int n; - int i; aDocTemplateStrings.Empty(); ! for(n=0; n<m_DocTemplateArray.GetCount(); n++) { ! str = m_DocTemplateArray[n]->m_strDocName + " - " + m_DocTemplateArray[n]->m_strDescription; aDocTemplateStrings.Add(str); } ! str.Printf("%s - %s", WXDC_NAME, WXDC_DOCUMENT_REQUEST_NEW); ! i = wxGetSingleChoiceIndex(WXDC_DOCUMENT_REQUEST_TYPE, str, aDocTemplateStrings, NULL, -1, -1, true, 350, 200); ! return i!=-1?m_DocTemplateArray[i]->m_nID:-1; } // Demande à l'utilisateur un type de vue. ! int DocManager::ChooseViewType(unsigned int nDocTemplateID) const { wxArrayString aViewStrings; ! wxString str; unsigned int n; ! int i; ! unsigned int nIndex = DocTemplateIndexFromID(nDocTemplateID); aViewStrings.Empty(); ! for(n=0; n<m_DocTemplateArray[nIndex]->GetViewCount(); n++) { ! str = m_DocTemplateArray[nIndex]->GetViewName(n) + " - " + m_DocTemplateArray[nIndex]->GetViewDescription(n); aViewStrings.Add(str); } ! str.Printf("%s - %s", WXDC_NAME, WXDC_VIEW_REQUEST_NEW); ! i = wxGetSingleChoiceIndex(WXDC_VIEW_REQUEST_TYPE, str, aViewStrings, NULL, -1, -1, true, 350, 200); ! return i!=-1?m_DocTemplateArray[nIndex]->m_ViewInfoArray[i].ID:-1; } --- 176,241 ---- // Patron de document correspondant à une extension ! int DocManager::GetDocTemplateFromExt(wxString strExt)const { ! unsigned int m, n; ! for(m=0; m<GetDocTemplateCount(); m++) ! for(n=0; n<GetDocTemplate(m).GetExtensionCount(); n++) ! if(strExt.CmpNoCase(GetDocTemplate(m).GetExtension(n))==0) ! return (int)m; return -1; } // Patron de document correspondant à un nom de patron. ! int DocManager::GetDocTemplateFromName(wxString strDocName)const { ! unsigned int m; ! for(m=0; m<GetDocTemplateCount(); m++) ! if(GetDocTemplate(m).GetName()==strDocName) ! return m; ! return -1; } // Demande à l'utilisateur un type de document. ! int DocManager::ChooseDocTemplate()const { wxArrayString aDocTemplateStrings; ! wxString str, s; unsigned int n; aDocTemplateStrings.Empty(); ! for(n=0; n<GetDocTemplateCount(); n++) { ! str = GetDocTemplate(n).GetName(); ! s = GetDocTemplate(n).GetDescript(); ! if(!s.IsEmpty()) ! str << wxT(" - ") << s; aDocTemplateStrings.Add(str); } ! str.Printf(wxT("%s - %s"), WXDC_NAME, WXDC_DOCUMENT_REQUEST_NEW); ! return wxGetSingleChoiceIndex(WXDC_DOCUMENT_REQUEST_TYPE, str, aDocTemplateStrings, NULL, -1, -1, true, 350, 200); } // Demande à l'utilisateur un type de vue. ! int DocManager::ChooseViewType(unsigned int nDocTemplateIndex) const { wxArrayString aViewStrings; ! wxString str, s; unsigned int n; ! const DocTemplate& DocTempl = GetDocTemplate(nDocTemplateIndex); aViewStrings.Empty(); ! for(n=0; n<DocTempl.GetViewTemplateCount(); n++) { ! str = DocTempl.GetViewTemplate(n).GetName(); ! s = DocTempl.GetViewTemplate(n).GetDescript(); ! if(!s.IsEmpty()) ! str << wxT(" - ") << s; aViewStrings.Add(str); } ! str.Printf(wxT("%s - %s"), WXDC_NAME, WXDC_VIEW_REQUEST_NEW); ! return wxGetSingleChoiceIndex(WXDC_VIEW_REQUEST_TYPE, str, aViewStrings, NULL, -1, -1, true, 350, 200); } *************** *** 287,291 **** void DocManager::RegisterDocTypes() { ! for(unsigned int n=0; n<m_DocTemplateArray.GetCount(); n++) { if(m_DocTemplateArray[n]->Initialize()) --- 243,247 ---- void DocManager::RegisterDocTypes() { ! /* for(unsigned int n=0; n<m_DocTemplateArray.GetCount(); n++) { if(m_DocTemplateArray[n]->Initialize()) *************** *** 305,315 **** n--; } ! } } // Ajoute un patron de document à la liste des patrons. ! void DocManager::AddDocTemplate(DocTemplate* pTemplate) { ! m_DocTemplateArray.Add(pTemplate); } --- 261,274 ---- n--; } ! }*/ } // Ajoute un patron de document à la liste des patrons. ! int DocManager::RegisterDocTemplate(DocTemplate* pTemplate) { ! if(!RegisterTemplate(pTemplate)) ! return -1; ! else ! return FindTemplate(pTemplate); } *************** *** 322,354 **** // Crée une vue ! View* DocManager::CreateView(Document *pDoc, unsigned int nDocViewID) { View *pView = NULL; DocTemplate *pTemplate = pDoc->m_pDocumentTemplate; - ViewAssociation *pVA = NULL; ! for(unsigned int n=0; n<pTemplate->m_ViewInfoArray.GetCount(); n++) { ! if(pTemplate->m_ViewInfoArray[n].ID == nDocViewID) ! pVA = &(pTemplate->m_ViewInfoArray[n]); ! } ! if(pVA==NULL) return NULL; ! pView = (View*)pVA->pClassInfo->CreateObject(); ! pView->m_pViewAssociation = pVA; pView->m_pDocument = NULL; if(pDoc!=NULL) pDoc->AttachView(pView); - pView->Create(m_pDefaultViewContainer, -1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER); pView->Hide(); pView->OnCreate(); pView->Show(); ! m_ViewArray.Add(pView); return pView; } // Ferme la vue spécifiée. bool DocManager::CloseView(View *pView) --- 281,342 ---- // Crée une vue ! View* DocManager::CreateView(Document *pDoc, unsigned int nViewIndex) { View *pView = NULL; DocTemplate *pTemplate = pDoc->m_pDocumentTemplate; ! pView = pTemplate->GetViewTemplate(nViewIndex).CreateObject(); ! if(pView==NULL) ! return NULL; ! ! if(!m_ViewManager.Register(pView)) { ! delete pView; return NULL; + } ! pView->m_pViewTemplate = &pTemplate->GetViewTemplate(nViewIndex); pView->m_pDocument = NULL; if(pDoc!=NULL) pDoc->AttachView(pView); pView->Create(m_pDefaultViewContainer, -1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER); pView->Hide(); pView->OnCreate(); pView->Show(); ! return pView; ! } ! ! /** Crée une vue. ! * Crée une vue correspondant au patron de vue spécifié et l'attache au document précisé. ! * @param pDoc Document auquel attacher la vue. ! * @param pViewTemp Indice de la vue correspondant au patron du type de document. ! * @return Adresse de la nouvelle vue, -1 si erreur. ! */ ! View* DocManager::CreateView(Document *pDoc, ViewTemplate* pViewTemp) ! { ! View *pView = NULL; ! ! pView = pViewTemp->CreateObject(); ! if(pView==NULL) ! return NULL; + if(!m_ViewManager.Register(pView)) + { + delete pView; + return NULL; + } + + pView->m_pViewTemplate = pViewTemp; + pView->m_pDocument = NULL; + if(pDoc!=NULL) + pDoc->AttachView(pView); + pView->Create(m_pDefaultViewContainer, -1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER); + pView->Hide(); + pView->OnCreate(); + pView->Show(); return pView; } + // Ferme la vue spécifiée. bool DocManager::CloseView(View *pView) *************** *** 356,360 **** Document *pDoc = pView->GetDocument(); ! // On s'assure que le document peut etre fermé si s'est la dernière vue. if(pDoc->m_ViewArray.GetCount()==1) { --- 344,348 ---- Document *pDoc = pView->GetDocument(); ! // On s'assure que le document peut être fermé si s'est la dernière vue. if(pDoc->m_ViewArray.GetCount()==1) { *************** *** 384,392 **** pView->GetDocument()->DetachView(pView); - // Détache la vue de la liste des vues du DocManager. - m_ViewArray.Remove(pView); - // Destruction de la vue. ! pView->GetFrame()->DeleteView(pView); } --- 372,380 ---- pView->GetDocument()->DetachView(pView); // Destruction de la vue. ! pView->GetFrame()->RemoveView(pView); ! ! // Désenregistre la vue (désinscrit la vue, la finalize et la détruit). ! m_ViewManager.Unregister(pView); } *************** *** 396,441 **** */ ! // Crée une MiniVue ! MiniView* DocManager::CreateMiniView(FilePath strSourcePath, wxWindow* pParent, wxWindowID id) ! { ! DocTemplate *pDocTemplate = GetDocTemplate(GetDocTemplateID(strSourcePath.GetFileExt())); ! Archive *pArchive = NULL; ! MiniView *pMiniView = NULL; ! MiniDoc *pMiniDoc = NULL; ! wxClassInfo *pMiniDocCI = NULL; ! ! if(pDocTemplate!=NULL) ! if((pMiniDocCI = pDocTemplate->GetMiniDocClassInfo())!=NULL) ! { ! /** Création du mini-doc si aucun n'existe.*/ ! if((pMiniDoc=GetMiniDoc(strSourcePath))==NULL) ! { ! if((pArchive = wxGetApp().CreateDocumentArchive(strSourcePath, Archive::read))==NULL) ! return NULL; ! pMiniDoc = (MiniDoc*) pMiniDocCI->CreateObject(); ! pMiniDoc->m_strDocFilePath = strSourcePath; ! if(!pMiniDoc->OnInitialize(pArchive)) ! { ! delete pMiniDoc; ! return NULL; ! } ! m_MiniDocArray.Add(pMiniDoc); ! } ! /** Création de la mini-vue.*/ ! pMiniView = pMiniDoc->CreateMiniView(pParent, id); ! pMiniView->SetTitle(strSourcePath); ! pMiniView->m_pMiniDoc = pMiniDoc; ! } ! return pMiniView; ! } ! ! // Retourne le mini-doc si celui si existe. ! MiniDoc* DocManager::GetMiniDoc(FilePath strDocPath) ! { ! for(int i=0; i<(int)m_MiniDocArray.GetCount(); i++) ! if(m_MiniDocArray[i]->GetFilePath()==strDocPath) ! return m_MiniDocArray[i]; ! return NULL; ! } --- 384,429 ---- */ ! //// Crée une MiniVue ! //MiniView* DocManager::CreateMiniView(FilePath strSourcePath, wxWindow* pParent, wxWindowID id) ! //{ ! // DocTemplate *pDocTemplate = &GetDocTemplate(GetDocTemplateFromExt(strSourcePath.GetFileExt())); ! // Archive *pArchive = NULL; ! // MiniView *pMiniView = NULL; ! // MiniDoc *pMiniDoc = NULL; ! // wxClassInfo *pMiniDocCI = NULL; ! // ! // if(pDocTemplate!=NULL) ! // if((pMiniDocCI = pDocTemplate->GetMiniDocClassInfo())!=NULL) ! // { ! // /** Création du mini-doc si aucun n'existe.*/ ! // if((pMiniDoc=GetMiniDoc(strSourcePath))==NULL) ! // { ! // if((pArchive = wxGetApp().CreateDocumentArchive(strSourcePath, Archive::read))==NULL) ! // return NULL; ! // pMiniDoc = (MiniDoc*) pMiniDocCI->CreateObject(); ! // pMiniDoc->m_strDocFilePath = strSourcePath; ! // if(!pMiniDoc->OnInitialize(pArchive)) ! // { ! // delete pMiniDoc; ! // return NULL; ! // } ! // pDocTemplate->m_pMiniDoc = pMiniDoc; ! // } ! // /** Création de la mini-vue.*/ ! // pMiniView = pMiniDoc->CreateMiniView(pParent, id); ! // pMiniView->SetTitle(strSourcePath); ! // pMiniView->m_pMiniDoc = pMiniDoc; ! // } ! // return pMiniView; ! //} ! // ! //// Retourne le mini-doc si celui si existe. ! //MiniDoc* DocManager::GetMiniDoc(FilePath strDocPath) ! //{ ! // for(unsigned int n=0; n<GetDocTemplateCount(); n++) ! // if(GetDocTemplate(n).GetFilePath()==strDocPath) ! // return m_MiniDocArray[i]; ! // return NULL; ! //} *************** *** 448,452 **** wxString DocManager::GetAllWildcard(bool bShowStarDotStar, bool bShowAllRegisteredExt)const { ! int i, j; wxString strWild; strWild.Empty(); --- 436,440 ---- wxString DocManager::GetAllWildcard(bool bShowStarDotStar, bool bShowAllRegisteredExt)const { ! unsigned int m, n; wxString strWild; strWild.Empty(); *************** *** 454,477 **** if(bShowAllRegisteredExt) { ! strWild = wxString(WXDC_FILE_WILDCARD_ALLREGISTERED) + "|"; ! for(i=0; i<(int)GetDocTemplateCount(); i++) { ! for(j=0; j<(int)m_DocTemplateArray[i]->GetExtensionCount(); j++) { ! strWild += "*." + m_DocTemplateArray[i]->GetExtension(j) + ";"; } } strWild.RemoveLast(); ! strWild += "|"; } ! for(i=0; i<(int)GetDocTemplateCount(); i++) { ! strWild += m_DocTemplateArray[i]->GetDocWildcard(false); } if(bShowStarDotStar) { ! strWild += wxString(WXDC_FILE_WILDCARD_ALLFILE) + "|*.*|"; } return strWild; --- 442,465 ---- if(bShowAllRegisteredExt) { ! strWild = wxString(WXDC_FILE_WILDCARD_ALLREGISTERED) + wxT("|"); ! for(m=0; m<GetDocTemplateCount(); m++) { ! for(n=0; n<GetDocTemplate(n).GetExtensionCount(); n++) { ! strWild += wxT("*.") + GetDocTemplate(m).GetExtension(n) + wxT(";"); } } strWild.RemoveLast(); ! strWild += wxT("|"); } ! for(m=0; m<GetDocTemplateCount(); m++) { ! strWild += GetDocTemplate(m).GetDocWildcard(false); } if(bShowStarDotStar) { ! strWild += wxString(WXDC_FILE_WILDCARD_ALLFILE) + wxT("|*.*|"); } return strWild; *************** *** 483,491 **** wxImageList* DocManager::GetImageList(int iSize) { ! wxImageList * pIL = new wxImageList(iSize, iSize, true, g_nDocIdentCount); ! for(unsigned int n=0; n<g_nDocIdentCount; n++) { ! wxIconBundle IB = wxGetApp().LoadAppIconBundle(m_arIconNames[n]); pIL->Add(IB.GetIcon(iSize)); } --- 471,479 ---- wxImageList* DocManager::GetImageList(int iSize) { ! wxImageList * pIL = new wxImageList(iSize, iSize, true, GetDocTemplateCount()); ! for(unsigned int n=0; n<GetDocTemplateCount(); n++) { ! wxIconBundle IB = wxGetApp().LoadAppIconBundle(GetDocTemplate(n).GetViewTemplate(0).strIcons); pIL->Add(IB.GetIcon(iSize)); } *************** *** 494,515 **** // Retourne le bundle d'icones associé à un identifiant de type de document. ! wxIconBundle* DocManager::GetIconBundle(unsigned int ID) { ! if(m_arIconBundle.GetCount()<=ID) ! m_arIconBundle.Add(NULL, ID - m_arIconBundle.GetCount() + 1); ! if(m_arIconNames.GetCount()<=ID) ! m_arIconNames.Add("", ID - m_arIconBundle.GetCount() + 1); ! ! if(m_arIconNames[ID].IsEmpty()) ! return NULL; ! else ! { ! if(m_arIconBundle[ID]==NULL) ! { ! wxIconBundle IB = wxGetApp().LoadAppIconBundle(m_arIconNames[ID]); ! m_arIconBundle[ID] = new wxIconBundle(IB); ! } ! return m_arIconBundle[ID]; ! } } --- 482,488 ---- // Retourne le bundle d'icones associé à un identifiant de type de document. ! wxIconBundle* DocManager::GetIconBundle(unsigned int nDocType, unsigned int nViewType) { ! return new wxIconBundle(wxGetApp().LoadAppIconBundle(GetDocTemplate(nDocType).GetViewTemplate(nViewType).strIcons)); } Index: MainFrame.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/MainFrame.cpp,v retrieving revision 1.6 retrieving revision 1.6.2.1 diff -C2 -d -r1.6 -r1.6.2.1 *** MainFrame.cpp 25 Feb 2005 20:58:04 -0000 1.6 --- MainFrame.cpp 15 Mar 2005 21:27:32 -0000 1.6.2.1 *************** *** 29,33 **** #include <wxDevCenter/MDIFrame.h> #include <wxDevCenter/FileSystem.h> - #include <wxDevCenter/DocManager.h> #include <wxDevCenter/DocView.h> --- 29,32 ---- *************** *** 316,321 **** if(pActiveView!=NULL) { ! View *pNewView = wxGetApp().GetDocManager().CreateView(pActiveView->GetDocument(), pActiveView->GetViewAssociation()->ID); ! pActiveView->GetDocument()->AttachView(pNewView); AddView(pNewView); pNewView->OnInitialUpdate(); --- 315,319 ---- if(pActiveView!=NULL) { ! View *pNewView = wxGetApp().GetDocManager().CreateView(pActiveView->GetDocument(), pActiveView->GetViewTemplate()); AddView(pNewView); pNewView->OnInitialUpdate(); *************** *** 330,334 **** { Document *pDoc = pActiveView->GetDocument(); ! int iTypeView = wxGetApp().GetDocManager().ChooseViewType(pDoc->GetDocTemplate()->GetDocType()); if(iTypeView!=-1) { --- 328,332 ---- { Document *pDoc = pActiveView->GetDocument(); ! int iTypeView = wxGetApp().GetDocManager().ChooseViewType(wxGetApp().GetDocManager().FindTemplate(pDoc->GetDocTemplate())); if(iTypeView!=-1) { *************** *** 366,370 **** void MainFrame::OnUpdateWhenHasDoc(wxUpdateUIEvent &event) { ! event.Enable(wxGetApp().GetDocManager().GetDocCount()!=0); } --- 364,368 ---- void MainFrame::OnUpdateWhenHasDoc(wxUpdateUIEvent &event) { ! event.Enable(wxGetApp().GetDocManager().GetDocumentCount()!=0); } *************** *** 456,460 **** { InsertViewMenu(pNewView); ! SetIcons(*(wxGetApp().GetDocManager().GetIconBundle(pNewView->GetViewAssociation()->ID))); str.Append(WXDC_NAME).Append(wxT(" - ")).Append(pNewView->GetDocument()->GetDocumentName()); if(pNewView->GetDocument()->GetModifiedFlag()) --- 454,458 ---- { InsertViewMenu(pNewView); ! SetIcons(wxGetApp().LoadAppIconBundle(pNewView->GetViewTemplate()->strIcons)); str.Append(WXDC_NAME).Append(wxT(" - ")).Append(pNewView->GetDocument()->GetDocumentName()); if(pNewView->GetDocument()->GetModifiedFlag()) Index: MDIFrame.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/MDIFrame.cpp,v retrieving revision 1.2 retrieving revision 1.2.4.1 diff -C2 -d -r1.2 -r1.2.4.1 *** MDIFrame.cpp 12 Jan 2005 13:50:55 -0000 1.2 --- MDIFrame.cpp 15 Mar 2005 21:27:32 -0000 1.2.4.1 *************** *** 93,97 **** { wxString str = pView->GetDocument()->GetDocumentName(); ! long type = pView->GetViewAssociation()->ID; View *pOldView = GetActiveView(); --- 93,97 ---- { wxString str = pView->GetDocument()->GetDocumentName(); ! long type = wxGetApp().GetDocManager().FindDocTemplate(pView->GetDocument()->GetDocTemplate()); View *pOldView = GetActiveView(); *************** *** 101,107 **** pView->SetFrame(this); ! OnViewChanging( pOldView, pView); AddPage(pView, str, true, type); ! OnViewChanged( pView, pOldView); } --- 101,107 ---- pView->SetFrame(this); ! OnViewChanging(pOldView, pView); AddPage(pView, str, true, type); ! OnViewChanged(pView, pOldView); } *************** *** 154,158 **** // Supprime une vue, si elle est attachée, et sans aucun test d'attachement sur le document ! void MDIFrame::DeleteView(View *pView) { int i, iPage; --- 154,158 ---- // Supprime une vue, si elle est attachée, et sans aucun test d'attachement sur le document ! void MDIFrame::RemoveView(View *pView) { int i, iPage; *************** *** 178,184 **** // On retire la vue RemovePage(i); - // On détruit la vue - pView->Destroy(); - break;; } } --- 178,181 ---- Index: Application.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/Application.cpp,v retrieving revision 1.15.2.2 retrieving revision 1.15.2.3 diff -C2 -d -r1.15.2.2 -r1.15.2.3 *** Application.cpp 8 Mar 2005 18:46:24 -0000 1.15.2.2 --- Application.cpp 15 Mar 2005 21:27:32 -0000 1.15.2.3 *************** *** 60,64 **** // Initialise le DocManager ! m_DocManager.InitDocManager(); // Initialise le ProjectManager --- 60,64 ---- // Initialise le DocManager ! m_DocManager.Initialize(); // Initialise le ProjectManager *************** *** 215,219 **** if(nDocView==-1) { ! if(m_DocManager.GetDocTemplate(nDocType)->GetViewCount()>1) { nDocView = m_DocManager.ChooseViewType(nDocType); --- 215,219 ---- if(nDocView==-1) { ! if(m_DocManager.GetDocTemplate(nDocType).GetViewTemplateCount()>1) { nDocView = m_DocManager.ChooseViewType(nDocType); *************** *** 222,226 **** } else ! nDocView = nDocType; } --- 222,226 ---- } else ! nDocView = 0; } *************** *** 264,268 **** if(pDoc!=NULL) { ! pView = pDoc->m_ViewArray[0]; pView->GetFrame()->ScrollToView(pView); return true; --- 264,268 ---- if(pDoc!=NULL) { ! pView = &(pDoc->m_ViewArray[0]); pView->GetFrame()->ScrollToView(pView); return true; *************** *** 275,279 **** if(iDocType==-1) { ! iDocType = m_DocManager.GetDocTemplateID(strExt); } --- 275,279 ---- if(iDocType==-1) { ! iDocType = m_DocManager.GetDocTemplateFromExt(strExt); } *************** *** 285,290 **** // Détermine le type de vue. ! if(m_DocManager.GetDocTemplate((unsigned int)iDocType)->GetViewCount()<2) ! nDocView = iDocType; else nDocView = m_DocManager.ChooseViewType(iDocType); --- 285,290 ---- // Détermine le type de vue. ! if(m_DocManager.GetDocTemplate((unsigned int)iDocType).GetViewTemplateCount()<2) ! nDocView = 0; else nDocView = m_DocManager.ChooseViewType(iDocType); *************** *** 322,329 **** iDocType = -1; - // On transforme l'index du wildcard en identifiant de type de document (ID ET PAS INDEX). - if(iDocType!=-1) - iDocType = GetDocManager().DocTemplateIDFromIndex((unsigned int)iDocType-1); - wxArrayString files; FD.GetSelectedFileList(files); --- 322,325 ---- Index: Project.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/Project.cpp,v retrieving revision 1.3.2.1 retrieving revision 1.3.2.2 diff -C2 -d -r1.3.2.1 -r1.3.2.2 *** Project.cpp 8 Mar 2005 17:26:28 -0000 1.3.2.1 --- Project.cpp 15 Mar 2005 21:27:32 -0000 1.3.2.2 *************** *** 153,161 **** } - // Initialisation du gestionnaire. - void ProjectManager::Initialize() - { - } - // Finalisation du gestionnaire. void ProjectManager::Finalize() --- 153,156 ---- Index: Document.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/Document.cpp,v retrieving revision 1.3 retrieving revision 1.3.4.1 diff -C2 -d -r1.3 -r1.3.4.1 *** Document.cpp 15 Jan 2005 09:47:22 -0000 1.3 --- Document.cpp 15 Mar 2005 21:27:32 -0000 1.3.4.1 *************** *** 25,29 **** #include <wxDevCenter/DocView.h> - #include <wxDevCenter/DocManager.h> #include <wxDevCenter/FileSystem.h> #include <wxDevCenter/FileTools.h> --- 25,28 ---- *************** *** 77,81 **** unsigned int i; for(i=0; i<m_ViewArray.GetCount(); i++) ! m_ViewArray[i]->OnChangeFilename(); } --- 76,80 ---- unsigned int i; for(i=0; i<m_ViewArray.GetCount(); i++) ! m_ViewArray[i].OnChangeFilename(); } *************** *** 103,108 **** for(i=0; i<m_ViewArray.GetCount(); i++) { ! if(m_ViewArray[i]!=pSender) ! m_ViewArray[i]->OnUpdate(pSender, nUpdateCode, pUpdateInfo); } } --- 102,107 ---- for(i=0; i<m_ViewArray.GetCount(); i++) { ! if(&m_ViewArray[i]!=pSender) ! m_ViewArray[i].OnUpdate(pSender, nUpdateCode, pUpdateInfo); } } *************** *** 114,118 **** pView->m_pDocument->DetachView(pView); pView->m_pDocument = this; ! m_ViewArray.Add(pView); } --- 113,117 ---- pView->m_pDocument->DetachView(pView); pView->m_pDocument = this; ! m_ViewArray.Register(pView); } *************** *** 120,145 **** void Document::DetachView(View *pView) { ! m_ViewArray.Remove(pView); pView->m_pDocument = NULL; } - // Supprime la vue de la liste des vues (la détruit et enlève le pointeur) - void Document::DeleteView(View *pView) - { - m_ViewArray.Remove(pView); - pView->Destroy(); - } - - // Supprime toutes les vues de la liste des vues (les détruit et enlève les pointeurs) - void Document::DeleteAllViews() - { - for(int i=m_ViewArray.GetCount()-1; i>=0; i--) - { - m_ViewArray[i]->Destroy(); - } - m_ViewArray.Clear(); - } - - ////////////////////////////////////////////////////////////////////// // Processus de sérialisation du document --- 119,126 ---- void Document::DetachView(View *pView) { ! m_ViewArray.Unregister(pView); pView->m_pDocument = NULL; } ////////////////////////////////////////////////////////////////////// // Processus de sérialisation du document Index: FileSystemStandard.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/FileSystemStandard.cpp,v retrieving revision 1.13 retrieving revision 1.13.2.1 diff -C2 -d -r1.13 -r1.13.2.1 *** FileSystemStandard.cpp 7 Mar 2005 15:23:04 -0000 1.13 --- FileSystemStandard.cpp 15 Mar 2005 21:27:32 -0000 1.13.2.1 *************** *** 52,60 **** } - wxImageList* FileSystemStandardBase::GetImageList(int width) - { - return wxGetApp().GetDocManager().GetImageList(width); - } - int FileSystemStandardBase::GetFileType(const FilePath& strPath) { --- 52,55 ---- *************** *** 66,70 **** else { ! type = wxGetApp().GetDocManager().GetDocTemplateID(strPath.GetFileExt()); if(type==-1) type = WXDC_DOCMANAGER_TYPE_UNKNOW; --- 61,65 ---- else { ! type = WXDC_FS_DIRTYPE_NB + wxGetApp().GetDocManager().GetDocTemplateFromExt(strPath.GetFileExt()); if(type==-1) type = WXDC_DOCMANAGER_TYPE_UNKNOW; *************** *** 73,76 **** --- 68,109 ---- } + wxImageList* FileSystemStandardBase::GetImageList(int width) + { + wxImageList* pIL = new wxImageList(width, width, true, WXDC_FS_DIRTYPE_NB + wxGetApp().GetDocManager().GetDocTemplateCount()); + + wxIconBundle IB; + IB = wxGetApp().LoadAppIconBundle(wxT("none")); + pIL->Add(IB.GetIcon(width)); + IB = wxGetApp().LoadAppIconBundle(wxT("unknow")); + pIL->Add(IB.GetIcon(width)); + IB = wxGetApp().LoadAppIconBundle(wxT("dir")); + pIL->Add(IB.GetIcon(width)); + IB = wxGetApp().LoadAppIconBundle(wxT("desktop")); + pIL->Add(IB.GetIcon(width)); + IB = wxGetApp().LoadAppIconBundle(wxT("desktop")); + pIL->Add(IB.GetIcon(width)); + IB = wxGetApp().LoadAppIconBundle(wxT("docs")); + pIL->Add(IB.GetIcon(width)); + IB = wxGetApp().LoadAppIconBundle(wxT("computer")); + pIL->Add(IB.GetIcon(width)); + IB = wxGetApp().LoadAppIconBundle(wxT("floppy")); + pIL->Add(IB.GetIcon(width)); + IB = wxGetApp().LoadAppIconBundle(wxT("harddrive")); + pIL->Add(IB.GetIcon(width)); + IB = wxGetApp().LoadAppIconBundle(wxT("cd-dvd")); + pIL->Add(IB.GetIcon(width)); + IB = wxGetApp().LoadAppIconBundle(wxT("ramdisk")); + pIL->Add(IB.GetIcon(width)); + IB = wxGetApp().LoadAppIconBundle(wxT("remote")); + pIL->Add(IB.GetIcon(width)); + + for(unsigned long l=0; l<wxGetApp().GetDocManager().GetDocTemplateCount(); l++) + { + IB = wxGetApp().LoadAppIconBundle(wxGetApp().GetDocManager().GetDocTemplate(l).GetViewTemplate(0).strIcons); + pIL->Add(IB.GetIcon(width)); + } + return pIL; + } + ////////////////////////////////////////////////////////////////////// |
|
From: Emilien K. <cur...@us...> - 2005-03-15 21:27:46
|
Update of /cvsroot/wxdevcenter/wxDevCenter In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29768 Modified Files: Tag: manager-virtualization wxDevCenter.bkl Log Message: Passage du DocManager et consorts à la nouvelle architecture des gestionnaires. Diverses modifs de l'archi des gestionnaires. Index: wxDevCenter.bkl =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/wxDevCenter.bkl,v retrieving revision 1.8 retrieving revision 1.8.2.1 diff -C2 -d -r1.8 -r1.8.2.1 *** wxDevCenter.bkl 4 Mar 2005 16:12:27 -0000 1.8 --- wxDevCenter.bkl 15 Mar 2005 21:27:33 -0000 1.8.2.1 *************** *** 111,115 **** wxDevCenter/Application.h wxDevCenter/Config.h - wxDevCenter/DocManager.h wxDevCenter/DocView.h wxDevCenter/FileSystem.h --- 111,114 ---- |
|
From: Emilien K. <cur...@us...> - 2005-03-10 16:04:45
|
Update of /cvsroot/wxdevcenter/wxDevCenter/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19819/src Modified Files: Application.cpp Log Message: Index: Application.cpp =================================================================== RCS file: /cvsroot/wxdevcenter/wxDevCenter/src/Application.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** Application.cpp 7 Mar 2005 15:23:03 -0000 1.15 --- Application.cpp 10 Mar 2005 16:04:34 -0000 1.16 *************** *** 42,45 **** --- 42,47 ---- IMPLEMENT_APP(wxDevCenter::Application); + + // Utilisation du namespace using namespace wxDevCenter; |