#include "wx/wx.h"
#endif
+#ifndef __WXMSW__
+#include "mondrian.xpm"
+#endif
+
#include "wx/listctrl.h"
#include "listtest.h"
EVT_LIST_SET_INFO(LIST_CTRL, MyListCtrl::OnSetInfo)
EVT_LIST_ITEM_SELECTED(LIST_CTRL, MyListCtrl::OnSelected)
EVT_LIST_ITEM_DESELECTED(LIST_CTRL, MyListCtrl::OnDeselected)
- EVT_LIST_KEY_DOWN(LIST_CTRL, MyListCtrl::OnKeyDown)
+ EVT_LIST_KEY_DOWN(LIST_CTRL, MyListCtrl::OnListKeyDown)
+ EVT_LIST_ITEM_ACTIVATED(LIST_CTRL, MyListCtrl::OnActivated)
END_EVENT_TABLE()
IMPLEMENT_APP(MyApp)
bool MyApp::OnInit(void)
{
// Create the main frame window
- MyFrame *frame = new MyFrame((wxFrame *) NULL, (char *) "wxListCtrl Test", 50, 50, 450, 340);
+ MyFrame *frame = new MyFrame((wxFrame *) NULL, "wxListCtrl Test", 50, 50, 450, 340);
// This reduces flicker effects - even better would be to define OnEraseBackground
// to do nothing. When the list control's scrollbars are show or hidden, the
// frame is sent a background erase event.
- frame->SetBackgroundColour(wxColour(255, 255, 255));
+ frame->SetBackgroundColour( *wxWHITE );
// Give it an icon
-#ifdef __WXMSW__
- frame->SetIcon(wxIcon("mondrian"));
-#else
-#include "mondrian.xpm"
- frame->SetIcon(wxIcon(mondrian_xpm));
-#endif
+ frame->SetIcon( wxICON(mondrian) );
// Make an image list containing large icons
m_imageListNormal = new wxImageList(32, 32, TRUE);
for ( int i=0; i < 30; i++)
{
- char buf[20];
- sprintf(buf, "Item %d", i);
+ wxChar buf[20];
+ wxSprintf(buf, _T("Item %d"), i);
frame->m_listCtrl->InsertItem(i, buf);
}
void MyFrame::OnDeselectAll(wxCommandEvent& WXUNUSED(event))
{
int n = m_listCtrl->GetItemCount();
- int i;
- for(i = 0; i < n; i++)
+ for (int i = 0; i < n; i++)
m_listCtrl->SetItemState(i,0,wxLIST_STATE_SELECTED);
}
void MyFrame::OnSelectAll(wxCommandEvent& WXUNUSED(event))
{
int n = m_listCtrl->GetItemCount();
- int i;
- for(i = 0; i < n; i++)
+ for (int i = 0; i < n; i++)
m_listCtrl->SetItemState(i,wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);
}
void MyFrame::OnListView(wxCommandEvent& WXUNUSED(event))
{
- m_logWindow->Clear();
- m_listCtrl->DeleteAllItems();
- m_listCtrl->SetSingleStyle(wxLC_LIST);
+ m_listCtrl->DeleteAllItems();
+ m_logWindow->Clear();
+ m_listCtrl->SetSingleStyle(wxLC_LIST);
m_listCtrl->SetImageList((wxImageList *) NULL, wxIMAGE_LIST_NORMAL);
m_listCtrl->SetImageList((wxImageList *) NULL, wxIMAGE_LIST_SMALL);
- for ( int i=0; i < 30; i++)
- {
- char buf[20];
- sprintf(buf, "Item %d", i);
- m_listCtrl->InsertItem(i, buf);
- }
+ for ( int i=0; i < 30; i++)
+ {
+ wxChar buf[20];
+ wxSprintf(buf, _T("Item %d"), i);
+ m_listCtrl->InsertItem(i, buf);
+ }
}
void MyFrame::OnReportView(wxCommandEvent& WXUNUSED(event))
{
- m_logWindow->Clear();
- m_listCtrl->DeleteAllItems();
- m_listCtrl->SetSingleStyle(wxLC_REPORT);
+ m_listCtrl->DeleteAllItems();
+ m_logWindow->Clear();
+
+ m_listCtrl->SetSingleStyle(wxLC_REPORT);
m_listCtrl->SetImageList((wxImageList *) NULL, wxIMAGE_LIST_NORMAL);
m_listCtrl->SetImageList(wxGetApp().m_imageListSmall, wxIMAGE_LIST_SMALL);
- m_listCtrl->InsertColumn(0, "Column 1", wxLIST_FORMAT_LEFT, 140);
- m_listCtrl->InsertColumn(1, "Column 2", wxLIST_FORMAT_LEFT, 140);
-
- for ( int i=0; i < 30; i++)
- {
- char buf[20];
- sprintf(buf, "Item %d, col 1", i);
- long tmp = m_listCtrl->InsertItem(i, buf, 0);
-
- sprintf(buf, "Item %d, col 2", i);
- tmp = m_listCtrl->SetItem(i, 1, buf);
- }
+ m_listCtrl->InsertColumn(0, "Column 1"); // , wxLIST_FORMAT_LEFT, 140);
+ m_listCtrl->InsertColumn(1, "Column 2"); // , wxLIST_FORMAT_LEFT, 140);
+ m_listCtrl->InsertColumn(2, "One More Column (2)"); // , wxLIST_FORMAT_LEFT, 140);
+
+ for ( int i=0; i < 30; i++)
+ {
+ wxChar buf[50];
+ wxSprintf(buf, _T("This is item %d"), i);
+ long tmp = m_listCtrl->InsertItem(i, buf, 0);
+
+ wxSprintf(buf, _T("Col 1, item %d"), i);
+ tmp = m_listCtrl->SetItem(i, 1, buf);
+
+ wxSprintf(buf, _T("Item %d in column 2"), i);
+ tmp = m_listCtrl->SetItem(i, 2, buf);
+ }
+
+ m_listCtrl->SetColumnWidth( 0, wxLIST_AUTOSIZE );
+ m_listCtrl->SetColumnWidth( 1, wxLIST_AUTOSIZE );
+ m_listCtrl->SetColumnWidth( 2, wxLIST_AUTOSIZE );
}
void MyFrame::OnIconView(wxCommandEvent& WXUNUSED(event))
{
- m_logWindow->Clear();
m_listCtrl->DeleteAllItems();
+ m_logWindow->Clear();
m_listCtrl->SetSingleStyle(wxLC_ICON);
m_listCtrl->SetImageList(wxGetApp().m_imageListNormal, wxIMAGE_LIST_NORMAL);
m_listCtrl->SetImageList(wxGetApp().m_imageListSmall, wxIMAGE_LIST_SMALL);
void MyFrame::OnIconTextView(wxCommandEvent& WXUNUSED(event))
{
- m_logWindow->Clear();
m_listCtrl->DeleteAllItems();
+ m_logWindow->Clear();
m_listCtrl->SetSingleStyle(wxLC_ICON);
m_listCtrl->SetImageList(wxGetApp().m_imageListNormal, wxIMAGE_LIST_NORMAL);
m_listCtrl->SetImageList(wxGetApp().m_imageListSmall, wxIMAGE_LIST_SMALL);
for ( int i=0; i < 9; i++)
{
- char buf[20];
- sprintf(buf, "Label %d", i);
+ wxChar buf[20];
+ wxSprintf(buf, _T("Label %d"), i);
m_listCtrl->InsertItem(i, buf, i);
}
}
void MyFrame::OnSmallIconView(wxCommandEvent& WXUNUSED(event))
{
- m_logWindow->Clear();
m_listCtrl->DeleteAllItems();
+ m_logWindow->Clear();
m_listCtrl->SetSingleStyle(wxLC_SMALL_ICON);
m_listCtrl->SetImageList(wxGetApp().m_imageListNormal, wxIMAGE_LIST_NORMAL);
m_listCtrl->SetImageList(wxGetApp().m_imageListSmall, wxIMAGE_LIST_SMALL);
void MyFrame::OnSmallIconTextView(wxCommandEvent& WXUNUSED(event))
{
- m_logWindow->Clear();
m_listCtrl->DeleteAllItems();
+ m_logWindow->Clear();
m_listCtrl->SetSingleStyle(wxLC_SMALL_ICON);
m_listCtrl->SetImageList(wxGetApp().m_imageListNormal, wxIMAGE_LIST_NORMAL);
m_listCtrl->SetImageList(wxGetApp().m_imageListSmall, wxIMAGE_LIST_SMALL);
text->WriteText("OnDeleteItem\n");
}
-void MyListCtrl::OnGetInfo(wxListEvent& event)
+void MyListCtrl::OnGetInfo(wxListEvent& /*event*/)
{
if ( !wxGetApp().GetTopWindow() )
return;
text->WriteText("OnDeselected\n");
}
-void MyListCtrl::OnKeyDown(wxListEvent& WXUNUSED(event))
+void MyListCtrl::OnActivated(wxListEvent& WXUNUSED(event))
+{
+ if ( !wxGetApp().GetTopWindow() )
+ return;
+
+ wxTextCtrl *text = ((MyFrame *)wxGetApp().GetTopWindow())->m_logWindow;
+ if ( !text )
+ return;
+
+ text->WriteText("OnActivated\n");
+}
+
+void MyListCtrl::OnListKeyDown(wxListEvent& event)
{
if ( !wxGetApp().GetTopWindow() )
return;
if ( !text )
return;
- text->WriteText("OnKeyDown\n");
+ text->WriteText("OnListKeyDown\n");
}
+