mirror of https://github.com/odrling/Aegisub
Save the size of the style editor in addition to the position
Originally committed to SVN as r6743.
This commit is contained in:
parent
5a067f56e4
commit
63d60b9b1e
|
@ -388,7 +388,7 @@ DialogStyleEditor::DialogStyleEditor(wxWindow *parent, AssStyle *style, agi::Con
|
||||||
StyleName->SetInsertionPoint(0);
|
StyleName->SetInsertionPoint(0);
|
||||||
StyleName->SetInsertionPoint(-1);
|
StyleName->SetInsertionPoint(-1);
|
||||||
|
|
||||||
persist.reset(new PersistLocation(this, "Tool/Style Editor"));
|
persist.reset(new PersistLocation(this, "Tool/Style Editor", true));
|
||||||
|
|
||||||
Bind(wxEVT_CHILD_FOCUS, &DialogStyleEditor::OnChildFocus, this);
|
Bind(wxEVT_CHILD_FOCUS, &DialogStyleEditor::OnChildFocus, this);
|
||||||
|
|
||||||
|
|
|
@ -482,6 +482,8 @@
|
||||||
},
|
},
|
||||||
"Style Editor" : {
|
"Style Editor" : {
|
||||||
"Last" : {
|
"Last" : {
|
||||||
|
"Height" : -1,
|
||||||
|
"Width" : -1,
|
||||||
"X" : -1,
|
"X" : -1,
|
||||||
"Y" : -1
|
"Y" : -1
|
||||||
},
|
},
|
||||||
|
|
|
@ -31,9 +31,11 @@
|
||||||
#include <wx/display.h>
|
#include <wx/display.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
PersistLocation::PersistLocation(wxDialog *dialog, std::string options_prefix)
|
PersistLocation::PersistLocation(wxDialog *dialog, std::string options_prefix, bool size_too)
|
||||||
: x_opt(OPT_SET(options_prefix + "/Last/X"))
|
: x_opt(OPT_SET(options_prefix + "/Last/X"))
|
||||||
, y_opt(OPT_SET(options_prefix + "/Last/Y"))
|
, y_opt(OPT_SET(options_prefix + "/Last/Y"))
|
||||||
|
, w_opt(size_too ? OPT_SET(options_prefix + "/Last/Width") : 0)
|
||||||
|
, h_opt(size_too ? OPT_SET(options_prefix + "/Last/Height") : 0)
|
||||||
, maximize_opt(OPT_SET(options_prefix + "/Maximized"))
|
, maximize_opt(OPT_SET(options_prefix + "/Maximized"))
|
||||||
, dialog(dialog)
|
, dialog(dialog)
|
||||||
{
|
{
|
||||||
|
@ -45,6 +47,9 @@ PersistLocation::PersistLocation(wxDialog *dialog, std::string options_prefix)
|
||||||
// First move to the saved place so that it ends up on the right monitor
|
// First move to the saved place so that it ends up on the right monitor
|
||||||
dialog->Move(x, y);
|
dialog->Move(x, y);
|
||||||
|
|
||||||
|
if (size_too && w_opt->GetInt() > 0 && h_opt->GetInt() > 0)
|
||||||
|
dialog->SetSize(w_opt->GetInt(), h_opt->GetInt());
|
||||||
|
|
||||||
int display_index = wxDisplay::GetFromWindow(dialog);
|
int display_index = wxDisplay::GetFromWindow(dialog);
|
||||||
|
|
||||||
// If it's moved offscreen center on the parent and try again
|
// If it's moved offscreen center on the parent and try again
|
||||||
|
@ -75,11 +80,9 @@ PersistLocation::PersistLocation(wxDialog *dialog, std::string options_prefix)
|
||||||
|
|
||||||
dialog->Bind(wxEVT_MOVE, &PersistLocation::OnMove, this);
|
dialog->Bind(wxEVT_MOVE, &PersistLocation::OnMove, this);
|
||||||
|
|
||||||
if (dialog->GetWindowStyle() & wxMAXIMIZE_BOX) {
|
dialog->Bind(wxEVT_SIZE, &PersistLocation::OnSize, this);
|
||||||
dialog->Bind(wxEVT_SIZE, &PersistLocation::OnSize, this);
|
if ((dialog->GetWindowStyle() & wxMAXIMIZE_BOX) && maximize_opt->GetBool())
|
||||||
if (maximize_opt->GetBool())
|
dialog->Maximize();
|
||||||
dialog->Maximize();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PersistLocation::OnMove(wxMoveEvent &e) {
|
void PersistLocation::OnMove(wxMoveEvent &e) {
|
||||||
|
@ -91,5 +94,9 @@ void PersistLocation::OnMove(wxMoveEvent &e) {
|
||||||
|
|
||||||
void PersistLocation::OnSize(wxSizeEvent &e) {
|
void PersistLocation::OnSize(wxSizeEvent &e) {
|
||||||
maximize_opt->SetBool(dialog->IsMaximized());
|
maximize_opt->SetBool(dialog->IsMaximized());
|
||||||
|
if (w_opt) {
|
||||||
|
w_opt->SetInt(dialog->GetSize().GetWidth());
|
||||||
|
h_opt->SetInt(dialog->GetSize().GetHeight());
|
||||||
|
}
|
||||||
e.Skip();
|
e.Skip();
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,8 @@ class wxSizeEvent;
|
||||||
class PersistLocation {
|
class PersistLocation {
|
||||||
agi::OptionValue *x_opt;
|
agi::OptionValue *x_opt;
|
||||||
agi::OptionValue *y_opt;
|
agi::OptionValue *y_opt;
|
||||||
|
agi::OptionValue *w_opt;
|
||||||
|
agi::OptionValue *h_opt;
|
||||||
agi::OptionValue *maximize_opt;
|
agi::OptionValue *maximize_opt;
|
||||||
wxDialog *dialog;
|
wxDialog *dialog;
|
||||||
|
|
||||||
|
@ -49,5 +51,6 @@ public:
|
||||||
/// Persist the location of a dialog
|
/// Persist the location of a dialog
|
||||||
/// @param dialog The dialog to save and restore the position of
|
/// @param dialog The dialog to save and restore the position of
|
||||||
/// @param options_prefix Prefix for the options names to store the location
|
/// @param options_prefix Prefix for the options names to store the location
|
||||||
PersistLocation(wxDialog *dialog, std::string options_prefix);
|
/// @param size_too Save and restore the size in addition to position
|
||||||
|
PersistLocation(wxDialog *dialog, std::string options_prefix, bool size_too = false);
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue