rpms/bochs/devel bochs-wx26.patch, NONE, 1.1 .cvsignore, 1.5, 1.6 bochs.spec, 1.11, 1.12 sources, 1.5, 1.6

Hans de Goede (jwrdegoede) fedora-extras-commits at redhat.com
Wed Feb 15 21:20:29 UTC 2006


Author: jwrdegoede

Update of /cvs/extras/rpms/bochs/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv24689

Modified Files:
	.cvsignore bochs.spec sources 
Added Files:
	bochs-wx26.patch 
Log Message:
* Wed Feb 15 2006 Hans de Goede <j.w.r.degoede at hhs.nl> - 2.2.6-1
- New upstream version 2.2.6
- Remove --enable-pae as that requires a CPU level of 6 now
- Remove a few configure switches which are identical to the
  upstream defaults and thus don't do anything
- Add --enable-clgd54xx
- Fix compile with wxGTK-2.6 and unconditionalize wxGTK build (WIP)


bochs-wx26.patch:

--- NEW FILE bochs-wx26.patch ---
diff -ur bochs-2.2.6.orig/gui/wx.cc bochs-2.2.6/gui/wx.cc
--- bochs-2.2.6.orig/gui/wx.cc	2006-02-15 21:39:05.000000000 +0100
+++ bochs-2.2.6/gui/wx.cc	2006-01-23 19:34:47.000000000 +0100
@@ -189,12 +189,12 @@
   if (fromToolbar && first_enable && en) {
     // only show this help if you click on the toolbar.  If they already
     // know the shortcut, don't annoy them with the message.
-    wxString msg = wxT(
+    wxString msg = 
       "You have enabled the mouse in Bochs, so now your mouse actions will\n"
       "be sent into the simulator.  The usual mouse cursor will be trapped\n"
       "inside the Bochs window until you press a CTRL key + the middle button\n"
-      "to turn mouse capture off.");
-    wxMessageBox(msg, wxT("Mouse Capture Enabled"), wxOK | wxICON_INFORMATION);
+      "to turn mouse capture off.";
+    wxMessageBox(msg, "Mouse Capture Enabled", wxOK | wxICON_INFORMATION);
     first_enable = false;
   }
   enable->set (en);
@@ -1050,10 +1050,10 @@
         strcpy(status_text+1, statusitem_text[i]);
         theFrame->SetStatusText(status_text, i+1);
 #else
-        theFrame->SetStatusText(wxString(statusitem_text[i], wxConvUTF8), i+1);
+        theFrame->SetStatusText(statusitem_text[i], i+1);
 #endif
       } else {
-        theFrame->SetStatusText(wxT(""), i+1);
+        theFrame->SetStatusText("", i+1);
       }
     }
   } else if ((unsigned)element < statusitem_count) {
@@ -1063,11 +1063,10 @@
         strcpy(status_text+1, statusitem_text[element]);
         theFrame->SetStatusText(status_text, element+1);
 #else
-      theFrame->SetStatusText(wxString(statusitem_text[element], wxConvUTF8),
-        element+1);
+      theFrame->SetStatusText(statusitem_text[element], element+1);
 #endif
     } else {
-      theFrame->SetStatusText(wxT(""), element+1);
+      theFrame->SetStatusText("", element+1);
     }
   }
 }
@@ -1621,7 +1620,7 @@
   wxMutexGuiEnter ();
   int ret = 0;
   if (wxTheClipboard->Open ()) {
-    wxString string (text_snapshot, wxConvUTF8, len);
+    wxString string (text_snapshot, len);
     wxTheClipboard->SetData (new wxTextDataObject (string));
     wxTheClipboard->Close ();
     ret = 1;
diff -ur bochs-2.2.6.orig/gui/wxdialog.cc bochs-2.2.6/gui/wxdialog.cc
--- bochs-2.2.6.orig/gui/wxdialog.cc	2006-02-15 22:26:03.000000000 +0100
+++ bochs-2.2.6/gui/wxdialog.cc	2005-11-26 10:22:58.000000000 +0100
@@ -80,12 +80,12 @@
 {
   for (int i=0; i<N_BUTTONS; i++) enabled[i] = TRUE;
   vertSizer = new wxBoxSizer(wxVERTICAL);
-  context = new wxStaticText (this, -1, wxT(""));
+  context = new wxStaticText (this, -1, "");
   wxFont font = context->GetFont ();
   font.SetWeight (wxBOLD);
   font.SetPointSize (2 + font.GetPointSize ());
   context->SetFont (font);
-  message = new wxStaticText (this, -1, wxT(""));
+  message = new wxStaticText (this, -1, "");
   message->SetFont (font);
   dontAsk = new wxCheckBox (this, -1, LOG_MSG_DONT_ASK_STRING);
   btnSizer = new wxBoxSizer(wxHORIZONTAL);
@@ -120,12 +120,12 @@
     btnSizer->Add (btn, 1, wxALL, 5);
   }
   wxSize ms = message->GetSize ();
-  wxLogMessage (wxT("message size is %d,%d"), ms.GetWidth(), ms.GetHeight ());
+  wxLogMessage ("message size is %d,%d", ms.GetWidth(), ms.GetHeight ());
   SetAutoLayout(TRUE);
   SetSizer(vertSizer);
   vertSizer->Fit (this);
   wxSize size = vertSizer->GetMinSize ();
-  wxLogMessage (wxT("minsize is %d,%d"), size.GetWidth(), size.GetHeight ());
+  wxLogMessage ("minsize is %d,%d", size.GetWidth(), size.GetHeight ());
   int margin = 10;
   SetSizeHints (size.GetWidth () + margin, size.GetHeight () + margin);
   Center ();
@@ -147,7 +147,7 @@
     default:
       return;  // without EndModal
   }
-  wxLogMessage (wxT("you pressed button id=%d, return value=%d"), id, ret);
+  wxLogMessage ("you pressed button id=%d, return value=%d", id, ret);
   EndModal (ret);
 }
 
@@ -191,7 +191,7 @@
 FloppyConfigDialog::FloppyConfigDialog(
     wxWindow* parent,
     wxWindowID id)
