From c7987cc0be539b26153f1b4acc2b317c9d663d97 Mon Sep 17 00:00:00 2001 From: spog Date: Sun, 9 Jul 2006 22:14:47 +0000 Subject: [PATCH] experimental string converter class git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@91 8a3a26a2-13c4-0310-b231-cf6edde360e5 --- radiant/dialog.cpp | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/radiant/dialog.cpp b/radiant/dialog.cpp index 0240e67..c3ef12b 100644 --- a/radiant/dialog.cpp +++ b/radiant/dialog.cpp @@ -170,18 +170,31 @@ void IntRadioExport(GtkRadioButton& widget, const IntImportCallback& importCallb } typedef ImportExport IntRadioImportExport; +template +class StringFromType +{ + StringOutputStream value; +public: + StringFromType(const Type& type) + { + value << Formatter(type); + } + operator const char*() const + { + return value.c_str(); + } +}; + +typedef StringFromType LocaleToUTF8; +typedef StringFromType UTF8ToLocale; void TextEntryImport(GtkEntry& widget, const char* text) { - StringOutputStream value(64); - value << ConvertLocaleToUTF8(text); - gtk_entry_set_text(&widget, value.c_str()); + gtk_entry_set_text(&widget, LocaleToUTF8(text)); } void TextEntryExport(GtkEntry& widget, const StringImportCallback& importCallback) { - StringOutputStream value(64); - value << ConvertUTF8ToLocale(gtk_entry_get_text(&widget)); - importCallback(value.c_str()); + importCallback(UTF8ToLocale(gtk_entry_get_text(&widget))); } typedef ImportExport TextEntryImportExport;