]> git.saurik.com Git - wxWidgets.git/blame_incremental - contrib/utils/wxrcedit/editor.h
give focus to show top level windows
[wxWidgets.git] / contrib / utils / wxrcedit / editor.h
... / ...
CommitLineData
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
23class WXDLLEXPORT wxXmlNode;
24class WXDLLEXPORT wxTreeCtrl;
25class WXDLLEXPORT wxScrolledWindow;
26class WXDLLEXPORT wxSplitterWindow;
27class NodeHandler;
28class WXDLLEXPORT wxXmlNode;
29class WXDLLEXPORT wxXmlDocument;
30class EditorTreeCtrl;
31class WXDLLEXPORT wxTreeCtrl;
32class WXDLLEXPORT wxListCtrl;
33class WXDLLEXPORT wxTreeItemId;
34class WXDLLEXPORT wxImageList;
35class WXDLLEXPORT wxTreeEvent;
36class WXDLLEXPORT wxListEvent;
37
38enum 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
50class wxXmlRcEditDocument : public wxXmlDocument
51{
52 // Helper functions for Upgrade()
53 void UpgradeNodeValue(wxXmlNode *node);
54 void UpgradeNode(wxXmlNode *node);
55
56 public:
57 // Upgrades older versions
58 void Upgrade();
59
60};
61
62class EditorFrame : public wxFrame
63{
64 public:
65 friend class EditorTreeCtrl;
66
67 EditorFrame(wxFrame *parent, const wxString& filename);
68 ~EditorFrame();
69
70 void LoadFile(const wxString& filename);
71 void NewFile();
72 void SaveFile(const wxString& filename);
73 wxString GetFileName() { return m_FileName; }
74
75 void RefreshTree();
76 void RefreshTitle();
77 bool SelectNode(wxXmlNode *node, wxTreeItemId *root = NULL);
78
79 wxTreeItemId CreateTreeNode(wxTreeCtrl *treectrl, wxTreeItemId parent, wxXmlNode *node);
80
81 void NotifyChanged(int change_type);
82
83 static EditorFrame *Get() { return ms_Instance; }
84
85 private:
86 static EditorFrame *ms_Instance;
87
88 wxTreeCtrl *m_TreeCtrl;
89
90 wxXmlNode *m_SelectedNode;
91
92 wxXmlNode *m_Clipboard;
93
94 wxString m_FileName;
95 wxXmlRcEditDocument *m_Resource;
96
97 bool m_Modified;
98
99 bool AskToSave();
100 void DeleteSelectedNode();
101
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&);
110};
111
112
113#endif