X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/71cf399ff0f1ddb966b48e512b0fb4e690f5c440..0159d534634fb2a64687efc25812676c99ac9295:/samples/grid/griddemo.cpp?ds=inline diff --git a/samples/grid/griddemo.cpp b/samples/grid/griddemo.cpp index a3c6b4287c..533f984b47 100644 --- a/samples/grid/griddemo.cpp +++ b/samples/grid/griddemo.cpp @@ -71,6 +71,7 @@ BEGIN_EVENT_TABLE( GridFrame, wxFrame ) EVT_MENU( ID_TOGGLECOLMOVING, GridFrame::ToggleColMoving ) EVT_MENU( ID_TOGGLEGRIDSIZING, GridFrame::ToggleGridSizing ) EVT_MENU( ID_TOGGLEGRIDDRAGCELL, GridFrame::ToggleGridDragCell ) + EVT_MENU( ID_TOGGLENATIVEHEADER, GridFrame::ToggleNativeHeader ) EVT_MENU( ID_TOGGLEGRIDLINES, GridFrame::ToggleGridLines ) EVT_MENU( ID_AUTOSIZECOLS, GridFrame::AutoSizeCols ) EVT_MENU( ID_CELLOVERFLOW, GridFrame::CellOverflow ) @@ -91,6 +92,7 @@ BEGIN_EVENT_TABLE( GridFrame, wxFrame ) EVT_MENU( ID_SELCELLS, GridFrame::SelectCells ) EVT_MENU( ID_SELROWS, GridFrame::SelectRows ) EVT_MENU( ID_SELCOLS, GridFrame::SelectCols ) + EVT_MENU( ID_SELROWSORCOLS, GridFrame::SelectRowsOrCols ) EVT_MENU( ID_SET_CELL_FG_COLOUR, GridFrame::SetCellFgColour ) EVT_MENU( ID_SET_CELL_BG_COLOUR, GridFrame::SetCellBgColour ) @@ -152,20 +154,21 @@ GridFrame::GridFrame() fileMenu->Append( wxID_EXIT, _T("E&xit\tAlt-X") ); wxMenu *viewMenu = new wxMenu; - viewMenu->Append( ID_TOGGLEROWLABELS, _T("&Row labels"), wxEmptyString, wxITEM_CHECK ); - viewMenu->Append( ID_TOGGLECOLLABELS, _T("&Col labels"), wxEmptyString, wxITEM_CHECK ); - viewMenu->Append( ID_TOGGLEEDIT, _T("&Editable"), wxEmptyString, wxITEM_CHECK ); - viewMenu->Append( ID_TOGGLEROWSIZING, _T("Ro&w drag-resize"), wxEmptyString, wxITEM_CHECK ); - viewMenu->Append( ID_TOGGLECOLSIZING, _T("C&ol drag-resize"), wxEmptyString, wxITEM_CHECK ); - viewMenu->Append( ID_TOGGLECOLMOVING, _T("Col drag-&move"), wxEmptyString, wxITEM_CHECK ); - viewMenu->Append( ID_TOGGLEGRIDSIZING, _T("&Grid drag-resize"), wxEmptyString, wxITEM_CHECK ); - viewMenu->Append( ID_TOGGLEGRIDDRAGCELL, _T("&Grid drag-cell"), wxEmptyString, wxITEM_CHECK ); - viewMenu->Append( ID_TOGGLEGRIDLINES, _T("&Grid Lines"), wxEmptyString, wxITEM_CHECK ); - viewMenu->Append( ID_SET_HIGHLIGHT_WIDTH, _T("&Set Cell Highlight Width...") ); - viewMenu->Append( ID_SET_RO_HIGHLIGHT_WIDTH, _T("&Set Cell RO Highlight Width...") ); - viewMenu->Append( ID_AUTOSIZECOLS, _T("&Auto-size cols") ); - viewMenu->Append( ID_CELLOVERFLOW, _T("&Overflow cells"), wxEmptyString, wxITEM_CHECK ); - viewMenu->Append( ID_RESIZECELL, _T("&Resize cell (7,1)"), wxEmptyString, wxITEM_CHECK ); + viewMenu->AppendCheckItem(ID_TOGGLEROWLABELS, "&Row labels"); + viewMenu->AppendCheckItem(ID_TOGGLECOLLABELS, "&Col labels"); + viewMenu->AppendCheckItem(ID_TOGGLEEDIT,"&Editable"); + viewMenu->AppendCheckItem(ID_TOGGLEROWSIZING, "Ro&w drag-resize"); + viewMenu->AppendCheckItem(ID_TOGGLECOLSIZING, "C&ol drag-resize"); + viewMenu->AppendCheckItem(ID_TOGGLECOLMOVING, "Col drag-&move"); + viewMenu->AppendCheckItem(ID_TOGGLEGRIDSIZING, "&Grid drag-resize"); + viewMenu->AppendCheckItem(ID_TOGGLEGRIDDRAGCELL, "&Grid drag-cell"); + viewMenu->AppendCheckItem(ID_TOGGLENATIVEHEADER, "&Native column headers"); + viewMenu->AppendCheckItem(ID_TOGGLEGRIDLINES, "&Grid Lines"); + viewMenu->AppendCheckItem(ID_SET_HIGHLIGHT_WIDTH, "&Set Cell Highlight Width..."); + viewMenu->AppendCheckItem(ID_SET_RO_HIGHLIGHT_WIDTH, "&Set Cell RO Highlight Width..."); + viewMenu->AppendCheckItem(ID_AUTOSIZECOLS, "&Auto-size cols"); + viewMenu->AppendCheckItem(ID_CELLOVERFLOW, "&Overflow cells"); + viewMenu->AppendCheckItem(ID_RESIZECELL, "&Resize cell (7,1)"); wxMenu *rowLabelMenu = new wxMenu; @@ -221,9 +224,10 @@ GridFrame::GridFrame() selectionMenu, _T("Change selection mode") ); - selectionMenu->Append( ID_SELCELLS, _T("Select &Cells") ); - selectionMenu->Append( ID_SELROWS, _T("Select &Rows") ); - selectionMenu->Append( ID_SELCOLS, _T("Select C&ols") ); + selectionMenu->Append( ID_SELCELLS, _T("Select &cells") ); + selectionMenu->Append( ID_SELROWS, _T("Select &rows") ); + selectionMenu->Append( ID_SELCOLS, _T("Select col&umns") ); + selectionMenu->Append( ID_SELROWSORCOLS, _T("Select rows &or columns") ); wxMenu *autosizeMenu = new wxMenu; autosizeMenu->Append( ID_SIZE_ROW, _T("Selected &row data") ); @@ -239,7 +243,7 @@ GridFrame::GridFrame() wxMenuBar *menuBar = new wxMenuBar; menuBar->Append( fileMenu, _T("&File") ); - menuBar->Append( viewMenu, _T("&View") ); + menuBar->Append( viewMenu, _T("&Grid") ); menuBar->Append( colMenu, _T("&Colours") ); menuBar->Append( editMenu, _T("&Edit") ); menuBar->Append( selectMenu, _T("&Select") ); @@ -336,14 +340,19 @@ GridFrame::GridFrame() grid->SetCellValue(5, 5, _T("Bg from row attr Text col from col attr and this text is so long that it covers over many many empty cells but is broken by one that isn't")); grid->SetColFormatFloat(6); - grid->SetCellValue(0, 6, _T("3.1415")); - grid->SetCellValue(1, 6, _T("1415")); - grid->SetCellValue(2, 6, _T("12345.67890")); + grid->SetCellValue(0, 6, wxString::Format(wxT("%g"), 3.1415)); + grid->SetCellValue(1, 6, wxString::Format(wxT("%g"), 1415.0)); + grid->SetCellValue(2, 6, wxString::Format(wxT("%g"), 12345.67890)); grid->SetColFormatFloat(7, 6, 2); - grid->SetCellValue(0, 7, _T("3.1415")); - grid->SetCellValue(1, 7, _T("1415")); - grid->SetCellValue(2, 7, _T("12345.67890")); + grid->SetCellValue(0, 7, wxString::Format(wxT("%g"), 3.1415)); + grid->SetCellValue(1, 7, wxString::Format(wxT("%g"), 1415.0)); + grid->SetCellValue(2, 7, wxString::Format(wxT("%g"), 12345.67890)); + + grid->SetColFormatNumber(8); + grid->SetCellValue(0, 8, "17"); + grid->SetCellValue(1, 8, "0"); + grid->SetCellValue(2, 8, "-666"); const wxString choices[] = { @@ -360,6 +369,12 @@ GridFrame::GridFrame() grid->SetCellAlignment(7, 1, wxALIGN_CENTRE, wxALIGN_CENTRE); grid->SetCellValue(7, 1, _T("Big box!")); + // this does exactly nothing except testing that SetAttr() handles NULL + // attributes and does reference counting correctly + grid->SetAttr(11, 11, NULL); + grid->SetAttr(11, 11, new wxGridCellAttr); + grid->SetAttr(11, 11, NULL); + wxBoxSizer *topSizer = new wxBoxSizer( wxVERTICAL ); topSizer->Add( grid, 1, @@ -371,10 +386,7 @@ GridFrame::GridFrame() wxEXPAND ); #endif // wxUSE_LOG - SetAutoLayout(true); - SetSizer( topSizer ); - - topSizer->Fit( this ); + SetSizerAndFit( topSizer ); Centre(); SetDefaults(); @@ -399,6 +411,7 @@ void GridFrame::SetDefaults() GetMenuBar()->Check( ID_TOGGLECOLMOVING, false ); GetMenuBar()->Check( ID_TOGGLEGRIDSIZING, true ); GetMenuBar()->Check( ID_TOGGLEGRIDDRAGCELL, false ); + GetMenuBar()->Check( ID_TOGGLENATIVEHEADER, false ); GetMenuBar()->Check( ID_TOGGLEGRIDLINES, true ); GetMenuBar()->Check( ID_CELLOVERFLOW, true ); } @@ -468,6 +481,12 @@ void GridFrame::ToggleGridDragCell( wxCommandEvent& WXUNUSED(ev) ) GetMenuBar()->IsChecked( ID_TOGGLEGRIDDRAGCELL ) ); } +void GridFrame::ToggleNativeHeader( wxCommandEvent& WXUNUSED(ev) ) +{ + grid->SetUseNativeColLabels( + GetMenuBar()->IsChecked( ID_TOGGLENATIVEHEADER ) ); +} + void GridFrame::ToggleGridLines( wxCommandEvent& WXUNUSED(ev) ) { grid->EnableGridLines( @@ -790,6 +809,11 @@ void GridFrame::SelectCols( wxCommandEvent& WXUNUSED(ev) ) grid->SetSelectionMode( wxGrid::wxGridSelectColumns ); } +void GridFrame::SelectRowsOrCols( wxCommandEvent& WXUNUSED(ev) ) +{ + grid->SetSelectionMode( wxGrid::wxGridSelectRowsOrColumns ); +} + void GridFrame::SetCellFgColour( wxCommandEvent& WXUNUSED(ev) ) { wxColour col = wxGetColourFromUser(this);