X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/031dfec8d45fee38c17c0f8ac01c916c01387d66..dcb39c53303d1ec6884f7bcd7bc9dc101e560e62:/contrib/utils/wxrcedit/editor.h?ds=sidebyside diff --git a/contrib/utils/wxrcedit/editor.h b/contrib/utils/wxrcedit/editor.h index 2d5649413c..90917acff9 100644 --- a/contrib/utils/wxrcedit/editor.h +++ b/contrib/utils/wxrcedit/editor.h @@ -7,7 +7,7 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(__APPLE__) #pragma interface "editor.h" #endif @@ -15,20 +15,25 @@ #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 { @@ -42,66 +47,66 @@ 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&); };