X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c41ea66a5de1e88529e0ce2e629f5757b219b97d..646c4aebb22c4b60f71b7c30c2eedfa6328888f4:/samples/regtest/regtest.cpp?ds=sidebyside diff --git a/samples/regtest/regtest.cpp b/samples/regtest/regtest.cpp index f1960608af..9e4c080e48 100644 --- a/samples/regtest/regtest.cpp +++ b/samples/regtest/regtest.cpp @@ -128,7 +128,7 @@ private: 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; } @@ -162,7 +162,7 @@ public: void AddStdKeys(); private: - DECLARE_EVENT_TABLE(); + DECLARE_EVENT_TABLE() }; // ---------------------------------------------------------------------------- @@ -172,7 +172,7 @@ class RegFrame : public wxFrame { 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 @@ -194,7 +194,7 @@ public: void OnInfo (wxCommandEvent& event); - DECLARE_EVENT_TABLE(); + DECLARE_EVENT_TABLE() private: RegTreeCtrl *m_treeCtrl; @@ -273,23 +273,23 @@ END_EVENT_TABLE() 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->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; - 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->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->Append(Menu_Refresh, "&Refresh", "Refresh the subtree"); + pMenuReg->Append(Menu_Refresh, _T("&Refresh"), _T("Refresh the subtree")); pMenuReg->AppendSeparator(); - pMenuReg->Append(Menu_Info, "&Properties","Information about current selection"); + pMenuReg->Append(Menu_Info, _T("&Properties"),_T("Information about current selection")); return pMenuReg; } @@ -303,7 +303,7 @@ IMPLEMENT_APP(RegApp) 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); @@ -315,7 +315,7 @@ bool RegApp::OnInit() // 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 @@ -323,20 +323,20 @@ RegFrame::RegFrame(wxFrame *parent, char *title, int x, int y, int w, int h) // set the icon // ------------ - SetIcon(wxIcon("app_icon")); + SetIcon(wxIcon(_T("app_icon"))); // 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->Append(Menu_About, "&About...", "Show an extraordinarly beautiful dialog"); + pMenuFile->Append(Menu_About, _T("&About..."), _T("Show an extraordinarly beautiful dialog")); 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; - pMenu->Append(pMenuFile, "&File"); - pMenu->Append(CreateRegistryMenu(), "&Registry"); + pMenu->Append(pMenuFile, _T("&File")); + pMenu->Append(CreateRegistryMenu(), _T("&Registry")); SetMenuBar(pMenu); // create child controls @@ -362,9 +362,9 @@ void RegFrame::OnQuit(wxCommandEvent& event) 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(); } @@ -421,7 +421,7 @@ void RegFrame::OnNewKey(wxCommandEvent& WXUNUSED(event)) { 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( - 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( - 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 - 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)); } @@ -480,7 +480,7 @@ RegTreeCtrl::TreeNode *RegTreeCtrl::InsertNewTreeNode(TreeNode *pParent, 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); @@ -519,7 +519,7 @@ RegTreeCtrl::RegTreeCtrl(wxWindow *parent, wxWindowID id) // create root keys // ---------------- - m_pRoot = InsertNewTreeNode(NULL, "Registry Root", RegImageList::Root); + m_pRoot = InsertNewTreeNode(NULL, _T("Registry Root"), RegImageList::Root); // create popup menu // ----------------- @@ -548,7 +548,7 @@ void RegTreeCtrl::OnIdle(wxIdleEvent& WXUNUSED(event)) { if ( m_restoreStatus ) { // restore it after OnItemExpanding() - wxLogStatus("Ok"); + wxLogStatus(wxT("Ok")); wxSetCursor(*wxSTANDARD_CURSOR); m_restoreStatus = FALSE; @@ -579,35 +579,35 @@ void RegTreeCtrl::OnMenuTest() 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() ) { - 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() ) { - wxLogError("Can't create a subkey under a value!"); + wxLogError(wxT("Can't create a subkey under a value!")); return; } - wxRegKey key1(pNode->Key(), "key1"); + wxRegKey key1(pNode->Key(), _T("key1")); 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 - 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(); - wxLogStatus("Test keys successfully added."); + wxLogStatus(wxT("Test keys successfully added.")); return; } } - wxLogError("Creation of test keys failed."); + wxLogError(wxT("Creation of test keys failed.")); } void RegTreeCtrl::OnChar(wxKeyEvent& event) @@ -639,11 +639,11 @@ void RegTreeCtrl::OnSelChanged(wxTreeEvent& 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); - wxLogStatus("Working..."); + wxLogStatus(wxT("Working...")); 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() ) { - 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 { - wxLogStatus("%s item %s...", - m_copyOnDrop ? "Copying" : "Moving", + wxLogStatus(wxT("%s item %s..."), + m_copyOnDrop ? wxT("Copying") : wxT("Moving"), pNode->FullName()); m_draggedItem = pNode; @@ -728,7 +728,7 @@ void RegTreeCtrl::OnBeginDrag(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; @@ -741,7 +741,7 @@ void RegTreeCtrl::OnEndDrag(wxTreeEvent& event) dst = dst->Parent(); } if ( !dst || dst->IsRoot() ) { - wxLogError("Can't create a key here."); + wxLogError(wxT("Can't create a key here.")); return; } @@ -749,7 +749,7 @@ void RegTreeCtrl::OnEndDrag(wxTreeEvent& event) 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; } @@ -760,18 +760,18 @@ void RegTreeCtrl::OnEndDrag(wxTreeEvent& event) 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 ( - "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() ), - "RegTest Confirm", + _T("RegTest Confirm"), 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 ) { - wxLogError("Key '%s' already exists"); + wxLogError(wxT("Key '%s' already exists"), keyDst.GetName().c_str()); } else { ok = key.Copy(keyDst); @@ -806,7 +806,8 @@ void RegTreeCtrl::OnEndDrag(wxTreeEvent& event) } 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(); @@ -840,7 +841,7 @@ bool RegTreeCtrl::TreeNode::OnExpand() } 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; } @@ -867,10 +868,10 @@ bool RegTreeCtrl::TreeNode::OnExpand() while ( bCont ) { wxString strItem; if (str.IsEmpty()) - strItem = ""; + strItem = _T(""); else strItem = str; - strItem += " = "; + strItem += _T(" = "); // 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 - m_pTree->Collapse(Id()); + wxTreeItemId theId(Id()); // Temp variable seems necessary for BC++ + m_pTree->Collapse(theId); // we won't be expanded any more - m_pTree->SetItemHasChildren(Id(), FALSE); + m_pTree->SetItemHasChildren(theId, FALSE); } return TRUE; @@ -935,14 +937,15 @@ void RegTreeCtrl::TreeNode::Refresh() 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 ) - m_pTree->Collapse(Id()); + m_pTree->Collapse(theId); OnCollapse(); - m_pTree->SetItemHasChildren(Id()); + m_pTree->SetItemHasChildren(theId); if ( wasExpanded ) { - m_pTree->Expand(Id()); + m_pTree->Expand(theId); OnExpand(); } } @@ -951,7 +954,7 @@ bool RegTreeCtrl::TreeNode::DeleteChild(TreeNode *child) { 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); @@ -967,7 +970,8 @@ bool RegTreeCtrl::TreeNode::DeleteChild(TreeNode *child) } if ( ok ) { - m_pTree->Delete(child->Id()); + wxTreeItemId theId(child->Id()); // Temp variable seems necessary for BC++ + m_pTree->Delete(theId); Refresh(); } @@ -983,7 +987,8 @@ void RegTreeCtrl::TreeNode::DestroyChildren() 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(); @@ -994,18 +999,18 @@ RegTreeCtrl::TreeNode::~TreeNode() delete m_pKey; } -const char *RegTreeCtrl::TreeNode::FullName() const +const wxChar *RegTreeCtrl::TreeNode::FullName() const { 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(); - s_strName << '\\' << m_strName; + s_strName << wxT('\\') << m_strName; return s_strName; } @@ -1069,27 +1074,27 @@ void RegTreeCtrl::DeleteSelected() 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); - wxCHECK_RET( pCurrent && pParent, "either node or parent without data?" ); + wxCHECK_RET(pCurrent && pParent, wxT("either node or parent without data?")); if ( pParent->IsRoot() ) { - wxLogError("Can't delete standard key."); + wxLogError(wxT("Can't delete standard key.")); return; } - wxString what = pCurrent->IsKey() ? "key" : "value"; + wxString what = pCurrent->IsKey() ? _T("key") : _T("value"); if ( wxMessageBox(wxString::Format ( - "Do you really want to delete this %s?", + wxT("Do you really want to delete this %s?"), what.c_str() ), - "Confirmation", + _T("Confirmation"), 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); - 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() ) { - wxLogError("Can't create a new key under the root key."); + wxLogError(wxT("Can't create a new key under the root key.")); return; } @@ -1121,16 +1126,16 @@ void RegTreeCtrl::CreateNewTextValue(const wxString& strName) 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() ) { - wxLogError("Can't create a new value under the root key."); + wxLogError(wxT("Can't create a new value under the root key.")); return; } - if ( pCurrent->Key().SetValue(strName, "") ) + if ( pCurrent->Key().SetValue(strName, _T("")) ) pCurrent->Refresh(); } @@ -1139,12 +1144,12 @@ void RegTreeCtrl::CreateNewBinaryValue(const wxString& strName) 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() ) { - wxLogError("Can't create a new value under the root key."); + wxLogError(wxT("Can't create a new value under the root key.")); return; } @@ -1159,7 +1164,7 @@ void RegTreeCtrl::ShowProperties() if ( !pCurrent || pCurrent->IsRoot() ) { - wxLogStatus("No properties"); + wxLogStatus(wxT("No properties")); return; } @@ -1170,27 +1175,27 @@ void RegTreeCtrl::ShowProperties() 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 { - 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(); - wxCHECK_RET( parent, "reg value without key?" ); + wxCHECK_RET( parent, wxT("reg value without 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), - key.IsNumericValue(value) ? "numeric" : "string"); + key.IsNumericValue(value) ? wxT("numeric") : wxT("string")); } } @@ -1213,7 +1218,7 @@ void RegTreeCtrl::Refresh() TreeNode *pNode = (TreeNode *)GetItemData(lId); - wxCHECK_RET( pNode != NULL, "tree item without data?" ); + wxCHECK_RET( pNode != NULL, wxT("tree item without data?") ); pNode->Refresh(); }