]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/utils/wxrcedit/editor.h
Applied [ 520664 ] filedlg patch
[wxWidgets.git] / contrib / utils / wxrcedit / editor.h
index 56b88e284c437f27528fa429482479ad307ed57c..ec53c4ef6304f11f85c1dc2b6df725098fae66a0 100644 (file)
 #include "wx/imaglist.h"
 #include "wx/listctrl.h"
 
-class wxXmlNode;
-class wxTreeCtrl;
-class wxScrolledWindow;
-class wxSplitterWindow;
+class WXDLLEXPORT wxXmlNode;
+class WXDLLEXPORT wxTreeCtrl;
+class WXDLLEXPORT wxScrolledWindow;
+class WXDLLEXPORT wxSplitterWindow;
 class NodeHandler;
-class wxXmlNode;
-class wxXmlDocument;
+class WXDLLEXPORT wxXmlNode;
+class WXDLLEXPORT wxXmlDocument;
 class EditorTreeCtrl;
-class wxTreeCtrl;
-class wxListCtrl;
-class wxTreeItemId;
-class wxImageList;
-class wxTreeEvent;
-class wxListEvent;
+class WXDLLEXPORT wxTreeCtrl;
+class WXDLLEXPORT wxListCtrl;
+class WXDLLEXPORT wxTreeItemId;
+class WXDLLEXPORT wxImageList;
+class WXDLLEXPORT wxTreeEvent;
+class WXDLLEXPORT wxListEvent;
 
 enum ChangeType
 {
@@ -47,6 +47,18 @@ enum ChangeType
 };
 
 
+class wxXmlRcEditDocument : public wxXmlDocument
+{
+    // Helper functions for Upgrade()
+    void UpgradeNodeValue(wxXmlNode *node);
+    void UpgradeNode(wxXmlNode *node);
+
+ public:
+    // Upgrades older versions
+    void Upgrade();
+
+};
+
 class EditorFrame : public wxFrame
 {
     public:
@@ -58,55 +70,43 @@ class EditorFrame : public wxFrame
         void LoadFile(const wxString& filename);
         void NewFile();
         void SaveFile(const wxString& filename);
+        wxString GetFileName() { return m_FileName; }
         
         void RefreshTree();
-        void RefreshPreview(wxXmlNode *node);
-        void RefreshProps(wxXmlNode *node);
-        void RefreshPropsEdit();
+        void RefreshTitle();
         bool SelectNode(wxXmlNode *node, wxTreeItemId *root = NULL);
         
         wxTreeItemId CreateTreeNode(wxTreeCtrl *treectrl, wxTreeItemId parent, wxXmlNode *node);
-        void CreatePropsList(wxListCtrl *listctrl, wxXmlNode *node);
   
         void NotifyChanged(int change_type);
         
-        void RegisterHandlers(const wxString& dir);
-        
-        NodeHandler *FindHandler(wxXmlNode *node);
-        
         static EditorFrame *Get() { return ms_Instance; }
         
     private:
         static EditorFrame *ms_Instance;
     
         wxTreeCtrl *m_TreeCtrl;
-        wxTextCtrl *m_XMLIDCtrl;
-        wxImageList *m_ImgList, *m_ImgListProp;
-        wxPanel *m_PropsPanel;
-        wxScrolledWindow *m_PropsEditPanel;
-        wxSplitterWindow *m_Splitter, *m_Splitter2;
-        wxListCtrl *m_PropsList;
-        int m_SelectedProp;
         
-        wxList m_Handlers;
-
         wxXmlNode *m_SelectedNode;
+        
+        wxXmlNode *m_Clipboard;
 
         wxString m_FileName;
-        wxXmlDocument *m_Resource;
-        wxWindow *m_Preview;
+        wxXmlRcEditDocument *m_Resource;
+        
+        bool m_Modified;
+        
+        bool AskToSave();
+        void DeleteSelectedNode();
 
         DECLARE_EVENT_TABLE()
         void OnTreeSel(wxTreeEvent& event);
         void OnToolbar(wxCommandEvent& event);
         void OnNew(wxCommandEvent& event);
-        void OnXMLIDEdit(wxCommandEvent& event);
-        void OnXMLIDPick(wxCommandEvent& event);
-        void OnEditCode(wxCommandEvent& event);
-        void OnClearProp(wxCommandEvent& event);
-        void OnPropSel(wxListEvent& event);
         void OnNewNode(wxCommandEvent& event);
         void OnRightClickTree(wxPoint pos);
+        void OnClipboardAction(wxCommandEvent& event);
+        void OnCloseWindow(wxCloseEvent&);
 };