void MyFrame::OnDumpSelection(wxCommandEvent& WXUNUSED(event)) { if ( m_treelist->HasFlag(wxTL_MULTIPLE) ) { wxTreeListItems selections; const unsigned numSelected = m_treelist->GetSelections(selections); switch ( numSelected ) { case 0: wxLogMessage("No items selected"); break; case 1: wxLogMessage("Single item selected: %s", DumpItem(selections[0])); break; default: wxLogMessage("%u items selected:", numSelected); for ( unsigned n = 0; n < numSelected; n++ ) { wxLogMessage("\t%s", DumpItem(selections[n])); } } } else // Single selection { wxLogMessage("Selection: %s", DumpItem(m_treelist->GetSelection())); } }
void MyFrame::OnSelectionChanged(wxTreeListEvent& event) { const char* msg; if ( m_treelist->HasFlag(wxTL_MULTIPLE) ) msg = "Selection of the \"%s\" item changed."; else msg = "Selection changed, now is \"%s\"."; wxLogMessage(msg, DumpItem(event.GetItem())); }
void MyFrame::OnItemContextMenu(wxTreeListEvent& event) { enum { Id_Check_Item, Id_Uncheck_Item, Id_Indet_Item, Id_Check_Recursively, Id_Update_Parent }; wxMenu menu; menu.Append(Id_Check_Item, "&Check item"); menu.Append(Id_Uncheck_Item, "&Uncheck item"); if ( m_treelist->HasFlag(wxTL_3STATE) ) menu.Append(Id_Indet_Item, "Make item &indeterminate"); menu.AppendSeparator(); menu.Append(Id_Check_Recursively, "Check &recursively"); menu.Append(Id_Update_Parent, "Update &parent"); const wxTreeListItem item = event.GetItem(); switch ( m_treelist->GetPopupMenuSelectionFromUser(menu) ) { case Id_Check_Item: m_treelist->CheckItem(item); break; case Id_Uncheck_Item: m_treelist->UncheckItem(item); break; case Id_Indet_Item: m_treelist->CheckItem(item, wxCHK_UNDETERMINED); break; case Id_Check_Recursively: m_treelist->CheckItemRecursively(item); break; case Id_Update_Parent: m_treelist->UpdateItemParentStateRecursively(item); break; default: wxFAIL_MSG( "Unexpected menu selection" ); // Fall through. case wxID_NONE: return; } }