diff --git a/CHANGES.md b/CHANGES.md index da206885..c897f4db 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -16,7 +16,7 @@ version 2.3.2 (Unofficial), 2022-09-14 Features: * Script functions for generating and manipulating card images. (haganbmj#34) * Stylesheet properties for defining card regions. (haganbmj#34) - * Updated Spanish locale translations. (haganbmj$49) + * Updated Spanish locale translations. (haganbmj#49) * Disable update checking on startup. ------------------------------------------------------------------------------ diff --git a/src/gui/about_window.cpp b/src/gui/about_window.cpp index 10ae7c36..af99fb4a 100644 --- a/src/gui/about_window.cpp +++ b/src/gui/about_window.cpp @@ -33,7 +33,7 @@ void AboutWindow::onPaint(wxPaintEvent& ev) { draw(dc); } -const char* MSE_AUTHORS[] = {"Twan van Laarhoven (twanvl)", "Sean Hunt (coppro)", "Alissa Rao (Lymia)"}; +const char* MSE_AUTHORS[] = {"Twan van Laarhoven (twanvl)", "Sean Hunt (coppro)", "Alissa Rao (Lymia)", "haganbmj", "CaiCai (247321453)"}; void AboutWindow::draw(DC& dc) { wxSize ws = GetClientSize(); diff --git a/src/gui/control/native_look_editor.cpp b/src/gui/control/native_look_editor.cpp index 05c2b8ca..9b67338d 100644 --- a/src/gui/control/native_look_editor.cpp +++ b/src/gui/control/native_look_editor.cpp @@ -218,7 +218,7 @@ void StylingEditor::onChangeSet() { // ----------------------------------------------------------------------------- : ExportOptionsEditor ExportOptionsEditor::ExportOptionsEditor(Window* parent, int id, long style) - : NativeLookEditor(parent, id, style) + : NativeLookEditor(parent, id, style | wxVSCROLL) {} void ExportOptionsEditor::showExport(const ExportTemplateP& export_template) { diff --git a/src/gui/welcome_window.cpp b/src/gui/welcome_window.cpp index 733693ba..841073d2 100644 --- a/src/gui/welcome_window.cpp +++ b/src/gui/welcome_window.cpp @@ -18,12 +18,17 @@ #include #include #include +#include +#include // 2007-02-06: New HoverButton, hopefully this on works on GTK #define USE_HOVERBUTTON // ----------------------------------------------------------------------------- : WelcomeWindow +bool __compare_package_name(const PackagedP& a, const PackagedP& b) { + return a->name() < b->name(); +} WelcomeWindow::WelcomeWindow() : wxFrame(nullptr, wxID_ANY, _TITLE_("magic set editor"), wxDefaultPosition, wxSize(520,380), wxDEFAULT_DIALOG_STYLE | wxTAB_TRAVERSAL | wxCLIP_CHILDREN ) , logo (load_resource_image(_("about"))) @@ -58,6 +63,26 @@ WelcomeWindow::WelcomeWindow() #endif if (open_last) s2->Add(open_last, 0, wxALL, 2); s2->AddStretchSpacer(); + + // + select_language = new wxComboBox(this, ID_SELECT_LANGUAGE, _(""), wxDefaultPosition, wxDefaultSize, 0, nullptr, wxCB_READONLY); + // set values + vector locales; + package_manager.findMatching(_("*.mse-locale"), locales); + sort(locales.begin(), locales.end(), __compare_package_name); + int n = 0; + FOR_EACH(package, locales) { + select_language->Append(package->full_name, package.get()); + if (settings.locale == package->name()) { + select_language->SetSelection(n); + } + n++; + } + wxSizer* s3 = new wxBoxSizer(wxHORIZONTAL); + s3->AddSpacer(280); + s3->Add(select_language, 0, wxALL, 1); + s2->AddSpacer(30); + s2->Add(s3); s1->Add(s2); SetSizer(s1); } @@ -87,6 +112,19 @@ void WelcomeWindow::draw(DC& dc) { dc.DrawText(version_string, 4, ws.GetHeight()-th-4); } +void WelcomeWindow::onSelectLanguage(wxCommandEvent&) { + // locale + int n = select_language->GetSelection(); + if (n == wxNOT_FOUND) return; + Packaged* p = (Packaged*)select_language->GetClientData(n); + settings.locale = p->name(); + the_locale = Locale::byName(settings.locale); + + //close app + (new WelcomeWindow())->Show(); + Close(); +} + void WelcomeWindow::onOpenSet(wxCommandEvent&) { wxFileDialog* dlg = new wxFileDialog(this, _TITLE_("open set"), settings.default_set_dir, wxEmptyString, import_formats(), wxFD_OPEN); if (dlg->ShowModal() == wxID_OK) { @@ -133,9 +171,10 @@ BEGIN_EVENT_TABLE(WelcomeWindow, wxFrame) EVT_BUTTON (ID_FILE_NEW, WelcomeWindow::onNewSet) EVT_BUTTON (ID_FILE_OPEN, WelcomeWindow::onOpenSet) EVT_BUTTON (ID_FILE_RECENT, WelcomeWindow::onOpenLast) + EVT_COMBOBOX (ID_SELECT_LANGUAGE, WelcomeWindow::onSelectLanguage) EVT_BUTTON (ID_FILE_CHECK_UPDATES, WelcomeWindow::onCheckUpdates) EVT_PAINT ( WelcomeWindow::onPaint) -// EVT_IDLE ( WelcomeWindow::onIdle) +// EVT_IDLE ( WelcomeWindow::onIdle) END_EVENT_TABLE () diff --git a/src/gui/welcome_window.hpp b/src/gui/welcome_window.hpp index ce44e972..de92e894 100644 --- a/src/gui/welcome_window.hpp +++ b/src/gui/welcome_window.hpp @@ -35,6 +35,7 @@ private: #if USE_BETA_LOGO Bitmap logo2; #endif + wxComboBox* select_language; void onPaint(wxPaintEvent&); void draw(DC& dc); @@ -43,6 +44,7 @@ private: void onNewSet (wxCommandEvent&); void onOpenLast (wxCommandEvent&); void onCheckUpdates(wxCommandEvent&); + void onSelectLanguage(wxCommandEvent&); // void onIdle (wxIdleEvent& ev); /// Close the welcome window, and show the given set diff --git a/src/util/window_id.hpp b/src/util/window_id.hpp index 35b84be8..d487ef82 100644 --- a/src/util/window_id.hpp +++ b/src/util/window_id.hpp @@ -81,6 +81,9 @@ enum MenuID { ID_MODE_SYMMETRY, ID_MODE_PAINT, ID_MODE_MAX, + + // Welcome Window + ID_SELECT_LANGUAGE, };