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"
20 class wxScrolledWindow
;
21 class wxSplitterWindow
;
36 CHANGED_TREE_SELECTED
= 2,
37 CHANGED_TREE_SELECTED_ICON
= 4,
39 CHANGED_PROPS_PANEL
= 16,
40 CHANGED_EVERYTHING
= CHANGED_TREE
| CHANGED_PROPS
| CHANGED_PROPS_PANEL
,
44 class EditorFrame
: public wxFrame
47 friend class EditorTreeCtrl
;
49 EditorFrame(wxFrame
*parent
, const wxString
& filename
);
52 void LoadFile(const wxString
& filename
);
54 void SaveFile(const wxString
& filename
);
57 void RefreshPreview(wxXmlNode
*node
);
58 void RefreshProps(wxXmlNode
*node
);
59 void RefreshPropsEdit();
60 bool SelectNode(wxXmlNode
*node
, wxTreeItemId
*root
= NULL
);
62 wxTreeItemId
CreateTreeNode(wxTreeCtrl
*treectrl
, wxTreeItemId parent
, wxXmlNode
*node
);
63 void CreatePropsList(wxListCtrl
*listctrl
, wxXmlNode
*node
);
65 void NotifyChanged(int change_type
);
67 void RegisterHandlers(const wxString
& dir
);
69 NodeHandler
*FindHandler(wxXmlNode
*node
);
71 static EditorFrame
*Get() { return ms_Instance
; }
74 static EditorFrame
*ms_Instance
;
76 wxTreeCtrl
*m_TreeCtrl
;
77 wxTextCtrl
*m_XMLIDCtrl
;
78 wxImageList
*m_ImgList
, *m_ImgListProp
;
79 wxPanel
*m_PropsPanel
;
80 wxScrolledWindow
*m_PropsEditPanel
;
81 wxSplitterWindow
*m_Splitter
, *m_Splitter2
;
82 wxListCtrl
*m_PropsList
;
87 wxXmlNode
*m_SelectedNode
;
90 wxXmlDocument
*m_Resource
;
94 void OnTreeSel(wxTreeEvent
& event
);
95 void OnToolbar(wxCommandEvent
& event
);
96 void OnNew(wxCommandEvent
& event
);
97 void OnXMLIDEdit(wxCommandEvent
& event
);
98 void OnXMLIDPick(wxCommandEvent
& event
);
99 void OnEditCode(wxCommandEvent
& event
);
100 void OnClearProp(wxCommandEvent
& event
);
101 void OnPropSel(wxListEvent
& event
);
102 void OnNewNode(wxCommandEvent
& event
);
103 void OnRightClickTree(wxPoint pos
);