]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/listctrl/listtest.h
PCH support.
[wxWidgets.git] / samples / listctrl / listtest.h
index 005fb3f0e974b7a1b414b4e0a1feec779a5f7b00..600eaf4b1ae08c3861574d624f6087333263e817 100644 (file)
@@ -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:
+    DECLARE_NO_COPY_CLASS(MyApp)
 };
 
 class MyListCtrl: public wxListCtrl
@@ -25,39 +38,61 @@ public:
                const wxSize& size,
                long style)
         : wxListCtrl(parent, id, pos, size, style),
-          m_attr(*wxCYAN, *wxLIGHT_GREY, wxNullFont)
+          m_attr(*wxBLUE, *wxLIGHT_GREY, wxNullFont)
         {
+#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);
+#if WXWIN_COMPATIBILITY_2_4
     void OnGetInfo(wxListEvent& event);
     void OnSetInfo(wxListEvent& event);
+#endif
     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;
 
+    DECLARE_NO_COPY_CLASS(MyListCtrl)
     DECLARE_EVENT_TABLE()
 };
 
@@ -65,13 +100,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,11 +117,14 @@ public:
     void OnSmallIconView(wxCommandEvent& event);
     void OnSmallIconTextView(wxCommandEvent& event);
     void OnVirtualView(wxCommandEvent& event);
+    void OnSmallVirtualView(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);
@@ -96,24 +133,40 @@ public:
     void OnToggleMultiSel(wxCommandEvent& event);
     void OnShowColInfo(wxCommandEvent& event);
     void OnShowSelInfo(wxCommandEvent& event);
+    void OnFreeze(wxCommandEvent& event);
+    void OnThaw(wxCommandEvent& event);
+    void OnToggleLines(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;
+
+    DECLARE_NO_COPY_CLASS(MyFrame)
     DECLARE_EVENT_TABLE()
 };
 
@@ -121,22 +174,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,
@@ -144,7 +199,10 @@ enum
     LIST_TOGGLE_FIRST,
     LIST_SHOW_COL_INFO,
     LIST_SHOW_SEL_INFO,
+    LIST_FOCUS_LAST,
+    LIST_FREEZE,
+    LIST_THAW,
+    LIST_TOGGLE_LINES,
 
     LIST_CTRL                   = 1000
 };
-