X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/88b792af94fe4a2d0f14a2c4c6b85ff3c4bd49a5..70f70818c22dfa19fdec8f21a496d2a535333e0d:/samples/listctrl/listtest.h diff --git a/samples/listctrl/listtest.h b/samples/listctrl/listtest.h index f649e03a79..529e1a6140 100644 --- a/samples/listctrl/listtest.h +++ b/samples/listctrl/listtest.h @@ -5,15 +5,28 @@ // Modified by: // Created: 04/01/98 // RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem +// Copyright: (c) Julian Smart // Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// +// not all ports have support for EVT_CONTEXT_MENU yet, don't define +// USE_CONTEXT_MENU for those which don't +#if defined(__WXMOTIF__) || defined(__WXPM__) || defined(__WXX11__) || defined(__WXMGL__) + #define USE_CONTEXT_MENU 0 +#else + #define USE_CONTEXT_MENU 1 +#endif + // Define a new application type class MyApp: public wxApp { public: + MyApp() { } + virtual bool OnInit(); + +private: + wxDECLARE_NO_COPY_CLASS(MyApp); }; class MyListCtrl: public wxListCtrl @@ -25,39 +38,62 @@ public: const wxSize& size, long style) : wxListCtrl(parent, id, pos, size, style), - m_attr(*wxCYAN, *wxLIGHT_GREY, wxNullFont) + m_attr(*wxBLUE, *wxLIGHT_GREY, wxNullFont) { + m_updated = -1; + +#ifdef __POCKETPC__ + EnableContextMenu(); +#endif } // add one item to the listctrl in report mode void InsertItemInReportView(int i); void OnColClick(wxListEvent& event); + void OnColRightClick(wxListEvent& event); + void OnColBeginDrag(wxListEvent& event); + void OnColDragging(wxListEvent& event); + void OnColEndDrag(wxListEvent& event); void OnBeginDrag(wxListEvent& event); void OnBeginRDrag(wxListEvent& event); void OnBeginLabelEdit(wxListEvent& event); void OnEndLabelEdit(wxListEvent& event); void OnDeleteItem(wxListEvent& event); void OnDeleteAllItems(wxListEvent& event); - void OnGetInfo(wxListEvent& event); - void OnSetInfo(wxListEvent& event); void OnSelected(wxListEvent& event); void OnDeselected(wxListEvent& event); void OnListKeyDown(wxListEvent& event); void OnActivated(wxListEvent& event); + void OnFocused(wxListEvent& event); void OnCacheHint(wxListEvent& event); void OnChar(wxKeyEvent& event); +#if USE_CONTEXT_MENU + void OnContextMenu(wxContextMenuEvent& event); +#endif + + void OnRightClick(wxMouseEvent& event); + private: + void ShowContextMenu(const wxPoint& pos); + wxLog *m_logOld; + void SetColumnImage(int col, int image); + void LogEvent(const wxListEvent& event, const wxChar *eventName); + void LogColEvent(const wxListEvent& event, const wxChar *eventName); virtual wxString OnGetItemText(long item, long column) const; - virtual int OnGetItemImage(long item) const; + virtual int OnGetItemColumnImage(long item, long column) const; virtual wxListItemAttr *OnGetItemAttr(long item) const; wxListItemAttr m_attr; + long m_updated; + + + wxDECLARE_NO_COPY_CLASS(MyListCtrl); DECLARE_EVENT_TABLE() }; @@ -65,13 +101,12 @@ private: class MyFrame: public wxFrame { public: - MyListCtrl *m_listCtrl; - wxTextCtrl *m_logWindow; + MyFrame(const wxChar *title); + virtual ~MyFrame(); - MyFrame(const wxChar *title, int x, int y, int w, int h); - ~MyFrame(); + void DoSize(); -public: +protected: void OnSize(wxSizeEvent& event); void OnQuit(wxCommandEvent& event); @@ -83,12 +118,15 @@ public: void OnSmallIconView(wxCommandEvent& event); void OnSmallIconTextView(wxCommandEvent& event); void OnVirtualView(wxCommandEvent& event); + void OnSmallVirtualView(wxCommandEvent& event); + void OnGoTo(wxCommandEvent& event); void OnFocusLast(wxCommandEvent& event); void OnToggleFirstSel(wxCommandEvent& event); void OnDeselectAll(wxCommandEvent& event); void OnSelectAll(wxCommandEvent& event); void OnAdd(wxCommandEvent& event); + void OnEdit(wxCommandEvent& event); void OnDelete(wxCommandEvent& event); void OnDeleteAll(wxCommandEvent& event); void OnSort(wxCommandEvent& event); @@ -97,24 +135,46 @@ public: void OnToggleMultiSel(wxCommandEvent& event); void OnShowColInfo(wxCommandEvent& event); void OnShowSelInfo(wxCommandEvent& event); + void OnShowViewRect(wxCommandEvent& event); +#ifdef wxHAS_LISTCTRL_COLUMN_ORDER + void OnSetColOrder(wxCommandEvent& event); + void OnGetColOrder(wxCommandEvent& event); +#endif // wxHAS_LISTCTRL_COLUMN_ORDER + void OnFreeze(wxCommandEvent& event); + void OnThaw(wxCommandEvent& event); + void OnToggleLines(wxCommandEvent& event); + void OnToggleMacUseGeneric(wxCommandEvent& event); void OnUpdateShowColInfo(wxUpdateUIEvent& event); + void OnUpdateToggleMultiSel(wxUpdateUIEvent& event); wxImageList *m_imageListNormal; wxImageList *m_imageListSmall; + wxPanel *m_panel; + MyListCtrl *m_listCtrl; + wxTextCtrl *m_logWindow; + private: // recreate the list control with the new flags - void RecreateList(long flags, bool withText = TRUE); + void RecreateList(long flags, bool withText = true); // fill the control with items depending on the view void InitWithListItems(); void InitWithReportItems(); - void InitWithIconItems(bool withText, bool sameIcon = FALSE); + void InitWithIconItems(bool withText, bool sameIcon = false); void InitWithVirtualItems(); + // return true if the control is not in virtual view, give an error message + // and return false if it is + bool CheckNonVirtual() const; + + wxLog *m_logOld; + bool m_smallVirtual; + + wxDECLARE_NO_COPY_CLASS(MyFrame); DECLARE_EVENT_TABLE() }; @@ -122,22 +182,24 @@ private: // IDs for the menu commands enum { - LIST_ABOUT, - LIST_QUIT, + LIST_ABOUT = wxID_ABOUT, + LIST_QUIT = wxID_EXIT, - LIST_LIST_VIEW, + LIST_LIST_VIEW = wxID_HIGHEST, LIST_ICON_VIEW, LIST_ICON_TEXT_VIEW, LIST_SMALL_ICON_VIEW, LIST_SMALL_ICON_TEXT_VIEW, LIST_REPORT_VIEW, LIST_VIRTUAL_VIEW, + LIST_SMALL_VIRTUAL_VIEW, LIST_DESELECT_ALL, LIST_SELECT_ALL, LIST_DELETE_ALL, LIST_DELETE, LIST_ADD, + LIST_EDIT, LIST_SORT, LIST_SET_FG_COL, LIST_SET_BG_COL, @@ -145,8 +207,17 @@ enum LIST_TOGGLE_FIRST, LIST_SHOW_COL_INFO, LIST_SHOW_SEL_INFO, + LIST_SHOW_VIEW_RECT, +#ifdef wxHAS_LISTCTRL_COLUMN_ORDER + LIST_SET_COL_ORDER, + LIST_GET_COL_ORDER, +#endif // wxHAS_LISTCTRL_COLUMN_ORDER + LIST_GOTO, LIST_FOCUS_LAST, + LIST_FREEZE, + LIST_THAW, + LIST_TOGGLE_LINES, + LIST_MAC_USE_GENERIC, LIST_CTRL = 1000 }; -