]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/listctrl/listtest.h
Support using GetTextExtent() with empty string to get descent in wxOSX.
[wxWidgets.git] / samples / listctrl / listtest.h
index 47942fa7ae94525a734219f9b484253365962165..f99c135eb2b2cdd28b3a5690a965b683c8685827 100644 (file)
@@ -6,9 +6,17 @@
 // Created:     04/01/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
+// 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__)
+    #define USE_CONTEXT_MENU 0
+#else
+    #define USE_CONTEXT_MENU 1
+#endif
+
 // Define a new application type
 class MyApp: public wxApp
 {
@@ -18,7 +26,7 @@ public:
     virtual bool OnInit();
 
 private:
-    DECLARE_NO_COPY_CLASS(MyApp)
+    wxDECLARE_NO_COPY_CLASS(MyApp);
 };
 
 class MyListCtrl: public wxListCtrl
@@ -29,9 +37,13 @@ public:
                const wxPoint& pos,
                const wxSize& size,
                long style)
-        : wxListCtrl(parent, id, pos, size, style),
-          m_attr(*wxBLUE, *wxLIGHT_GREY, wxNullFont)
+        : wxListCtrl(parent, id, pos, size, style)
         {
+            m_updated = -1;
+
+#ifdef __POCKETPC__
+            EnableContextMenu();
+#endif
         }
 
     // add one item to the listctrl in report mode
@@ -48,10 +60,6 @@ public:
     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);
@@ -61,7 +69,15 @@ public:
 
     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);
@@ -71,9 +87,10 @@ private:
     virtual int OnGetItemColumnImage(long item, long column) const;
     virtual wxListItemAttr *OnGetItemAttr(long item) const;
 
-    wxListItemAttr m_attr;
+    long m_updated;
 
-    DECLARE_NO_COPY_CLASS(MyListCtrl)
+
+    wxDECLARE_NO_COPY_CLASS(MyListCtrl);
     DECLARE_EVENT_TABLE()
 };
 
@@ -81,7 +98,7 @@ private:
 class MyFrame: public wxFrame
 {
 public:
-    MyFrame(const wxChar *title, int x, int y, int w, int h);
+    MyFrame(const wxChar *title);
     virtual ~MyFrame();
 
     void DoSize();
@@ -100,6 +117,10 @@ protected:
     void OnVirtualView(wxCommandEvent& event);
     void OnSmallVirtualView(wxCommandEvent& event);
 
+    void OnSetItemsCount(wxCommandEvent& event);
+
+
+    void OnGoTo(wxCommandEvent& event);
     void OnFocusLast(wxCommandEvent& event);
     void OnToggleFirstSel(wxCommandEvent& event);
     void OnDeselectAll(wxCommandEvent& event);
@@ -111,15 +132,29 @@ protected:
     void OnSort(wxCommandEvent& event);
     void OnSetFgColour(wxCommandEvent& event);
     void OnSetBgColour(wxCommandEvent& event);
+    void OnSetRowLines(wxCommandEvent& event);
     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 OnUpdateShowColInfo(wxUpdateUIEvent& event);
+    void OnToggleHeader(wxCommandEvent& event);
+    void OnToggleBell(wxCommandEvent& event);
+#ifdef __WXOSX__
+    void OnToggleMacUseGeneric(wxCommandEvent& event);
+#endif // __WXOSX__
+    void OnFind(wxCommandEvent& event);
+
+    void OnUpdateUIEnableInReport(wxUpdateUIEvent& event);
     void OnUpdateToggleMultiSel(wxUpdateUIEvent& event);
+    void OnUpdateToggleHeader(wxUpdateUIEvent& event);
+    void OnUpdateRowLines(wxUpdateUIEvent& event);
 
     wxImageList *m_imageListNormal;
     wxImageList *m_imageListSmall;
@@ -147,7 +182,11 @@ private:
 
     bool m_smallVirtual;
 
-    DECLARE_NO_COPY_CLASS(MyFrame)
+    // number of items to initialize list/report view with
+    int m_numListItems;
+
+
+    wxDECLARE_NO_COPY_CLASS(MyFrame);
     DECLARE_EVENT_TABLE()
 };
 
@@ -166,6 +205,7 @@ enum
     LIST_REPORT_VIEW,
     LIST_VIRTUAL_VIEW,
     LIST_SMALL_VIRTUAL_VIEW,
+    LIST_SET_ITEMS_COUNT,
 
     LIST_DESELECT_ALL,
     LIST_SELECT_ALL,
@@ -174,17 +214,29 @@ enum
     LIST_ADD,
     LIST_EDIT,
     LIST_SORT,
+    LIST_FIND,
     LIST_SET_FG_COL,
     LIST_SET_BG_COL,
+    LIST_ROW_LINES,
     LIST_TOGGLE_MULTI_SEL,
+    LIST_TOGGLE_HEADER,
+    LIST_TOGGLE_BELL,
     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,
+#ifdef __WXOSX__
+    LIST_MAC_USE_GENERIC,
+#endif
 
     LIST_CTRL                   = 1000
 };
-