2009-01-30 16:38:29 -05:00
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: wx/persist/toplevel.h
|
|
|
|
// Purpose: persistence support for wxTLW
|
|
|
|
// Author: Vadim Zeitlin
|
|
|
|
// Created: 2009-01-19
|
|
|
|
// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org>
|
|
|
|
// Licence: wxWindows licence
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
#ifndef _WX_PERSIST_TOPLEVEL_H_
|
|
|
|
#define _WX_PERSIST_TOPLEVEL_H_
|
|
|
|
|
|
|
|
#include "wx/persist/window.h"
|
|
|
|
|
|
|
|
#include "wx/toplevel.h"
|
|
|
|
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// string constants used by wxPersistentTLW
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
// we use just "Window" to keep configuration files and such short, there
|
|
|
|
// should be no confusion with wxWindow itself as we don't have persistent
|
|
|
|
// windows, just persistent controls which have their own specific kind strings
|
|
|
|
#define wxPERSIST_TLW_KIND "Window"
|
|
|
|
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// wxPersistentTLW: supports saving/restoring window position and size as well
|
|
|
|
// as maximized/iconized/restore state
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
|
2018-04-29 13:37:42 -04:00
|
|
|
class wxPersistentTLW : public wxPersistentWindow<wxTopLevelWindow>,
|
|
|
|
private wxTopLevelWindow::GeometrySerializer
|
2009-01-30 16:38:29 -05:00
|
|
|
{
|
|
|
|
public:
|
|
|
|
wxPersistentTLW(wxTopLevelWindow *tlw)
|
|
|
|
: wxPersistentWindow<wxTopLevelWindow>(tlw)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2014-03-29 20:02:23 -04:00
|
|
|
virtual void Save() const wxOVERRIDE
|
2009-01-30 16:38:29 -05:00
|
|
|
{
|
|
|
|
const wxTopLevelWindow * const tlw = Get();
|
|
|
|
|
2018-04-29 13:37:42 -04:00
|
|
|
tlw->SaveGeometry(*this);
|
2009-01-30 16:38:29 -05:00
|
|
|
}
|
|
|
|
|
2014-03-29 20:02:23 -04:00
|
|
|
virtual bool Restore() wxOVERRIDE
|
2009-01-30 16:38:29 -05:00
|
|
|
{
|
|
|
|
wxTopLevelWindow * const tlw = Get();
|
|
|
|
|
2018-04-29 13:37:42 -04:00
|
|
|
return tlw->RestoreToGeometry(*this);
|
2009-01-30 16:38:29 -05:00
|
|
|
}
|
|
|
|
|
2014-03-29 20:02:23 -04:00
|
|
|
virtual wxString GetKind() const wxOVERRIDE { return wxPERSIST_TLW_KIND; }
|
2018-04-29 13:37:42 -04:00
|
|
|
|
|
|
|
private:
|
|
|
|
virtual bool SaveField(const wxString& name, int value) const wxOVERRIDE
|
|
|
|
{
|
|
|
|
return SaveValue(name, value);
|
|
|
|
}
|
|
|
|
|
|
|
|
virtual bool RestoreField(const wxString& name, int* value) wxOVERRIDE
|
|
|
|
{
|
|
|
|
return RestoreValue(name, value);
|
|
|
|
}
|
2009-01-30 16:38:29 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
inline wxPersistentObject *wxCreatePersistentObject(wxTopLevelWindow *tlw)
|
|
|
|
{
|
|
|
|
return new wxPersistentTLW(tlw);
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // _WX_PERSIST_TOPLEVEL_H_
|