X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a62848fdba49396eba4f52c037d2dc82130274b4..682214d5c6ec3e56dbdfd0c97d70d87e614b38c2:/include/wx/fileconf.h diff --git a/include/wx/fileconf.h b/include/wx/fileconf.h index d6eb9223ba..8a9e6d565a 100644 --- a/include/wx/fileconf.h +++ b/include/wx/fileconf.h @@ -96,7 +96,11 @@ class WXDLLIMPEXP_BASE wxFileConfigGroup; class WXDLLIMPEXP_BASE wxFileConfigEntry; class WXDLLIMPEXP_BASE wxFileConfigLineList; + +#if wxUSE_STREAMS class WXDLLIMPEXP_BASE wxInputStream; +class WXDLLIMPEXP_BASE wxOutputStream; +#endif // wxUSE_STREAMS class WXDLLIMPEXP_BASE wxFileConfig : public wxConfigBase { @@ -126,8 +130,7 @@ public: #if wxUSE_STREAMS // ctor that takes an input stream. - wxFileConfig(wxInputStream &inStream, - wxMBConv& conv = wxConvUTF8); + wxFileConfig(wxInputStream &inStream, wxMBConv& conv = wxConvUTF8); #endif // wxUSE_STREAMS // dtor will save unsaved data @@ -165,6 +168,14 @@ public: virtual bool DeleteGroup(const wxString& szKey); virtual bool DeleteAll(); + // additional, wxFileConfig-specific, functionality +#if wxUSE_STREAMS + // save the entire config file text to the given stream, note that the text + // won't be saved again in dtor when Flush() is called if you use this method + // as it won't be "changed" any more + virtual bool Save(wxOutputStream& os, wxMBConv& conv = wxConvUTF8); +#endif // wxUSE_STREAMS + public: // functions to work with this list wxFileConfigLineList *LineListAppend(const wxString& str); @@ -198,14 +209,20 @@ private: // the same as SetPath("/") void SetRootPath(); + // set/test the dirty flag + void SetDirty() { m_isDirty = true; } + void ResetDirty() { m_isDirty = false; } + bool IsDirty() const { return m_isDirty; } + + // member variables // ---------------- - wxFileConfigLineList *m_linesHead, // head of the linked list - *m_linesTail; // tail + wxFileConfigLineList *m_linesHead, // head of the linked list + *m_linesTail; // tail - wxString m_strLocalFile, // local file name passed to ctor - m_strGlobalFile; // global - wxString m_strPath; // current path (not '/' terminated) + wxString m_strLocalFile, // local file name passed to ctor + m_strGlobalFile; // global + wxString m_strPath; // current path (not '/' terminated) wxFileConfigGroup *m_pRootGroup, // the top (unnamed) group *m_pCurrentGroup; // the current group @@ -213,10 +230,12 @@ private: wxMBConv &m_conv; #ifdef __UNIX__ - int m_umask; // the umask to use for file creation + int m_umask; // the umask to use for file creation #endif // __UNIX__ - DECLARE_NO_COPY_CLASS(wxFileConfig) + bool m_isDirty; // if true, we have unsaved changes + + DECLARE_NO_COPY_CLASS(wxFileConfig) }; #endif