Discontinue perspective caption manipulation
Some checks failed
Doxygen Action / build (push) Has been cancelled
Some checks failed
Doxygen Action / build (push) Has been cancelled
Reference: https://github.com/wxWidgets/wxWidgets/issues/12528 Signed-off-by: Simon Rozman <simon@rozman.si>
This commit is contained in:
@@ -16,7 +16,6 @@
|
|||||||
<ClCompile Include="..\src\appbar.cpp" />
|
<ClCompile Include="..\src\appbar.cpp" />
|
||||||
<ClCompile Include="..\src\comutils.cpp" />
|
<ClCompile Include="..\src\comutils.cpp" />
|
||||||
<ClCompile Include="..\src\crypto.cpp" />
|
<ClCompile Include="..\src\crypto.cpp" />
|
||||||
<ClCompile Include="..\src\framemanager.cpp" />
|
|
||||||
<ClCompile Include="..\src\hex.cpp" />
|
<ClCompile Include="..\src\hex.cpp" />
|
||||||
<ClCompile Include="..\src\icon.cpp" />
|
<ClCompile Include="..\src\icon.cpp" />
|
||||||
<ClCompile Include="..\src\pch.cpp">
|
<ClCompile Include="..\src\pch.cpp">
|
||||||
@@ -30,7 +29,6 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\include\wxex\appbar.h" />
|
<ClInclude Include="..\include\wxex\appbar.h" />
|
||||||
<ClInclude Include="..\include\wxex\aui\framemanager.h" />
|
|
||||||
<ClInclude Include="..\include\wxex\common.h" />
|
<ClInclude Include="..\include\wxex\common.h" />
|
||||||
<ClInclude Include="..\include\wxex\comutils.h" />
|
<ClInclude Include="..\include\wxex\comutils.h" />
|
||||||
<ClInclude Include="..\include\wxex\crypto.h" />
|
<ClInclude Include="..\include\wxex\crypto.h" />
|
||||||
|
|||||||
@@ -55,9 +55,6 @@
|
|||||||
<ClCompile Include="..\src\valnet.cpp">
|
<ClCompile Include="..\src\valnet.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\src\framemanager.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\src\tlwgeom.cpp">
|
<ClCompile Include="..\src\tlwgeom.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
@@ -102,9 +99,6 @@
|
|||||||
<ClInclude Include="..\include\wxex\valnet.h">
|
<ClInclude Include="..\include\wxex\valnet.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\include\wxex\aui\framemanager.h">
|
|
||||||
<Filter>Header Files\aui</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\include\wxex\object.h">
|
<ClInclude Include="..\include\wxex\object.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
|||||||
@@ -55,9 +55,6 @@
|
|||||||
<ClCompile Include="..\src\valnet.cpp">
|
<ClCompile Include="..\src\valnet.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\src\framemanager.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\src\tlwgeom.cpp">
|
<ClCompile Include="..\src\tlwgeom.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
@@ -102,9 +99,6 @@
|
|||||||
<ClInclude Include="..\include\wxex\valnet.h">
|
<ClInclude Include="..\include\wxex\valnet.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="..\include\wxex\aui\framemanager.h">
|
|
||||||
<Filter>Header Files\aui</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="..\include\wxex\object.h">
|
<ClInclude Include="..\include\wxex\object.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
|||||||
@@ -1,33 +0,0 @@
|
|||||||
/*
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
Copyright © 2015-2022 Amebis
|
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "../common.h"
|
|
||||||
|
|
||||||
#include <codeanalysis\warnings.h>
|
|
||||||
#pragma warning(push)
|
|
||||||
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
|
|
||||||
#include <wx/aui/framemanager.h>
|
|
||||||
#include <wx/string.h>
|
|
||||||
#pragma warning(pop)
|
|
||||||
|
|
||||||
/// \addtogroup wxExtend
|
|
||||||
/// @{
|
|
||||||
|
|
||||||
///
|
|
||||||
/// Updates perspective captions with matching captions from panes.
|
|
||||||
///
|
|
||||||
/// \param[in ] mgr wxAUI manager
|
|
||||||
/// \param[inout] perspective Perspective string to update captions in
|
|
||||||
///
|
|
||||||
/// \returns
|
|
||||||
/// - \c true when update succeeded
|
|
||||||
/// - \c false otherwise
|
|
||||||
///
|
|
||||||
bool WXEXTEND_API wxAuiManagerUpdatePerspectiveCaptions(wxAuiManager& mgr, wxString& perspective);
|
|
||||||
|
|
||||||
/// @}
|
|
||||||
@@ -1,112 +1,107 @@
|
|||||||
/*
|
/*
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
Copyright © 2015-2022 Amebis
|
Copyright © 2015-2022 Amebis
|
||||||
Copyright © 2016 GÉANT
|
Copyright © 2016 GÉANT
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "../common.h"
|
#include "../common.h"
|
||||||
|
|
||||||
#include "../aui/framemanager.h"
|
#include <codeanalysis\warnings.h>
|
||||||
|
#pragma warning(push)
|
||||||
#include <codeanalysis\warnings.h>
|
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
|
||||||
#pragma warning(push)
|
#include <wx/persist.h>
|
||||||
#pragma warning(disable: WXWIDGETS_CODE_ANALYSIS_WARNINGS)
|
#include <wx/aui/framemanager.h>
|
||||||
#include <wx/persist.h>
|
#pragma warning(pop)
|
||||||
#include <wx/aui/framemanager.h>
|
|
||||||
#pragma warning(pop)
|
|
||||||
|
/// \addtogroup wxExtend
|
||||||
|
/// @{
|
||||||
/// \addtogroup wxExtend
|
|
||||||
/// @{
|
///
|
||||||
|
/// `wxPersistentAuiManager` kind for persistent storage
|
||||||
///
|
///
|
||||||
/// `wxPersistentAuiManager` kind for persistent storage
|
#define wxPERSIST_AUIMGR_KIND "AuiManager"
|
||||||
///
|
|
||||||
#define wxPERSIST_AUIMGR_KIND "AuiManager"
|
///
|
||||||
|
/// Name of the persistent storage variable for saving Aui manager state
|
||||||
///
|
///
|
||||||
/// Name of the persistent storage variable for saving Aui manager state
|
#define wxPERSIST_AUIMGR_PERSPECTIVE "perspective"
|
||||||
///
|
|
||||||
#define wxPERSIST_AUIMGR_PERSPECTIVE "perspective"
|
///
|
||||||
|
/// Supports saving/restoring wxAuiManager state
|
||||||
///
|
///
|
||||||
/// Supports saving/restoring wxAuiManager state
|
class wxPersistentAuiManager : public wxPersistentObject
|
||||||
///
|
{
|
||||||
class wxPersistentAuiManager : public wxPersistentObject
|
public:
|
||||||
{
|
///
|
||||||
public:
|
/// Constructs a persistent Aui manager object
|
||||||
///
|
///
|
||||||
/// Constructs a persistent Aui manager object
|
wxPersistentAuiManager(wxAuiManager *mgr) : wxPersistentObject(mgr)
|
||||||
///
|
{
|
||||||
wxPersistentAuiManager(wxAuiManager *mgr) : wxPersistentObject(mgr)
|
}
|
||||||
{
|
|
||||||
}
|
///
|
||||||
|
/// \returns `wxT(wxPERSIST_AUIMGR_KIND)`
|
||||||
///
|
///
|
||||||
/// \returns `wxT(wxPERSIST_AUIMGR_KIND)`
|
virtual wxString GetKind() const wxOVERRIDE
|
||||||
///
|
{
|
||||||
virtual wxString GetKind() const wxOVERRIDE
|
return wxT(wxPERSIST_AUIMGR_KIND);
|
||||||
{
|
}
|
||||||
return wxT(wxPERSIST_AUIMGR_KIND);
|
|
||||||
}
|
///
|
||||||
|
/// Returns name of the window
|
||||||
///
|
///
|
||||||
/// Returns name of the window
|
virtual wxString GetName() const wxOVERRIDE
|
||||||
///
|
{
|
||||||
virtual wxString GetName() const wxOVERRIDE
|
// Borrow the name of wxAguiManager from its window.
|
||||||
{
|
return GetManager()->GetManagedWindow()->GetName();
|
||||||
// Borrow the name of wxAguiManager from its window.
|
}
|
||||||
return GetManager()->GetManagedWindow()->GetName();
|
|
||||||
}
|
///
|
||||||
|
/// Saves Aui manager state
|
||||||
///
|
///
|
||||||
/// Saves Aui manager state
|
virtual void Save() const wxOVERRIDE
|
||||||
///
|
{
|
||||||
virtual void Save() const wxOVERRIDE
|
// Save perspective string to configuration.
|
||||||
{
|
SaveValue(wxT(wxPERSIST_AUIMGR_PERSPECTIVE), GetManager()->SavePerspective());
|
||||||
// Save perspective string to configuration.
|
}
|
||||||
SaveValue(wxT(wxPERSIST_AUIMGR_PERSPECTIVE), GetManager()->SavePerspective());
|
|
||||||
}
|
///
|
||||||
|
/// Restores Aui manager state
|
||||||
///
|
///
|
||||||
/// Restores Aui manager state
|
virtual bool Restore() wxOVERRIDE
|
||||||
///
|
{
|
||||||
virtual bool Restore() wxOVERRIDE
|
// Load perspective string from configuration.
|
||||||
{
|
wxString persp;
|
||||||
// Load perspective string from configuration.
|
if (!RestoreValue(wxT(wxPERSIST_AUIMGR_PERSPECTIVE), &persp))
|
||||||
wxString persp;
|
return false;
|
||||||
if (!RestoreValue(wxT(wxPERSIST_AUIMGR_PERSPECTIVE), &persp))
|
|
||||||
return false;
|
// Restore perspective.
|
||||||
|
wxAuiManager* mgr = GetManager();
|
||||||
// Update captions (see http://trac.wxwidgets.org/ticket/12528).
|
return mgr->LoadPerspective(persp);
|
||||||
wxAuiManager* mgr = GetManager();
|
}
|
||||||
wxCHECK(wxAuiManagerUpdatePerspectiveCaptions(*mgr, persp), false);
|
|
||||||
|
protected:
|
||||||
// Restore perspective.
|
/// \cond internal
|
||||||
return mgr->LoadPerspective(persp);
|
wxAuiManager *GetManager() const
|
||||||
}
|
{
|
||||||
|
return static_cast<wxAuiManager*>(GetObject());
|
||||||
protected:
|
}
|
||||||
/// \cond internal
|
/// \endcond
|
||||||
wxAuiManager *GetManager() const
|
|
||||||
{
|
private:
|
||||||
return static_cast<wxAuiManager*>(GetObject());
|
wxDECLARE_NO_COPY_CLASS(wxPersistentAuiManager);
|
||||||
}
|
};
|
||||||
/// \endcond
|
|
||||||
|
|
||||||
private:
|
///
|
||||||
wxDECLARE_NO_COPY_CLASS(wxPersistentAuiManager);
|
/// wxAuiManager's instantiation of wxCreatePersistentObject template
|
||||||
};
|
///
|
||||||
|
inline wxPersistentObject *wxCreatePersistentObject(wxAuiManager *mgr)
|
||||||
|
{
|
||||||
///
|
return new wxPersistentAuiManager(mgr);
|
||||||
/// wxAuiManager's instantiation of wxCreatePersistentObject template
|
}
|
||||||
///
|
|
||||||
inline wxPersistentObject *wxCreatePersistentObject(wxAuiManager *mgr)
|
/// @}
|
||||||
{
|
|
||||||
return new wxPersistentAuiManager(mgr);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @}
|
|
||||||
|
|||||||
@@ -1,122 +0,0 @@
|
|||||||
/*
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
Copyright © 2015-2022 Amebis
|
|
||||||
Copyright © 2016 GÉANT
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "pch.h"
|
|
||||||
|
|
||||||
|
|
||||||
bool WXEXTEND_API wxAuiManagerUpdatePerspectiveCaptions(wxAuiManager& mgr, wxString& perspective)
|
|
||||||
{
|
|
||||||
wxString input = perspective;
|
|
||||||
wxString part;
|
|
||||||
|
|
||||||
// check layout string version
|
|
||||||
// 'layout1' = wxAUI 0.9.0 - wxAUI 0.9.2
|
|
||||||
// 'layout2' = wxAUI 0.9.2 (wxWidgets 2.8)
|
|
||||||
part = input.BeforeFirst(wxT('|'));
|
|
||||||
input = input.AfterFirst(wxT('|'));
|
|
||||||
part.Trim(true);
|
|
||||||
part.Trim(false);
|
|
||||||
if (part != wxT("layout2"))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
wxString result;
|
|
||||||
result.Alloc(500);
|
|
||||||
result = wxT("layout2|");
|
|
||||||
|
|
||||||
// replace escaped characters so we can
|
|
||||||
// split up the string easily
|
|
||||||
input.Replace(wxT("\\|"), wxT("\a"));
|
|
||||||
input.Replace(wxT("\\;"), wxT("\b"));
|
|
||||||
|
|
||||||
wxSize ppi = wxClientDC(mgr.GetManagedWindow()).GetPPI();
|
|
||||||
wxSize ppi_on_save(96, 96);
|
|
||||||
while (1)
|
|
||||||
{
|
|
||||||
wxString pane_part = input.BeforeFirst(wxT('|'));
|
|
||||||
input = input.AfterFirst(wxT('|'));
|
|
||||||
pane_part.Trim(true);
|
|
||||||
|
|
||||||
// if the string is empty, we're done parsing
|
|
||||||
if (pane_part.empty())
|
|
||||||
break;
|
|
||||||
|
|
||||||
// Undo our escaping
|
|
||||||
pane_part.Replace(wxT("\a"), wxT("|"));
|
|
||||||
pane_part.Replace(wxT("\b"), wxT(";"));
|
|
||||||
|
|
||||||
if (pane_part.Left(3) == wxT("ppi"))
|
|
||||||
{
|
|
||||||
wxString value = pane_part.AfterFirst(wxT('='));
|
|
||||||
|
|
||||||
long ppi_horz, ppi_vert;
|
|
||||||
value.BeforeFirst(wxT(',')).ToLong(&ppi_horz);
|
|
||||||
value.AfterFirst(wxT(',')).ToLong(&ppi_vert);
|
|
||||||
|
|
||||||
ppi_on_save.x = ppi_horz;
|
|
||||||
ppi_on_save.y = ppi_vert;
|
|
||||||
result += wxString::Format(wxT("ppi=%d,%d|"),
|
|
||||||
ppi.x, ppi.y);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else if (pane_part.Left(9) == wxT("dock_size"))
|
|
||||||
{
|
|
||||||
wxString val_name = pane_part.BeforeFirst(wxT('='));
|
|
||||||
wxString value = pane_part.AfterFirst(wxT('='));
|
|
||||||
|
|
||||||
long dir, layer, row, size;
|
|
||||||
wxString piece = val_name.AfterFirst(wxT('('));
|
|
||||||
piece = piece.BeforeLast(wxT(')'));
|
|
||||||
piece.BeforeFirst(wxT(',')).ToLong(&dir);
|
|
||||||
piece = piece.AfterFirst(wxT(','));
|
|
||||||
piece.BeforeFirst(wxT(',')).ToLong(&layer);
|
|
||||||
piece.AfterFirst(wxT(',')).ToLong(&row);
|
|
||||||
value.ToLong(&size);
|
|
||||||
|
|
||||||
wxAuiDockInfo dock;
|
|
||||||
dock.dock_direction = dir;
|
|
||||||
dock.dock_layer = layer;
|
|
||||||
dock.dock_row = row;
|
|
||||||
dock.size = size == -1 ? -1 :
|
|
||||||
dock.IsHorizontal() ? wxMulDivInt32(size, ppi.x, ppi_on_save.x) :
|
|
||||||
wxMulDivInt32(size, ppi.y, ppi_on_save.y);
|
|
||||||
|
|
||||||
result += wxString::Format(wxT("dock_size(%d,%d,%d)=%d|"),
|
|
||||||
dock.dock_direction, dock.dock_layer,
|
|
||||||
dock.dock_row, dock.size);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxAuiPaneInfo pane;
|
|
||||||
mgr.LoadPaneInfo(pane_part, pane, ppi_on_save);
|
|
||||||
|
|
||||||
wxAuiPaneInfo& p = mgr.GetPane(pane.name);
|
|
||||||
if (!p.IsOk())
|
|
||||||
{
|
|
||||||
// the pane window couldn't be found
|
|
||||||
// in the existing layout -- skip it
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update caption.
|
|
||||||
pane.caption = p.caption;
|
|
||||||
|
|
||||||
// Reset best/min/max sizes to allow resize on GUI changes across different versions.
|
|
||||||
pane.best_size = p.best_size;
|
|
||||||
pane.min_size = p.min_size;
|
|
||||||
pane.max_size = p.max_size;
|
|
||||||
|
|
||||||
if ((pane.state & wxAuiPaneInfo::optionResizable) == 0) {
|
|
||||||
// Reset floating size to allow resize on GUI changes across different versions for non-resizeable panes.
|
|
||||||
pane.floating_size = p.floating_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Re-generate and append pane info.
|
|
||||||
result += mgr.SavePaneInfo(pane) + wxT('|');
|
|
||||||
}
|
|
||||||
|
|
||||||
perspective = result;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
@@ -14,8 +14,6 @@
|
|||||||
#include <wx/wx.h>
|
#include <wx/wx.h>
|
||||||
#pragma warning(pop)
|
#pragma warning(pop)
|
||||||
|
|
||||||
#include "../include/wxex/aui/framemanager.h"
|
|
||||||
|
|
||||||
#include "../include/wxex/persist/auimanager.h"
|
#include "../include/wxex/persist/auimanager.h"
|
||||||
#include "../include/wxex/persist/toplevel.h"
|
#include "../include/wxex/persist/toplevel.h"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user