/*
- Copyright (C) 2012 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2012-2014 Carl Hetherington <cth@carlh.net>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
* @param initial Initial text for the wxStaticText while the computation is being run.
* @param fn Function which works out what the wxStaticText content should be and returns it.
*/
-ThreadedStaticText::ThreadedStaticText (wxWindow* parent, wxString initial, function<string ()> fn)
+ThreadedStaticText::ThreadedStaticText (wxWindow* parent, wxString initial, boost::function<string ()> fn)
: wxStaticText (parent, wxID_ANY, initial)
{
Bind (wxEVT_COMMAND_TEXT_UPDATED, boost::bind (&ThreadedStaticText::thread_finished, this, _1), _update_event_id);
/** Run our thread and post the result to the GUI thread via AddPendingEvent */
void
-ThreadedStaticText::run (function<string ()> fn)
+ThreadedStaticText::run (boost::function<string ()> fn)
try
{
wxCommandEvent ev (wxEVT_COMMAND_TEXT_UPDATED, _update_event_id);
return w->GetValue ();
}
-void
-run_gui_loop ()
+/** @param s String of the form Context|String
+ * @return translation, or String if no translation is available.
+ */
+wxString
+context_translation (wxString s)
{
- while (wxTheApp->Pending ()) {
- wxTheApp->Dispatch ();
+ wxString t = wxGetTranslation (s);
+ if (t == s) {
+ /* No translation; strip the context */
+ int c = t.Find (wxT ("|"));
+ if (c != wxNOT_FOUND) {
+ t = t.Mid (c + 1);
+ }
}
+
+ return t;
}