X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3bb918c0974fae6a4e68da6b553440911a3948fa..639848874998378be6823c5243641eb643a0b0bf:/samples/treectrl/treetest.cpp diff --git a/samples/treectrl/treetest.cpp b/samples/treectrl/treetest.cpp index 1357cfd5f6..3af468f441 100644 --- a/samples/treectrl/treetest.cpp +++ b/samples/treectrl/treetest.cpp @@ -477,7 +477,7 @@ void MyFrame::OnDumpSelected(wxCommandEvent& WXUNUSED(event)) wxArrayTreeItemIds array; size_t count = m_treeCtrl->GetSelections(array); - wxLogMessage(wxT("%u items selected"), count); + wxLogMessage(wxT("%u items selected"), unsigned(count)); for ( size_t n = 0; n < count; n++ ) { @@ -790,9 +790,9 @@ void MyTreeCtrl::AddItemsRecursively(const wxTreeItemId& idParent, { // at depth 1 elements won't have any more children if ( hasChildren ) - str.Printf(wxT("%s child %d"), wxT("Folder"), n + 1); + str.Printf(wxT("%s child %u"), wxT("Folder"), unsigned(n + 1)); else - str.Printf(wxT("%s child %d.%d"), wxT("File"), folder, n + 1); + str.Printf(wxT("%s child %u.%u"), wxT("File"), unsigned(folder), unsigned(n + 1)); // here we pass to AppendItem() normal and selected item images (we // suppose that selected image follows the normal one in the enum) @@ -890,17 +890,22 @@ void MyTreeCtrl::DoToggleIcon(const wxTreeItemId& item) SetItemImage(item, image, wxTreeItemIcon_Selected); } +void MyTreeCtrl::LogEvent(const wxChar *name, const wxTreeEvent& event) +{ + wxTreeItemId item = event.GetItem(); + wxString text; + if ( item.IsOk() ) + text << _T('"') << GetItemText(item).c_str() << _T('"'); + else + text = _T("invalid item"); + wxLogMessage(wxT("%s(%s)"), name, text.c_str()); +} // avoid repetition #define TREE_EVENT_HANDLER(name) \ void MyTreeCtrl::name(wxTreeEvent& event) \ { \ - wxLogMessage( wxT("%s from:"), wxT(#name) ); \ - wxTreeItemId item = event.GetItem(); \ - if (item.IsOk()) \ - wxLogMessage( GetItemText(item) ); \ - else \ - wxLogMessage(wxT("invalid item")); \ + LogEvent(_T(#name), event); \ SetLastItem(wxTreeItemId()); \ event.Skip(); \ } @@ -1180,13 +1185,14 @@ void MyTreeCtrl::OnContextMenu(wxContextMenuEvent& event) { wxPoint pt = event.GetPosition(); wxTreeItemId item; - if ( !HasFlag(wxTR_MULTIPLE) ) - item = GetSelection(); wxLogMessage(wxT("OnContextMenu at screen coords (%i, %i)"), pt.x, pt.y); // check if event was generated by keyboard (MSW-specific?) if ( pt.x == -1 && pt.y == -1 ) //(this is how MSW indicates it) { + if ( !HasFlag(wxTR_MULTIPLE) ) + item = GetSelection(); + // attempt to guess where to show the menu if ( item.IsOk() ) { @@ -1203,6 +1209,7 @@ void MyTreeCtrl::OnContextMenu(wxContextMenuEvent& event) else // event was generated by mouse, use supplied coords { pt = ScreenToClient(pt); + item = HitTest(pt); } ShowMenu(item, pt); @@ -1283,6 +1290,6 @@ void MyTreeItemData::ShowInfo(wxTreeCtrl *tree) Bool2String(tree->IsSelected(GetId())), Bool2String(tree->IsExpanded(GetId())), Bool2String(tree->IsBold(GetId())), - tree->GetChildrenCount(GetId()), - tree->GetChildrenCount(GetId(), false)); + unsigned(tree->GetChildrenCount(GetId())), + unsigned(tree->GetChildrenCount(GetId(), false))); }