1 /////////////////////////////////////////////////////////////////////////////
2 // Purpose: XML resources editor
3 // Author: Vaclav Slavik
6 // Copyright: (c) 2000 Vaclav Slavik
7 // Licence: wxWindows licence
8 /////////////////////////////////////////////////////////////////////////////
11 #pragma interface "editor.h"
19 #include "wx/treectrl.h"
20 #include "wx/imaglist.h"
21 #include "wx/listctrl.h"
23 class WXDLLEXPORT wxXmlNode
;
24 class WXDLLEXPORT wxTreeCtrl
;
25 class WXDLLEXPORT wxScrolledWindow
;
26 class WXDLLEXPORT wxSplitterWindow
;
28 class WXDLLEXPORT wxXmlNode
;
29 class WXDLLEXPORT wxXmlDocument
;
31 class WXDLLEXPORT wxTreeCtrl
;
32 class WXDLLEXPORT wxListCtrl
;
33 class WXDLLEXPORT wxTreeItemId
;
34 class WXDLLEXPORT wxImageList
;
35 class WXDLLEXPORT wxTreeEvent
;
36 class WXDLLEXPORT wxListEvent
;
42 CHANGED_TREE_SELECTED
= 2,
43 CHANGED_TREE_SELECTED_ICON
= 4,
45 CHANGED_PROPS_PANEL
= 16,
46 CHANGED_EVERYTHING
= CHANGED_TREE
| CHANGED_PROPS
| CHANGED_PROPS_PANEL
,
50 class wxXmlRcEditDocument
: public wxXmlDocument
52 // Helper functions for Upgrade()
53 void UpgradeNodeValue(wxXmlNode
*node
);
54 void UpgradeNode(wxXmlNode
*node
);
57 // Upgrades older versions
62 class EditorFrame
: public wxFrame
65 friend class EditorTreeCtrl
;
67 EditorFrame(wxFrame
*parent
, const wxString
& filename
);
70 void LoadFile(const wxString
& filename
);
72 void SaveFile(const wxString
& filename
);
73 wxString
GetFileName() { return m_FileName
; }
77 bool SelectNode(wxXmlNode
*node
, wxTreeItemId
*root
= NULL
);
79 wxTreeItemId
CreateTreeNode(wxTreeCtrl
*treectrl
, wxTreeItemId parent
, wxXmlNode
*node
);
81 void NotifyChanged(int change_type
);
83 static EditorFrame
*Get() { return ms_Instance
; }
86 static EditorFrame
*ms_Instance
;
88 wxTreeCtrl
*m_TreeCtrl
;
90 wxXmlNode
*m_SelectedNode
;
92 wxXmlNode
*m_Clipboard
;
95 wxXmlRcEditDocument
*m_Resource
;
100 void DeleteSelectedNode();
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
&);