X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/febebac1a01ce5d7fc11cf2c645e0c93261ad0f0..34c921fc4d717eb605a7c19e090f4a1735e4d8e4:/samples/treectrl/treetest.cpp?ds=inline diff --git a/samples/treectrl/treetest.cpp b/samples/treectrl/treetest.cpp index edc685a307..0da06d9ea1 100644 --- a/samples/treectrl/treetest.cpp +++ b/samples/treectrl/treetest.cpp @@ -98,6 +98,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) MENU_LINK(Select) MENU_LINK(Unselect) MENU_LINK(ToggleSel) + MENU_LINK(SelectChildren) #endif // NO_MULTIPLE_SELECTION MENU_LINK(Rename) MENU_LINK(Count) @@ -262,6 +263,7 @@ MyFrame::MyFrame(const wxString& title, int x, int y, int w, int h) tree_menu->Append(TreeTest_DeleteChildren, wxT("Delete &children")); tree_menu->Append(TreeTest_DeleteAll, wxT("Delete &all items")); tree_menu->Append(TreeTest_SelectRoot, wxT("Select root item")); + tree_menu->AppendSeparator(); tree_menu->Append(TreeTest_Count, wxT("Count children of current item")); tree_menu->Append(TreeTest_CountRec, wxT("Recursively count children of current item")); @@ -307,6 +309,7 @@ MyFrame::MyFrame(const wxString& title, int x, int y, int w, int h) item_menu->Append(TreeTest_DumpSelected, wxT("Dump selected items\tAlt-D")); item_menu->Append(TreeTest_Select, wxT("Select current item\tAlt-S")); item_menu->Append(TreeTest_Unselect, wxT("Unselect everything\tAlt-U")); + item_menu->Append(TreeTest_SelectChildren, wxT("Select all children\tCtrl-A")); #endif // NO_MULTIPLE_SELECTION wxMenuBar *menu_bar = new wxMenuBar; @@ -419,13 +422,13 @@ void MyFrame::OnIdle(wxIdleEvent& event) { wxTreeItemId idLast = m_treeCtrl->GetLastChild(idRoot); status = wxString::Format( - _T("Root/last item is %svisible/%svisible"), - m_treeCtrl->IsVisible(idRoot) ? _T("") : _T("not "), + wxT("Root/last item is %svisible/%svisible"), + m_treeCtrl->IsVisible(idRoot) ? wxT("") : wxT("not "), idLast.IsOk() && m_treeCtrl->IsVisible(idLast) - ? _T("") : _T("not ")); + ? wxT("") : wxT("not ")); } else - status = _T("No root item"); + status = wxT("No root item"); SetStatusText(status, 1); } @@ -538,7 +541,7 @@ void MyFrame::OnHighlight(wxCommandEvent& WXUNUSED(event)) wxRect r; if ( !m_treeCtrl->GetBoundingRect(id, r, true /* text, not full row */) ) { - wxLogMessage(_T("Failed to get bounding item rect")); + wxLogMessage(wxT("Failed to get bounding item rect")); return; } @@ -594,6 +597,15 @@ void MyFrame::OnUnselect(wxCommandEvent& WXUNUSED(event)) m_treeCtrl->UnselectAll(); } +void MyFrame::OnSelectChildren(wxCommandEvent& WXUNUSED(event)) +{ + wxTreeItemId item = m_treeCtrl->GetFocusedItem(); + if ( !item.IsOk() ) + item = m_treeCtrl->GetRootItem(); + + m_treeCtrl->SelectChildren(item); +} + #endif // NO_MULTIPLE_SELECTION void MyFrame::DoSetBold(bool bold) @@ -802,10 +814,14 @@ void MyFrame::DoShowFirstOrLast(TreeFunc0_t pfn, const wxString& label) const wxTreeItemId item = (m_treeCtrl->*pfn)(); if ( !item.IsOk() ) + { wxLogMessage("There is no %s item", label); + } else + { wxLogMessage("The %s item is \"%s\"", label, m_treeCtrl->GetItemText(item)); + } } void MyFrame::DoShowRelativeItem(TreeFunc1_t pfn, const wxString& label) @@ -825,10 +841,14 @@ void MyFrame::DoShowRelativeItem(TreeFunc1_t pfn, const wxString& label) wxTreeItemId new_item = (m_treeCtrl->*pfn)(item); if ( !new_item.IsOk() ) + { wxLogMessage("There is no %s item", label); + } else + { wxLogMessage("The %s item is \"%s\"", label, m_treeCtrl->GetItemText(new_item)); + } } void MyFrame::OnScrollTo(wxCommandEvent& WXUNUSED(event)) @@ -1220,9 +1240,9 @@ 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('"'); + text << wxT('"') << GetItemText(item).c_str() << wxT('"'); else - text = _T("invalid item"); + text = wxT("invalid item"); wxLogMessage(wxT("%s(%s)"), name, text.c_str()); } @@ -1230,7 +1250,7 @@ void MyTreeCtrl::LogEvent(const wxChar *name, const wxTreeEvent& event) #define TREE_EVENT_HANDLER(name) \ void MyTreeCtrl::name(wxTreeEvent& event) \ { \ - LogEvent(_T(#name), event); \ + LogEvent(wxT(#name), event); \ SetLastItem(wxTreeItemId()); \ event.Skip(); \ } @@ -1456,7 +1476,7 @@ void MyTreeCtrl::OnBeginLabelEdit(wxTreeEvent& event) else if ( itemId == GetRootItem() ) { // test that it is possible to change the text of the item being edited - SetItemText(itemId, _T("Editing root item")); + SetItemText(itemId, wxT("Editing root item")); } } @@ -1520,7 +1540,7 @@ void MyTreeCtrl::OnItemMenu(wxTreeEvent& event) wxPoint screenpt = ClientToScreen(clientpt); wxLogMessage(wxT("OnItemMenu for item \"%s\" at screen coords (%i, %i)"), - item ? item->GetDesc() : _T(""), screenpt.x, screenpt.y); + item ? item->GetDesc() : wxT(""), screenpt.x, screenpt.y); ShowMenu(itemId, clientpt); event.Skip(); @@ -1565,7 +1585,7 @@ void MyTreeCtrl::OnItemRClick(wxTreeEvent& event) : NULL; wxLogMessage(wxT("Item \"%s\" right clicked"), item ? item->GetDesc() - : _T("")); + : wxT("")); event.Skip(); } @@ -1588,12 +1608,16 @@ void MyTreeCtrl::OnRMouseDClick(wxMouseEvent& event) { wxTreeItemId id = HitTest(event.GetPosition()); if ( !id ) + { wxLogMessage(wxT("No item under mouse")); + } else { MyTreeItemData *item = (MyTreeItemData *)GetItemData(id); if ( item ) + { wxLogMessage(wxT("Item '%s' under mouse"), item->GetDesc()); + } } event.Skip();