]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/listctrl/listtest.h
draw the selected items in another colour when the control doesn't have focus, a...
[wxWidgets.git] / samples / listctrl / listtest.h
index aebe3fe242642300f3ccbb9d86807c4b255df558..f649e03a7960c75a0eb134b613180940c2e8c72d 100644 (file)
@@ -14,35 +14,50 @@ class MyApp: public wxApp
 {
 public:
     virtual bool OnInit();
-
-    wxImageList *m_imageListNormal;
-    wxImageList *m_imageListSmall;
 };
 
 class MyListCtrl: public wxListCtrl
 {
 public:
-    MyListCtrl(wxWindow *parent, const wxWindowID id, const wxPoint& pos,
-            const wxSize& size, long style):
-        wxListCtrl(parent, id, pos, size, style)
+    MyListCtrl(wxWindow *parent,
+               const wxWindowID id,
+               const wxPoint& pos,
+               const wxSize& size,
+               long style)
+        : wxListCtrl(parent, id, pos, size, style),
+          m_attr(*wxCYAN, *wxLIGHT_GREY, wxNullFont)
         {
         }
 
+    // add one item to the listctrl in report mode
+    void InsertItemInReportView(int i);
+
     void OnColClick(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 OnCacheHint(wxListEvent& event);
 
     void OnChar(wxKeyEvent& event);
 
+private:
+    void LogEvent(const wxListEvent& event, const wxChar *eventName);
+
+    virtual wxString OnGetItemText(long item, long column) const;
+    virtual int OnGetItemImage(long item) const;
+    virtual wxListItemAttr *OnGetItemAttr(long item) const;
+
+    wxListItemAttr m_attr;
+
     DECLARE_EVENT_TABLE()
 };
 
@@ -53,10 +68,12 @@ public:
     MyListCtrl *m_listCtrl;
     wxTextCtrl *m_logWindow;
 
-    MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h);
+    MyFrame(const wxChar *title, int x, int y, int w, int h);
     ~MyFrame();
 
 public:
+    void OnSize(wxSizeEvent& event);
+
     void OnQuit(wxCommandEvent& event);
     void OnAbout(wxCommandEvent& event);
     void OnListView(wxCommandEvent& event);
@@ -65,35 +82,70 @@ public:
     void OnIconTextView(wxCommandEvent& event);
     void OnSmallIconView(wxCommandEvent& event);
     void OnSmallIconTextView(wxCommandEvent& event);
+    void OnVirtualView(wxCommandEvent& event);
+
+    void OnFocusLast(wxCommandEvent& event);
+    void OnToggleFirstSel(wxCommandEvent& event);
     void OnDeselectAll(wxCommandEvent& event);
     void OnSelectAll(wxCommandEvent& event);
+    void OnAdd(wxCommandEvent& event);
+    void OnDelete(wxCommandEvent& event);
     void OnDeleteAll(wxCommandEvent& event);
     void OnSort(wxCommandEvent& event);
+    void OnSetFgColour(wxCommandEvent& event);
+    void OnSetBgColour(wxCommandEvent& event);
+    void OnToggleMultiSel(wxCommandEvent& event);
+    void OnShowColInfo(wxCommandEvent& event);
+    void OnShowSelInfo(wxCommandEvent& event);
 
-    void BusyOn(wxCommandEvent& event);
-    void BusyOff(wxCommandEvent& event);
+    void OnUpdateShowColInfo(wxUpdateUIEvent& event);
+
+    wxImageList *m_imageListNormal;
+    wxImageList *m_imageListSmall;
+
+private:
+    // recreate the list control with the new flags
+    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 InitWithVirtualItems();
+
+    wxLog *m_logOld;
 
     DECLARE_EVENT_TABLE()
 };
 
 
-// ID for the menu quit command
+// IDs for the menu commands
 enum
 {
-    LIST_QUIT                   = 1,
-    LIST_LIST_VIEW              = 2,
-    LIST_ICON_VIEW              = 3,
-    LIST_ICON_TEXT_VIEW         = 4,
-    LIST_SMALL_ICON_VIEW        = 5,
-    LIST_SMALL_ICON_TEXT_VIEW   = 6,
-    LIST_REPORT_VIEW            = 7,
-    LIST_DESELECT_ALL           = 8,
-    LIST_SELECT_ALL             = 9,
-    LIST_ABOUT                  = 102,
-    BUSY_ON                     = 10,
-    BUSY_OFF                    = 11,
-    LIST_DELETE_ALL             = 12,
+    LIST_ABOUT,
+    LIST_QUIT,
+
+    LIST_LIST_VIEW,
+    LIST_ICON_VIEW,
+    LIST_ICON_TEXT_VIEW,
+    LIST_SMALL_ICON_VIEW,
+    LIST_SMALL_ICON_TEXT_VIEW,
+    LIST_REPORT_VIEW,
+    LIST_VIRTUAL_VIEW,
+
+    LIST_DESELECT_ALL,
+    LIST_SELECT_ALL,
+    LIST_DELETE_ALL,
+    LIST_DELETE,
+    LIST_ADD,
     LIST_SORT,
+    LIST_SET_FG_COL,
+    LIST_SET_BG_COL,
+    LIST_TOGGLE_MULTI_SEL,
+    LIST_TOGGLE_FIRST,
+    LIST_SHOW_COL_INFO,
+    LIST_SHOW_SEL_INFO,
+    LIST_FOCUS_LAST,
 
     LIST_CTRL                   = 1000
 };