]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/regtest/regtest.cpp
warning fixes (closes 767152)
[wxWidgets.git] / samples / regtest / regtest.cpp
index f1960608af9674362dc62509d3da9d97d5bf6e74..9e4c080e48307a7a5d451b0f9009e8d9ea10a60e 100644 (file)
@@ -128,7 +128,7 @@ private:
       void Refresh();
       bool DeleteChild(TreeNode *child);
       void DestroyChildren();
       void Refresh();
       bool DeleteChild(TreeNode *child);
       void DestroyChildren();
-      const char *FullName() const;
+      const wxChar *FullName() const;
 
       // get the associated key: make sure the pointer is !NULL
       wxRegKey& Key() { if ( !m_pKey ) OnExpand(); return *m_pKey; }
 
       // get the associated key: make sure the pointer is !NULL
       wxRegKey& Key() { if ( !m_pKey ) OnExpand(); return *m_pKey; }
@@ -162,7 +162,7 @@ public:
   void AddStdKeys();
 
 private:
   void AddStdKeys();
 
 private:
-  DECLARE_EVENT_TABLE();
+  DECLARE_EVENT_TABLE()
 };
 
 // ----------------------------------------------------------------------------
 };
 
 // ----------------------------------------------------------------------------
@@ -172,7 +172,7 @@ class RegFrame : public wxFrame
 {
 public:
   // ctor & dtor
 {
 public:
   // ctor & dtor
-  RegFrame(wxFrame *parent, char *title, int x, int y, int w, int h);
+  RegFrame(wxFrame *parent, wxChar *title, int x, int y, int w, int h);
   virtual ~RegFrame();
 
   // callbacks
   virtual ~RegFrame();
 
   // callbacks
@@ -194,7 +194,7 @@ public:
 
   void OnInfo     (wxCommandEvent& event);
 
 
   void OnInfo     (wxCommandEvent& event);
 
-  DECLARE_EVENT_TABLE();
+  DECLARE_EVENT_TABLE()
 
 private:
   RegTreeCtrl *m_treeCtrl;
 
 private:
   RegTreeCtrl *m_treeCtrl;
@@ -273,23 +273,23 @@ END_EVENT_TABLE()
 wxMenu *CreateRegistryMenu()
 {
   wxMenu *pMenuNew = new wxMenu;
 wxMenu *CreateRegistryMenu()
 {
   wxMenu *pMenuNew = new wxMenu;
-  pMenuNew->Append(Menu_NewKey,    "&Key",          "Create a new key");
+  pMenuNew->Append(Menu_NewKey,    _T("&Key"),          _T("Create a new key"));
   pMenuNew->AppendSeparator();
   pMenuNew->AppendSeparator();
-  pMenuNew->Append(Menu_NewText,   "&Text value",   "Create a new text value");
-  pMenuNew->Append(Menu_NewBinary, "&Binary value", "Create a new binary value");
+  pMenuNew->Append(Menu_NewText,   _T("&Text value"),   _T("Create a new text value"));
+  pMenuNew->Append(Menu_NewBinary, _T("&Binary value"), _T("Create a new binary value"));
 
   wxMenu *pMenuReg = new wxMenu;
 
   wxMenu *pMenuReg = new wxMenu;
-  pMenuReg->Append(Menu_New, "&New", pMenuNew);
-  pMenuReg->Append(Menu_Delete,   "&Delete...", "Delete selected key/value");
+  pMenuReg->Append(Menu_New, _T("&New"), pMenuNew);
+  pMenuReg->Append(Menu_Delete,   _T("&Delete..."), _T("Delete selected key/value"));
   pMenuReg->AppendSeparator();
   pMenuReg->AppendSeparator();
-  pMenuReg->Append(Menu_GoTo,     "&Go to...\tCtrl-G",    "Go to registry key");
-  pMenuReg->Append(Menu_Expand,   "&Expand",    "Expand current key");
-  pMenuReg->Append(Menu_Collapse, "&Collapse",  "Collapse current key");
-  pMenuReg->Append(Menu_Toggle,   "&Toggle",    "Toggle current key");
+  pMenuReg->Append(Menu_GoTo,     _T("&Go to...\tCtrl-G"),    _T("Go to registry key"));
+  pMenuReg->Append(Menu_Expand,   _T("&Expand"),    _T("Expand current key"));
+  pMenuReg->Append(Menu_Collapse, _T("&Collapse"),  _T("Collapse current key"));
+  pMenuReg->Append(Menu_Toggle,   _T("&Toggle"),    _T("Toggle current key"));
   pMenuReg->AppendSeparator();
   pMenuReg->AppendSeparator();
-  pMenuReg->Append(Menu_Refresh,  "&Refresh",   "Refresh the subtree");
+  pMenuReg->Append(Menu_Refresh,  _T("&Refresh"),   _T("Refresh the subtree"));
   pMenuReg->AppendSeparator();
   pMenuReg->AppendSeparator();
-  pMenuReg->Append(Menu_Info,     "&Properties","Information about current selection");
+  pMenuReg->Append(Menu_Info,     _T("&Properties"),_T("Information about current selection"));
 
   return pMenuReg;
 }
 
   return pMenuReg;
 }
@@ -303,7 +303,7 @@ IMPLEMENT_APP(RegApp)
 bool RegApp::OnInit()
 {
   // create the main frame window and show it
 bool RegApp::OnInit()
 {
   // create the main frame window and show it
-  RegFrame *frame = new RegFrame(NULL, "wxRegTest", 50, 50, 600, 350);
+  RegFrame *frame = new RegFrame(NULL, _T("wxRegTest"), 50, 50, 600, 350);
   frame->Show(TRUE);
 
   SetTopWindow(frame);
   frame->Show(TRUE);
 
   SetTopWindow(frame);
@@ -315,7 +315,7 @@ bool RegApp::OnInit()
 // RegFrame
 // ----------------------------------------------------------------------------
 
 // RegFrame
 // ----------------------------------------------------------------------------
 
-RegFrame::RegFrame(wxFrame *parent, char *title, int x, int y, int w, int h)
+RegFrame::RegFrame(wxFrame *parent, wxChar *title, int x, int y, int w, int h)
         : wxFrame(parent, -1, title, wxPoint(x, y), wxSize(w, h))
 {
   // this reduces flicker effects
         : wxFrame(parent, -1, title, wxPoint(x, y), wxSize(w, h))
 {
   // this reduces flicker effects
@@ -323,20 +323,20 @@ RegFrame::RegFrame(wxFrame *parent, char *title, int x, int y, int w, int h)
 
   // set the icon
   // ------------
 
   // set the icon
   // ------------
-  SetIcon(wxIcon("app_icon"));
+  SetIcon(wxIcon(_T("app_icon")));
 
   // create menu
   // -----------
   wxMenu *pMenuFile = new wxMenu;
 
   // create menu
   // -----------
   wxMenu *pMenuFile = new wxMenu;
-  pMenuFile->Append(Menu_Test, "Te&st", "Test key creation");
+  pMenuFile->Append(Menu_Test, _T("Te&st"), _T("Test key creation"));
   pMenuFile->AppendSeparator();
   pMenuFile->AppendSeparator();
-  pMenuFile->Append(Menu_About, "&About...", "Show an extraordinarly beautiful dialog");
+  pMenuFile->Append(Menu_About, _T("&About..."), _T("Show an extraordinarly beautiful dialog"));
   pMenuFile->AppendSeparator();
   pMenuFile->AppendSeparator();
-  pMenuFile->Append(Menu_Quit,  "E&xit", "Quit this program");
+  pMenuFile->Append(Menu_Quit,  _T("E&xit"), _T("Quit this program"));
 
   wxMenuBar *pMenu = new wxMenuBar;
 
   wxMenuBar *pMenu = new wxMenuBar;
-  pMenu->Append(pMenuFile, "&File");
-  pMenu->Append(CreateRegistryMenu(),  "&Registry");
+  pMenu->Append(pMenuFile, _T("&File"));
+  pMenu->Append(CreateRegistryMenu(),  _T("&Registry"));
   SetMenuBar(pMenu);
 
   // create child controls
   SetMenuBar(pMenu);
 
   // create child controls
@@ -362,9 +362,9 @@ void RegFrame::OnQuit(wxCommandEvent& event)
 void RegFrame::OnAbout(wxCommandEvent& event)
 {
   wxMessageDialog dialog(this,
 void RegFrame::OnAbout(wxCommandEvent& event)
 {
   wxMessageDialog dialog(this,
-                         "wxRegistry sample\n"
-                         "© 1998, 2000 Vadim Zeitlin",
-                         "About wxRegTest", wxOK);
+                         _T("wxRegistry sample\n")
+                         _T("© 1998, 2000 Vadim Zeitlin"),
+                         _T("About wxRegTest"), wxOK);
 
   dialog.ShowModal();
 }
 
   dialog.ShowModal();
 }
@@ -421,7 +421,7 @@ void RegFrame::OnNewKey(wxCommandEvent& WXUNUSED(event))
 {
   if ( m_treeCtrl->IsKeySelected() ) {
     m_treeCtrl->CreateNewKey(
 {
   if ( m_treeCtrl->IsKeySelected() ) {
     m_treeCtrl->CreateNewKey(
-      wxGetTextFromUser("Enter the name of the new key"));
+      wxGetTextFromUser(_T("Enter the name of the new key")));
   }
 }
 
   }
 }
 
@@ -429,7 +429,7 @@ void RegFrame::OnNewText(wxCommandEvent& WXUNUSED(event))
 {
   if ( m_treeCtrl->IsKeySelected() ) {
     m_treeCtrl->CreateNewTextValue(
 {
   if ( m_treeCtrl->IsKeySelected() ) {
     m_treeCtrl->CreateNewTextValue(
-      wxGetTextFromUser("Enter the name for the new text value"));
+      wxGetTextFromUser(_T("Enter the name for the new text value")));
   }
 }
 
   }
 }
 
@@ -437,7 +437,7 @@ void RegFrame::OnNewBinary(wxCommandEvent& WXUNUSED(event))
 {
   if ( m_treeCtrl->IsKeySelected() ) {
     m_treeCtrl->CreateNewBinaryValue(
 {
   if ( m_treeCtrl->IsKeySelected() ) {
     m_treeCtrl->CreateNewBinaryValue(
-      wxGetTextFromUser("Enter the name for the new binary value"));
+      wxGetTextFromUser(_T("Enter the name for the new binary value")));
   }
 }
 
   }
 }
 
@@ -452,8 +452,8 @@ void RegFrame::OnInfo(wxCommandEvent& WXUNUSED(event))
 RegImageList::RegImageList() : wxImageList(16, 16, TRUE)
 {
   // should be in sync with enum RegImageList::RegIcon
 RegImageList::RegImageList() : wxImageList(16, 16, TRUE)
 {
   // should be in sync with enum RegImageList::RegIcon
-  static const char *aszIcons[] = { "key1","key2","key3","value1","value2" };
-  wxString str = "icon_";
+  static const wxChar *aszIcons[] = { _T("key1"),_T("key2"),_T("key3"),_T("value1"),_T("value2") };
+  wxString str = _T("icon_");
   for ( unsigned int n = 0; n < WXSIZEOF(aszIcons); n++ ) {
     Add(wxIcon(str + aszIcons[n], wxBITMAP_TYPE_ICO_RESOURCE));
   }
   for ( unsigned int n = 0; n < WXSIZEOF(aszIcons); n++ ) {
     Add(wxIcon(str + aszIcons[n], wxBITMAP_TYPE_ICO_RESOURCE));
   }
@@ -480,7 +480,7 @@ RegTreeCtrl::TreeNode *RegTreeCtrl::InsertNewTreeNode(TreeNode *pParent,
                                    pNewNode->IsKey() ? strName : *pstrValue,
                                    idImage);
 
                                    pNewNode->IsKey() ? strName : *pstrValue,
                                    idImage);
 
-  wxASSERT_MSG( pNewNode->m_id, "can't create tree control item!");
+  wxASSERT_MSG( pNewNode->m_id, wxT("can't create tree control item!"));
 
   // save the pointer in the item
   SetItemData(pNewNode->m_id, pNewNode);
 
   // save the pointer in the item
   SetItemData(pNewNode->m_id, pNewNode);
@@ -519,7 +519,7 @@ RegTreeCtrl::RegTreeCtrl(wxWindow *parent, wxWindowID id)
 
   // create root keys
   // ----------------
 
   // create root keys
   // ----------------
-  m_pRoot = InsertNewTreeNode(NULL, "Registry Root", RegImageList::Root);
+  m_pRoot = InsertNewTreeNode(NULL, _T("Registry Root"), RegImageList::Root);
 
   // create popup menu
   // -----------------
 
   // create popup menu
   // -----------------
@@ -548,7 +548,7 @@ void RegTreeCtrl::OnIdle(wxIdleEvent& WXUNUSED(event))
 {
     if ( m_restoreStatus ) {
         // restore it after OnItemExpanding()
 {
     if ( m_restoreStatus ) {
         // restore it after OnItemExpanding()
-        wxLogStatus("Ok");
+        wxLogStatus(wxT("Ok"));
         wxSetCursor(*wxSTANDARD_CURSOR);
 
         m_restoreStatus = FALSE;
         wxSetCursor(*wxSTANDARD_CURSOR);
 
         m_restoreStatus = FALSE;
@@ -579,35 +579,35 @@ void RegTreeCtrl::OnMenuTest()
   long lId = GetSelection();
   TreeNode *pNode = (TreeNode *)GetItemData(lId);
 
   long lId = GetSelection();
   TreeNode *pNode = (TreeNode *)GetItemData(lId);
 
-  wxCHECK_RET( pNode != NULL, "tree item without data?" );
+  wxCHECK_RET( pNode != NULL, wxT("tree item without data?") );
 
   if ( pNode->IsRoot() ) {
 
   if ( pNode->IsRoot() ) {
-    wxLogError("Can't create a subkey under the root key.");
+    wxLogError(wxT("Can't create a subkey under the root key."));
     return;
   }
   if ( !pNode->IsKey() ) {
     return;
   }
   if ( !pNode->IsKey() ) {
-    wxLogError("Can't create a subkey under a value!");
+    wxLogError(wxT("Can't create a subkey under a value!"));
     return;
   }
 
     return;
   }
 
-  wxRegKey key1(pNode->Key(), "key1");
+  wxRegKey key1(pNode->Key(), _T("key1"));
   if ( key1.Create() ) {
   if ( key1.Create() ) {
-    wxRegKey key2a(key1, "key2a"), key2b(key1, "key2b");
+    wxRegKey key2a(key1, _T("key2a")), key2b(key1, _T("key2b"));
     if ( key2a.Create() && key2b.Create() ) {
       // put some values under the newly created keys
     if ( key2a.Create() && key2b.Create() ) {
       // put some values under the newly created keys
-      key1.SetValue("first_term", "10");
-      key1.SetValue("second_term", "7");
-      key2a = "this is the unnamed value";
-      key2b.SetValue("sum", 17);
+      key1.SetValue(wxT("first_term"), _T("10"));
+      key1.SetValue(wxT("second_term"), _T("7"));
+      key2a = _T("this is the unnamed value");
+      key2b.SetValue(wxT("sum"), 17);
 
       // refresh tree
       pNode->Refresh();
 
       // refresh tree
       pNode->Refresh();
-      wxLogStatus("Test keys successfully added.");
+      wxLogStatus(wxT("Test keys successfully added."));
       return;
     }
   }
 
       return;
     }
   }
 
-  wxLogError("Creation of test keys failed.");
+  wxLogError(wxT("Creation of test keys failed."));
 }
 
 void RegTreeCtrl::OnChar(wxKeyEvent& event)
 }
 
 void RegTreeCtrl::OnChar(wxKeyEvent& event)
@@ -639,11 +639,11 @@ void RegTreeCtrl::OnSelChanged(wxTreeEvent& event)
 void RegTreeCtrl::OnItemExpanding(wxTreeEvent& event)
 {
   TreeNode *pNode = GetNode(event);
 void RegTreeCtrl::OnItemExpanding(wxTreeEvent& event)
 {
   TreeNode *pNode = GetNode(event);
-  bool bExpanding = event.GetCode() == wxTREE_EXPAND_EXPAND;
+  bool bExpanding = event.GetKeyCode() == wxTREE_EXPAND_EXPAND;
 
   // expansion might take some time
   wxSetCursor(*wxHOURGLASS_CURSOR);
 
   // expansion might take some time
   wxSetCursor(*wxHOURGLASS_CURSOR);
-  wxLogStatus("Working...");
+  wxLogStatus(wxT("Working..."));
   wxYield();  // to give the status line a chance to refresh itself
   m_restoreStatus = TRUE;   // some time later...
 
   wxYield();  // to give the status line a chance to refresh itself
   m_restoreStatus = TRUE;   // some time later...
 
@@ -711,13 +711,13 @@ void RegTreeCtrl::OnBeginDrag(wxTreeEvent& event)
     TreeNode *pNode = GetNode(event);
     if ( pNode->IsRoot() || pNode->Parent()->IsRoot() )
     {
     TreeNode *pNode = GetNode(event);
     if ( pNode->IsRoot() || pNode->Parent()->IsRoot() )
     {
-        wxLogStatus("This registry key can't be %s.",
-                    m_copyOnDrop ? "copied" : "moved");
+        wxLogStatus(wxT("This registry key can't be %s."),
+                    m_copyOnDrop ? wxT("copied") : wxT("moved"));
     }
     else
     {
     }
     else
     {
-        wxLogStatus("%s item %s...",
-                    m_copyOnDrop ? "Copying" : "Moving",
+        wxLogStatus(wxT("%s item %s..."),
+                    m_copyOnDrop ? wxT("Copying") : wxT("Moving"),
                     pNode->FullName());
 
         m_draggedItem = pNode;
                     pNode->FullName());
 
         m_draggedItem = pNode;
@@ -728,7 +728,7 @@ void RegTreeCtrl::OnBeginDrag(wxTreeEvent& event)
 
 void RegTreeCtrl::OnEndDrag(wxTreeEvent& event)
 {
 
 void RegTreeCtrl::OnEndDrag(wxTreeEvent& event)
 {
-    wxCHECK_RET( m_draggedItem, "end drag without begin drag?" );
+    wxCHECK_RET( m_draggedItem, wxT("end drag without begin drag?") );
 
     // clear the pointer anyhow
     TreeNode *src = m_draggedItem;
 
     // clear the pointer anyhow
     TreeNode *src = m_draggedItem;
@@ -741,7 +741,7 @@ void RegTreeCtrl::OnEndDrag(wxTreeEvent& event)
         dst = dst->Parent();
     }
     if ( !dst || dst->IsRoot() ) {
         dst = dst->Parent();
     }
     if ( !dst || dst->IsRoot() ) {
-        wxLogError("Can't create a key here.");
+        wxLogError(wxT("Can't create a key here."));
 
         return;
     }
 
         return;
     }
@@ -749,7 +749,7 @@ void RegTreeCtrl::OnEndDrag(wxTreeEvent& event)
     bool isKey = src->IsKey();
     if ( (isKey && (src == dst)) ||
          (!isKey && (dst->Parent() == src)) ) {
     bool isKey = src->IsKey();
     if ( (isKey && (src == dst)) ||
          (!isKey && (dst->Parent() == src)) ) {
-        wxLogStatus("Can't copy something on itself");
+        wxLogStatus(wxT("Can't copy something on itself"));
 
         return;
     }
 
         return;
     }
@@ -760,18 +760,18 @@ void RegTreeCtrl::OnEndDrag(wxTreeEvent& event)
     nameDst << wxString(dst->FullName()).AfterFirst('\\') << '\\'
             << wxString(src->FullName()).AfterLast('\\');
 
     nameDst << wxString(dst->FullName()).AfterFirst('\\') << '\\'
             << wxString(src->FullName()).AfterLast('\\');
 
-    wxString verb = m_copyOnDrop ? "copy" : "move";
-    wxString what = isKey ? "key" : "value";
+    wxString verb = m_copyOnDrop ? _T("copy") : _T("move");
+    wxString what = isKey ? _T("key") : _T("value");
 
     if ( wxMessageBox(wxString::Format
                         (
 
     if ( wxMessageBox(wxString::Format
                         (
-                         "Do you really want to %s the %s %s to %s?",
+                         wxT("Do you really want to %s the %s %s to %s?"),
                          verb.c_str(),
                          what.c_str(),
                          nameSrc.c_str(),
                          nameDst.c_str()
                         ),
                          verb.c_str(),
                          what.c_str(),
                          nameSrc.c_str(),
                          nameDst.c_str()
                         ),
-                      "RegTest Confirm",
+                      _T("RegTest Confirm"),
                       wxICON_QUESTION | wxYES_NO | wxCANCEL, this) != wxYES ) {
       return;
     }
                       wxICON_QUESTION | wxYES_NO | wxCANCEL, this) != wxYES ) {
       return;
     }
@@ -782,7 +782,7 @@ void RegTreeCtrl::OnEndDrag(wxTreeEvent& event)
         wxRegKey keyDst(dst->Key(), src->m_strName);
         ok = keyDst.Create(FALSE);
         if ( !ok ) {
         wxRegKey keyDst(dst->Key(), src->m_strName);
         ok = keyDst.Create(FALSE);
         if ( !ok ) {
-            wxLogError("Key '%s' already exists");
+            wxLogError(wxT("Key '%s' already exists"), keyDst.GetName().c_str());
         }
         else {
             ok = key.Copy(keyDst);
         }
         else {
             ok = key.Copy(keyDst);
@@ -806,7 +806,8 @@ void RegTreeCtrl::OnEndDrag(wxTreeEvent& event)
     }
 
     if ( !ok ) {
     }
 
     if ( !ok ) {
-        wxLogError("Failed to %s registry %s.", verb.c_str(), what.c_str());
+        wxLogError(wxT("Failed to %s registry %s."),
+                   verb.c_str(), what.c_str());
     }
     else {
         dst->Refresh();
     }
     else {
         dst->Refresh();
@@ -840,7 +841,7 @@ bool RegTreeCtrl::TreeNode::OnExpand()
   }
 
   if ( !m_pKey->Open() ) {
   }
 
   if ( !m_pKey->Open() ) {
-    wxLogError("The key '%s' can't be opened.", FullName());
+    wxLogError(wxT("The key '%s' can't be opened."), FullName());
     return FALSE;
   }
 
     return FALSE;
   }
 
@@ -867,10 +868,10 @@ bool RegTreeCtrl::TreeNode::OnExpand()
   while ( bCont ) {
     wxString strItem;
     if (str.IsEmpty())
   while ( bCont ) {
     wxString strItem;
     if (str.IsEmpty())
-        strItem = "<default>";
+        strItem = _T("<default>");
     else
         strItem = str;
     else
         strItem = str;
-    strItem += " = ";
+    strItem += _T(" = ");
 
     // determine the appropriate icon
     RegImageList::Icon icon;
 
     // determine the appropriate icon
     RegImageList::Icon icon;
@@ -913,10 +914,11 @@ bool RegTreeCtrl::TreeNode::OnExpand()
 
   if ( isEmpty ) {
     // this is for the case when our last child was just deleted
 
   if ( isEmpty ) {
     // this is for the case when our last child was just deleted
-    m_pTree->Collapse(Id());
+    wxTreeItemId theId(Id()); // Temp variable seems necessary for BC++
+    m_pTree->Collapse(theId);
 
     // we won't be expanded any more
 
     // we won't be expanded any more
-    m_pTree->SetItemHasChildren(Id(), FALSE);
+    m_pTree->SetItemHasChildren(theId, FALSE);
   }
 
   return TRUE;
   }
 
   return TRUE;
@@ -935,14 +937,15 @@ void RegTreeCtrl::TreeNode::Refresh()
     if ( !IsKey() )
         return;
 
     if ( !IsKey() )
         return;
 
-    bool wasExpanded = m_pTree->IsExpanded(Id());
+    wxTreeItemId theId(Id()); // Temp variable seems necessary for BC++
+    bool wasExpanded = m_pTree->IsExpanded(theId);
     if ( wasExpanded )
     if ( wasExpanded )
-        m_pTree->Collapse(Id());
+        m_pTree->Collapse(theId);
 
     OnCollapse();
 
     OnCollapse();
-    m_pTree->SetItemHasChildren(Id());
+    m_pTree->SetItemHasChildren(theId);
     if ( wasExpanded ) {
     if ( wasExpanded ) {
-        m_pTree->Expand(Id());
+        m_pTree->Expand(theId);
         OnExpand();
     }
 }
         OnExpand();
     }
 }
@@ -951,7 +954,7 @@ bool RegTreeCtrl::TreeNode::DeleteChild(TreeNode *child)
 {
     int index = m_aChildren.Index(child);
     wxCHECK_MSG( index != wxNOT_FOUND, FALSE,
 {
     int index = m_aChildren.Index(child);
     wxCHECK_MSG( index != wxNOT_FOUND, FALSE,
-                 "our child in tree should be in m_aChildren" );
+                 wxT("our child in tree should be in m_aChildren") );
 
     m_aChildren.RemoveAt((size_t)index);
 
 
     m_aChildren.RemoveAt((size_t)index);
 
@@ -967,7 +970,8 @@ bool RegTreeCtrl::TreeNode::DeleteChild(TreeNode *child)
     }
 
     if ( ok ) {
     }
 
     if ( ok ) {
-        m_pTree->Delete(child->Id());
+        wxTreeItemId theId(child->Id()); // Temp variable seems necessary for BC++
+        m_pTree->Delete(theId);
 
         Refresh();
     }
 
         Refresh();
     }
@@ -983,7 +987,8 @@ void RegTreeCtrl::TreeNode::DestroyChildren()
     long lId = m_aChildren[n]->Id();
     // no, wxTreeCtrl will do it
     //delete m_aChildren[n];
     long lId = m_aChildren[n]->Id();
     // no, wxTreeCtrl will do it
     //delete m_aChildren[n];
-    m_pTree->Delete(lId);
+    wxTreeItemId theId(lId); // Temp variable seems necessary for BC++
+    m_pTree->Delete(theId);
   }
 
   m_aChildren.Empty();
   }
 
   m_aChildren.Empty();
@@ -994,18 +999,18 @@ RegTreeCtrl::TreeNode::~TreeNode()
   delete m_pKey;
 }
 
   delete m_pKey;
 }
 
-const char *RegTreeCtrl::TreeNode::FullName() const
+const wxChar *RegTreeCtrl::TreeNode::FullName() const
 {
   static wxString s_strName;
 
   if ( IsRoot() ) {
 {
   static wxString s_strName;
 
   if ( IsRoot() ) {
-    return "Registry Root";
+    return wxT("Registry Root");
   }
   else {
     // our own registry key might not (yet) exist or we might be a value,
     // so just use the parent's and concatenate
     s_strName = Parent()->FullName();
   }
   else {
     // our own registry key might not (yet) exist or we might be a value,
     // so just use the parent's and concatenate
     s_strName = Parent()->FullName();
-    s_strName << '\\' << m_strName;
+    s_strName << wxT('\\') << m_strName;
 
     return s_strName;
   }
 
     return s_strName;
   }
@@ -1069,27 +1074,27 @@ void RegTreeCtrl::DeleteSelected()
        lParent  = GetParent(lCurrent);
 
   if ( lParent == 0 ) {
        lParent  = GetParent(lCurrent);
 
   if ( lParent == 0 ) {
-    wxLogError("Can't delete root key.");
+    wxLogError(wxT("Can't delete root key."));
     return;
   }
 
   TreeNode *pCurrent = (TreeNode *)GetItemData(lCurrent),
            *pParent  = (TreeNode *)GetItemData(lParent);
 
     return;
   }
 
   TreeNode *pCurrent = (TreeNode *)GetItemData(lCurrent),
            *pParent  = (TreeNode *)GetItemData(lParent);
 
-  wxCHECK_RET( pCurrent && pParent, "either node or parent without data?" );
+  wxCHECK_RET(pCurrent && pParent, wxT("either node or parent without data?"));
 
   if ( pParent->IsRoot() ) {
 
   if ( pParent->IsRoot() ) {
-    wxLogError("Can't delete standard key.");
+    wxLogError(wxT("Can't delete standard key."));
     return;
   }
 
     return;
   }
 
-  wxString what = pCurrent->IsKey() ? "key" : "value";
+  wxString what = pCurrent->IsKey() ? _T("key") : _T("value");
   if ( wxMessageBox(wxString::Format
                     (
   if ( wxMessageBox(wxString::Format
                     (
-                      "Do you really want to delete this %s?",
+                      wxT("Do you really want to delete this %s?"),
                       what.c_str()
                     ),
                       what.c_str()
                     ),
-                    "Confirmation",
+                    _T("Confirmation"),
                     wxICON_QUESTION | wxYES_NO | wxCANCEL, this) != wxYES ) {
     return;
   }
                     wxICON_QUESTION | wxYES_NO | wxCANCEL, this) != wxYES ) {
     return;
   }
@@ -1102,12 +1107,12 @@ void RegTreeCtrl::CreateNewKey(const wxString& strName)
   long lCurrent = GetSelection();
   TreeNode *pCurrent = (TreeNode *)GetItemData(lCurrent);
 
   long lCurrent = GetSelection();
   TreeNode *pCurrent = (TreeNode *)GetItemData(lCurrent);
 
-  wxCHECK_RET( pCurrent != NULL, "node without data?" );
+  wxCHECK_RET( pCurrent != NULL, wxT("node without data?") );
 
   wxASSERT( pCurrent->IsKey() );  // check must have been done before
 
   if ( pCurrent->IsRoot() ) {
 
   wxASSERT( pCurrent->IsKey() );  // check must have been done before
 
   if ( pCurrent->IsRoot() ) {
-    wxLogError("Can't create a new key under the root key.");
+    wxLogError(wxT("Can't create a new key under the root key."));
     return;
   }
 
     return;
   }
 
@@ -1121,16 +1126,16 @@ void RegTreeCtrl::CreateNewTextValue(const wxString& strName)
   long lCurrent = GetSelection();
   TreeNode *pCurrent = (TreeNode *)GetItemData(lCurrent);
 
   long lCurrent = GetSelection();
   TreeNode *pCurrent = (TreeNode *)GetItemData(lCurrent);
 
-  wxCHECK_RET( pCurrent != NULL, "node without data?" );
+  wxCHECK_RET( pCurrent != NULL, wxT("node without data?") );
 
   wxASSERT( pCurrent->IsKey() );  // check must have been done before
 
   if ( pCurrent->IsRoot() ) {
 
   wxASSERT( pCurrent->IsKey() );  // check must have been done before
 
   if ( pCurrent->IsRoot() ) {
-    wxLogError("Can't create a new value under the root key.");
+    wxLogError(wxT("Can't create a new value under the root key."));
     return;
   }
 
     return;
   }
 
-  if ( pCurrent->Key().SetValue(strName, "") )
+  if ( pCurrent->Key().SetValue(strName, _T("")) )
     pCurrent->Refresh();
 }
 
     pCurrent->Refresh();
 }
 
@@ -1139,12 +1144,12 @@ void RegTreeCtrl::CreateNewBinaryValue(const wxString& strName)
   long lCurrent = GetSelection();
   TreeNode *pCurrent = (TreeNode *)GetItemData(lCurrent);
 
   long lCurrent = GetSelection();
   TreeNode *pCurrent = (TreeNode *)GetItemData(lCurrent);
 
-  wxCHECK_RET( pCurrent != NULL, "node without data?" );
+  wxCHECK_RET( pCurrent != NULL, wxT("node without data?") );
 
   wxASSERT( pCurrent->IsKey() );  // check must have been done before
 
   if ( pCurrent->IsRoot() ) {
 
   wxASSERT( pCurrent->IsKey() );  // check must have been done before
 
   if ( pCurrent->IsRoot() ) {
-    wxLogError("Can't create a new value under the root key.");
+    wxLogError(wxT("Can't create a new value under the root key."));
     return;
   }
 
     return;
   }
 
@@ -1159,7 +1164,7 @@ void RegTreeCtrl::ShowProperties()
 
     if ( !pCurrent || pCurrent->IsRoot() )
     {
 
     if ( !pCurrent || pCurrent->IsRoot() )
     {
-        wxLogStatus("No properties");
+        wxLogStatus(wxT("No properties"));
 
         return;
     }
 
         return;
     }
@@ -1170,27 +1175,27 @@ void RegTreeCtrl::ShowProperties()
         size_t nSubKeys, nValues;
         if ( !key.GetKeyInfo(&nSubKeys, NULL, &nValues, NULL) )
         {
         size_t nSubKeys, nValues;
         if ( !key.GetKeyInfo(&nSubKeys, NULL, &nValues, NULL) )
         {
-            wxLogError("Couldn't get key info");
+            wxLogError(wxT("Couldn't get key info"));
         }
         else
         {
         }
         else
         {
-            wxLogMessage("Key '%s' has %u subkeys and %u values.",
+            wxLogMessage(wxT("Key '%s' has %u subkeys and %u values."),
                          key.GetName().c_str(), nSubKeys, nValues);
         }
     }
     else // it's a value
     {
         TreeNode *parent = pCurrent->Parent();
                          key.GetName().c_str(), nSubKeys, nValues);
         }
     }
     else // it's a value
     {
         TreeNode *parent = pCurrent->Parent();
-        wxCHECK_RET( parent, "reg value without key?" );
+        wxCHECK_RET( parent, wxT("reg value without key?") );
 
         const wxRegKey& key = parent->Key();
 
         const wxRegKey& key = parent->Key();
-        const char *value = pCurrent->m_strName.c_str();
-        wxLogMessage("Value '%s' under the key '%s' is of type "
-                     "%d (%s).",
+        const wxChar *value = pCurrent->m_strName.c_str();
+        wxLogMessage(wxT("Value '%s' under the key '%s' is of type ")
+                     wxT("%d (%s)."),
                      value,
                      parent->m_strName.c_str(),
                      key.GetValueType(value),
                      value,
                      parent->m_strName.c_str(),
                      key.GetValueType(value),
-                     key.IsNumericValue(value) ? "numeric" : "string");
+                     key.IsNumericValue(value) ? wxT("numeric") : wxT("string"));
 
     }
 }
 
     }
 }
@@ -1213,7 +1218,7 @@ void RegTreeCtrl::Refresh()
 
     TreeNode *pNode = (TreeNode *)GetItemData(lId);
 
 
     TreeNode *pNode = (TreeNode *)GetItemData(lId);
 
-    wxCHECK_RET( pNode != NULL, "tree item without data?" );
+    wxCHECK_RET( pNode != NULL, wxT("tree item without data?") );
 
     pNode->Refresh();
 }
 
     pNode->Refresh();
 }