home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wxos2233.zip / wxOS2-2_3_3.zip / wxWindows-2.3.3 / contrib / utils / wxrcedit / nodesdb.h < prev    next >
C/C++ Source or Header  |  2002-09-08  |  2KB  |  85 lines

  1. /////////////////////////////////////////////////////////////////////////////
  2. // Purpose:     XML resources editor
  3. // Author:      Vaclav Slavik
  4. // Created:     2000/05/05
  5. // RCS-ID:      $Id: nodesdb.h,v 1.2 2002/09/07 12:15:24 GD Exp $
  6. // Copyright:   (c) 2000 Vaclav Slavik
  7. // Licence:     wxWindows licence
  8. /////////////////////////////////////////////////////////////////////////////
  9.  
  10. #if defined(__GNUG__) && !defined(__APPLE__)
  11.     #pragma interface "nodesdb.h"
  12. #endif
  13.  
  14. #ifndef _NODESDB_H_
  15. #define _NODESDB_H_
  16.  
  17. #include "wx/dynarray.h"
  18.  
  19. class WXDLLEXPORT wxXmlNode;
  20. class WXDLLEXPORT wxString;
  21. class WXDLLEXPORT wxPathList;
  22.  
  23.  
  24. class PropertyInfo
  25. {
  26.     public:
  27.         PropertyInfo() {}
  28.         PropertyInfo(const wxString& atype, const wxString& aname, const wxString& amoreinfo)
  29.           : Type(atype), Name(aname), MoreInfo(amoreinfo) {}
  30.        
  31.         PropertyInfo& operator=(const PropertyInfo& p)
  32.         {
  33.             Type = p.Type; Name = p.Name; MoreInfo = p.MoreInfo;
  34.             return *this;
  35.         }
  36.        
  37.         wxString Type;
  38.         wxString Name;
  39.         wxString MoreInfo;
  40. };
  41.  
  42. WX_DECLARE_OBJARRAY(PropertyInfo, PropertyInfoArray);
  43.  
  44.  
  45. class NodeInfo
  46. {
  47.     public:
  48.         wxString NodeClass;
  49.         wxString Type;   
  50.         PropertyInfoArray Props;
  51.         wxArrayString DerivedFrom;
  52.         bool Abstract;
  53.         wxString ChildType;
  54.         int Icon;
  55.     
  56.         void Read(const wxString& filename, wxPathList& list);
  57. };
  58.  
  59. WX_DECLARE_OBJARRAY(NodeInfo, NodeInfoArray);
  60.  
  61.  
  62.  
  63. class NodesDb
  64. {
  65.     public:
  66.         NodesDb();
  67.     
  68.         void Load();
  69.         void LoadDir(const wxString& path);
  70.         void LoadFile(const wxString& file);
  71.         
  72.         NodeInfoArray& GetNodesInfo() { return m_Infos; }
  73.     
  74.         static NodesDb *Get();
  75.     
  76.     private:
  77.         static NodesDb *ms_Instance;
  78.         NodeInfoArray m_Infos;
  79.         wxArrayString m_Paths;
  80. };
  81.  
  82.  
  83.  
  84. #endif 
  85.