wxExtend
Additional templates and function helpers for wxWidgets
Loading...
Searching...
No Matches
auimanager.h
1/*
2 ​​​SPDX-License-Identifier: GPL-3.0-or-later
3 Copyright © 2015-2022 Amebis
4 Copyright © 2016 GÉANT
5*/
6
7#pragma once
8
9#include "../common.h"
10
11#include "../aui/framemanager.h"
12
13#include <codeanalysis\warnings.h>
14#pragma warning(push)
15#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
16#include <wx/persist.h>
17#include <wx/aui/framemanager.h>
18#pragma warning(pop)
19
20
23
27#define wxPERSIST_AUIMGR_KIND "AuiManager"
28
32#define wxPERSIST_AUIMGR_PERSPECTIVE "perspective"
33
37class wxPersistentAuiManager : public wxPersistentObject
38{
39public:
43 wxPersistentAuiManager(wxAuiManager *mgr) : wxPersistentObject(mgr)
44 {
45 }
46
50 virtual wxString GetKind() const wxOVERRIDE
51 {
52 return wxT(wxPERSIST_AUIMGR_KIND);
53 }
54
58 virtual wxString GetName() const wxOVERRIDE
59 {
60 // Borrow the name of wxAguiManager from its window.
61 return GetManager()->GetManagedWindow()->GetName();
62 }
63
67 virtual void Save() const wxOVERRIDE
68 {
69 // Save perspective string to configuration.
70 SaveValue(wxT(wxPERSIST_AUIMGR_PERSPECTIVE), GetManager()->SavePerspective());
71 }
72
76 virtual bool Restore() wxOVERRIDE
77 {
78 // Load perspective string from configuration.
79 wxString persp;
80 if (!RestoreValue(wxT(wxPERSIST_AUIMGR_PERSPECTIVE), &persp))
81 return false;
82
83 // Update captions (see http://trac.wxwidgets.org/ticket/12528).
84 wxAuiManager* mgr = GetManager();
85 wxCHECK(wxAuiManagerUpdatePerspectiveCaptions(*mgr, persp), false);
86
87 // Restore perspective.
88 return mgr->LoadPerspective(persp);
89 }
90
91protected:
93 wxAuiManager *GetManager() const
94 {
95 return static_cast<wxAuiManager*>(GetObject());
96 }
98
99private:
100 wxDECLARE_NO_COPY_CLASS(wxPersistentAuiManager);
101};
102
103
107inline wxPersistentObject *wxCreatePersistentObject(wxAuiManager *mgr)
108{
109 return new wxPersistentAuiManager(mgr);
110}
111
Supports saving/restoring wxAuiManager state.
Definition auimanager.h:38
virtual wxString GetKind() const wxOVERRIDE
Definition auimanager.h:50
wxPersistentAuiManager(wxAuiManager *mgr)
Constructs a persistent Aui manager object.
Definition auimanager.h:43
virtual wxString GetName() const wxOVERRIDE
Returns name of the window.
Definition auimanager.h:58
virtual void Save() const wxOVERRIDE
Saves Aui manager state.
Definition auimanager.h:67
virtual bool Restore() wxOVERRIDE
Restores Aui manager state.
Definition auimanager.h:76
#define wxPERSIST_AUIMGR_PERSPECTIVE
Name of the persistent storage variable for saving Aui manager state.
Definition auimanager.h:32
wxPersistentObject * wxCreatePersistentObject(wxAuiManager *mgr)
wxAuiManager's instantiation of wxCreatePersistentObject template
Definition auimanager.h:107
#define wxPERSIST_AUIMGR_KIND
wxPersistentAuiManager kind for persistent storage
Definition auimanager.h:27
bool WXEXTEND_API wxAuiManagerUpdatePerspectiveCaptions(wxAuiManager &mgr, wxString &perspective)
Updates perspective captions with matching captions from panes.
Definition framemanager.cpp:10