X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/10434f3c24ae2faf228b6b6c6b6cb6de0c26213d..95b1b9d3b3a97278b528ec66834aa814fcb6b3dd:/samples/newgrid/griddemo.cpp diff --git a/samples/newgrid/griddemo.cpp b/samples/newgrid/griddemo.cpp index 66ccfe5644..47e451ef0c 100644 --- a/samples/newgrid/griddemo.cpp +++ b/samples/newgrid/griddemo.cpp @@ -56,16 +56,21 @@ BEGIN_EVENT_TABLE( GridFrame, wxFrame ) EVT_MENU( ID_COLLABELHORIZALIGN, GridFrame::SetColLabelHorizAlignment ) EVT_MENU( ID_COLLABELVERTALIGN, GridFrame::SetColLabelVertAlignment ) EVT_MENU( ID_GRIDLINECOLOUR, GridFrame::SetGridLineColour ) + EVT_MENU( ID_INSERTROW, GridFrame::InsertRow ) + EVT_MENU( ID_INSERTCOL, GridFrame::InsertCol ) + EVT_MENU( ID_DELETEROW, GridFrame::DeleteRow ) + EVT_MENU( ID_DELETECOL, GridFrame::DeleteCol ) EVT_MENU( ID_CLEARGRID, GridFrame::ClearGrid ) EVT_MENU( ID_ABOUT, GridFrame::About ) EVT_MENU( wxID_EXIT, GridFrame::OnQuit ) - EVT_WXGRID_LABEL_LEFT_CLICK( GridFrame::OnLabelLeftClick ) - EVT_WXGRID_CELL_LEFT_CLICK( GridFrame::OnCellLeftClick ) - EVT_WXGRID_ROW_SIZE( GridFrame::OnRowSize ) - EVT_WXGRID_COL_SIZE( GridFrame::OnColSize ) - EVT_WXGRID_RANGE_SELECT( GridFrame::OnRangeSelected ) - EVT_WXGRID_CELL_CHANGE( GridFrame::OnCellValueChanged ) + EVT_GRID_LABEL_LEFT_CLICK( GridFrame::OnLabelLeftClick ) + EVT_GRID_CELL_LEFT_CLICK( GridFrame::OnCellLeftClick ) + EVT_GRID_ROW_SIZE( GridFrame::OnRowSize ) + EVT_GRID_COL_SIZE( GridFrame::OnColSize ) + EVT_GRID_SELECT_CELL( GridFrame::OnSelectCell ) + EVT_GRID_RANGE_SELECT( GridFrame::OnRangeSelected ) + EVT_GRID_CELL_CHANGE( GridFrame::OnCellValueChanged ) END_EVENT_TABLE() @@ -107,14 +112,21 @@ GridFrame::GridFrame() colLabelMenu->Append( ID_COLLABELVERTALIGN, "&Vertical" ); viewMenu->Append( ID_GRIDLINECOLOUR, "&Grid line colour" ); - viewMenu->Append( ID_CLEARGRID, "Cl&ear grid cell contents" ); + wxMenu *editMenu = new wxMenu; + editMenu->Append( ID_INSERTROW, "Insert &row" ); + editMenu->Append( ID_INSERTCOL, "Insert &column" ); + editMenu->Append( ID_DELETEROW, "Delete ro&w" ); + editMenu->Append( ID_DELETECOL, "Delete co&l" ); + editMenu->Append( ID_CLEARGRID, "Cl&ear grid cell contents" ); + wxMenu *helpMenu = new wxMenu; helpMenu->Append( ID_ABOUT, "&About wxGrid demo" ); wxMenuBar *menuBar = new wxMenuBar; menuBar->Append( fileMenu, "&File" ); menuBar->Append( viewMenu, "&View" ); + menuBar->Append( editMenu, "&Edit" ); menuBar->Append( helpMenu, "&Help" ); SetMenuBar( menuBar ); @@ -362,6 +374,30 @@ void GridFrame::SetGridLineColour( wxCommandEvent& WXUNUSED(ev) ) } +void GridFrame::InsertRow( wxCommandEvent& WXUNUSED(ev) ) +{ + grid->InsertRows( 0, 1 ); +} + + +void GridFrame::InsertCol( wxCommandEvent& WXUNUSED(ev) ) +{ + grid->InsertCols( 0, 1 ); +} + + +void GridFrame::DeleteRow( wxCommandEvent& WXUNUSED(ev) ) +{ + grid->DeleteRows( 0, 1 ); +} + + +void GridFrame::DeleteCol( wxCommandEvent& WXUNUSED(ev) ) +{ + grid->DeleteCols( 0, 1 ); +} + + void GridFrame::ClearGrid( wxCommandEvent& WXUNUSED(ev) ) { grid->ClearGrid(); @@ -408,20 +444,22 @@ void GridFrame::OnLabelLeftClick( wxGridEvent& ev ) logBuf = ""; if ( ev.GetRow() != -1 ) { - logBuf << "row label " << ev.GetRow(); + logBuf << "Left click on row label " << ev.GetRow(); } else if ( ev.GetCol() != -1 ) { - logBuf << "col label " << ev.GetCol(); + logBuf << "Left click on col label " << ev.GetCol(); } else { - logBuf << "corner label"; + logBuf << "Left click on corner label"; } if ( ev.ShiftDown() ) logBuf << " (shift down)"; wxLogMessage( "%s", logBuf.c_str() ); + // you must call event skip if you want default grid processing + // ev.Skip(); } @@ -429,10 +467,10 @@ void GridFrame::OnLabelLeftClick( wxGridEvent& ev ) void GridFrame::OnCellLeftClick( wxGridEvent& ev ) { logBuf = ""; - logBuf << "Cell at row " << ev.GetRow() + logBuf << "Left click at row " << ev.GetRow() << " col " << ev.GetCol(); wxLogMessage( "%s", logBuf.c_str() ); - + // you must call event skip if you want default grid processing // (cell highlighting etc.) // @@ -459,6 +497,19 @@ void GridFrame::OnColSize( wxGridSizeEvent& ev ) ev.Skip(); } + +void GridFrame::OnSelectCell( wxGridEvent& ev ) +{ + logBuf = ""; + logBuf << "Selected cell at row " << ev.GetRow() + << " col " << ev.GetCol(); + wxLogMessage( "%s", logBuf.c_str() ); + + // you must call Skip() if you want the default processing + // to occur in wxGrid + ev.Skip(); +} + void GridFrame::OnRangeSelected( wxGridRangeSelectEvent& ev ) { logBuf = "";