X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/91c6cc0e71bf9b49dbcb4d69ecfe30801a31aeb2..a42aa5d7be12e5bb24aa0488892574c01cae5a5b:/samples/listctrl/listtest.cpp diff --git a/samples/listctrl/listtest.cpp b/samples/listctrl/listtest.cpp index d1c8d7d4af..b355ed1a7f 100644 --- a/samples/listctrl/listtest.cpp +++ b/samples/listctrl/listtest.cpp @@ -60,6 +60,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(LIST_SMALL_ICON_TEXT_VIEW, MyFrame::OnSmallIconTextView) EVT_MENU(LIST_VIRTUAL_VIEW, MyFrame::OnVirtualView) + EVT_MENU(LIST_FOCUS_LAST, MyFrame::OnFocusLast) EVT_MENU(LIST_TOGGLE_FIRST, MyFrame::OnToggleFirstSel) EVT_MENU(LIST_DESELECT_ALL, MyFrame::OnDeselectAll) EVT_MENU(LIST_SELECT_ALL, MyFrame::OnSelectAll) @@ -113,7 +114,7 @@ int wxCALLBACK MyCompareFunction(long item1, long item2, long sortData) bool MyApp::OnInit() { // Create the main frame window - MyFrame *frame = new MyFrame("wxListCtrl Test", 50, 50, 450, 340); + MyFrame *frame = new MyFrame(wxT("wxListCtrl Test"), 50, 50, 450, 340); // Show the frame frame->Show(TRUE); @@ -180,6 +181,7 @@ MyFrame::MyFrame(const wxChar *title, int x, int y, int w, int h) menuView->Append(LIST_VIRTUAL_VIEW, _T("Virtual view\tF7")); wxMenu *menuList = new wxMenu; + menuList->Append(LIST_FOCUS_LAST, _T("&Make last item current\tCtrl-L")); menuList->Append(LIST_TOGGLE_FIRST, _T("&Toggle first item\tCtrl-T")); menuList->Append(LIST_DESELECT_ALL, _T("&Deselect All\tCtrl-D")); menuList->Append(LIST_SELECT_ALL, _T("S&elect All\tCtrl-A")); @@ -252,6 +254,18 @@ void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) dialog.ShowModal(); } +void MyFrame::OnFocusLast(wxCommandEvent& WXUNUSED(event)) +{ + long index = m_listCtrl->GetItemCount() - 1; + if ( index == -1 ) + { + return; + } + + m_listCtrl->SetItemState(index, wxLIST_STATE_FOCUSED, wxLIST_STATE_FOCUSED); + m_listCtrl->EnsureVisible(index); +} + void MyFrame::OnToggleFirstSel(wxCommandEvent& WXUNUSED(event)) { m_listCtrl->SetItemState(0, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); @@ -483,10 +497,10 @@ void MyFrame::OnShowSelInfo(wxCommandEvent& event) void MyFrame::OnShowColInfo(wxCommandEvent& event) { int count = m_listCtrl->GetColumnCount(); - wxLogMessage("%d columns:", count); + wxLogMessage(wxT("%d columns:"), count); for ( int c = 0; c < count; c++ ) { - wxLogMessage("\tcolumn %d has width %d", c, + wxLogMessage(wxT("\tcolumn %d has width %d"), c, m_listCtrl->GetColumnWidth(c)); } } @@ -504,7 +518,7 @@ void MyFrame::OnToggleMultiSel(wxCommandEvent& WXUNUSED(event)) else flags |= wxLC_SINGLE_SEL; - m_logWindow->WriteText(wxString::Format("Current selection mode: %sle\n", + m_logWindow->WriteText(wxString::Format(wxT("Current selection mode: %sle\n"), (flags & wxLC_SINGLE_SEL) ? "sing" : "multip")); RecreateList(flags); @@ -554,35 +568,38 @@ void MyFrame::OnDeleteAll(wxCommandEvent& WXUNUSED(event)) void MyListCtrl::OnCacheHint(wxListEvent& event) { - wxLogMessage( "OnCacheHint: cache items %ld..%ld", + wxLogMessage( wxT("OnCacheHint: cache items %ld..%ld"), event.GetCacheFrom(), event.GetCacheTo() ); } void MyListCtrl::OnColClick(wxListEvent& event) { - wxLogMessage( "OnColumnClick at %d.", event.GetColumn() ); + wxLogMessage( wxT("OnColumnClick at %d."), event.GetColumn() ); } void MyListCtrl::OnBeginDrag(wxListEvent& event) { - wxLogMessage( "OnBeginDrag at %d,%d.", - event.m_pointDrag.x, event.m_pointDrag.y ); + const wxPoint& pt = event.m_pointDrag; + + int flags; + wxLogMessage( wxT("OnBeginDrag at (%d, %d), item %ld."), + pt.x, pt.y, HitTest(pt, flags) ); } void MyListCtrl::OnBeginRDrag(wxListEvent& event) { - wxLogMessage( "OnBeginRDrag at %d,%d.", + wxLogMessage( wxT("OnBeginRDrag at %d,%d."), event.m_pointDrag.x, event.m_pointDrag.y ); } void MyListCtrl::OnBeginLabelEdit(wxListEvent& event) { - wxLogMessage("OnBeginLabelEdit: %s", event.m_item.m_text.c_str()); + wxLogMessage( wxT("OnBeginLabelEdit: %s"), event.m_item.m_text.c_str()); } void MyListCtrl::OnEndLabelEdit(wxListEvent& event) { - wxLogMessage("OnEndLabelEdit: %s", event.m_item.m_text.c_str()); + wxLogMessage( wxT("OnEndLabelEdit: %s"), event.m_item.m_text.c_str()); } void MyListCtrl::OnDeleteItem(wxListEvent& event) @@ -640,12 +657,12 @@ void MyListCtrl::OnSelected(wxListEvent& event) info.m_mask = wxLIST_MASK_TEXT; if ( GetItem(info) ) { - wxLogMessage("Value of the 2nd field of the selected item: %s", + wxLogMessage(wxT("Value of the 2nd field of the selected item: %s"), info.m_text.c_str()); } else { - wxFAIL_MSG("wxListCtrl::GetItem() failed"); + wxFAIL_MSG(wxT("wxListCtrl::GetItem() failed")); } } }