void MyFrame::OnToggleMultiSel(wxCommandEvent& WXUNUSED(event)) { long flags = m_listCtrl->GetWindowStyleFlag(); if ( flags & wxLC_SINGLE_SEL ) flags &= ~wxLC_SINGLE_SEL; else flags |= wxLC_SINGLE_SEL; m_logWindow->WriteText(wxString::Format(wxT("Current selection mode: %sle\n"), (flags & wxLC_SINGLE_SEL) ? _T("sing") : _T("multip"))); RecreateList(flags); }
void MyFrame::OnSetItemsCount(wxCommandEvent& WXUNUSED(event)) { int numItems = wxGetNumberFromUser ( "Enter the initial number of items for " "the list and report views", "Number of items:", "wxWidgets wxListCtrl sample", m_numListItems, 0, 10000, this ); if ( numItems == -1 || numItems == m_numListItems ) return; m_numListItems = numItems; if ( m_listCtrl->HasFlag(wxLC_REPORT) && !m_listCtrl->HasFlag(wxLC_VIRTUAL) ) RecreateList(wxLC_REPORT); else if ( m_listCtrl->HasFlag(wxLC_LIST) ) RecreateList(wxLC_LIST); }
void MyFrame::OnSmallVirtualView(wxCommandEvent& WXUNUSED(event)) { m_smallVirtual = true; RecreateList(wxLC_REPORT | wxLC_VIRTUAL); }
void MyFrame::OnSmallIconTextView(wxCommandEvent& WXUNUSED(event)) { RecreateList(wxLC_SMALL_ICON); }
void MyFrame::OnIconView(wxCommandEvent& WXUNUSED(event)) { RecreateList(wxLC_ICON, false); }
void MyFrame::OnReportView(wxCommandEvent& WXUNUSED(event)) { RecreateList(wxLC_REPORT); }
void MyFrame::OnListView(wxCommandEvent& WXUNUSED(event)) { RecreateList(wxLC_LIST); }
// My frame constructor MyFrame::MyFrame(const wxChar *title) : wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(600, 500)) { m_listCtrl = NULL; m_logWindow = NULL; m_smallVirtual = false; // Give it an icon SetIcon( wxICON(mondrian) ); // Make an image list containing large icons m_imageListNormal = new wxImageList(32, 32, true); m_imageListSmall = new wxImageList(16, 16, true); #ifdef __WXMSW__ m_imageListNormal->Add( wxIcon(_T("icon1"), wxBITMAP_TYPE_ICO_RESOURCE) ); m_imageListNormal->Add( wxIcon(_T("icon2"), wxBITMAP_TYPE_ICO_RESOURCE) ); m_imageListNormal->Add( wxIcon(_T("icon3"), wxBITMAP_TYPE_ICO_RESOURCE) ); m_imageListNormal->Add( wxIcon(_T("icon4"), wxBITMAP_TYPE_ICO_RESOURCE) ); m_imageListNormal->Add( wxIcon(_T("icon5"), wxBITMAP_TYPE_ICO_RESOURCE) ); m_imageListNormal->Add( wxIcon(_T("icon6"), wxBITMAP_TYPE_ICO_RESOURCE) ); m_imageListNormal->Add( wxIcon(_T("icon7"), wxBITMAP_TYPE_ICO_RESOURCE) ); m_imageListNormal->Add( wxIcon(_T("icon8"), wxBITMAP_TYPE_ICO_RESOURCE) ); m_imageListNormal->Add( wxIcon(_T("icon9"), wxBITMAP_TYPE_ICO_RESOURCE) ); m_imageListSmall->Add( wxIcon(_T("iconsmall"), wxBITMAP_TYPE_ICO_RESOURCE) ); #else m_imageListNormal->Add( wxIcon( toolbrai_xpm ) ); m_imageListNormal->Add( wxIcon( toolchar_xpm ) ); m_imageListNormal->Add( wxIcon( tooldata_xpm ) ); m_imageListNormal->Add( wxIcon( toolnote_xpm ) ); m_imageListNormal->Add( wxIcon( tooltodo_xpm ) ); m_imageListNormal->Add( wxIcon( toolchec_xpm ) ); m_imageListNormal->Add( wxIcon( toolgame_xpm ) ); m_imageListNormal->Add( wxIcon( tooltime_xpm ) ); m_imageListNormal->Add( wxIcon( toolword_xpm ) ); m_imageListSmall->Add( wxIcon( small1_xpm) ); #endif // Make a menubar wxMenu *menuFile = new wxMenu; menuFile->Append(LIST_ABOUT, _T("&About")); menuFile->AppendSeparator(); menuFile->Append(LIST_QUIT, _T("E&xit\tAlt-X")); wxMenu *menuView = new wxMenu; menuView->Append(LIST_LIST_VIEW, _T("&List view\tF1")); menuView->Append(LIST_REPORT_VIEW, _T("&Report view\tF2")); menuView->Append(LIST_ICON_VIEW, _T("&Icon view\tF3")); menuView->Append(LIST_ICON_TEXT_VIEW, _T("Icon view with &text\tF4")); menuView->Append(LIST_SMALL_ICON_VIEW, _T("&Small icon view\tF5")); menuView->Append(LIST_SMALL_ICON_TEXT_VIEW, _T("Small icon &view with text\tF6")); menuView->Append(LIST_VIRTUAL_VIEW, _T("&Virtual view\tF7")); menuView->Append(LIST_SMALL_VIRTUAL_VIEW, _T("Small virtual vie&w\tF8")); #ifdef __WXMAC__ menuView->AppendCheckItem(LIST_MAC_USE_GENERIC, _T("Mac: Use Generic Control")); #endif wxMenu *menuList = new wxMenu; menuList->Append(LIST_GOTO, _T("&Go to item #3\tCtrl-3")); menuList->Append(LIST_FOCUS_LAST, _T("&Make last item current\tCtrl-L")); menuList->Append(LIST_TOGGLE_FIRST, _T("To&ggle first item\tCtrl-G")); menuList->Append(LIST_DESELECT_ALL, _T("&Deselect All\tCtrl-D")); menuList->Append(LIST_SELECT_ALL, _T("S&elect All\tCtrl-A")); menuList->AppendSeparator(); menuList->Append(LIST_SHOW_COL_INFO, _T("Show &column info\tCtrl-C")); menuList->Append(LIST_SHOW_SEL_INFO, _T("Show &selected items\tCtrl-S")); menuList->Append(LIST_SHOW_VIEW_RECT, _T("Show &view rect")); #ifdef wxHAS_LISTCTRL_COLUMN_ORDER menuList->Append(LIST_SET_COL_ORDER, _T("Se&t columns order\tShift-Ctrl-O")); menuList->Append(LIST_GET_COL_ORDER, _T("Show&w columns order\tCtrl-O")); #endif // wxHAS_LISTCTRL_COLUMN_ORDER menuList->AppendSeparator(); menuList->Append(LIST_SORT, _T("Sor&t\tCtrl-T")); menuList->AppendSeparator(); menuList->Append(LIST_ADD, _T("&Append an item\tCtrl-P")); menuList->Append(LIST_EDIT, _T("&Edit the item\tCtrl-E")); menuList->Append(LIST_DELETE, _T("&Delete first item\tCtrl-X")); menuList->Append(LIST_DELETE_ALL, _T("Delete &all items")); menuList->AppendSeparator(); 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); wxMenu *menuCol = new wxMenu; menuCol->Append(LIST_SET_FG_COL, _T("&Foreground colour...")); menuCol->Append(LIST_SET_BG_COL, _T("&Background colour...")); wxMenuBar *menubar = new wxMenuBar; menubar->Append(menuFile, _T("&File")); menubar->Append(menuView, _T("&View")); menubar->Append(menuList, _T("&List")); menubar->Append(menuCol, _T("&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 }