+ // Make a menubar
+ wxMenu *menuFile = new wxMenu;
+ menuFile->Append(LIST_ABOUT, wxT("&About"));
+ menuFile->AppendSeparator();
+ menuFile->Append(LIST_QUIT, wxT("E&xit\tAlt-X"));
+
+ wxMenu *menuView = new wxMenu;
+ menuView->Append(LIST_LIST_VIEW, wxT("&List view\tF1"));
+ menuView->Append(LIST_REPORT_VIEW, wxT("&Report view\tF2"));
+ menuView->Append(LIST_ICON_VIEW, wxT("&Icon view\tF3"));
+ menuView->Append(LIST_ICON_TEXT_VIEW, wxT("Icon view with &text\tF4"));
+ menuView->Append(LIST_SMALL_ICON_VIEW, wxT("&Small icon view\tF5"));
+ menuView->Append(LIST_SMALL_ICON_TEXT_VIEW, wxT("Small icon &view with text\tF6"));
+ menuView->Append(LIST_VIRTUAL_VIEW, wxT("&Virtual view\tF7"));
+ menuView->Append(LIST_SMALL_VIRTUAL_VIEW, wxT("Small virtual vie&w\tF8"));
+ menuView->AppendSeparator();
+ menuView->Append(LIST_SET_ITEMS_COUNT, "Set &number of items");
+#ifdef __WXOSX__
+ menuView->AppendSeparator();
+ menuView->AppendCheckItem(LIST_MAC_USE_GENERIC, wxT("Mac: Use Generic Control"));
+#endif
+
+ wxMenu *menuList = new wxMenu;
+ menuList->Append(LIST_GOTO, wxT("&Go to item #3\tCtrl-3"));
+ menuList->Append(LIST_FOCUS_LAST, wxT("&Make last item current\tCtrl-L"));
+ menuList->Append(LIST_TOGGLE_FIRST, wxT("To&ggle first item\tCtrl-G"));
+ menuList->Append(LIST_DESELECT_ALL, wxT("&Deselect All\tCtrl-D"));
+ menuList->Append(LIST_SELECT_ALL, wxT("S&elect All\tCtrl-A"));
+ menuList->AppendSeparator();
+ menuList->Append(LIST_SHOW_COL_INFO, wxT("Show &column info\tCtrl-C"));
+ menuList->Append(LIST_SHOW_SEL_INFO, wxT("Show &selected items\tCtrl-S"));
+ menuList->Append(LIST_SHOW_VIEW_RECT, wxT("Show &view rect"));
+#ifdef wxHAS_LISTCTRL_COLUMN_ORDER
+ menuList->Append(LIST_SET_COL_ORDER, wxT("Se&t columns order\tShift-Ctrl-O"));
+ menuList->Append(LIST_GET_COL_ORDER, wxT("Sho&w columns order\tCtrl-O"));
+#endif // wxHAS_LISTCTRL_COLUMN_ORDER
+ menuList->AppendSeparator();
+ menuList->Append(LIST_SORT, wxT("Sor&t\tCtrl-T"));
+ menuList->Append(LIST_FIND, "Test Find() performance");
+ menuList->AppendSeparator();
+ menuList->Append(LIST_ADD, wxT("&Append an item\tCtrl-P"));
+ menuList->Append(LIST_EDIT, wxT("&Edit the item\tCtrl-E"));
+ menuList->Append(LIST_DELETE, wxT("&Delete first item\tCtrl-X"));
+ menuList->Append(LIST_DELETE_ALL, wxT("Delete &all items"));
+ menuList->AppendSeparator();
+ menuList->Append(LIST_FREEZE, wxT("Free&ze\tCtrl-Z"));
+ menuList->Append(LIST_THAW, wxT("Tha&w\tCtrl-W"));
+ menuList->AppendSeparator();
+ menuList->AppendCheckItem(LIST_TOGGLE_LINES, wxT("Toggle &lines\tCtrl-I"));
+ menuList->AppendCheckItem(LIST_TOGGLE_MULTI_SEL,
+ wxT("&Multiple selection\tCtrl-M"));
+ menuList->Check(LIST_TOGGLE_MULTI_SEL, true);
+ menuList->AppendCheckItem(LIST_TOGGLE_HEADER, "Toggle &header\tCtrl-H");
+ menuList->Check(LIST_TOGGLE_HEADER, true);
+ menuList->AppendCheckItem(LIST_TOGGLE_BELL, "Toggle &bell on no match");
+
+ wxMenu *menuCol = new wxMenu;
+ menuCol->Append(LIST_SET_FG_COL, wxT("&Foreground colour..."));
+ menuCol->Append(LIST_SET_BG_COL, wxT("&Background colour..."));
+ menuCol->AppendCheckItem(LIST_ROW_LINES, wxT("Alternating colours"));
+
+ wxMenuBar *menubar = new wxMenuBar;
+ menubar->Append(menuFile, wxT("&File"));
+ menubar->Append(menuView, wxT("&View"));
+ menubar->Append(menuList, wxT("&List"));
+ menubar->Append(menuCol, wxT("&Colour"));
+ SetMenuBar(menubar);
+
+ m_panel = new wxPanel(this, wxID_ANY);
+ m_logWindow = new wxTextCtrl(m_panel, wxID_ANY, wxEmptyString,
+ wxDefaultPosition, wxDefaultSize,
+ wxTE_READONLY | wxTE_MULTILINE | wxSUNKEN_BORDER);
+
+ m_logOld = wxLog::SetActiveTarget(new wxLogTextCtrl(m_logWindow));
+
+ RecreateList(wxLC_REPORT | wxLC_SINGLE_SEL);
+
+#ifdef __WXMSW__
+ // this is useful to know specially when debugging :)
+ wxLogMessage("Your version of comctl32.dll is: %d",
+ wxApp::GetComCtl32Version());
+#endif
+
+#if wxUSE_STATUSBAR
+ CreateStatusBar();
+#endif // wxUSE_STATUSBAR
+}
+
+MyFrame::~MyFrame()