-  : wxDialog (parent, id, wxT(""), wxDefaultPosition, wxDefaultSize, 
+  : wxDialog (parent, id, "", wxDefaultPosition, wxDefaultSize, 
     wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
 {
   validate = NULL;
@@ -216,19 +216,19 @@
   capacitySizer->Add (captext, 0, wxALL, 5);
   capacitySizer->Add (capacity, 0, wxALL|wxADJUST_MINSIZE, 5);
   // contents of buttonSizer
-  btn = new wxButton (this, wxID_HELP, wxT("Help"));
+  btn = new wxButton (this, wxID_HELP, "Help");
   buttonSizer->Add (btn, 0, wxALL, 5);
   // use wxID_CANCEL because pressing ESC produces this same code
-  btn = new wxButton (this, wxID_CANCEL, wxT("Cancel"));
+  btn = new wxButton (this, wxID_CANCEL, "Cancel");
   buttonSizer->Add (btn, 0, wxALL, 5);
-  CreateBtn = new wxButton (this, ID_Create, wxT("Create Image"));
+  CreateBtn = new wxButton (this, ID_Create, "Create Image");
   buttonSizer->Add (CreateBtn, 0, wxALL, 5);
-  btn = new wxButton (this, wxID_OK, wxT("Ok"));
+  btn = new wxButton (this, wxID_OK, "Ok");
   buttonSizer->Add (btn, 0, wxALL, 5);
   // create filename and diskImageRadioBtn so that we can tweak them before
   // Init comes.  However don't add it to any sizer yet because it needs to go
   // in after the last radio button.
-  filename = new wxTextCtrl (this, ID_FilenameText, wxT(""), wxDefaultPosition, longTextSize);
+  filename = new wxTextCtrl (this, ID_FilenameText, "", wxDefaultPosition, longTextSize);
   diskImageRadioBtn = new wxRadioButton (this, ID_Filename, FLOPPY_CONFIG_DISKIMG);
 
   // the radioSizer contents will be added by successive calls to
@@ -240,7 +240,7 @@
     const wxString& filename)
 {
   if (n_rbtns >= FLOPPY_MAX_RBTNS) {
-    wxLogError (wxT("AddRadio failed: increase FLOPPY_MAX_RBTNS in wxdialog.h"));
+    wxLogError ("AddRadio failed: increase FLOPPY_MAX_RBTNS in wxdialog.h");
     return;
   }
   rbtn[n_rbtns] = new wxRadioButton (this, -1, description);
@@ -282,7 +282,7 @@
   SetSizer(vertSizer);
   vertSizer->Fit (this);
   wxSize size = vertSizer->GetMinSize ();
-  wxLogMessage (wxT("minsize is %d,%d"), size.GetWidth(), size.GetHeight ());
+  wxLogMessage ("minsize is %d,%d", size.GetWidth(), size.GetHeight ());
   int margin = 5;
   SetSizeHints (size.GetWidth () + margin, size.GetHeight () + margin);
   Center ();
@@ -298,7 +298,7 @@
   if (diskImageRadioBtn->GetValue ()) {
     return i;
   }
-  wxLogError (wxT("GetRadio() found nothing selected"));
+  wxLogError ("GetRadio() found nothing selected");
   return 0;
 }
 
@@ -352,7 +352,7 @@
       break;
     case ID_Browse:
       if (BrowseTextCtrl(filename)) {
-        capacity->SetSelection(capacity->FindString(wxT("auto")));
+        capacity->SetSelection(capacity->FindString("auto"));
       }
       break;
     case ID_Capacity:
@@ -368,10 +368,10 @@
         strncpy (name, filename->GetValue ().c_str (), sizeof(name));
         if (CreateImage (0, floppy_type_n_sectors[cap], name)) {
           wxString msg;
-          msg.Printf (wxT("Created a %s disk image called '%s'."),
+          msg.Printf ("Created a %s disk image called '%s'.",
             capacity->GetString (cap).c_str (), 
             filename->GetValue ().c_str ());
-          wxMessageBox(msg, wxT("Image Created"), wxOK | wxICON_INFORMATION, this);
+          wxMessageBox(msg, "Image Created", wxOK | wxICON_INFORMATION, this);
         }
       }
       break;
@@ -429,7 +429,7 @@
 LogOptionsDialog::LogOptionsDialog(
     wxWindow* parent,
     wxWindowID id)
-  : wxDialog (parent, id, wxT(""), wxDefaultPosition, wxDefaultSize, 
+  : wxDialog (parent, id, "", wxDefaultPosition, wxDefaultSize, 
     wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
 {
   static char *names[] = LOG_OPTS_TYPE_NAMES;
@@ -452,7 +452,7 @@
   // logfileSizer contents
   text = new wxStaticText (this, -1, LOG_OPTS_LOGFILE);
   logfileSizer->Add (text);
-  logfile = new wxTextCtrl (this, -1, wxT(""), wxDefaultPosition, longTextSize);
+  logfile = new wxTextCtrl (this, -1, "", wxDefaultPosition, longTextSize);
   logfileSizer->Add (logfile);
   wxButton *btn = new wxButton (this, ID_Browse, BTNLABEL_BROWSE);
   logfileSizer->Add (btn, 0, wxALL, 5);
@@ -460,7 +460,7 @@
   // debuggerlogfileSizer contents
   text = new wxStaticText (this, -1, LOG_OPTS_DEBUGGER_LOGFILE);
   debuggerlogfileSizer->Add (text);
-  debuggerlogfile = new wxTextCtrl (this, -1, wxT(""), wxDefaultPosition, longTextSize);
+  debuggerlogfile = new wxTextCtrl (this, -1, "", wxDefaultPosition, longTextSize);
   debuggerlogfileSizer->Add (debuggerlogfile);
   btn = new wxButton (this, ID_Browse2, BTNLABEL_BROWSE);
   debuggerlogfileSizer->Add (btn, 0, wxALL, 5);
@@ -490,7 +490,7 @@
   SetSizer(vertSizer);
   vertSizer->Fit (this);
   wxSize size = vertSizer->GetMinSize ();
-  wxLogMessage (wxT("minsize is %d,%d"), size.GetWidth(), size.GetHeight ());
+  wxLogMessage ("minsize is %d,%d", size.GetWidth(), size.GetHeight ());
   int margin = 5;
   SetSizeHints (size.GetWidth () + margin, size.GetHeight () + margin);
   Center ();
@@ -511,7 +511,7 @@
   }
   // this can happen if one of the choices that is excluded by
   // LOG_OPTS_EXCLUDE() is used, for example.
-  wxLogDebug (wxT("SetAction type=%d a=%d not found"), evtype, a);
+  wxLogDebug ("SetAction type=%d a=%d not found", evtype, a);
 }
 
 int LogOptionsDialog::GetAction (int evtype) {
@@ -524,7 +524,7 @@
 void LogOptionsDialog::OnEvent(wxCommandEvent& event)
 {
   int id = event.GetId ();
-  wxLogMessage (wxT("you pressed button id=%d"), id);
+  wxLogMessage ("you pressed button id=%d", id);
   switch (id) {
     case ID_Browse:
       BrowseTextCtrl (logfile);
@@ -586,7 +586,7 @@
 AdvancedLogOptionsDialog::AdvancedLogOptionsDialog(
     wxWindow* parent,
     wxWindowID id)
-  : wxDialog (parent, id, wxT(""), wxDefaultPosition, wxDefaultSize, 
+  : wxDialog (parent, id, "", wxDefaultPosition, wxDefaultSize, 
     wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
 {
   //static int integers[LOG_OPTS_N_CHOICES_NORMAL] = {0, 1, 2, 3};
@@ -608,7 +608,7 @@
   // logfileSizer contents
   text = new wxStaticText (this, -1, ADVLOG_OPTS_LOGFILE);
   logfileSizer->Add (text);
-  logfile = new wxTextCtrl (this, -1, wxT(""), wxDefaultPosition, longTextSize);
+  logfile = new wxTextCtrl (this, -1, "", wxDefaultPosition, longTextSize);
   logfileSizer->Add (logfile);
   wxButton *btn = new wxButton (this, ID_Browse, BTNLABEL_BROWSE);
   logfileSizer->Add (btn, 0, wxALL, 5);
@@ -619,7 +619,7 @@
   gridSizer = new wxGridSizer (ADVLOG_OPTS_N_TYPES + 1);
   // add title row
   int typemax = ADVLOG_OPTS_N_TYPES;
-  text = new wxStaticText (scrollPanel, -1, wxT("Device"));
+  text = new wxStaticText (scrollPanel, -1, "Device");
   gridSizer->Add (text, 0, wxALIGN_CENTER);
   int type;
   for (type=0; type < typemax; type++) {
@@ -689,7 +689,7 @@
   SetSizer(vertSizer);
   vertSizer->Fit (this);
   wxSize size = vertSizer->GetMinSize ();
-  wxLogMessage (wxT("minsize is %d,%d"), size.GetWidth(), size.GetHeight ());
+  wxLogMessage ("minsize is %d,%d", size.GetWidth(), size.GetHeight ());
   int margin = 5;
   SetSizeHints (size.GetWidth () + margin, size.GetHeight () + margin);
   Center ();
@@ -739,7 +739,7 @@
   }
   // this can happen if one of the choices that is excluded by
   // ADVLOG_OPTS_EXCLUDE() is used, for example.
-  wxLogDebug (wxT("warning: SetAction type=%d act=%d not found"), evtype, act);
+  wxLogDebug ("warning: SetAction type=%d act=%d not found", evtype, act);
 }
 
 int AdvancedLogOptionsDialog::GetAction (int dev, int evtype) {
@@ -752,7 +752,7 @@
 void AdvancedLogOptionsDialog::OnEvent(wxCommandEvent& event)
 {
   int id = event.GetId ();
-  wxLogMessage (wxT("you pressed button id=%d"), id);
+  wxLogMessage ("you pressed button id=%d", id);
   switch (id) {
     case ID_Browse:
       BrowseTextCtrl (logfile);
@@ -821,14 +821,14 @@
 DebugLogDialog::DebugLogDialog(
     wxWindow* parent,
     wxWindowID id)
-  : wxDialog (parent, id, wxT(""), wxDefaultPosition, wxDefaultSize, 
+  : wxDialog (parent, id, "", wxDefaultPosition, wxDefaultSize, 
     wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
 {
   lengthMax = DEBUG_LOG_DEFAULT_LENGTH_MAX;
   lengthTolerance = DEBUG_LOG_DEFAULT_TOLERANCE;
   SetTitle (DEBUG_LOG_TITLE);
   mainSizer = new wxBoxSizer (wxVERTICAL);
-  log = new wxTextCtrl (this, -1, wxT(""),
+  log = new wxTextCtrl (this, -1, "",
       wxDefaultPosition, wxSize(400, 300), 
       wxTE_MULTILINE | wxTE_RICH | wxTE_READONLY);
   mainSizer->Add (log, 1, wxALL|wxGROW, 10);
@@ -840,7 +840,7 @@
   mainSizer->Add (buttonSizer, 0, wxALIGN_RIGHT);
 
   // commandSizer contents
-  command = new wxTextCtrl (this, ID_DebugCommand, wxT(""), 
+  command = new wxTextCtrl (this, ID_DebugCommand, "", 
       wxDefaultPosition, wxDefaultSize, 
       wxTE_PROCESS_ENTER);
   commandSizer->Add (command, 1, wxGROW);
@@ -860,7 +860,7 @@
   SetSizer(mainSizer);
   mainSizer->Fit (this);
   wxSize size = mainSizer->GetMinSize ();
-  wxLogMessage (wxT("minsize is %d,%d"), size.GetWidth(), size.GetHeight ());
+  wxLogMessage ("minsize is %d,%d", size.GetWidth(), size.GetHeight ());
   int margin = 5;
   SetSizeHints (size.GetWidth () + margin, size.GetHeight () + margin);
   Center ();
@@ -939,7 +939,7 @@
 
 void DebugLogDialog::OnKeyEvent(wxKeyEvent& event)
 {
-  wxLogDebug (wxT("key event"));
+  wxLogDebug ("key event");
 }
 #endif
 
@@ -958,7 +958,7 @@
 ParamDialog::ParamDialog(
     wxWindow* parent,
     wxWindowID id)
-  : wxDialog (parent, id, wxT(""), wxDefaultPosition, wxDefaultSize, 
+  : wxDialog (parent, id, "", wxDefaultPosition, wxDefaultSize, 
     wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
 {
   idHash = new wxHashTable (wxKEY_INTEGER);
@@ -1016,7 +1016,7 @@
   SetSizer(mainSizer);
   mainSizer->Fit (this);
   wxSize size = mainSizer->GetMinSize ();
-  wxLogMessage (wxT("minsize is %d,%d"), size.GetWidth(), size.GetHeight ());
+  wxLogMessage ("minsize is %d,%d", size.GetWidth(), size.GetHeight ());
   int margin = 5;
   SetSizeHints (size.GetWidth () + margin, size.GetHeight () + margin);
   Center ();
@@ -1071,7 +1071,7 @@
   wxASSERT (context->vertSizer != NULL);
   if (param_generic == NULL) 
     return;  // param not registered, probably this option was not compiled in
-  wxLogDebug (wxT("AddParam for param '%s'"), param_generic->get_name ());
+  wxLogDebug ("AddParam for param '%s'", param_generic->get_name ());
   if (context->gridSizer == NULL) {
     // create a gridSizer if none exists yet.  add it to default vertSizer.  
     context->gridSizer = new wxFlexGridSizer (3);
@@ -1095,7 +1095,7 @@
     case BXT_PARAM_BOOL: {
 	bx_param_bool_c *param = (bx_param_bool_c*) param_generic;
 	if (!plain) ADD_LABEL (prompt);
-	wxCheckBox *ckbx = new wxCheckBox (context->parent, pstr->id, wxT(""));
+	wxCheckBox *ckbx = new wxCheckBox (context->parent, pstr->id, "");
 	ckbx->SetValue (param->get ());
         if (description) ckbx->SetToolTip(description);
 	sizer->Add (ckbx, 0, wxALL, 2);
@@ -1118,7 +1118,7 @@
           if (!plain) sizer->Add (1, 1);  // spacer
           pstr->u.spin = spinctrl;
         } else {
-          wxTextCtrl *textctrl = new wxTextCtrl (context->parent, pstr->id, wxT(""), wxDefaultPosition, normalTextSize);
+          wxTextCtrl *textctrl = new wxTextCtrl (context->parent, pstr->id, "", wxDefaultPosition, normalTextSize);
           const char *format = param->get_format ();
           if (!format)
             format = strdup(param->get_base () == 16 ? "0x%X" : "%d");
@@ -1154,7 +1154,7 @@
 	bx_param_string_c *param = (bx_param_string_c*) param_generic;
 	if (!plain) ADD_LABEL (prompt);
 	bool isFilename = param->get_options ()->get () & param->IS_FILENAME;
-	wxTextCtrl *txtctrl = new wxTextCtrl (context->parent, pstr->id, wxT(""), wxDefaultPosition, isFilename? longTextSize : normalTextSize);
+	wxTextCtrl *txtctrl = new wxTextCtrl (context->parent, pstr->id, "", wxDefaultPosition, isFilename? longTextSize : normalTextSize);
         if (description) txtctrl->SetToolTip(description);
         if (param->get_options()->get () & param->RAW_BYTES) {
           char *value = param->getptr ();
@@ -1164,7 +1164,7 @@
           sep_string[1] = 0;
           for (int i=0; i<param->get_maxsize (); i++) {
             wxString eachbyte;
-            eachbyte.Printf (wxT("%s%02x"), (i>0)?sep_string : "", (unsigned int)0xff&value[i]);
+            eachbyte.Printf ("%s%02x", (i>0)?sep_string : "", (unsigned int)0xff&value[i]);
             buffer += eachbyte;
           }
           txtctrl->SetValue (buffer);
@@ -1240,7 +1240,7 @@
           if (list->get_options()->get () & bx_list_c::USE_BOX_TITLE) {
             boxTitle = prompt;
           } else {
-            boxTitle = wxT("");
+            boxTitle = "";
           }
           wxStaticBox *box = new wxStaticBox (context->parent, -1, boxTitle);
 	  wxStaticBoxSizer *boxsz = new wxStaticBoxSizer (box, wxVERTICAL);
@@ -1267,7 +1267,7 @@
 	break;
       }
     default:
-      wxLogError (wxT("ParamDialog::AddParam called with unsupported param type id=%d"), (int)type);
+      wxLogError ("ParamDialog::AddParam called with unsupported param type id=%d", (int)type);
   }
 }
 
@@ -1278,7 +1278,7 @@
   wxNode *node;
   while ((node = idHash->Next ()) != NULL) {
     ParamStruct *pstr = (ParamStruct*) node->GetData ();
-    wxLogDebug (wxT("commit changes for param %s"), pstr->param->get_name ());
+    wxLogDebug ("commit changes for param %s", pstr->param->get_name ());
     int type = pstr->param->get_type ();
     switch (type) {
       case BXT_PARAM_BOOL: {
@@ -1292,14 +1292,14 @@
 	bool valid;
         int n;
 	wxString complaint;
-	complaint.Printf (wxT("Invalid integer for %s."), pstr->param->get_name ());
+	complaint.Printf ("Invalid integer for %s.", pstr->param->get_name ());
         if (nump->get_options () & nump->USE_SPIN_CONTROL) {
           n = pstr->u.spin->GetValue ();
         } else {
           n = GetTextCtrlInt (pstr->u.text, &valid, true, complaint);
         }
         if ((n < nump->get_min ()) || (n > nump->get_max ())) {
-          wxMessageBox(wxT("Numerical parameter out of range"), wxT("Error"), wxOK | wxICON_ERROR, this );
+          wxMessageBox("Numerical parameter out of range", "Error", wxOK | wxICON_ERROR, this );
           return false;
         }
 	if (n != nump->get ()) nump->set (n);
@@ -1331,7 +1331,7 @@
               buf[i] = n;
               p+=2;
             } else {
-              wxMessageBox(wxT("Illegal raw byte format"), wxT("Error"), wxOK | wxICON_ERROR, this );
+              wxMessageBox("Illegal raw byte format", "Error", wxOK | wxICON_ERROR, this );
               return false;
             }
           }
@@ -1345,7 +1345,7 @@
       case BXT_LIST:
         break;
       default:
-        wxLogError (wxT("ParamDialog::CopyGuiToParam: unsupported param type id=%d"), (int)type);
+        wxLogError ("ParamDialog::CopyGuiToParam: unsupported param type id=%d", (int)type);
     }
   }
   return true;
@@ -1371,7 +1371,7 @@
 
 void ParamDialog::EnableChanged (ParamStruct *pstrOfCheckbox)
 {
-  wxLogDebug (wxT("EnableChanged on checkbox %s"), pstrOfCheckbox->param->get_name ());
+  wxLogDebug ("EnableChanged on checkbox %s", pstrOfCheckbox->param->get_name ());
   bx_param_bool_c *enableParam = (bx_param_bool_c*) pstrOfCheckbox->param;
   wxASSERT (enableParam->get_type () == BXT_PARAM_BOOL); // or we wouldn't be here
   bool en = pstrOfCheckbox->u.checkbox->GetValue ();
@@ -1390,10 +1390,10 @@
     ParamStruct *pstr = (ParamStruct*) paramHash->Get (param->get_id ());
     if (pstr) {
       if (param == pstrOfCheckbox->param) {
-	wxLogDebug (wxT("not setting enable on checkbox '%s' that triggered the enable change"), pstrOfCheckbox->param->get_name ());
+	wxLogDebug ("not setting enable on checkbox '%s' that triggered the enable change", pstrOfCheckbox->param->get_name ());
 	continue;
       }
-      wxLogDebug (wxT("setting enable for param '%s' to %d"), pstr->param->get_name (), en?1:0);
+      wxLogDebug ("setting enable for param '%s' to %d", pstr->param->get_name (), en?1:0);
       if (en != pstr->u.window->IsEnabled ()) {
 	EnableParam (pstr->param->get_id (), en);
 	//pstr->u.window->Enable (en);
@@ -1401,7 +1401,7 @@
 	//if (pstr->label) pstr->label->Enable (en);
 	bx_list_c *deps = pstr->param->get_dependent_list ();
 	if (deps) {
-	  wxLogDebug (wxT("recursing on dependent list of %s"), list->get_name ());
+	  wxLogDebug ("recursing on dependent list of %s", list->get_name ());
 	  wxASSERT (pstr->param->get_type () == BXT_PARAM_BOOL);
           bool dep_en = pstr->u.window->IsEnabled () && pstr->u.checkbox->GetValue ();
 	  EnableChangedRecursive (deps, dep_en, pstr);
@@ -1431,7 +1431,7 @@
 
 void ParamDialog::EnumChanged (ParamStruct *pstr)
 {
-  wxLogDebug (wxT("EnumChanged"));
+  wxLogDebug ("EnumChanged");
   int id = pstr->param->get_id ();
   switch (id) {
     case BXP_ATA0_MASTER_TYPE:
@@ -1455,7 +1455,7 @@
       int type = pstr->u.choice->GetSelection ();
       if (type == BX_ATA_DEVICE_DISK) {
 	// enable cylinders, heads, spt
-	wxLogDebug (wxT("enabling disk parameters"));
+	wxLogDebug ("enabling disk parameters");
 	EnableParam (BXP_ATA0_MASTER_MODE+delta, 1);
 	EnableParam (BXP_ATA0_MASTER_CYLINDERS+delta, 1);
 	EnableParam (BXP_ATA0_MASTER_HEADS+delta, 1);
@@ -1479,7 +1479,7 @@
 
       } else {
 	// enable inserted
-	wxLogDebug (wxT("enabling cdrom parameters"));
+	wxLogDebug ("enabling cdrom parameters");
 	EnableParam (BXP_ATA0_MASTER_MODE+delta, 0);
 	EnableParam (BXP_ATA0_MASTER_CYLINDERS+delta, 0);
 	EnableParam (BXP_ATA0_MASTER_HEADS+delta, 0);
@@ -1544,7 +1544,7 @@
   wxNode *node;
   while ((node = idHash->Next ()) != NULL) {
     ParamStruct *pstr = (ParamStruct*) node->GetData ();
-    IFDBG_DLG (wxLogDebug (wxT("refresh param %s"), pstr->param->get_name ()));
+    IFDBG_DLG (wxLogDebug ("refresh param %s", pstr->param->get_name ()));
     int type = pstr->param->get_type ();
     switch (type) {
       case BXT_PARAM_BOOL: {
@@ -1573,7 +1573,7 @@
       case BXT_LIST:
         break;
       default:
-        wxLogError (wxT("ParamDialog::CopyParamToGui(): unsupported param type id=%d"), (int)type);
+        wxLogError ("ParamDialog::CopyParamToGui(): unsupported param type id=%d", (int)type);
     }
   }
 }
@@ -1585,11 +1585,11 @@
   if (isGeneratedId (id)) {
     ParamStruct *pstr = (ParamStruct*) idHash->Get (id);
     if (pstr == NULL) {
-      wxLogDebug (wxT("ParamStruct not found for id=%d"), id);
+      wxLogDebug ("ParamStruct not found for id=%d", id);
       return;
     }
     if (id == pstr->id) {
-      IFDBG_DLG (wxLogDebug (wxT("event came from window %p (id=%d) controlled by parameter '%s'"), pstr->u.window, id, pstr->param->get_name ()));
+      IFDBG_DLG (wxLogDebug ("event came from window %p (id=%d) controlled by parameter '%s'", pstr->u.window, id, pstr->param->get_name ()));
       switch (pstr->param->get_type ()) {
 	case BXT_PARAM_BOOL:
 	  EnableChanged (pstr);
@@ -1601,11 +1601,11 @@
       return;
     }
     if (id == pstr->browseButtonId) {
-      wxLogDebug (wxT("browse button id=%d attached to wxTextCtrl %p"), id, pstr->u.text);
+      wxLogDebug ("browse button id=%d attached to wxTextCtrl %p", id, pstr->u.text);
       BrowseTextCtrl (pstr->u.text);
       return;
     }
-    wxLogDebug (wxT("id was key to ParamStruct but doesn't match either id inside"));
+    wxLogDebug ("id was key to ParamStruct but doesn't match either id inside");
   }
   switch (id) {
     case wxID_OK:
@@ -1704,9 +1704,9 @@
   box1gridSizer = new wxFlexGridSizer (3);
   box1sizer->Add (box1gridSizer, 0, wxALL, insideStaticBoxMargin);
   AddParamList (standardList, box1gridSizer);
-  wxStaticText *vgabiosaddr1 = new wxStaticText (this, -1, wxT("VGA BIOS address"));
+  wxStaticText *vgabiosaddr1 = new wxStaticText (this, -1, "VGA BIOS address");
   box1gridSizer->Add (vgabiosaddr1, 0, wxALIGN_RIGHT|wxALL, 2);
-  wxStaticText *vgabiosaddr2 = new wxStaticText (this, -1, wxT("0xC0000"));
+  wxStaticText *vgabiosaddr2 = new wxStaticText (this, -1, "0xC0000");
   box1gridSizer->Add (vgabiosaddr2, 0, wxALL, 2);
 
   // box2 contains a list
@@ -1759,17 +1759,17 @@
   bx_id *idptr;
 
   // top level objects
-  wxStaticBox *mainRegsBox = new wxStaticBox (this, -1, wxT("Basic Registers"));
+  wxStaticBox *mainRegsBox = new wxStaticBox (this, -1, "Basic Registers");
   wxStaticBoxSizer *mainRegsBoxSizer = 
     new wxStaticBoxSizer (mainRegsBox, wxVERTICAL);
   mainSizer->Add (mainRegsBoxSizer, 0, wxALL|wxGROW, 10);
 
-  wxStaticBox *flagsBox = new wxStaticBox (this, -1, wxT("EFLAGS Bits"));
+  wxStaticBox *flagsBox = new wxStaticBox (this, -1, "EFLAGS Bits");
   wxStaticBoxSizer *flagsBoxSizer = 
     new wxStaticBoxSizer (flagsBox, wxVERTICAL);
   mainSizer->Add (flagsBoxSizer, 0, wxALL|wxGROW, 10);
 
-  wxStaticBox *otherBox = new wxStaticBox (this, -1, wxT("Other Registers"));
+  wxStaticBox *otherBox = new wxStaticBox (this, -1, "Other Registers");
   wxStaticBoxSizer *otherBoxSizer = 
     new wxStaticBoxSizer (otherBox, wxVERTICAL);
   mainSizer->Add (otherBoxSizer, 0, wxALL|wxGROW, 10);
@@ -1826,7 +1826,7 @@
 CpuRegistersDialog::AddFlag (bx_id paramId)
 {
   if (SIM->get_param (paramId) == NULL) {
-    wxLogDebug (wxT("AddFlag on unregistered param id=%d"), (int)paramId);
+    wxLogDebug ("AddFlag on unregistered param id=%d", (int)paramId);
     return;
   }
   wxASSERT (nflags < CPU_REGS_MAX_FLAGS);
@@ -1917,13 +1917,13 @@
       break;
 #if BX_DEBUGGER
   case ID_Debug_Stop:
-      wxLogDebug (wxT("wxWidgets triggered a break"));
+      wxLogDebug ("wxWidgets triggered a break");
       theFrame->DebugBreak ();
       break;
     case ID_Debug_Continue:
-      wxLogDebug (wxT("before calling DebugCommand"));
+      wxLogDebug ("before calling DebugCommand");
       theFrame->DebugCommand ("continue");
-      wxLogDebug (wxT("after calling DebugCommand"));
+      wxLogDebug ("after calling DebugCommand");
       break;
     case ID_Debug_Step:
       theFrame->DebugCommand ("step 1");
@@ -1960,12 +1960,12 @@
 CreateImage (int harddisk, int sectors, const char *filename)
 {
   if (sectors<1) {
-    wxMessageBox(wxT("The disk size is invalid."), wxT("Invalid Size"), wxOK | wxICON_ERROR );
+    wxMessageBox("The disk size is invalid.", "Invalid Size", wxOK | wxICON_ERROR );
     return false;
   }
-  wxLogDebug (wxT("filename = '%s'\n"), filename);
+  wxLogDebug ("filename = '%s'\n", filename);
   if (strlen (filename) < 1) {
-    wxMessageBox(wxT("You must type a file name for the new disk image."), wxT("Bad Filename"), wxOK | wxICON_ERROR );
+    wxMessageBox("You must type a file name for the new disk image.", "Bad Filename", wxOK | wxICON_ERROR );
     return false;
   }
   // create disk image with name and capacity determined by the filename
@@ -1975,15 +1975,15 @@
   // you want to overwrite?".  If yes, call again with overwrite=1.
   int ret = SIM->create_disk_image (filename, sectors, 0);
   if (ret == -1) {  // already exists
-    int answer = wxMessageBox (wxT("File exists.  Do you want to overwrite it?"),
-      wxT("File exists"), wxYES_NO | wxCENTER);
+    int answer = wxMessageBox ("File exists.  Do you want to overwrite it?",
+      "File exists", wxYES_NO | wxCENTER);
     if (answer == wxYES)
       ret = SIM->create_disk_image (filename, sectors, 1);
     else 
       return false;  // wxNO
   }
   if (ret == -2) {
-    wxMessageBox(wxT("I could not create the disk image. Check for permission problems or available disk space."), wxT("Failed"), wxOK | wxICON_ERROR );
+    wxMessageBox("I could not create the disk image. Check for permission problems or available disk space.", "Failed", wxOK | wxICON_ERROR );
     return false;
   }
   wxASSERT (ret==0);
@@ -2011,7 +2011,7 @@
   }
   if (valid) *valid = false;
   if (complain) {
-    wxMessageBox(complaint, wxT("Invalid"), wxOK | wxICON_ERROR );
+    wxMessageBox(complaint, "Invalid", wxOK | wxICON_ERROR );
     ctrl->SetFocus ();
   }
   return -1;
@@ -2020,7 +2020,7 @@
 bool BrowseTextCtrl (wxTextCtrl *text, wxString prompt, long style) {
   // try to configure the dialog to show hidden files
   wxConfigBase::Get() -> Write(wxT("/wxWidgets/wxFileDialog/ShowHidden"), true);
-  wxFileDialog *fdialog = new wxFileDialog (text->GetParent (), prompt, wxT(""), text->GetValue (), wxT("*.*"), style);
+  wxFileDialog *fdialog = new wxFileDialog (text->GetParent (), prompt, "", text->GetValue (), "*.*", style);
   int result = fdialog->ShowModal();
   if (result == wxID_OK)
     text->SetValue (fdialog->GetPath ());
diff -ur bochs-2.2.6.orig/gui/wxdialog.h bochs-2.2.6/gui/wxdialog.h
--- bochs-2.2.6.orig/gui/wxdialog.h	2006-02-15 21:55:00.000000000 +0100
+++ bochs-2.2.6/gui/wxdialog.h	2005-11-25 17:24:47.000000000 +0100
@@ -37,9 +37,9 @@
 void ChangeStaticText (wxSizer *sizer, wxStaticText *win, wxString newtext);
 bool CreateImage (int harddisk, int sectors, const char *filename);
 void SetTextCtrl (wxTextCtrl *text, const char *format, int val);
-int GetTextCtrlInt (wxTextCtrl *text, bool *valid = NULL, bool complain=false, wxString complaint = wxT("Invalid integer!"));
+int GetTextCtrlInt (wxTextCtrl *text, bool *valid = NULL, bool complain=false, wxString complaint = "Invalid integer!");
 bool BrowseTextCtrl (wxTextCtrl *text,
-    wxString prompt=wxT("Choose a file"),
+    wxString prompt="Choose a file",
     long style=wxOPEN);
 wxChoice *makeLogOptionChoiceBox (wxWindow *parent, wxWindowID id, int evtype, bool includeNoChange = false);
 
diff -ur bochs-2.2.6.orig/gui/wxmain.cc bochs-2.2.6/gui/wxmain.cc
--- bochs-2.2.6.orig/gui/wxmain.cc	2006-02-15 22:20:36.000000000 +0100
+++ bochs-2.2.6/gui/wxmain.cc	2005-11-26 10:22:58.000000000 +0100
@@ -193,10 +193,10 @@
 extern "C" int libwx_LTX_plugin_init (plugin_t *plugin, plugintype_t type,
   int argc, char *argv[])
 {
-  wxLogDebug (wxT("plugin_init for wxmain.cc"));
-  wxLogDebug (wxT("installing wxWidgets as the configuration interface"));
+  wxLogDebug ("plugin_init for wxmain.cc");
+  wxLogDebug ("installing wxWidgets as the configuration interface");
   SIM->register_configuration_interface ("wx", ci_callback, NULL);
-  wxLogDebug (wxT("installing %s as the Bochs GUI"), "wxWidgets");
+  wxLogDebug ("installing %s as the Bochs GUI", "wxWidgets");
   MyPanel::OnPluginInit ();
   return 0; // success
 }
@@ -234,7 +234,7 @@
   // simulation begins.  This is responsible for displaying any error
   // dialogs during bochsrc and command line processing.
   SIM->set_notify_callback (&MyApp::DefaultCallback, this);
-  MyFrame *frame = new MyFrame(wxT("Bochs x86 Emulator"), wxPoint(50,50), wxSize(450,340), wxMINIMIZE_BOX | wxSYSTEM_MENU | wxCAPTION );
+  MyFrame *frame = new MyFrame( "Bochs x86 Emulator", wxPoint(50,50), wxSize(450,340), wxMINIMIZE_BOX | wxSYSTEM_MENU | wxCAPTION );
   theFrame = frame;  // hack alert
   frame->Show( TRUE );
   SetTopWindow( frame );
@@ -256,20 +256,20 @@
 BxEvent *
 MyApp::DefaultCallback (void *thisptr, BxEvent *event)
 {
-  wxLogDebug (wxT("DefaultCallback: event type %d"), event->type);
+  wxLogDebug ("DefaultCallback: event type %d", event->type);
   event->retcode = -1;  // default return code
   switch (event->type)
   {
     case BX_ASYNC_EVT_LOG_MSG:
     case BX_SYNC_EVT_LOG_ASK: {
-      wxLogDebug (wxT("DefaultCallback: log ask event"));
+      wxLogDebug ("DefaultCallback: log ask event");
       wxString text;
-      text.Printf (wxT("Error: %s"), event->u.logmsg.msg);
+      text.Printf ("Error: %s", event->u.logmsg.msg);
       if (wxBochsClosing) {
         // gui closing down, do something simple and nongraphical.
-        fprintf (stderr, "%s\n", (char *)text.c_str ());
+        fprintf (stderr, "%s\n", text.c_str ());
       } else {
-        wxMessageBox (text, wxT("Error"), wxOK | wxICON_ERROR );
+        wxMessageBox (text, "Error", wxOK | wxICON_ERROR );
         // maybe I can make OnLogMsg display something that looks appropriate.
         // theFrame->OnLogMsg (event);
       }
@@ -289,7 +289,7 @@
     case BX_SYNC_EVT_GET_DBG_COMMAND:
       break;  // ignore
     default:
-      wxLogDebug (wxT("DefaultCallback: unknown event type %d"), event->type);
+      wxLogDebug ("DefaultCallback: unknown event type %d", event->type);
   }
   if (BX_EVT_IS_ASYNC(event->type)) {
     delete event;
@@ -415,61 +415,61 @@
 
   // set up the gui
   menuConfiguration = new wxMenu;
-  menuConfiguration->Append( ID_Config_New, wxT("&New Configuration") );
-  menuConfiguration->Append( ID_Config_Read, wxT("&Read Configuration") );
-  menuConfiguration->Append( ID_Config_Save, wxT("&Save Configuration") );
+  menuConfiguration->Append( ID_Config_New, "&New Configuration" );
+  menuConfiguration->Append( ID_Config_Read, "&Read Configuration" );
+  menuConfiguration->Append( ID_Config_Save, "&Save Configuration" );
   menuConfiguration->AppendSeparator ();
-  menuConfiguration->Append (ID_Quit, wxT("&Quit"));
+  menuConfiguration->Append (ID_Quit, "&Quit");
 
   menuEdit = new wxMenu;
-  menuEdit->Append( ID_Edit_FD_0, wxT("Floppy Disk &0...") );
-  menuEdit->Append( ID_Edit_FD_1, wxT("Floppy Disk &1...") );
-  menuEdit->Append( ID_Edit_ATA0, wxT("ATA Channel 0...") );
-  menuEdit->Append( ID_Edit_ATA1, wxT("ATA Channel 1...") );
-  menuEdit->Append( ID_Edit_ATA2, wxT("ATA Channel 2...") );
-  menuEdit->Append( ID_Edit_ATA3, wxT("ATA Channel 3...") );
-  menuEdit->Append( ID_Edit_Boot, wxT("&Boot...") );
-  menuEdit->Append( ID_Edit_Memory, wxT("&Memory...") );
-  menuEdit->Append( ID_Edit_PCI, wxT("&PCI...") );
-  menuEdit->Append( ID_Edit_Sound, wxT("S&ound...") );
-  menuEdit->Append( ID_Edit_Timing, wxT("&Timing...") );
-  menuEdit->Append( ID_Edit_Network, wxT("&Network...") );
-  menuEdit->Append( ID_Edit_Keyboard, wxT("&Keyboard...") );
-  menuEdit->Append( ID_Edit_Serial_Parallel, wxT("&Serial/Parallel...") );
-  menuEdit->Append( ID_Edit_LoadHack, wxT("&Loader Hack...") );
-  menuEdit->Append( ID_Edit_Other, wxT("&Other...") );
+  menuEdit->Append( ID_Edit_FD_0, "Floppy Disk &0..." );
+  menuEdit->Append( ID_Edit_FD_1, "Floppy Disk &1..." );
+  menuEdit->Append( ID_Edit_ATA0, "ATA Channel 0..." );
+  menuEdit->Append( ID_Edit_ATA1, "ATA Channel 1..." );
+  menuEdit->Append( ID_Edit_ATA2, "ATA Channel 2..." );
+  menuEdit->Append( ID_Edit_ATA3, "ATA Channel 3..." );
+  menuEdit->Append( ID_Edit_Boot, "&Boot..." );
+  menuEdit->Append( ID_Edit_Memory, "&Memory..." );
+  menuEdit->Append( ID_Edit_PCI, "&PCI..." );
+  menuEdit->Append( ID_Edit_Sound, "S&ound..." );
+  menuEdit->Append( ID_Edit_Timing, "&Timing..." );
+  menuEdit->Append( ID_Edit_Network, "&Network..." );
+  menuEdit->Append( ID_Edit_Keyboard, "&Keyboard..." );
+  menuEdit->Append( ID_Edit_Serial_Parallel, "&Serial/Parallel..." );
+  menuEdit->Append( ID_Edit_LoadHack, "&Loader Hack..." );
+  menuEdit->Append( ID_Edit_Other, "&Other..." );
 
   menuSimulate = new wxMenu;
-  menuSimulate->Append( ID_Simulate_Start, wxT("&Start..."));
-  menuSimulate->Append( ID_Simulate_PauseResume, wxT("&Pause..."));
-  menuSimulate->Append( ID_Simulate_Stop, wxT("S&top..."));
+  menuSimulate->Append( ID_Simulate_Start, "&Start...");
+  menuSimulate->Append( ID_Simulate_PauseResume, "&Pause...");
+  menuSimulate->Append( ID_Simulate_Stop, "S&top...");
   menuSimulate->AppendSeparator ();
   menuSimulate->Enable (ID_Simulate_PauseResume, FALSE);
   menuSimulate->Enable (ID_Simulate_Stop, FALSE);
 
   menuDebug = new wxMenu;
-  menuDebug->Append (ID_Debug_ShowCpu, wxT("Show &CPU"));
-  menuDebug->Append (ID_Debug_ShowKeyboard, wxT("Show &Keyboard"));
+  menuDebug->Append (ID_Debug_ShowCpu, "Show &CPU");
+  menuDebug->Append (ID_Debug_ShowKeyboard, "Show &Keyboard");
 #if BX_DEBUGGER
-  menuDebug->Append (ID_Debug_Console, wxT("Debug Console"));
+  menuDebug->Append (ID_Debug_Console, "Debug Console");
 #endif
-  menuDebug->Append (ID_Debug_ShowMemory, wxT("Show &memory"));
+  menuDebug->Append (ID_Debug_ShowMemory, "Show &memory");
 
   menuLog = new wxMenu;
-  menuLog->Append (ID_Log_View, wxT("&View"));
-  menuLog->Append (ID_Log_Prefs, wxT("&Preferences..."));
-  menuLog->Append (ID_Log_PrefsDevice, wxT("By &Device..."));
+  menuLog->Append (ID_Log_View, "&View");
+  menuLog->Append (ID_Log_Prefs, "&Preferences...");
+  menuLog->Append (ID_Log_PrefsDevice, "By &Device...");
 
   menuHelp = new wxMenu;
-  menuHelp->Append( ID_Help_About, wxT("&About...") );
+  menuHelp->Append( ID_Help_About, "&About..." );
 
   wxMenuBar *menuBar = new wxMenuBar;
-  menuBar->Append( menuConfiguration, wxT("&File") );
-  menuBar->Append( menuEdit, wxT("&Edit") );
-  menuBar->Append( menuSimulate, wxT("&Simulate") );
-  menuBar->Append( menuDebug, wxT("&Debug") );
-  menuBar->Append( menuLog, wxT("&Log") );
-  menuBar->Append( menuHelp, wxT("&Help") );
+  menuBar->Append( menuConfiguration, "&File" );
+  menuBar->Append( menuEdit, "&Edit" );
+  menuBar->Append( menuSimulate, "&Simulate" );
+  menuBar->Append( menuDebug, "&Debug" );
+  menuBar->Append( menuLog, "&Log" );
+  menuBar->Append( menuHelp, "&Help" );
   SetMenuBar( menuBar );
 
   // disable things that don't work yet
@@ -490,20 +490,20 @@
     tb->AddTool(id, wxBitmap(xpm_name), tooltip); \
   } while (0)
 
-  BX_ADD_TOOL(ID_Edit_FD_0, floppya_xpm, wxT("Change Floppy A"));
-  BX_ADD_TOOL(ID_Edit_FD_1, floppyb_xpm, wxT("Change Floppy B"));
-  BX_ADD_TOOL(ID_Edit_Cdrom, cdromd_xpm, wxT("Change CDROM"));
-  BX_ADD_TOOL(ID_Toolbar_Reset, reset_xpm, wxT("Reset the system"));
-  BX_ADD_TOOL(ID_Toolbar_Power, power_xpm, wxT("Turn power on/off"));
-
-  BX_ADD_TOOL(ID_Toolbar_Copy, copy_xpm, wxT("Copy to clipboard"));
-  BX_ADD_TOOL(ID_Toolbar_Paste, paste_xpm, wxT("Paste from clipboard"));
-  BX_ADD_TOOL(ID_Toolbar_Snapshot, snapshot_xpm, wxT("Save screen snapshot"));
+  BX_ADD_TOOL(ID_Edit_FD_0, floppya_xpm, "Change Floppy A");
+  BX_ADD_TOOL(ID_Edit_FD_1, floppyb_xpm, "Change Floppy B");
+  BX_ADD_TOOL(ID_Edit_Cdrom, cdromd_xpm, "Change CDROM");
+  BX_ADD_TOOL(ID_Toolbar_Reset, reset_xpm, "Reset the system");
+  BX_ADD_TOOL(ID_Toolbar_Power, power_xpm, "Turn power on/off");
+
+  BX_ADD_TOOL(ID_Toolbar_Copy, copy_xpm, "Copy to clipboard");
+  BX_ADD_TOOL(ID_Toolbar_Paste, paste_xpm, "Paste from clipboard");
+  BX_ADD_TOOL(ID_Toolbar_Snapshot, snapshot_xpm, "Save screen snapshot");
   // Omit config button because the whole wxWidgets interface is like
   // one really big config button.
   //BX_ADD_TOOL(ID_Toolbar_Config, configbutton_xpm, "Runtime Configuration");
-  BX_ADD_TOOL(ID_Toolbar_Mouse_en, mouse_xpm, wxT("Enable/disable mouse capture\nThere is also a shortcut for this: a CTRL key + the middle mouse button."));
-  BX_ADD_TOOL(ID_Toolbar_User, userbutton_xpm, wxT("Keyboard shortcut"));
+  BX_ADD_TOOL(ID_Toolbar_Mouse_en, mouse_xpm, "Enable/disable mouse capture\nThere is also a shortcut for this: a CTRL key + the middle mouse button.");
+  BX_ADD_TOOL(ID_Toolbar_User, userbutton_xpm, "Keyboard shortcut");
 
   tb->Realize();
 
@@ -527,14 +527,14 @@
 MyFrame::~MyFrame ()
 {
   delete panel;
-  wxLogDebug (wxT("MyFrame destructor"));
+  wxLogDebug ("MyFrame destructor");
   theFrame = NULL;
 }
 
 void MyFrame::OnConfigNew(wxCommandEvent& WXUNUSED(event))
 {
-  int answer = wxMessageBox (wxT("This will reset all settings back to their default values.\nAre you sure you want to do this?"),
-    wxT("Are you sure?"), wxYES_NO | wxCENTER, this);
+  int answer = wxMessageBox ("This will reset all settings back to their default values.\nAre you sure you want to do this?",
+    "Are you sure?", wxYES_NO | wxCENTER, this);
   if (answer == wxYES) SIM->reset_all_param ();
 }
 
@@ -542,7 +542,7 @@
 {
   char *bochsrc;
   long style = wxOPEN;
-  wxFileDialog *fdialog = new wxFileDialog (this, wxT("Read configuration"), wxT(""), wxT(""), wxT("*.*"), style);
+  wxFileDialog *fdialog = new wxFileDialog (this, "Read configuration", "", "", "*.*", style);
   if (fdialog->ShowModal() == wxID_OK) {
     bochsrc = (char *)fdialog->GetPath().c_str ();
     SIM->reset_all_param ();
@@ -555,7 +555,7 @@
 {
   char *bochsrc;
   long style = wxSAVE | wxOVERWRITE_PROMPT;
-  wxFileDialog *fdialog = new wxFileDialog (this, wxT("Save configuration"), wxT(""), wxT(""), wxT("*.*"), style);
+  wxFileDialog *fdialog = new wxFileDialog (this, "Save configuration", "", "", "*.*", style);
   if (fdialog->ShowModal() == wxID_OK) {
     bochsrc = (char *)fdialog->GetPath().c_str ();
     SIM->write_rc (bochsrc, 1);
@@ -581,13 +581,13 @@
     dev_id[bootDevices++] = BX_BOOT_CDROM;
   }
   if (bootDevices == 0) {
-    wxMessageBox( wxT("All the possible boot devices are disabled right now!\nYou must enable the first floppy drive, a hard drive, or a CD-ROM."),
-                  wxT("None enabled"), wxOK | wxICON_ERROR, this );
+    wxMessageBox( "All the possible boot devices are disabled right now!\nYou must enable the first floppy drive, a hard drive, or a CD-ROM.",
+                  "None enabled", wxOK | wxICON_ERROR, this );
     return;
   }
   ParamDialog dlg (this, -1);
   bx_list_c *list = (bx_list_c*) SIM->get_param (BXP_BOOT);
-  dlg.SetTitle (wxString(list->get_name (), wxConvUTF8));
+  dlg.SetTitle (list->get_name ());
   dlg.AddParam (list);
   dlg.ShowModal ();
 }
@@ -602,7 +602,7 @@
 {
   ParamDialog dlg (this, -1);
   bx_list_c *list = (bx_list_c*) SIM->get_param (BXP_PCI);
-  dlg.SetTitle (wxString(list->get_name (), wxConvUTF8));
+  dlg.SetTitle (list->get_name ());
   dlg.AddParam (list);
   dlg.ShowModal ();
 }
@@ -611,7 +611,7 @@
 {
   ParamDialog dlg (this, -1);
   bx_list_c *list = (bx_list_c*) SIM->get_param (BXP_SB16);
-  dlg.SetTitle (wxString(list->get_name (), wxConvUTF8));
+  dlg.SetTitle (list->get_name ());
   dlg.AddParam (list);
   dlg.SetRuntimeFlag (sim_thread != NULL);
   dlg.ShowModal ();
@@ -621,7 +621,7 @@
 {
   ParamDialog dlg (this, -1);
   bx_list_c *list = (bx_list_c*) SIM->get_param (BXP_CLOCK);
-  dlg.SetTitle (wxString(list->get_name (), wxConvUTF8));
+  dlg.SetTitle (list->get_name ());
   dlg.AddParam (list);
   dlg.ShowModal ();
 }
@@ -630,7 +630,7 @@
 {
   ParamDialog dlg (this, -1);
   bx_list_c *list = (bx_list_c*) SIM->get_param (BXP_NETWORK);
-  dlg.SetTitle (wxString(list->get_name (), wxConvUTF8));
+  dlg.SetTitle (list->get_name ());
   dlg.AddParam (list);
   dlg.ShowModal ();
 }
@@ -639,7 +639,7 @@
 {
   ParamDialog dlg(this, -1);
   bx_list_c *list = (bx_list_c*) SIM->get_param (BXP_MENU_KEYBOARD);
-  dlg.SetTitle (wxString(list->get_name (), wxConvUTF8));
+  dlg.SetTitle (list->get_name ());
   dlg.AddParam (list);
   dlg.SetRuntimeFlag (sim_thread != NULL);
   dlg.ShowModal ();
@@ -649,7 +649,7 @@
 {
   ParamDialog dlg(this, -1);
   bx_list_c *list = (bx_list_c*) SIM->get_param (BXP_MENU_SERIAL_PARALLEL);
-  dlg.SetTitle (wxString(list->get_name (), wxConvUTF8));
+  dlg.SetTitle (list->get_name ());
   dlg.AddParam (list);
   dlg.SetRuntimeFlag (sim_thread != NULL);
   dlg.ShowModal ();
@@ -659,7 +659,7 @@
 {
   ParamDialog dlg(this, -1);
   bx_list_c *list = (bx_list_c*) SIM->get_param (BXP_LOAD32BITOS);
-  dlg.SetTitle (wxString(list->get_name (), wxConvUTF8));
+  dlg.SetTitle (list->get_name ());
   dlg.AddParam (list);
   dlg.ShowModal ();
 }
@@ -668,7 +668,7 @@
 {
   ParamDialog dlg(this, -1);
   bx_list_c *list = (bx_list_c*) SIM->get_param (BXP_MENU_MISC_2);
-  dlg.SetTitle (wxString(list->get_name (), wxConvUTF8));
+  dlg.SetTitle (list->get_name ());
   dlg.AddParam (list);
   dlg.SetRuntimeFlag (sim_thread != NULL);
   dlg.ShowModal ();
@@ -682,9 +682,9 @@
   wxASSERT (SIM->get_max_log_level() == LOG_OPTS_N_TYPES);
   LogOptionsDialog dlg (this, -1);
   bx_param_string_c *logfile = SIM->get_param_string (BXP_LOG_FILENAME);
-  dlg.SetLogfile (wxString (logfile->getptr (), wxConvUTF8));
+  dlg.SetLogfile (wxString (logfile->getptr ()));
   bx_param_string_c *debuggerlogfile = SIM->get_param_string (BXP_DEBUGGER_LOG_FILENAME);
-  dlg.SetDebuggerlogfile (wxString (debuggerlogfile->getptr (), wxConvUTF8));
+  dlg.SetDebuggerlogfile (wxString (debuggerlogfile->getptr ()));
 
   // The inital values of the dialog are complicated.  If the panic action
   // for all modules is "ask", then clearly the inital value in the dialog
@@ -758,16 +758,16 @@
 {
   if (SIM->get_param (BXP_CPU_EAX) == NULL) {
     // if params not initialized yet, then give up
-    wxMessageBox (wxT("Cannot show the debugger window until the simulation has begun."),
-                  wxT("Sim not started"), wxOK | wxICON_ERROR, this );
+    wxMessageBox ("Cannot show the debugger window until the simulation has begun.",
+                  "Sim not started", wxOK | wxICON_ERROR, this );
     return;
   }
   if (showCpu == NULL) {
     showCpu = new CpuRegistersDialog (this, -1);
 #if BX_DEBUGGER
-    showCpu->SetTitle (wxT("Bochs Debugger"));
+    showCpu->SetTitle ("Bochs Debugger");
 #else
-    showCpu->SetTitle (wxT("CPU Registers"));
+    showCpu->SetTitle ("CPU Registers");
 #endif
     showCpu->Init ();
   } else {
@@ -780,13 +780,13 @@
 {
   if (SIM->get_param (BXP_KBD_PARAMETERS) == NULL) {
     // if params not initialized yet, then give up
-    wxMessageBox (wxT("Cannot show the debugger window until the simulation has begun."),
-                  wxT("Sim not started"), wxOK | wxICON_ERROR, this );
+    wxMessageBox ("Cannot show the debugger window until the simulation has begun.",
+                  "Sim not started", wxOK | wxICON_ERROR, this );
     return;
   }
   if (showKbd == NULL) {
     showKbd = new ParamDialog (this, -1);
-    showKbd->SetTitle (wxT("Keyboard State (incomplete, this is a demo)"));
+    showKbd->SetTitle ("Keyboard State (incomplete, this is a demo)");
     showKbd->AddParam (SIM->get_param (BXP_KBD_PARAMETERS));
     showKbd->Init ();
   } else {
@@ -826,12 +826,12 @@
 void
 MyFrame::DebugCommand (const char *cmd)
 {
-  wxLogDebug (wxT("debugger command: %s"), cmd);
+  wxLogDebug ("debugger command: %s", cmd);
   wxASSERT (showDebugLog != NULL);
   showDebugLog->AppendCommand (cmd);
   if (debugCommand != NULL) {
     // one is already waiting
-    wxLogDebug (wxT("multiple debugger commands, discarding the earlier one"));
+    wxLogDebug ("multiple debugger commands, discarding the earlier one");
     delete debugCommand;
     debugCommand = NULL;
   }
@@ -840,7 +840,7 @@
   strncpy (tmp, cmd, len+1);
   // if an event is waiting for us, fill it an send back to sim_thread.
   if (debugCommandEvent != NULL) {
-    wxLogDebug (wxT("sim_thread was waiting for this command '%s'"), tmp);
+    wxLogDebug ("sim_thread was waiting for this command '%s'", tmp);
     wxASSERT (debugCommandEvent->type == BX_SYNC_EVT_GET_DBG_COMMAND);
     debugCommandEvent->u.debugcmd.command = tmp;
     debugCommandEvent->retcode = 1;
@@ -849,7 +849,7 @@
     debugCommandEvent = NULL;
   } else {
     // store this command in debugCommand for the future
-    wxLogDebug (wxT("storing debugger command '%s'"), tmp);
+    wxLogDebug ("storing debugger command '%s'", tmp);
     debugCommand = tmp;
   }
 }
@@ -864,7 +864,7 @@
   } else {
     SIM->set_notify_callback (&MyApp::DefaultCallback, this);
     // ask the simulator to stop.  When it stops it will close this frame.
-    SetStatusText (wxT("Waiting for simulation to stop..."));
+    SetStatusText ("Waiting for simulation to stop...");
     OnKillSim (event);
   }
 }
@@ -872,39 +872,39 @@
 void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
 {
   wxString str;
-  str.Printf (wxT("Bochs x86 Emulator version %s (wxWidgets port)"), VER_STRING);
-  wxMessageBox( str, wxT("About Bochs"), wxOK | wxICON_INFORMATION, this );
+  str.Printf ("Bochs x86 Emulator version %s (wxWidgets port)", VER_STRING);
+  wxMessageBox( str, "About Bochs", wxOK | wxICON_INFORMATION, this );
 }
 
 // update the menu items, status bar, etc.
 void MyFrame::simStatusChanged (StatusChange change, bx_bool popupNotify) {
   switch (change) {
     case Start:  // running
-      wxLogStatus (wxT("Starting Bochs simulation"));
+      wxLogStatus ("Starting Bochs simulation");
       menuSimulate->Enable (ID_Simulate_Start, FALSE);
       menuSimulate->Enable (ID_Simulate_PauseResume, TRUE);
       menuSimulate->Enable (ID_Simulate_Stop, TRUE);
-      menuSimulate->SetLabel (ID_Simulate_PauseResume, wxT("&Pause"));
+      menuSimulate->SetLabel (ID_Simulate_PauseResume, "&Pause");
       break;
     case Stop: // not running
-      wxLogStatus (wxT("Simulation stopped"));
+      wxLogStatus ("Simulation stopped");
       menuSimulate->Enable (ID_Simulate_Start, TRUE);
       menuSimulate->Enable (ID_Simulate_PauseResume, FALSE);
       menuSimulate->Enable (ID_Simulate_Stop, FALSE);
-      menuSimulate->SetLabel (ID_Simulate_PauseResume, wxT("&Pause"));
+      menuSimulate->SetLabel (ID_Simulate_PauseResume, "&Pause");
       // This should only be used if the simulation stops due to error.
       // Obviously if the user asked it to stop, they don't need to be told.
       if (popupNotify)
-        wxMessageBox(wxT("Bochs simulation has stopped."), wxT("Bochs Stopped"), 
+        wxMessageBox("Bochs simulation has stopped.", "Bochs Stopped", 
             wxOK | wxICON_INFORMATION, this);
       break;
     case Pause: // pause
-      wxLogStatus (wxT("Pausing simulation"));
-      menuSimulate->SetLabel (ID_Simulate_PauseResume, wxT("&Resume"));
+      wxLogStatus ("Pausing simulation");
+      menuSimulate->SetLabel (ID_Simulate_PauseResume, "&Resume");
       break;
     case Resume: // resume
-      wxLogStatus (wxT("Resuming simulation"));
-      menuSimulate->SetLabel (ID_Simulate_PauseResume, wxT("&Pause"));
+      wxLogStatus ("Resuming simulation");
+      menuSimulate->SetLabel (ID_Simulate_PauseResume, "&Pause");
       break;
   }
   bool canConfigure = (change == Stop);
@@ -942,8 +942,8 @@
   wxCriticalSectionLocker lock(sim_thread_lock);
   if (sim_thread != NULL) {
         wxMessageBox (
-          wxT("Can't start Bochs simulator, because it is already running"),
-          wxT("Already Running"), wxOK | wxICON_ERROR, this);
+          "Can't start Bochs simulator, because it is already running",
+          "Already Running", wxOK | wxICON_ERROR, this);
         return;
   }
   // check that display library is set to wx.  If not, give a warning and
@@ -954,10 +954,10 @@
   char *gui_name = gui_param->get_choice (gui_param->get ());
   if (strcmp (gui_name, "wx") != 0) {
     wxMessageBox (
-    wxT("The display library was not set to wxWidgets.  When you use the\n")
-    wxT("wxWidgets configuration interface, you must also select the wxWidgets\n")
-    wxT("display library.  I will change it to 'wx' now."),
-    wxT("display library error"), wxOK | wxICON_WARNING, this);
+    "The display library was not set to wxWidgets.  When you use the\n"
+    "wxWidgets configuration interface, you must also select the wxWidgets\n"
+    "display library.  I will change it to 'wx' now.",
+    "display library error", wxOK | wxICON_WARNING, this);
     if (!gui_param->set_by_name ("wx")) {
       wxASSERT (0 && "Could not set display library setting to 'wx");
     }
@@ -966,14 +966,14 @@
   start_bochs_times++;
   if (start_bochs_times>1) {
         wxMessageBox (
-        wxT("You have already started the simulator once this session. Due to memory leaks and bugs in init code, you may get unstable behavior."),
-        wxT("2nd time warning"), wxOK | wxICON_WARNING, this);
+        "You have already started the simulator once this session. Due to memory leaks and bugs in init code, you may get unstable behavior.",
+        "2nd time warning", wxOK | wxICON_WARNING, this);
   }
   num_events = 0;  // clear the queue of events for bochs to handle
   sim_thread = new SimThread (this);
   sim_thread->Create ();
   sim_thread->Run ();                                                        
-  wxLogDebug (wxT("Simulator thread has started."));
+  wxLogDebug ("Simulator thread has started.");
   // set up callback for events from simulator thread
   SIM->set_notify_callback (&SimThread::SiminterfaceCallback, sim_thread);
   simStatusChanged (Start);
@@ -998,7 +998,7 @@
   // DON'T use a critical section here.  Delete implicitly calls
   // OnSimThreadExit, which also tries to lock sim_thread_lock.
   // If we grab the lock at this level, deadlock results.
-  wxLogDebug (wxT("OnKillSim()"));
+  wxLogDebug ("OnKillSim()");
 #if BX_DEBUGGER
   // the sim_thread may be waiting for a debugger command.  If so, send
   // it a "quit"
@@ -1021,7 +1021,7 @@
 int 
 MyFrame::HandleAskParamString (bx_param_string_c *param)
 {
-  wxLogDebug (wxT("HandleAskParamString start"));
+  wxLogDebug ("HandleAskParamString start");
   bx_param_num_c *opt = param->get_options ();
   wxASSERT (opt != NULL);
   int n_opt = opt->get ();
@@ -1032,17 +1032,17 @@
     // use file open dialog
         long style = 
           (n_opt & param->SAVE_FILE_DIALOG) ? wxSAVE|wxOVERWRITE_PROMPT : wxOPEN;
-        wxLogDebug (wxT("HandleAskParamString: create dialog"));
-        wxFileDialog *fdialog = new wxFileDialog (this, wxString(msg, wxConvUTF8), wxT(""), wxString(param->getptr (), wxConvUTF8), wxT("*.*"), style);
-        wxLogDebug (wxT("HandleAskParamString: before showmodal"));
+        wxLogDebug ("HandleAskParamString: create dialog");
+        wxFileDialog *fdialog = new wxFileDialog (this, msg, "", wxString(param->getptr ()), "*.*", style);
+        wxLogDebug ("HandleAskParamString: before showmodal");
         if (fdialog->ShowModal() == wxID_OK)
           newval = (char *)fdialog->GetPath().c_str ();
-        wxLogDebug (wxT("HandleAskParamString: after showmodal"));
+        wxLogDebug ("HandleAskParamString: after showmodal");
         dialog = fdialog; // so I can delete it
   } else {
     // use simple string dialog
         long style = wxOK|wxCANCEL;
-        wxTextEntryDialog *tdialog = new wxTextEntryDialog (this, wxString(msg, wxConvUTF8), wxT("Enter new value"), wxString(param->getptr (), wxConvUTF8), style);
+        wxTextEntryDialog *tdialog = new wxTextEntryDialog (this, msg, "Enter new value", wxString(param->getptr ()), style);
         if (tdialog->ShowModal() == wxID_OK)
           newval = (char *)tdialog->GetValue().c_str ();
         dialog = tdialog; // so I can delete it
@@ -1052,7 +1052,7 @@
   // it!
   if (newval && strlen(newval)>0) {
         // change floppy path to this value.
-        wxLogDebug (wxT("Setting param %s to '%s'"), param->get_name (), newval);
+        wxLogDebug ("Setting param %s to '%s'", param->get_name (), newval);
         param->set (newval);
         delete dialog;
         return 1;
@@ -1087,9 +1087,9 @@
   default:
     {
           wxString msg;
-          msg.Printf (wxT("ask param for parameter type %d is not implemented in wxWidgets"),
+          msg.Printf ("ask param for parameter type %d is not implemented in wxWidgets",
                       param->get_type ());
-          wxMessageBox( msg, wxT("not implemented"), wxOK | wxICON_ERROR, this );
+          wxMessageBox( msg, "not implemented", wxOK | wxICON_ERROR, this );
           return -1;
         }
   }
@@ -1102,9 +1102,9 @@
 void 
 MyFrame::OnSim2CIEvent (wxCommandEvent& event)
 {
-  IFDBG_EVENT (wxLogDebug (wxT("received a bochs event in the GUI thread")));
+  IFDBG_EVENT (wxLogDebug ("received a bochs event in the GUI thread"));
   BxEvent *be = (BxEvent *) event.GetEventObject ();
-  IFDBG_EVENT (wxLogDebug (wxT("event type = %d"), (int) be->type));
+  IFDBG_EVENT (wxLogDebug ("event type = %d", (int) be->type));
   // all cases should return.  sync event handlers MUST send back a 
   // response.  async event handlers MUST delete the event.
   switch (be->type) {
@@ -1112,12 +1112,12 @@
     RefreshDialogs ();
     break;
   case BX_SYNC_EVT_ASK_PARAM:
-    wxLogDebug (wxT("before HandleAskParam"));
+    wxLogDebug ("before HandleAskParam");
     be->retcode = HandleAskParam (be);
-    wxLogDebug (wxT("after HandleAskParam"));
+    wxLogDebug ("after HandleAskParam");
     // return a copy of the event back to the sender.
     sim_thread->SendSyncResponse(be);
-    wxLogDebug (wxT("after SendSyncResponse"));
+    wxLogDebug ("after SendSyncResponse");
     break;
 #if BX_DEBUGGER
   case BX_ASYNC_EVT_DBG_MSG:
@@ -1131,7 +1131,7 @@
     OnLogMsg (be);
     break;
   case BX_SYNC_EVT_GET_DBG_COMMAND:
-    wxLogDebug (wxT("BX_SYNC_EVT_GET_DBG_COMMAND received"));
+    wxLogDebug ("BX_SYNC_EVT_GET_DBG_COMMAND received");
     if (debugCommand == NULL) {
       // no debugger command is ready to send, so don't send a response yet.
       // When a command is issued, MyFrame::DebugCommand will fill in the
@@ -1145,7 +1145,7 @@
       }
     } else {
       // a debugger command is waiting for us!
-      wxLogDebug (wxT("sending debugger command '%s' that was waiting"), debugCommand);
+      wxLogDebug ("sending debugger command '%s' that was waiting", debugCommand);
       be->u.debugcmd.command = debugCommand;
       debugCommand = NULL;  // ready for the next one
       debugCommandEvent = NULL;
@@ -1154,7 +1154,7 @@
     }
     break;
   default:
-    wxLogDebug (wxT("OnSim2CIEvent: event type %d ignored"), (int)be->type);
+    wxLogDebug ("OnSim2CIEvent: event type %d ignored", (int)be->type);
     if (!BX_EVT_IS_ASYNC(be->type)) {
       // if it's a synchronous event, and we fail to send back a response,
       // the sim thread will wait forever.  So send something!
@@ -1167,7 +1167,7 @@
 }
 
 void MyFrame::OnLogMsg (BxEvent *be) {
-  wxLogDebug (wxT("log msg: level=%d, prefix='%s', msg='%s'"),
+  wxLogDebug ("log msg: level=%d, prefix='%s', msg='%s'",
       be->u.logmsg.level,
       be->u.logmsg.prefix,
       be->u.logmsg.msg);
@@ -1175,13 +1175,13 @@
     return;  // we don't have any place to display log messages
   else
     wxASSERT (be->type == BX_SYNC_EVT_LOG_ASK);
-  wxString levelName (SIM->get_log_level_name (be->u.logmsg.level), wxConvUTF8);
+  wxString levelName (SIM->get_log_level_name (be->u.logmsg.level));
   LogMsgAskDialog dlg (this, -1, levelName);  // panic, error, etc.
 #if !BX_DEBUGGER
   dlg.EnableButton (dlg.DEBUG, FALSE);
 #endif
-  dlg.SetContext (wxString(be->u.logmsg.prefix, wxConvUTF8));
-  dlg.SetMessage (wxString(be->u.logmsg.msg, wxConvUTF8));
+  dlg.SetContext (be->u.logmsg.prefix);
+  dlg.SetMessage (be->u.logmsg.msg);
   int n = dlg.ShowModal ();
   // turn the return value into the constant that logfunctions::ask is
   // expecting.  0=continue, 1=continue but ignore future messages from this
@@ -1190,7 +1190,7 @@
     if (dlg.GetDontAsk ()) n = BX_LOG_ASK_CHOICE_CONTINUE_ALWAYS; 
   }
   be->retcode = n;
-  wxLogDebug (wxT("you chose %d"), n);
+  wxLogDebug ("you chose %d", n);
   // This can be called from two different contexts:
   // 1) before sim_thread starts, the default application callback can
   //    call OnLogMsg to display messages.
@@ -1210,34 +1210,34 @@
 void MyFrame::editFloppyConfig (int drive)
 {
   FloppyConfigDialog dlg (this, -1);
-  dlg.SetDriveName (wxString (drive==0? BX_FLOPPY0_NAME : BX_FLOPPY1_NAME, wxConvUTF8));
+  dlg.SetDriveName (wxString (drive==0? BX_FLOPPY0_NAME : BX_FLOPPY1_NAME));
   dlg.SetCapacityChoices (n_floppy_type_names, floppy_type_names);
   bx_list_c *list = (bx_list_c*) SIM->get_param ((drive==0)? BXP_FLOPPYA : BXP_FLOPPYB);
-  if (!list) { wxLogError (wxT("floppy object param is null")); return; }
+  if (!list) { wxLogError ("floppy object param is null"); return; }
   bx_param_filename_c *fname = (bx_param_filename_c*) list->get(0);
   bx_param_enum_c *disktype = (bx_param_enum_c *) list->get(1);
   bx_param_enum_c *status = (bx_param_enum_c *) list->get(2);
   if (fname->get_type () != BXT_PARAM_STRING
       || disktype->get_type () != BXT_PARAM_ENUM 
       || status->get_type() != BXT_PARAM_ENUM) {
-    wxLogError (wxT("floppy params have wrong type"));
+    wxLogError ("floppy params have wrong type");
     return;
   }
   if (sim_thread == NULL) {
-    dlg.AddRadio (wxT("Not Present"), wxT(""));
+    dlg.AddRadio ("Not Present", "");
   }
-  dlg.AddRadio (wxT("Ejected"), wxT("none"));
+  dlg.AddRadio ("Ejected", "none");
 #if defined(__linux__)
-  dlg.AddRadio (wxT("Physical floppy drive /dev/fd0"), wxT("/dev/fd0"));
-  dlg.AddRadio (wxT("Physical floppy drive /dev/fd1"), wxT("/dev/fd1"));
+  dlg.AddRadio ("Physical floppy drive /dev/fd0", "/dev/fd0");
+  dlg.AddRadio ("Physical floppy drive /dev/fd1", "/dev/fd1");
 #elif defined(WIN32)
-  dlg.AddRadio (wxT("Physical floppy drive A:"), wxT("A:"));
-  dlg.AddRadio (wxT("Physical floppy drive B:"), wxT("B:"));
+  dlg.AddRadio ("Physical floppy drive A:", "A:");
+  dlg.AddRadio ("Physical floppy drive B:", "B:");
 #else
   // add your favorite operating system here
 #endif
   dlg.SetCapacity (disktype->get () - disktype->get_min ());
-  dlg.SetFilename (wxString(fname->getptr (), wxConvUTF8));
+  dlg.SetFilename (fname->getptr ());
   dlg.SetValidateFunc (editFloppyValidate);
   if (disktype->get() == BX_FLOPPY_NONE) {
     dlg.SetRadio(0);
@@ -1247,13 +1247,13 @@
     // otherwise the SetFilename() should have done the right thing.
   }
   int n = dlg.ShowModal ();
-  wxLogMessage (wxT("floppy config returned %d"), n);
+  wxLogMessage ("floppy config returned %d", n);
   if (n==wxID_OK) {
     char filename[1024];
     wxString fn (dlg.GetFilename ());
-    strncpy (filename, (char *)fn.c_str (), sizeof(filename));
-    wxLogMessage (wxT("filename is '%s'"), filename);
-    wxLogMessage (wxT("capacity = %d (%s)"), dlg.GetCapacity(), floppy_type_names[dlg.GetCapacity ()]);
+    strncpy (filename, fn.c_str (), sizeof(filename));
+    wxLogMessage ("filename is '%s'", filename);
+    wxLogMessage ("capacity = %d (%s)", dlg.GetCapacity(), floppy_type_names[dlg.GetCapacity ()]);
     fname->set (filename);
     disktype->set (disktype->get_min () + dlg.GetCapacity ());
     if (sim_thread == NULL) {
@@ -1272,12 +1272,12 @@
 {
   bx_param_c *firstcd = SIM->get_first_cdrom ();
   if (!firstcd) {
-    wxMessageBox (wxT("No CDROM drive is enabled.  Use Edit:ATA to set one up."),
-                  wxT("No CDROM"), wxOK | wxICON_ERROR, this );
+    wxMessageBox ("No CDROM drive is enabled.  Use Edit:ATA to set one up.",
+                  "No CDROM", wxOK | wxICON_ERROR, this );
     return;
   }
   ParamDialog dlg (this, -1);
-  dlg.SetTitle (wxT("Configure CDROM"));
+  dlg.SetTitle ("Configure CDROM");
   dlg.AddParam (firstcd);
   dlg.SetRuntimeFlag (sim_thread != NULL);
   dlg.ShowModal ();
@@ -1289,7 +1289,7 @@
   int channel = id - ID_Edit_ATA0;
   ParamDialog dlg (this, -1);
   wxString str;
-  str.Printf (wxT("Configure ATA%d"), channel);
+  str.Printf ("Configure ATA%d", channel);
   dlg.SetTitle (str);
   dlg.SetRuntimeFlag (sim_thread != NULL);
   dlg.AddParam (SIM->get_param ((bx_id)(BXP_ATA0_MENU+channel)));
@@ -1298,7 +1298,7 @@
 
 void MyFrame::OnToolbarClick(wxCommandEvent& event)
 {
-  wxLogDebug (wxT("clicked toolbar thingy"));
+  wxLogDebug ("clicked toolbar thingy");
   bx_toolbar_buttons which = BX_TOOLBAR_UNDEFINED;
   int id = event.GetId ();
   switch (id) {
@@ -1323,7 +1323,7 @@
     case ID_Toolbar_Mouse_en: which = BX_TOOLBAR_MOUSE_EN; break;
     case ID_Toolbar_User: which = BX_TOOLBAR_USER; break;
     default:
-      wxLogError (wxT("unknown toolbar id %d"), id);
+      wxLogError ("unknown toolbar id %d", id);
   }
   if (num_events < MAX_EVENTS) {
     event_queue[num_events].type = BX_ASYNC_EVT_TOOLBAR;
@@ -1364,27 +1364,27 @@
   //     the -1 and calls quit_sim, which longjumps to quit_context, which is
   //     right here in SimThread::Entry.
   //   - Entry() exits and the thread stops. Whew.
-  wxLogDebug (wxT("in SimThread, starting at bx_continue_after_config_interface"));
+  wxLogDebug ("in SimThread, starting at bx_continue_after_config_interface");
   static jmp_buf context;  // this must not go out of scope. maybe static not needed
   if (setjmp (context) == 0) {
     SIM->set_quit_context (&context);
     SIM->begin_simulation (bx_startup_flags.argc, bx_startup_flags.argv);
-    wxLogDebug (wxT("in SimThread, SIM->begin_simulation() exited normally"));
+    wxLogDebug ("in SimThread, SIM->begin_simulation() exited normally");
   } else {
-    wxLogDebug (wxT("in SimThread, SIM->begin_simulation() exited by longjmp"));
+    wxLogDebug ("in SimThread, SIM->begin_simulation() exited by longjmp");
   }
   SIM->set_quit_context (NULL);
   // it is possible that the whole interface has already been shut down.
   // If so, we must end immediately.
   // we're in the sim thread, so we must get a gui mutex before calling
   // wxwidgets methods.
-  wxLogDebug (wxT("SimThread::Entry: get gui mutex"));
+  wxLogDebug ("SimThread::Entry: get gui mutex");
   wxMutexGuiEnter();
   if (!wxBochsClosing) {
-    wxLogDebug (wxT("SimThread::Entry: sim thread ending.  call simStatusChanged"));
+    wxLogDebug ("SimThread::Entry: sim thread ending.  call simStatusChanged");
     theFrame->simStatusChanged (theFrame->Stop, true);
   } else {
-    wxLogMessage (wxT("SimThread::Entry: the gui is waiting for sim to finish.  Now that it has finished, I will close the frame."));
+    wxLogMessage ("SimThread::Entry: the gui is waiting for sim to finish.  Now that it has finished, I will close the frame.");
     theFrame->Close (TRUE);
   }
   wxMutexGuiLeave();
@@ -1456,23 +1456,23 @@
   wxCommandEvent wxevent (wxEVT_COMMAND_MENU_SELECTED, ID_Sim2CI_Event);
   wxevent.SetEventObject ((wxEvent *)event);
   if (isSimThread ()) {
-    IFDBG_EVENT (wxLogDebug (wxT("Sending an event to the window")));
+    IFDBG_EVENT (wxLogDebug ("Sending an event to the window"));
     wxPostEvent (frame, wxevent);
     // if it is an asynchronous event, return immediately.  The event will be
     // freed by the recipient in the GUI thread.
     if (async) return NULL;
-    wxLogDebug (wxT("SiminterfaceCallback2: synchronous event; waiting for response"));
+    wxLogDebug ("SiminterfaceCallback2: synchronous event; waiting for response");
     // now wait forever for the GUI to post a response.
     BxEvent *response = NULL;
     while (response == NULL) {
           response = GetSyncResponse ();
           if (!response) {
-            //wxLogDebug (wxT("no sync response yet, waiting"));
+            //wxLogDebug ("no sync response yet, waiting");
             this->Sleep (20);
           }
           // don't get stuck here if the gui is trying to close.
           if (wxBochsClosing) {
-            wxLogDebug (wxT("breaking out of sync event wait because gui is closing"));
+            wxLogDebug ("breaking out of sync event wait because gui is closing");
             event->retcode = -1;
             return event;
           }
@@ -1480,7 +1480,7 @@
     wxASSERT (response != NULL);
     return response;
   } else {
-    wxLogDebug (wxT("sim2ci event sent from the GUI thread. calling handler directly"));
+    wxLogDebug ("sim2ci event sent from the GUI thread. calling handler directly");
     theFrame->OnSim2CIEvent (wxevent);
     return event;
   }
@@ -1491,7 +1491,7 @@
 {
   wxCriticalSectionLocker lock(sim2gui_mailbox_lock);
   if (sim2gui_mailbox != NULL) {
-    wxLogDebug (wxT("WARNING: ClearSyncResponse is throwing away an event that was previously in the mailbox"));
+    wxLogDebug ("WARNING: ClearSyncResponse is throwing away an event that was previously in the mailbox");
   }
   sim2gui_mailbox = NULL;
 }
@@ -1501,7 +1501,7 @@
 {
   wxCriticalSectionLocker lock(sim2gui_mailbox_lock);
   if (sim2gui_mailbox != NULL) {
-    wxLogDebug (wxT("WARNING: SendSyncResponse is throwing away an event that was previously in the mailbox"));
+    wxLogDebug ("WARNING: SendSyncResponse is throwing away an event that was previously in the mailbox");
   }
   sim2gui_mailbox = event;
 }
@@ -1522,7 +1522,7 @@
 safeWxStrcpy (char *dest, wxString src, int destlen)
 {
   wxString tmp (src);
-  strncpy (dest, (char *)tmp.c_str (), destlen);
+  strncpy (dest, tmp.c_str (), destlen);
   dest[destlen-1] = 0;
 }
 
diff -ur bochs-2.2.6.orig/gui/wxmain.h bochs-2.2.6/gui/wxmain.h
--- bochs-2.2.6.orig/gui/wxmain.h	2006-02-15 21:31:32.000000000 +0100
+++ bochs-2.2.6/gui/wxmain.h	2005-11-24 19:51:55.000000000 +0100
@@ -135,7 +135,7 @@
   bx_bool fillBxKeyEvent_MSW (wxKeyEvent& event, BxKeyEvent& bxev, bx_bool release);
   bx_bool fillBxKeyEvent_GTK (wxKeyEvent& event, BxKeyEvent& bxev, bx_bool release);
 public:
-  MyPanel(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTAB_TRAVERSAL, const wxString& name = wxT("panel"));
+  MyPanel(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTAB_TRAVERSAL, const wxString& name = "panel");
   ~MyPanel();
   void OnKeyDown(wxKeyEvent& event);
   void OnKeyUp(wxKeyEvent& event);


Index: .cvsignore
===================================================================
RCS file: /cvs/extras/rpms/bochs/devel/.cvsignore,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- .cvsignore	10 Jul 2005 16:14:58 -0000	1.5
+++ .cvsignore	15 Feb 2006 21:20:29 -0000	1.6
@@ -1,2 +1,2 @@
+bochs-2.2.6.tar.gz
 dlxlinux4.tar.gz
-bochs-2.2.1.tar.gz


Index: bochs.spec
===================================================================
RCS file: /cvs/extras/rpms/bochs/devel/bochs.spec,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- bochs.spec	16 Dec 2005 08:54:43 -0000	1.11
+++ bochs.spec	15 Feb 2006 21:20:29 -0000	1.12
@@ -1,9 +1,8 @@
 %bcond_with     debugger
-%bcond_with     wx
 
 Name:           bochs
-Version:        2.2.1
-Release:        2%{?dist}
+Version:        2.2.6
+Release:        1%{?dist}
 Summary:        Portable x86 PC emulator
 
 Group:          Applications/Emulators
@@ -12,8 +11,7 @@
 Source0:        http://download.sf.net/bochs/%{name}-%{version}.tar.gz
 Source1:        http://bochs.sourceforge.net/guestos/dlxlinux4.tar.gz
 Patch0:         %{name}-nonet-build.patch
-Patch1:         %{name}-dlxreadme.patch
-Patch2:         %{name}-config.patch
+Patch1:         %{name}-config.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 BuildRequires:  docbook-utils
@@ -21,9 +19,7 @@
 BuildRequires:  libXpm-devel
 BuildRequires:  ncurses-devel
 BuildRequires:  SDL-devel
-%if %{with wx}
 BuildRequires:  wxGTK-devel
-%endif
 %if %{with debugger}
 BuildRequires:  readline-devel
 %endif
@@ -49,7 +45,6 @@
 %prep
 %setup -q
 %patch0 -p0
-%patch1 -p0
 cp -p %{SOURCE1} .
 
 # Uh-oh, great!
@@ -73,26 +68,24 @@
 # are not properties of the build target architecture.
 %configure \
   --enable-plugins \
-  --enable-cpu-level=5 \
   --enable-ne2000 \
   --enable-pci \
-  --enable-4meg-pages \
-  --enable-pae \
   %{?with_debugger:--enable-debugger} \
   --enable-all-optimizations \
   --enable-vbe \
+  --enable-clgd54xx \
   --enable-3dnow \
-  --enable-mmx \
-  --enable-cdrom \
   --enable-sb16=linux \
   --with-x11 \
   --with-nogui \
   --with-term \
   --with-rfb \
   --with-sdl \
-  --with%{!?with_wx:out}-wx
+  --with-wx
 
-make %{?_smp_mflags}
+#? --enable-raw-serial
+make 
+# %{?_smp_mflags}
 make unpack_dlx
 
 # This needs to be done after "make unpack_dlx".
@@ -134,6 +127,14 @@
 
 
 %changelog
+* Wed Feb 15 2006 Hans de Goede <j.w.r.degoede at hhs.nl> - 2.2.6-1
+- New upstream version 2.2.6
+- Remove --enable-pae as that requires a CPU level of 6 now
+- Remove a few configure switches which are identical to the
+  upstream defaults and thus don't do anything
+- Add --enable-clgd54xx
+- Fix compile with wxGTK-2.6 and unconditionalize wxGTK build (WIP)
+
 * Fri Dec 16 2005 Ville Skyttä <ville.skytta at iki.fi> - 2.2.1-2
 - Adapt to modular X.
 - Fix build with g++ 4.1.0.


Index: sources
===================================================================
RCS file: /cvs/extras/rpms/bochs/devel/sources,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- sources	10 Jul 2005 16:14:58 -0000	1.5
+++ sources	15 Feb 2006 21:20:29 -0000	1.6
@@ -1,2 +1,2 @@
+961482eb78b55fe3e0e0639e34b4c2c1  bochs-2.2.6.tar.gz
 379269841ae5aef95e4ec56d6d186532  dlxlinux4.tar.gz
-50484c75d8175fcd97a81432ac18fb71  bochs-2.2.1.tar.gz




More information about the fedora-extras-commits mailing list