home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wxos2240.zip / wxWindows-2.4.0 / contrib / utils / wxrcedit / editor.h < prev    next >
C/C++ Source or Header  |  2002-09-07  |  3KB  |  114 lines

  1. /////////////////////////////////////////////////////////////////////////////
  2. // Purpose:     XML resources editor
  3. // Author:      Vaclav Slavik
  4. // Created:     2000/05/05
  5. // RCS-ID:      $Id: editor.h,v 1.10 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 "editor.h"
  12. #endif
  13.  
  14. #ifndef _EDITOR_H_
  15. #define _EDITOR_H_
  16.  
  17.  
  18. #include "wx/frame.h"
  19. #include "wx/treectrl.h"
  20. #include "wx/imaglist.h"
  21. #include "wx/listctrl.h"
  22.  
  23. class WXDLLEXPORT wxXmlNode;
  24. class WXDLLEXPORT wxTreeCtrl;
  25. class WXDLLEXPORT wxScrolledWindow;
  26. class WXDLLEXPORT wxSplitterWindow;
  27. class NodeHandler;
  28. class WXDLLEXPORT wxXmlNode;
  29. class WXDLLEXPORT wxXmlDocument;
  30. class EditorTreeCtrl;
  31. class WXDLLEXPORT wxTreeCtrl;
  32. class WXDLLEXPORT wxListCtrl;
  33. class WXDLLEXPORT wxTreeItemId;
  34. class WXDLLEXPORT wxImageList;
  35. class WXDLLEXPORT wxTreeEvent;
  36. class WXDLLEXPORT wxListEvent;
  37.  
  38. enum ChangeType
  39. {
  40.     CHANGED_NOTHING = 0,
  41.     CHANGED_TREE = 1,
  42.     CHANGED_TREE_SELECTED = 2,
  43.     CHANGED_TREE_SELECTED_ICON = 4,
  44.     CHANGED_PROPS = 8,
  45.     CHANGED_PROPS_PANEL = 16,
  46.     CHANGED_EVERYTHING = CHANGED_TREE | CHANGED_PROPS | CHANGED_PROPS_PANEL,
  47. };
  48.  
  49.  
  50. class wxXmlRcEditDocument : public wxXmlDocument
  51. {
  52.     // Helper functions for Upgrade()
  53.     void UpgradeNodeValue(wxXmlNode *node);
  54.     void UpgradeNode(wxXmlNode *node);
  55.  
  56.  public:
  57.     // Upgrades older versions
  58.     void Upgrade();
  59.  
  60. };
  61.  
  62. class EditorFrame : public wxFrame
  63. {
  64.     public:
  65.         friend class EditorTreeCtrl;
  66.     
  67.         EditorFrame(wxFrame *parent, const wxString& filename);
  68.         ~EditorFrame();
  69.  
  70.         void LoadFile(const wxString& filename);
  71.         void NewFile();
  72.         void SaveFile(const wxString& filename);
  73.         wxString GetFileName() { return m_FileName; }
  74.         
  75.         void RefreshTree();
  76.         void RefreshTitle();
  77.         bool SelectNode(wxXmlNode *node, wxTreeItemId *root = NULL);
  78.         
  79.         wxTreeItemId CreateTreeNode(wxTreeCtrl *treectrl, wxTreeItemId parent, wxXmlNode *node);
  80.   
  81.         void NotifyChanged(int change_type);
  82.         
  83.         static EditorFrame *Get() { return ms_Instance; }
  84.         
  85.     private:
  86.         static EditorFrame *ms_Instance;
  87.     
  88.         wxTreeCtrl *m_TreeCtrl;
  89.         
  90.         wxXmlNode *m_SelectedNode;
  91.         
  92.         wxXmlNode *m_Clipboard;
  93.  
  94.         wxString m_FileName;
  95.         wxXmlRcEditDocument *m_Resource;
  96.         
  97.         bool m_Modified;
  98.         
  99.         bool AskToSave();
  100.         void DeleteSelectedNode();
  101.  
  102.         DECLARE_EVENT_TABLE()
  103.         void OnTreeSel(wxTreeEvent& event);
  104.         void OnToolbar(wxCommandEvent& event);
  105.         void OnNew(wxCommandEvent& event);
  106.         void OnNewNode(wxCommandEvent& event);
  107.         void OnRightClickTree(wxPoint pos);
  108.         void OnClipboardAction(wxCommandEvent& event);
  109.         void OnCloseWindow(wxCloseEvent&);
  110. };
  111.  
  112.  
  113. #endif
  114.