X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fi18n_hook.cc;h=b2cd6df8e7f5e1af60ff0179cb2673bac43422b1;hb=86102d30bf0aad89115bbeb3d8aaa2a27a0aa432;hp=bb185526e8c0e99db25f12e73870de35842e0e77;hpb=9c1bb2e5ca7c80c4e26b1b2e41159aa171360a94;p=dcpomatic.git diff --git a/src/wx/i18n_hook.cc b/src/wx/i18n_hook.cc index bb185526e..b2cd6df8e 100644 --- a/src/wx/i18n_hook.cc +++ b/src/wx/i18n_hook.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2018 Carl Hetherington + Copyright (C) 2018-2019 Carl Hetherington This file is part of DCP-o-matic. @@ -24,10 +24,15 @@ #include "lib/cross.h" #include #include -#include -I18NHook::I18NHook (wxWindow* window) +using std::map; +using std::string; + +map I18NHook::_translations; + +I18NHook::I18NHook (wxWindow* window, wxString original) : _window (window) + , _original (original) { _window->Bind (wxEVT_MIDDLE_DOWN, bind(&I18NHook::handle, this, _1)); } @@ -35,22 +40,20 @@ I18NHook::I18NHook (wxWindow* window) void I18NHook::handle (wxMouseEvent& ev) { - wxString const original = get_text (); - InstantI18NDialog* d = new InstantI18NDialog (_window, get_text()); d->ShowModal(); set_text (d->get()); - _window->GetContainingSizer()->Layout(); - ev.Skip (); + d->Destroy (); + + wxWindow* w = _window; + while (w) { + if (w->GetContainingSizer()) { + w->GetContainingSizer()->Layout(); + } + w = w->GetParent(); + } - boost::filesystem::path file = "instant_i18n"; + ev.Skip (); - FILE* f = fopen_boost (file, "a"); - if (!f) { - error_dialog (_window, wxString::Format(_("Could not open translation file %s"), std_to_wx(file.string()).data())); - return; - } - fprintf (f, "%s\n", wx_to_std(original).c_str()); - fprintf (f, "%s\n", wx_to_std(get_text()).c_str()); - fclose (f); + _translations[wx_to_std(_original)] = wx_to_std(get_text()); }