And so says Reed Hedges on 05/09/05 09:44...
> Has anyone else been hacking on Terangreal to build in unicode mode?
actually, I have (see the thread "can't compile ter'angreal from cvs").
With help from Peter and a lot of back-bending over wx documentation,
this is what I came up with. I didn't submit a patch earlier because
it's now segfaulting to me - but vostest segfaults identically, so it's
probably not wxRelated().
best,
Lalo Martins
--
So many of our dreams at first seem impossible,
then they seem improbable, and then, when we
summon the will, they soon become inevitable.
--
http://www.exoweb.net/ mailto:[EMAIL PROTECTED]
GNU: never give up freedom http://www.gnu.org/
? +build
? Makefile.in
? aclocal.m4
? autom4te.cache
? config.guess
? config.sub
? configure
? depcomp
? install-sh
? ltmain.sh
? missing
? unicode.diff
? vos-browser-config.h.in
? apps/Makefile.in
? apps/terangreal/Makefile.in
Index: apps/terangreal/ter_mainframe.cc
===
RCS file: /home/cvsroot/vos-browser/apps/terangreal/ter_mainframe.cc,v
retrieving revision 1.8
diff -u -r1.8 ter_mainframe.cc
--- apps/terangreal/ter_mainframe.cc 13 Aug 2005 21:00:41 - 1.8
+++ apps/terangreal/ter_mainframe.cc 5 Sep 2005 02:36:23 -
@@ -115,8 +115,8 @@
mb->Append(winmenu, wxT("Windows"));
wxMenu* helpmenu = new wxMenu();
-helpmenu->Append(wxID_ABOUT, "About...");
-helpmenu->Append(wxID_HELP, "Help...");
+helpmenu->Append(wxID_ABOUT, wxT("About..."));
+helpmenu->Append(wxID_HELP, wxT("Help..."));
mb->Append(helpmenu, wxT("Help"));
SetMenuBar(mb);
@@ -124,7 +124,7 @@
void TerWxMainFrame::constructHelp()
{
-helpdialog = new wxDialog(0 , -1, "wxTer'Angreal Keys",
+helpdialog = new wxDialog(0 , -1, wxT("wxTer'Angreal Keys"),
wxDefaultPosition, wxSize(520, 220));
int w, h;
helpdialog->GetClientSize(&w, &h);
@@ -147,7 +147,7 @@
void TerWxMainFrame::constructAbout()
{
-aboutdialog = new wxDialog(0 , -1, "About wxTer'Angreal",
+aboutdialog = new wxDialog(0 , -1, wxT("About wxTer'Angreal"),
wxDefaultPosition, wxSize(500, 200));
int w, h;
aboutdialog->GetClientSize(&w, &h);
@@ -580,7 +580,7 @@
void TerWxMainFrame::setStatus(const std::string& s)
{
-status->SetLabel(s.c_str());
+status->SetLabel(wxString(s.c_str(), *wxConvCurrent));
}
void TerWxMainFrame::warpAvatarHome(wxCommandEvent&)
Index: apps/terangreal/ter_prefs.cc
===
RCS file: /home/cvsroot/vos-browser/apps/terangreal/ter_prefs.cc,v
retrieving revision 1.2
diff -u -r1.2 ter_prefs.cc
--- apps/terangreal/ter_prefs.cc 9 Mar 2005 08:13:24 - 1.2
+++ apps/terangreal/ter_prefs.cc 5 Sep 2005 02:36:23 -
@@ -83,16 +83,16 @@
{
try {
avatar.assign(ta, true);
-nickentry->SetValue(avatar->getNick().c_str());
+nickentry->SetValue(wxString(avatar->getNick().c_str(), *wxConvCurrent));
double x, y, z, r;
avatar->getObject3D()->getOrientationHT(x, y, z, r);
-rotx->SetValue(wxString::Format("%f", x));
-roty->SetValue(wxString::Format("%f", y));
-rotz->SetValue(wxString::Format("%f", z));
-rotr->SetValue(wxString::Format("%f", r));
+rotx->SetValue(wxString::Format(wxT("%f"), x));
+ roty->SetValue(wxString::Format(wxT("%f"), y));
+ rotz->SetValue(wxString::Format(wxT("%f"), z));
+ rotr->SetValue(wxString::Format(wxT("%f"), r));
} catch(std::runtime_error) {
}
}
@@ -105,57 +105,56 @@
void TerPrefs::setNick(wxCommandEvent&)
{
try {
-#if wxUSE_UNICODE
-avatar->setNick(nickentry->GetValue().mb_str().data());
-#else
avatar->setNick(nickentry->GetValue().mb_str());
-#endif
} catch(std::runtime_error e) {
LOG("terprefs", 3, "Exception setting nick: " << e.what());
-wxMessageBox(e.what(), wxT(""), wxICON_EXCLAMATION, this);
+wxMessageBox(wxString(e.what(), *wxConvCurrent),
+ wxT(""), wxICON_EXCLAMATION, this);
}
}
void TerPrefs::setAvatarModel(wxCommandEvent&)
{
-wxString sel = wxFileSelector("Please select an avatar to load", "", "",
- "",
- "Quake MD2 (*.md2)|*.md2|3D Studio (*.3ds)|*.3ds",
+wxString sel = wxFileSelector(wxT("Please select an avatar to load"),
+ wxT(""), wxT(""), wxT(""),
+ wxT("Quake MD2 (*.md2)|*.md2|3D Studio (*.3ds)|*.3ds"),
wxOPEN | wxFILE_MUST_EXIST);
if(!sel.empty()) {
try {
vRef m = meta_cast(avatar->getObject3D());
-m->setModelToFile(sel.c_str());
+m->setModelToFile(sel.mb_str());
} catch(std::runtime_error& e) {
LOG("te