]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/listctrl/listtest.cpp
corrected conditional compilation
[wxWidgets.git] / samples / listctrl / listtest.cpp
index 229cad4224a366a4bf935223e0865d309b94e384..345620a545d23925cf882b2038d2ab46c43d311e 100644 (file)
@@ -40,6 +40,7 @@
     #include "bitmaps/small1.xpm"
 #endif
 
+#include "wx/imaglist.h"
 #include "wx/listctrl.h"
 #include "wx/timer.h"           // for wxStopWatch
 #include "wx/colordlg.h"        // for wxGetColourFromUser
@@ -60,11 +61,14 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
     EVT_MENU(LIST_TOGGLE_FIRST, MyFrame::OnToggleFirstSel)
     EVT_MENU(LIST_DESELECT_ALL, MyFrame::OnDeselectAll)
     EVT_MENU(LIST_SELECT_ALL, MyFrame::OnSelectAll)
+    EVT_MENU(LIST_DELETE, MyFrame::OnDelete)
     EVT_MENU(LIST_DELETE_ALL, MyFrame::OnDeleteAll)
     EVT_MENU(LIST_SORT, MyFrame::OnSort)
     EVT_MENU(LIST_SET_FG_COL, MyFrame::OnSetFgColour)
     EVT_MENU(LIST_SET_BG_COL, MyFrame::OnSetBgColour)
     EVT_MENU(LIST_TOGGLE_MULTI_SEL, MyFrame::OnToggleMultiSel)
+    EVT_MENU(LIST_SHOW_COL_INFO, MyFrame::OnShowColInfo)
+    EVT_UPDATE_UI(LIST_SHOW_COL_INFO, MyFrame::OnUpdateShowColInfo)
 END_EVENT_TABLE()
 
 BEGIN_EVENT_TABLE(MyListCtrl, wxListCtrl)
@@ -81,6 +85,8 @@ BEGIN_EVENT_TABLE(MyListCtrl, wxListCtrl)
     EVT_LIST_KEY_DOWN(LIST_CTRL, MyListCtrl::OnListKeyDown)
     EVT_LIST_ITEM_ACTIVATED(LIST_CTRL, MyListCtrl::OnActivated)
     EVT_LIST_COL_CLICK(LIST_CTRL, MyListCtrl::OnColClick)
+
+    EVT_CHAR(MyListCtrl::OnChar)
 END_EVENT_TABLE()
 
 IMPLEMENT_APP(MyApp)
@@ -169,9 +175,11 @@ MyFrame::MyFrame(const wxChar *title, int x, int y, int w, int h)
     menuList->Append(LIST_TOGGLE_FIRST, "&Toggle first item\tCtrl-T");
     menuList->Append(LIST_DESELECT_ALL, "&Deselect All\tCtrl-D");
     menuList->Append(LIST_SELECT_ALL, "S&elect All\tCtrl-A");
+    menuList->Append(LIST_SHOW_COL_INFO, "Show &column info\tCtrl-C");
     menuList->AppendSeparator();
     menuList->Append(LIST_SORT, "&Sort\tCtrl-S");
     menuList->AppendSeparator();
+    menuList->Append(LIST_DELETE, "&Delete first item");
     menuList->Append(LIST_DELETE_ALL, "Delete &all items");
     menuList->AppendSeparator();
     menuList->Append(LIST_TOGGLE_MULTI_SEL, "&Multiple selection\tCtrl-M",
@@ -315,7 +323,7 @@ void MyFrame::OnReportView(wxCommandEvent& WXUNUSED(event))
     wxStopWatch sw;
 
     wxString buf;
-    static const int NUM_ITEMS = 3000;
+    static const int NUM_ITEMS = 30;//00;
     for ( int i = 0; i < NUM_ITEMS; i++ )
     {
         buf.Printf(_T("This is item %d"), i);
@@ -429,6 +437,22 @@ void MyFrame::OnSort(wxCommandEvent& WXUNUSED(event))
                                             sw.Time()));
 }
 
+void MyFrame::OnShowColInfo(wxCommandEvent& event)
+{
+    int count = m_listCtrl->GetColumnCount();
+    wxLogMessage("%d columns:", count);
+    for ( int c = 0; c < count; c++ )
+    {
+        wxLogMessage("\tcolumn %d has width %d", c,
+                     m_listCtrl->GetColumnWidth(c));
+    }
+}
+
+void MyFrame::OnUpdateShowColInfo(wxUpdateUIEvent& event)
+{
+    event.Enable( (m_listCtrl->GetWindowStyleFlag() & wxLC_REPORT) != 0 );
+}
+
 void MyFrame::OnToggleMultiSel(wxCommandEvent& WXUNUSED(event))
 {
     m_logWindow->WriteText("Current selection mode: ");
@@ -460,6 +484,18 @@ void MyFrame::OnSetBgColour(wxCommandEvent& WXUNUSED(event))
     m_listCtrl->Refresh();
 }
 
+void MyFrame::OnDelete(wxCommandEvent& WXUNUSED(event))
+{
+    if ( m_listCtrl->GetItemCount() )
+    {
+        m_listCtrl->DeleteItem(0);
+    }
+    else
+    {
+        m_logWindow->WriteText("Nothing to delete");
+    }
+}
+
 void MyFrame::OnDeleteAll(wxCommandEvent& WXUNUSED(event))
 {
     wxStopWatch sw;
@@ -578,11 +614,21 @@ void MyListCtrl::OnActivated(wxListEvent& event)
 void MyListCtrl::OnListKeyDown(wxListEvent& event)
 {
     LogEvent(event, _T("OnListKeyDown"));
+
+    event.Skip();
+}
+
+void MyListCtrl::OnChar(wxKeyEvent& event)
+{
+    wxLogMessage(_T("Got char event."));
+
+    event.Skip();
 }
 
 void MyListCtrl::LogEvent(const wxListEvent& event, const wxChar *eventName)
 {
-    wxLogMessage(_T("Item %ld: %s (item data = %ld)"),
-                 event.GetIndex(), eventName, event.GetData());
+    wxLogMessage(_T("Item %ld: %s (item text = %s, data = %ld)"),
+                 event.GetIndex(), eventName,
+                 event.GetText().c_str(), event.GetData());
 }