// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "editor.h"
#endif
#define _EDITOR_H_
-class wxXmlNode;
-class WXDLLEXPORT wxTreeCtrl;
-class WXDLLEXPORT wxScrolledWindow;
-class WXDLLEXPORT wxSplitterWindow;
-
#include "wx/frame.h"
#include "wx/treectrl.h"
#include "wx/imaglist.h"
#include "wx/listctrl.h"
+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 WXDLLEXPORT wxTreeCtrl;
+class WXDLLEXPORT wxListCtrl;
+class WXDLLEXPORT wxTreeItemId;
+class WXDLLEXPORT wxImageList;
+class WXDLLEXPORT wxTreeEvent;
+class WXDLLEXPORT wxListEvent;
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:
friend class EditorTreeCtrl;
-
+
EditorFrame(wxFrame *parent, const wxString& filename);
~EditorFrame();
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&);
};