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
void GridFrame::OnVTable(wxCommandEvent& )
{
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);
+ }
}
// ----------------------------------------------------------------------------
}
// ----------------------------------------------------------------------------
// BigGridFrame and BigGridTable: Sample of a non-standard table
// ----------------------------------------------------------------------------
// 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_grid = new wxGrid(this, -1, wxDefaultPosition, wxDefaultSize);
- m_table = new BigGridTable;
+ m_table = new BigGridTable(sizeGrid);
m_grid->SetTable(m_table, TRUE);
}
m_grid->SetTable(m_table, TRUE);
}
+// ----------------------------------------------------------------------------
+// demonstration of virtual table which doesn't store all of its data in
+// memory
+// ----------------------------------------------------------------------------
-class BigGridTable : public wxGridTableBase {
+class BigGridTable : public wxGridTableBase
+{
- 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; }
bool IsEmptyCell( int , int ) { return FALSE; }
+
+private:
+ long m_sizeGrid;
-class BigGridFrame : public wxFrame {
+class BigGridFrame : public wxFrame
+{
+ BigGridFrame(long sizeGrid);