]> git.saurik.com Git - wxWidgets.git/commitdiff
make it possible to specify the virtual table size (this makes it easier to
authorVadim Zeitlin <vadim@wxwidgets.org>
Mon, 21 Feb 2000 17:37:07 +0000 (17:37 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Mon, 21 Feb 2000 17:37:07 +0000 (17:37 +0000)
see that the memory taken by the grid doesn't depend on it with top)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6182 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

samples/newgrid/griddemo.cpp
samples/newgrid/griddemo.h

index 8521a16b1eee100c315840b663b6c340b25c3a31..0b31be5e19ac392245bfb7f0edc6f00a897f1972 100644 (file)
@@ -612,8 +612,18 @@ void GridFrame::OnQuit( wxCommandEvent& WXUNUSED(ev) )
 
 void GridFrame::OnVTable(wxCommandEvent& )
 {
-    BigGridFrame* win = new BigGridFrame();
-    win->Show(TRUE);
+    static long s_sizeGrid = 10000;
+
+    s_sizeGrid = wxGetNumberFromUser("Size of the table to create",
+                                     "Size: ",
+                                     "wxGridDemo question",
+                                     s_sizeGrid,
+                                     0, 32000, this);
+    if ( s_sizeGrid != -1 )
+    {
+        BigGridFrame* win = new BigGridFrame(s_sizeGrid);
+        win->Show(TRUE);
+    }
 }
 
 // ----------------------------------------------------------------------------
@@ -642,11 +652,11 @@ void MyGridCellRenderer::Draw(wxGrid& grid,
 // BigGridFrame and BigGridTable:  Sample of a non-standard table
 // ----------------------------------------------------------------------------
 
-BigGridFrame::BigGridFrame()
-    : wxFrame(NULL, -1, "Plugin Virtual Table", wxDefaultPosition,
-              wxSize(500, 450))
+BigGridFrame::BigGridFrame(long sizeGrid)
+            : wxFrame(NULL, -1, "Plugin Virtual Table",
+                      wxDefaultPosition, wxSize(500, 450))
 {
     m_grid = new wxGrid(this, -1, wxDefaultPosition, wxDefaultSize);
-    m_table = new BigGridTable;
+    m_table = new BigGridTable(sizeGrid);
     m_grid->SetTable(m_table, TRUE);
 }
index fe66d9e1fa7da24ee2335d63142dd64554317bdd..dc227bfd478bb5c4d681de51c43ff49bb67c77c1 100644 (file)
@@ -114,25 +114,35 @@ public:
                       bool isSelected);
 };
 
+// ----------------------------------------------------------------------------
+// demonstration of virtual table which doesn't store all of its data in
+// memory
+// ----------------------------------------------------------------------------
 
-class BigGridTable : public wxGridTableBase {
+class BigGridTable : public wxGridTableBase
+{
 public:
-    long GetNumberRows() { return 10000; }
-    long GetNumberCols() { return 10000; }
+    BigGridTable(long sizeGrid) { m_sizeGrid = sizeGrid; }
+
+    long GetNumberRows() { return m_sizeGrid; }
+    long GetNumberCols() { return m_sizeGrid; }
 
-    wxString GetValue( int row, int col ) {
-        wxString str;
-        str.Printf("(%d, %d)", row, col);
-        return str;
+    wxString GetValue( int row, int col )
+    {
+        return wxString::Format("(%d, %d)", row, col);
     }
 
-    void SetValue( int , int , const wxString&  ) {}
+    void SetValue( int , int , const wxString&  ) { /* ignore */ }
     bool IsEmptyCell( int , int  ) { return FALSE; }
+
+private:
+    long m_sizeGrid;
 };
 
-class BigGridFrame : public wxFrame {
+class BigGridFrame : public wxFrame
+{
 public:
-    BigGridFrame();
+    BigGridFrame(long sizeGrid);
 
 private:
     wxGrid*       m_grid;
@@ -140,5 +150,5 @@ private:
 };
 
 
-#endif
+#endif // griddemo_h