]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/newgrid/griddemo.h
Committing menubar changes again after CVS trashed them.
[wxWidgets.git] / samples / newgrid / griddemo.h
index 4af53be9602bd232ca96499e9d44f93f6bfda2bb..5140bfbbb4febc286f6617c873dadfa5fe92c66c 100644 (file)
@@ -39,6 +39,7 @@ class GridFrame : public wxFrame
     void ToggleEditing( wxCommandEvent& );
     void ToggleRowSizing( wxCommandEvent& );
     void ToggleColSizing( wxCommandEvent& );
+    void ToggleGridSizing( wxCommandEvent& );
     void SetLabelColour( wxCommandEvent& );
     void SetLabelTextColour( wxCommandEvent& );
     void SetRowLabelHorizAlignment( wxCommandEvent& );
@@ -55,6 +56,9 @@ class GridFrame : public wxFrame
     void DeleteSelectedRows( wxCommandEvent& );
     void DeleteSelectedCols( wxCommandEvent& );
     void ClearGrid( wxCommandEvent& );
+    void SelectCells( wxCommandEvent& );
+    void SelectRows( wxCommandEvent& );
+    void SelectCols( wxCommandEvent& );
 
     void OnLabelLeftClick( wxGridEvent& );
     void OnCellLeftClick( wxGridEvent& );
@@ -83,6 +87,7 @@ public:
         ID_TOGGLEEDIT,
         ID_TOGGLEROWSIZING,
         ID_TOGGLECOLSIZING,
+        ID_TOGGLEGRIDSIZING,
         ID_SETLABELCOLOUR,
         ID_SETLABELTEXTCOLOUR,
         ID_ROWLABELALIGN,
@@ -97,6 +102,10 @@ public:
         ID_DELETEROW,
         ID_DELETECOL,
         ID_CLEARGRID,
+       ID_CHANGESEL,
+       ID_SELCELLS,
+       ID_SELROWS,
+       ID_SELCOLS,
         ID_SET_CELL_FG_COLOUR,
         ID_SET_CELL_BG_COLOUR,
         ID_ABOUT,
@@ -106,6 +115,8 @@ public:
         ID_TESTFUNC
     };
 
+    wxLog *m_logOld;
+
     DECLARE_EVENT_TABLE()
 };
 
@@ -125,31 +136,13 @@ public:
 // memory
 // ----------------------------------------------------------------------------
 
-class SimpleTable : public wxGridStringTable {
-public:
-    SimpleTable( int numRows, int numCols )
-        : wxGridStringTable( numRows, numCols ) {}
-
-    // override this to fake a row as all bools
-    wxString GetTypeName( int row, int col )
-        {
-            if (row == 8)
-                return wxT("bool");
-            else if (row == 9 && col == 1)
-                return wxT("unknown type");  // to test fallback
-            else
-                return wxGridStringTable::GetTypeName(row, col);
-        }
-
-};
-
 class BigGridTable : public wxGridTableBase
 {
 public:
     BigGridTable(long sizeGrid) { m_sizeGrid = sizeGrid; }
 
-    long GetNumberRows() { return m_sizeGrid; }
-    long GetNumberCols() { return m_sizeGrid; }
+    int GetNumberRows() { return m_sizeGrid; }
+    int GetNumberCols() { return m_sizeGrid; }
     wxString GetValue( int row, int col )
     {
         return wxString::Format("(%d, %d)", row, col);
@@ -173,9 +166,49 @@ private:
 };
 
 // ----------------------------------------------------------------------------
-// another, more realistic, grid example
+// an example of custom attr provider: this one makes all odd rows appear grey
+// ----------------------------------------------------------------------------
+
+class MyGridCellAttrProvider : public wxGridCellAttrProvider
+{
+public:
+    MyGridCellAttrProvider();
+    virtual ~MyGridCellAttrProvider();
+
+    virtual wxGridCellAttr *GetAttr(int row, int col) const;
+
+private:
+    wxGridCellAttr *m_attrForOddRows;
+};
+
+// ----------------------------------------------------------------------------
+// another, more realistic, grid example: shows typed columns and more
 // ----------------------------------------------------------------------------
 
+class BugsGridTable : public wxGridTableBase
+{
+public:
+    BugsGridTable();
+
+    virtual int GetNumberRows();
+    virtual int GetNumberCols();
+    virtual bool IsEmptyCell( int row, int col );
+    virtual wxString GetValue( int row, int col );
+    virtual void SetValue( int row, int col, const wxString& value );
+
+    virtual wxString GetColLabelValue( int col );
+
+    virtual wxString GetTypeName( int row, int col );
+    virtual bool CanGetValueAs( int row, int col, const wxString& typeName );
+    virtual bool CanSetValueAs( int row, int col, const wxString& typeName );
+
+    virtual long GetValueAsLong( int row, int col );
+    virtual bool GetValueAsBool( int row, int col );
+
+    virtual void SetValueAsLong( int row, int col, long value );
+    virtual void SetValueAsBool( int row, int col, bool value );
+};
+
 class BugsGridFrame : public wxFrame
 {
 public: