Honor monitor layout and DPI changes when persisting window placement
This commit is contained in:
parent
16dc9aff96
commit
974d6bd827
@ -37,6 +37,7 @@
|
|||||||
#include <wxex/common.h>
|
#include <wxex/common.h>
|
||||||
#include <wxex/url.h>
|
#include <wxex/url.h>
|
||||||
#include <wxex/persist/auimanager.h>
|
#include <wxex/persist/auimanager.h>
|
||||||
|
#include <wxex/persist/toplevel.h>
|
||||||
|
|
||||||
#include <wx/clipbrd.h>
|
#include <wx/clipbrd.h>
|
||||||
#include <wx/ffile.h>
|
#include <wx/ffile.h>
|
||||||
|
@ -71,14 +71,14 @@ void wxZRColaCharRequest::OnOKButtonClick(wxCommandEvent& event)
|
|||||||
// wxPersistentZRColaCharRequest
|
// wxPersistentZRColaCharRequest
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
wxPersistentZRColaCharRequest::wxPersistentZRColaCharRequest(wxZRColaCharRequest *wnd) : wxPersistentDialog(wnd)
|
wxPersistentZRColaCharRequest::wxPersistentZRColaCharRequest(wxZRColaCharRequest *wnd) : wxPersistentTLWEx(wnd)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void wxPersistentZRColaCharRequest::Save() const
|
void wxPersistentZRColaCharRequest::Save() const
|
||||||
{
|
{
|
||||||
wxPersistentDialog::Save();
|
wxPersistentTLWEx::Save();
|
||||||
|
|
||||||
auto wnd = static_cast<const wxZRColaCharRequest*>(GetWindow()); // dynamic_cast is not reliable as we are typically called late in the wxTopLevelWindowMSW destructor.
|
auto wnd = static_cast<const wxZRColaCharRequest*>(GetWindow()); // dynamic_cast is not reliable as we are typically called late in the wxTopLevelWindowMSW destructor.
|
||||||
|
|
||||||
@ -97,5 +97,5 @@ bool wxPersistentZRColaCharRequest::Restore()
|
|||||||
if (RestoreValue(wxT("context"), &str))
|
if (RestoreValue(wxT("context"), &str))
|
||||||
wnd->m_context->SetValue(str);
|
wnd->m_context->SetValue(str);
|
||||||
|
|
||||||
return wxPersistentDialog::Restore();
|
return wxPersistentTLWEx::Restore();
|
||||||
}
|
}
|
||||||
|
@ -21,12 +21,14 @@
|
|||||||
/// Forward declarations
|
/// Forward declarations
|
||||||
///
|
///
|
||||||
class wxZRColaCharRequest;
|
class wxZRColaCharRequest;
|
||||||
|
class wxPersistentZRColaCharRequest;
|
||||||
|
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "zrcolagui.h"
|
#include "zrcolagui.h"
|
||||||
#include "zrcolakeyhndlr.h"
|
#include "zrcolakeyhndlr.h"
|
||||||
|
#include <wxex/persist/toplevel.h>
|
||||||
|
|
||||||
|
|
||||||
///
|
///
|
||||||
@ -49,7 +51,7 @@ protected:
|
|||||||
///
|
///
|
||||||
/// Supports saving/restoring wxZRColaCharRequest state
|
/// Supports saving/restoring wxZRColaCharRequest state
|
||||||
///
|
///
|
||||||
class wxPersistentZRColaCharRequest : public wxPersistentDialog
|
class wxPersistentZRColaCharRequest : public wxPersistentTLWEx
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
wxPersistentZRColaCharRequest(wxZRColaCharRequest *wnd);
|
wxPersistentZRColaCharRequest(wxZRColaCharRequest *wnd);
|
||||||
|
@ -786,14 +786,14 @@ bool __cdecl wxZRColaCharSelect::SearchThread::TestDestroyS(void *cookie)
|
|||||||
// wxPersistentZRColaCharSelect
|
// wxPersistentZRColaCharSelect
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
wxPersistentZRColaCharSelect::wxPersistentZRColaCharSelect(wxZRColaCharSelect *wnd) : wxPersistentDialog(wnd)
|
wxPersistentZRColaCharSelect::wxPersistentZRColaCharSelect(wxZRColaCharSelect *wnd) : wxPersistentTLWEx(wnd)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void wxPersistentZRColaCharSelect::Save() const
|
void wxPersistentZRColaCharSelect::Save() const
|
||||||
{
|
{
|
||||||
wxPersistentDialog::Save();
|
wxPersistentTLWEx::Save();
|
||||||
|
|
||||||
auto wnd = static_cast<const wxZRColaCharSelect*>(GetWindow()); // dynamic_cast is not reliable as we are typically called late in the wxTopLevelWindowMSW destructor.
|
auto wnd = static_cast<const wxZRColaCharSelect*>(GetWindow()); // dynamic_cast is not reliable as we are typically called late in the wxTopLevelWindowMSW destructor.
|
||||||
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
|
auto app = dynamic_cast<ZRColaApp*>(wxTheApp);
|
||||||
@ -870,5 +870,5 @@ bool wxPersistentZRColaCharSelect::Restore()
|
|||||||
|
|
||||||
wnd->ResetResults();
|
wnd->ResetResults();
|
||||||
|
|
||||||
return wxPersistentDialog::Restore();
|
return wxPersistentTLWEx::Restore();
|
||||||
}
|
}
|
||||||
|
@ -28,8 +28,8 @@ class wxPersistentZRColaCharSelect;
|
|||||||
|
|
||||||
#include "zrcolagui.h"
|
#include "zrcolagui.h"
|
||||||
#include <zrcola/character.h>
|
#include <zrcola/character.h>
|
||||||
|
#include <wxex/persist/toplevel.h>
|
||||||
#include <wx/validate.h>
|
#include <wx/validate.h>
|
||||||
#include <wxex/persist/dialog.h>
|
|
||||||
#include <wx/event.h>
|
#include <wx/event.h>
|
||||||
#include <wx/thread.h>
|
#include <wx/thread.h>
|
||||||
#include <list>
|
#include <list>
|
||||||
@ -41,7 +41,7 @@ class wxPersistentZRColaCharSelect;
|
|||||||
///
|
///
|
||||||
/// Validator for Unicode character
|
/// Validator for Unicode character
|
||||||
///
|
///
|
||||||
class WXEXTEND_API wxZRColaUTF16CharValidator : public wxValidator
|
class wxZRColaUTF16CharValidator : public wxValidator
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
@ -221,7 +221,7 @@ protected:
|
|||||||
///
|
///
|
||||||
/// Supports saving/restoring wxZRColaCharSelect state
|
/// Supports saving/restoring wxZRColaCharSelect state
|
||||||
///
|
///
|
||||||
class wxPersistentZRColaCharSelect : public wxPersistentDialog
|
class wxPersistentZRColaCharSelect : public wxPersistentTLWEx
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
wxPersistentZRColaCharSelect(wxZRColaCharSelect *wnd);
|
wxPersistentZRColaCharSelect(wxZRColaCharSelect *wnd);
|
||||||
|
@ -110,17 +110,19 @@ wxZRColaFrame::wxZRColaFrame() :
|
|||||||
delete m_taskBarIcon;
|
delete m_taskBarIcon;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxPersistenceManager &persist_mgr = wxPersistenceManager::Get();
|
||||||
|
|
||||||
m_settings = new wxZRColaSettings(this);
|
m_settings = new wxZRColaSettings(this);
|
||||||
wxPersistentRegisterAndRestore<wxZRColaSettings>(m_settings);
|
persist_mgr.RegisterAndRestore(m_settings, new wxPersistentZRColaSettings(m_settings));
|
||||||
|
|
||||||
m_transeq = new wxZRColaTranslationSeq(this);
|
m_transeq = new wxZRColaTranslationSeq(this);
|
||||||
wxPersistentRegisterAndRestore<wxZRColaTranslationSeq>(m_transeq);
|
persist_mgr.RegisterAndRestore(m_transeq, new wxPersistentZRColaTranslationSeq(m_transeq));
|
||||||
|
|
||||||
m_chrSelect = new wxZRColaCharSelect(this);
|
m_chrSelect = new wxZRColaCharSelect(this);
|
||||||
wxPersistentRegisterAndRestore<wxZRColaCharSelect>(m_chrSelect);
|
persist_mgr.RegisterAndRestore(m_chrSelect, new wxPersistentZRColaCharSelect(m_chrSelect));
|
||||||
|
|
||||||
m_chrReq = new wxZRColaCharRequest(this);
|
m_chrReq = new wxZRColaCharRequest(this);
|
||||||
wxPersistentRegisterAndRestore<wxZRColaCharRequest>(m_chrReq);
|
persist_mgr.RegisterAndRestore(m_chrReq, new wxPersistentZRColaCharRequest(m_chrReq));
|
||||||
|
|
||||||
// Set focus.
|
// Set focus.
|
||||||
m_panel->m_source->SetFocus();
|
m_panel->m_source->SetFocus();
|
||||||
@ -155,7 +157,7 @@ wxZRColaFrame::wxZRColaFrame() :
|
|||||||
// Restore persistent state of wxAuiManager manually, since m_mgr is not a standalone heap object
|
// Restore persistent state of wxAuiManager manually, since m_mgr is not a standalone heap object
|
||||||
// and cannot be registered for persistence.
|
// and cannot be registered for persistence.
|
||||||
wxPersistentAuiManager(&m_mgr).Restore();
|
wxPersistentAuiManager(&m_mgr).Restore();
|
||||||
wxPersistentRegisterAndRestore<wxZRColaFrame>(this);
|
persist_mgr.RegisterAndRestore(this, new wxPersistentZRColaFrame(this));
|
||||||
|
|
||||||
// Populate list of translation sequences.
|
// Populate list of translation sequences.
|
||||||
for (unsigned int i = 0, n = m_toolTranslationSeq->GetCount(); ; i++) {
|
for (unsigned int i = 0, n = m_toolTranslationSeq->GetCount(); ; i++) {
|
||||||
@ -615,14 +617,14 @@ WXLRESULT wxZRColaFrame::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM
|
|||||||
// wxPersistentZRColaFrame
|
// wxPersistentZRColaFrame
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
wxPersistentZRColaFrame::wxPersistentZRColaFrame(wxZRColaFrame *wnd) : wxPersistentTLW(wnd)
|
wxPersistentZRColaFrame::wxPersistentZRColaFrame(wxZRColaFrame *wnd) : wxPersistentTLWEx(wnd)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void wxPersistentZRColaFrame::Save() const
|
void wxPersistentZRColaFrame::Save() const
|
||||||
{
|
{
|
||||||
wxPersistentTLW::Save();
|
wxPersistentTLWEx::Save();
|
||||||
|
|
||||||
auto wnd = static_cast<const wxZRColaFrame*>(GetWindow()); // dynamic_cast is not reliable as we are typically called late in the wxTopLevelWindowMSW destructor.
|
auto wnd = static_cast<const wxZRColaFrame*>(GetWindow()); // dynamic_cast is not reliable as we are typically called late in the wxTopLevelWindowMSW destructor.
|
||||||
|
|
||||||
@ -644,5 +646,5 @@ bool wxPersistentZRColaFrame::Restore()
|
|||||||
if (RestoreValue(wxT("transeqId"), &num))
|
if (RestoreValue(wxT("transeqId"), &num))
|
||||||
wnd->m_transeq_id = num;
|
wnd->m_transeq_id = num;
|
||||||
|
|
||||||
return wxPersistentTLW::Restore();
|
return wxPersistentTLWEx::Restore();
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
/// Forward declarations
|
/// Forward declarations
|
||||||
///
|
///
|
||||||
class wxZRColaFrame;
|
class wxZRColaFrame;
|
||||||
|
class wxPersistentZRColaFrame;
|
||||||
|
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
@ -32,8 +33,8 @@ class wxZRColaFrame;
|
|||||||
#include "zrcolatranseq.h"
|
#include "zrcolatranseq.h"
|
||||||
#include <zrcola/language.h>
|
#include <zrcola/language.h>
|
||||||
#include <zrcola/translate.h>
|
#include <zrcola/translate.h>
|
||||||
|
#include <wxex/persist/toplevel.h>
|
||||||
#include <wx/taskbar.h>
|
#include <wx/taskbar.h>
|
||||||
#include <wx/persist/toplevel.h>
|
|
||||||
#if defined(__WXMSW__)
|
#if defined(__WXMSW__)
|
||||||
#include <msctf.h>
|
#include <msctf.h>
|
||||||
#endif
|
#endif
|
||||||
@ -136,7 +137,7 @@ protected:
|
|||||||
///
|
///
|
||||||
/// Supports saving/restoring wxZRColaFrame GUI state
|
/// Supports saving/restoring wxZRColaFrame GUI state
|
||||||
///
|
///
|
||||||
class wxPersistentZRColaFrame : public wxPersistentTLW
|
class wxPersistentZRColaFrame : public wxPersistentTLWEx
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
wxPersistentZRColaFrame(wxZRColaFrame *wnd);
|
wxPersistentZRColaFrame(wxZRColaFrame *wnd);
|
||||||
|
@ -139,14 +139,14 @@ void wxZRColaSettings::OnOKButtonClick(wxCommandEvent& event)
|
|||||||
// wxPersistentZRColaSettings
|
// wxPersistentZRColaSettings
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
wxPersistentZRColaSettings::wxPersistentZRColaSettings(wxZRColaSettings *wnd) : wxPersistentDialog(wnd)
|
wxPersistentZRColaSettings::wxPersistentZRColaSettings(wxZRColaSettings *wnd) : wxPersistentTLWEx(wnd)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void wxPersistentZRColaSettings::Save() const
|
void wxPersistentZRColaSettings::Save() const
|
||||||
{
|
{
|
||||||
wxPersistentDialog::Save();
|
wxPersistentTLWEx::Save();
|
||||||
|
|
||||||
auto wnd = static_cast<const wxZRColaSettings*>(GetWindow()); // dynamic_cast is not reliable as we are typically called late in the wxTopLevelWindowMSW destructor.
|
auto wnd = static_cast<const wxZRColaSettings*>(GetWindow()); // dynamic_cast is not reliable as we are typically called late in the wxTopLevelWindowMSW destructor.
|
||||||
|
|
||||||
@ -177,5 +177,5 @@ bool wxPersistentZRColaSettings::Restore()
|
|||||||
} else
|
} else
|
||||||
wnd->m_lang = ZRCola::langid_t::blank;
|
wnd->m_lang = ZRCola::langid_t::blank;
|
||||||
|
|
||||||
return wxPersistentDialog::Restore();
|
return wxPersistentTLWEx::Restore();
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ class wxPersistentZRColaSettings;
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "zrcolagui.h"
|
#include "zrcolagui.h"
|
||||||
#include <wxex/persist/dialog.h>
|
#include <wxex/persist/toplevel.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
|
||||||
@ -56,7 +56,7 @@ public:
|
|||||||
///
|
///
|
||||||
/// Supports saving/restoring wxZRColaSettings state
|
/// Supports saving/restoring wxZRColaSettings state
|
||||||
///
|
///
|
||||||
class wxPersistentZRColaSettings : public wxPersistentDialog
|
class wxPersistentZRColaSettings : public wxPersistentTLWEx
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
wxPersistentZRColaSettings(wxZRColaSettings *wnd);
|
wxPersistentZRColaSettings(wxZRColaSettings *wnd);
|
||||||
|
@ -208,14 +208,14 @@ void wxZRColaTranslationSeq::OnOKButtonClick(wxCommandEvent& event)
|
|||||||
// wxPersistentZRColaTranslationSeq
|
// wxPersistentZRColaTranslationSeq
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
wxPersistentZRColaTranslationSeq::wxPersistentZRColaTranslationSeq(wxZRColaTranslationSeq *wnd) : wxPersistentDialog(wnd)
|
wxPersistentZRColaTranslationSeq::wxPersistentZRColaTranslationSeq(wxZRColaTranslationSeq *wnd) : wxPersistentTLWEx(wnd)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void wxPersistentZRColaTranslationSeq::Save() const
|
void wxPersistentZRColaTranslationSeq::Save() const
|
||||||
{
|
{
|
||||||
wxPersistentDialog::Save();
|
wxPersistentTLWEx::Save();
|
||||||
|
|
||||||
auto wnd = static_cast<const wxZRColaTranslationSeq*>(GetWindow()); // dynamic_cast is not reliable as we are typically called late in the wxTopLevelWindowMSW destructor.
|
auto wnd = static_cast<const wxZRColaTranslationSeq*>(GetWindow()); // dynamic_cast is not reliable as we are typically called late in the wxTopLevelWindowMSW destructor.
|
||||||
|
|
||||||
@ -249,5 +249,5 @@ bool wxPersistentZRColaTranslationSeq::Restore()
|
|||||||
wnd->m_transeq = std::move(transet);
|
wnd->m_transeq = std::move(transet);
|
||||||
}
|
}
|
||||||
|
|
||||||
return wxPersistentDialog::Restore();
|
return wxPersistentTLWEx::Restore();
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ class wxPersistentZRColaTranslationSeq;
|
|||||||
|
|
||||||
#include "zrcolagui.h"
|
#include "zrcolagui.h"
|
||||||
#include <zrcola/translate.h>
|
#include <zrcola/translate.h>
|
||||||
#include <wxex/persist/dialog.h>
|
#include <wxex/persist/toplevel.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
|
||||||
@ -64,7 +64,7 @@ public:
|
|||||||
///
|
///
|
||||||
/// Supports saving/restoring wxZRColaTranslationSeq state
|
/// Supports saving/restoring wxZRColaTranslationSeq state
|
||||||
///
|
///
|
||||||
class wxPersistentZRColaTranslationSeq : public wxPersistentDialog
|
class wxPersistentZRColaTranslationSeq : public wxPersistentTLWEx
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
wxPersistentZRColaTranslationSeq(wxZRColaTranslationSeq *wnd);
|
wxPersistentZRColaTranslationSeq(wxZRColaTranslationSeq *wnd);
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 1b11ccf4a2abb5c62a2972f554cf6d40e4b71dbc
|
Subproject commit 5a912ebcc6d5d2887628387eae7fc5c8105d7938
|
Loading…
x
Reference in New Issue
Block a user