]> git.saurik.com Git - wxWidgets.git/blob - contrib/utils/wxrcedit/editor.h
bb1d365c79d6e7bebf5eacbf17c60011d392d093
[wxWidgets.git] / contrib / utils / wxrcedit / editor.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Purpose: XML resources editor
3 // Author: Vaclav Slavik
4 // Created: 2000/05/05
5 // RCS-ID: $Id$
6 // Copyright: (c) 2000 Vaclav Slavik
7 // Licence: wxWindows licence
8 /////////////////////////////////////////////////////////////////////////////
9
10 #ifdef __GNUG__
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 EditorFrame : public wxFrame
51 {
52 public:
53 friend class EditorTreeCtrl;
54
55 EditorFrame(wxFrame *parent, const wxString& filename);
56 ~EditorFrame();
57
58 void LoadFile(const wxString& filename);
59 void NewFile();
60 void SaveFile(const wxString& filename);
61 wxString GetFileName() { return m_FileName; }
62
63 void RefreshTree();
64 bool SelectNode(wxXmlNode *node, wxTreeItemId *root = NULL);
65
66 wxTreeItemId CreateTreeNode(wxTreeCtrl *treectrl, wxTreeItemId parent, wxXmlNode *node);
67
68 void NotifyChanged(int change_type);
69
70 static EditorFrame *Get() { return ms_Instance; }
71
72 private:
73 static EditorFrame *ms_Instance;
74
75 wxTreeCtrl *m_TreeCtrl;
76
77 wxXmlNode *m_SelectedNode;
78
79 wxXmlNode *m_Clipboard;
80
81 wxString m_FileName;
82 wxXmlDocument *m_Resource;
83
84 DECLARE_EVENT_TABLE()
85 void OnTreeSel(wxTreeEvent& event);
86 void OnToolbar(wxCommandEvent& event);
87 void OnNew(wxCommandEvent& event);
88 void OnNewNode(wxCommandEvent& event);
89 void OnRightClickTree(wxPoint pos);
90 void OnClipboardAction(wxCommandEvent& event);
91
92 void DeleteSelectedNode();
93 };
94
95
96 #endif