X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/19d7140ec28c705ad1cfe75c7817ad47492825fc..761df41e86ceeed56d32c038a6c9f88554d4f47a:/samples/newgrid/griddemo.cpp diff --git a/samples/newgrid/griddemo.cpp b/samples/newgrid/griddemo.cpp index 6d8e208c06..e78e342be9 100644 --- a/samples/newgrid/griddemo.cpp +++ b/samples/newgrid/griddemo.cpp @@ -35,6 +35,7 @@ #include "wx/colordlg.h" #include "wx/grid.h" +#include "wx/generic/gridctrl.h" #include "griddemo.h" @@ -241,10 +242,15 @@ GridFrame::GridFrame() grid->SetRowSize( 0, 60 ); grid->SetCellValue( 0, 0, "Ctrl+Home\nwill go to\nthis cell" ); - grid->SetCellValue( 0, 1, "Blah" ); + grid->SetCellValue( 0, 1, "A long piece of text to demonstrate wrapping." ); + grid->SetCellRenderer(0 , 1, new wxGridCellAutoWrapStringRenderer); + grid->SetCellEditor( 0, 1 , new wxGridCellAutoWrapStringEditor); + grid->SetCellValue( 0, 2, "Blah" ); grid->SetCellValue( 0, 3, "Read only" ); grid->SetReadOnly( 0, 3 ); + + grid->SetCellValue( 0, 4, "Can veto edit this cell" ); grid->SetCellValue( 0, 5, "Press\nCtrl+arrow\nto skip over\ncells" ); @@ -708,7 +714,7 @@ void GridFrame::OnLabelLeftClick( wxGridEvent& ev ) if ( ev.ShiftDown() ) logBuf << " (shift down)"; if ( ev.ControlDown() ) logBuf << " (control down)"; - wxLogMessage( "%s", logBuf.c_str() ); + wxLogMessage( wxT("%s"), logBuf.c_str() ); // you must call event skip if you want default grid processing // @@ -721,7 +727,7 @@ void GridFrame::OnCellLeftClick( wxGridEvent& ev ) logBuf = ""; logBuf << "Left click at row " << ev.GetRow() << " col " << ev.GetCol(); - wxLogMessage( "%s", logBuf.c_str() ); + wxLogMessage( wxT("%s"), logBuf.c_str() ); // you must call event skip if you want default grid processing // (cell highlighting etc.) @@ -734,7 +740,7 @@ void GridFrame::OnRowSize( wxGridSizeEvent& ev ) { logBuf = ""; logBuf << "Resized row " << ev.GetRowOrCol(); - wxLogMessage( "%s", logBuf.c_str() ); + wxLogMessage( wxT("%s"), logBuf.c_str() ); ev.Skip(); } @@ -744,7 +750,7 @@ void GridFrame::OnColSize( wxGridSizeEvent& ev ) { logBuf = ""; logBuf << "Resized col " << ev.GetRowOrCol(); - wxLogMessage( "%s", logBuf.c_str() ); + wxLogMessage( wxT("%s"), logBuf.c_str() ); ev.Skip(); } @@ -763,7 +769,7 @@ void GridFrame::OnSelectCell( wxGridEvent& ev ) << ", ShiftDown: "<< (ev.ShiftDown() ? 'T':'F') << ", AltDown: "<< (ev.AltDown() ? 'T':'F') << ", MetaDown: "<< (ev.MetaDown() ? 'T':'F') << " )"; - wxLogMessage( "%s", logBuf.c_str() ); + wxLogMessage( wxT("%s"), logBuf.c_str() ); // you must call Skip() if you want the default processing // to occur in wxGrid @@ -785,7 +791,7 @@ void GridFrame::OnRangeSelected( wxGridRangeSelectEvent& ev ) << ", ShiftDown: "<< (ev.ShiftDown() ? 'T':'F') << ", AltDown: "<< (ev.AltDown() ? 'T':'F') << ", MetaDown: "<< (ev.MetaDown() ? 'T':'F') << " )"; - wxLogMessage( "%s", logBuf.c_str() ); + wxLogMessage( wxT("%s"), logBuf.c_str() ); ev.Skip(); } @@ -797,21 +803,42 @@ void GridFrame::OnCellValueChanged( wxGridEvent& ev ) << " row " << ev.GetRow() << " col " << ev.GetCol(); - wxLogMessage( "%s", logBuf.c_str() ); + wxLogMessage( wxT("%s"), logBuf.c_str() ); ev.Skip(); } void GridFrame::OnEditorShown( wxGridEvent& ev ) { - wxLogMessage( "Cell editor shown." ); + + if ( (ev.GetCol() == 4) && + (ev.GetRow() == 0) && + (wxMessageBox(_T("Are you sure you wish to edit this cell"), + _T("Checking"),wxYES_NO) == wxNO ) ) { + + ev.Veto(); + return; + } + + + wxLogMessage( wxT("Cell editor shown.") ); ev.Skip(); } void GridFrame::OnEditorHidden( wxGridEvent& ev ) { - wxLogMessage( "Cell editor hidden." ); + + if ( (ev.GetCol() == 4) && + (ev.GetRow() == 0) && + (wxMessageBox(_T("Are you sure you wish to finish editing this cell"), + _T("Checking"),wxYES_NO) == wxNO ) ) { + + ev.Veto(); + return; + } + + wxLogMessage( wxT("Cell editor hidden.") ); ev.Skip(); } @@ -1257,10 +1284,7 @@ BugsGridFrame::BugsGridFrame() grid->SetMargins(0, 0); grid->Fit(); - wxSize size = grid->GetSize(); - size.x += 10; - size.y += 10; - SetClientSize(size); + SetClientSize(grid->GetSize()); }