]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/listctrl/listtest.cpp
use wxDC::GetMultiLineTextExtent() instead of duplicating its code in wxButton::DoGet...
[wxWidgets.git] / samples / listctrl / listtest.cpp
index f7c3851ba41c6523cbc1c8b627a62fc737d79f0e..11f2dab732ff2fb3a9421e4ce4c12d893996c1ac 100644 (file)
@@ -76,6 +76,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
     EVT_MENU(LIST_SHOW_SEL_INFO, MyFrame::OnShowSelInfo)
     EVT_MENU(LIST_FREEZE, MyFrame::OnFreeze)
     EVT_MENU(LIST_THAW, MyFrame::OnThaw)
+    EVT_MENU(LIST_TOGGLE_LINES, MyFrame::OnToggleLines)
 
     EVT_UPDATE_UI(LIST_SHOW_COL_INFO, MyFrame::OnUpdateShowColInfo)
     EVT_UPDATE_UI(LIST_TOGGLE_MULTI_SEL, MyFrame::OnUpdateToggleMultiSel)    
@@ -88,8 +89,10 @@ BEGIN_EVENT_TABLE(MyListCtrl, wxListCtrl)
     EVT_LIST_END_LABEL_EDIT(LIST_CTRL, MyListCtrl::OnEndLabelEdit)
     EVT_LIST_DELETE_ITEM(LIST_CTRL, MyListCtrl::OnDeleteItem)
     EVT_LIST_DELETE_ALL_ITEMS(LIST_CTRL, MyListCtrl::OnDeleteAllItems)
+#if WXWIN_COMPATIBILITY_2_4
     EVT_LIST_GET_INFO(LIST_CTRL, MyListCtrl::OnGetInfo)
     EVT_LIST_SET_INFO(LIST_CTRL, MyListCtrl::OnSetInfo)
+#endif
     EVT_LIST_ITEM_SELECTED(LIST_CTRL, MyListCtrl::OnSelected)
     EVT_LIST_ITEM_DESELECTED(LIST_CTRL, MyListCtrl::OnDeselected)
     EVT_LIST_KEY_DOWN(LIST_CTRL, MyListCtrl::OnListKeyDown)
@@ -215,6 +218,7 @@ MyFrame::MyFrame(const wxChar *title, int x, int y, int w, int h)
     menuList->Append(LIST_FREEZE, _T("Free&ze\tCtrl-Z"));
     menuList->Append(LIST_THAW, _T("Tha&w\tCtrl-W"));
     menuList->AppendSeparator();
+    menuList->AppendCheckItem(LIST_TOGGLE_LINES, _T("Toggle &lines\tCtrl-I"));
     menuList->Append(LIST_TOGGLE_MULTI_SEL, _T("&Multiple selection\tCtrl-M"),
             _T("Toggle multiple selection"), true);
 
@@ -238,7 +242,9 @@ MyFrame::MyFrame(const wxChar *title, int x, int y, int w, int h)
 
     RecreateList(wxLC_REPORT | wxLC_SINGLE_SEL);
 
+#if wxUSE_STATUSBAR
     CreateStatusBar(3);
+#endif // wxUSE_STATUSBAR
 }
 
 MyFrame::~MyFrame()
@@ -305,6 +311,11 @@ void MyFrame::OnThaw(wxCommandEvent& WXUNUSED(event))
     m_listCtrl->Thaw();
 }
 
+void MyFrame::OnToggleLines(wxCommandEvent& event)
+{
+    m_listCtrl->SetSingleStyle(wxLC_HRULES | wxLC_VRULES, event.IsChecked());
+}
+
 void MyFrame::OnFocusLast(wxCommandEvent& WXUNUSED(event))
 {
     long index = m_listCtrl->GetItemCount() - 1;
@@ -645,10 +656,12 @@ void MyFrame::OnDeleteAll(wxCommandEvent& WXUNUSED(event))
 {
     wxStopWatch sw;
 
+    size_t itemCount = m_listCtrl->GetItemCount();
+
     m_listCtrl->DeleteAllItems();
 
     m_logWindow->WriteText(wxString::Format(_T("Deleting %d items took %ld ms\n"),
-                                            m_listCtrl->GetItemCount(),
+                                            itemCount,
                                             sw.Time()));
 }
 
@@ -684,6 +697,11 @@ void MyListCtrl::OnColRightClick(wxListEvent& event)
         SetColumnImage(col, -1);
     }
 
+    // Show popupmenu at position
+    wxMenu menu(wxT("Test"));
+    menu.Append(LIST_ABOUT, _T("&About"));
+    PopupMenu(&menu, event.GetPoint()); 
+
     wxLogMessage( wxT("OnColumnRightClick at %d."), event.GetColumn() );
 }
 
@@ -757,6 +775,7 @@ void MyListCtrl::OnDeleteAllItems(wxListEvent& event)
     LogEvent(event, _T("OnDeleteAllItems"));
 }
 
+#if WXWIN_COMPATIBILITY_2_4
 void MyListCtrl::OnGetInfo(wxListEvent& event)
 {
     wxString msg;
@@ -789,6 +808,7 @@ void MyListCtrl::OnSetInfo(wxListEvent& event)
 {
     LogEvent(event, _T("OnSetInfo"));
 }
+#endif
 
 void MyListCtrl::OnSelected(wxListEvent& event)
 {