summaryrefslogtreecommitdiff
path: root/src/wx/wx_util.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wx/wx_util.h')
-rw-r--r--src/wx/wx_util.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/wx/wx_util.h b/src/wx/wx_util.h
index d0b838c36..555a3ab0e 100644
--- a/src/wx/wx_util.h
+++ b/src/wx/wx_util.h
@@ -18,12 +18,28 @@
*/
#include <wx/wx.h>
+#include <boost/function.hpp>
/** @file src/wx/wx_util.h
- * @brief Some utility functions.
+ * @brief Some utility functions and classes.
*/
extern void error_dialog (wxWindow *, std::string);
extern wxStaticText* add_label_to_sizer (wxSizer *, wxWindow *, std::string, int prop = 0);
extern std::string wx_to_std (wxString);
extern wxString std_to_wx (std::string);
+
+/** A wxStaticText whose content is computed in a separate thread, to avoid holding
+ * up the GUI while work is done.
+ */
+class ThreadedStaticText : public wxStaticText
+{
+public:
+ ThreadedStaticText (wxWindow* parent, std::string initial, boost::function<std::string ()> fn);
+
+private:
+ void run (boost::function<std::string ()> fn);
+ void thread_finished (wxCommandEvent& ev);
+
+ static const int _update_event_id;
+};