X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4693b20c7500190c3cc8c02919c45436bf5efbc9..a2d541ca9c552d1a30ba75970968a7a220f4955a:/samples/newgrid/griddemo.cpp diff --git a/samples/newgrid/griddemo.cpp b/samples/newgrid/griddemo.cpp index aaf3bebcd5..a27d77ad0a 100644 --- a/samples/newgrid/griddemo.cpp +++ b/samples/newgrid/griddemo.cpp @@ -29,10 +29,11 @@ #endif #ifndef WX_PRECOMP -#include "wx/wx.h" + #include "wx/wx.h" #endif #include "wx/colordlg.h" +#include "wx/fontdlg.h" #include "wx/grid.h" #include "wx/generic/gridctrl.h" @@ -76,6 +77,7 @@ BEGIN_EVENT_TABLE( GridFrame, wxFrame ) EVT_MENU( ID_AUTOSIZECOLS, GridFrame::AutoSizeCols ) EVT_MENU( ID_SETLABELCOLOUR, GridFrame::SetLabelColour ) EVT_MENU( ID_SETLABELTEXTCOLOUR, GridFrame::SetLabelTextColour ) + EVT_MENU( ID_SETLABEL_FONT, GridFrame::SetLabelFont ) EVT_MENU( ID_ROWLABELHORIZALIGN, GridFrame::SetRowLabelHorizAlignment ) EVT_MENU( ID_ROWLABELVERTALIGN, GridFrame::SetRowLabelVertAlignment ) EVT_MENU( ID_COLLABELHORIZALIGN, GridFrame::SetColLabelHorizAlignment ) @@ -97,6 +99,7 @@ BEGIN_EVENT_TABLE( GridFrame, wxFrame ) EVT_MENU( wxID_EXIT, GridFrame::OnQuit ) EVT_MENU( ID_VTABLE, GridFrame::OnVTable) EVT_MENU( ID_BUGS_TABLE, GridFrame::OnBugsTable) + EVT_MENU( ID_SMALL_GRID, GridFrame::OnSmallGrid) EVT_MENU( ID_DESELECT_CELL, GridFrame::DeselectCell) EVT_MENU( ID_DESELECT_COL, GridFrame::DeselectCol) @@ -135,6 +138,7 @@ GridFrame::GridFrame() wxMenu *fileMenu = new wxMenu; fileMenu->Append( ID_VTABLE, "&Virtual table test\tCtrl-V"); fileMenu->Append( ID_BUGS_TABLE, "&Bugs table test\tCtrl-B"); + fileMenu->Append( ID_SMALL_GRID, "&Small Grid test\tCtrl-S"); fileMenu->AppendSeparator(); fileMenu->Append( wxID_EXIT, "E&xit\tAlt-X" ); @@ -169,11 +173,12 @@ GridFrame::GridFrame() colLabelMenu->Append( ID_COLLABELVERTALIGN, "&Vertical" ); wxMenu *colMenu = new wxMenu; - colMenu->Append( ID_SETLABELCOLOUR, "Set &label colour" ); - colMenu->Append( ID_SETLABELTEXTCOLOUR, "Set label &text colour" ); - colMenu->Append( ID_GRIDLINECOLOUR, "&Grid line colour" ); - colMenu->Append( ID_SET_CELL_FG_COLOUR, "Set cell &foreground colour" ); - colMenu->Append( ID_SET_CELL_BG_COLOUR, "Set cell &background colour" ); + colMenu->Append( ID_SETLABELCOLOUR, "Set &label colour..." ); + colMenu->Append( ID_SETLABELTEXTCOLOUR, "Set label &text colour..." ); + colMenu->Append( ID_SETLABEL_FONT, "Set label fo&nt..." ); + colMenu->Append( ID_GRIDLINECOLOUR, "&Grid line colour..." ); + colMenu->Append( ID_SET_CELL_FG_COLOUR, "Set cell &foreground colour..." ); + colMenu->Append( ID_SET_CELL_BG_COLOUR, "Set cell &background colour..." ); wxMenu *editMenu = new wxMenu; editMenu->Append( ID_INSERTROW, "Insert &row" ); @@ -245,11 +250,13 @@ GridFrame::GridFrame() 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" ); grid->SetRowSize( 99, 60 ); @@ -457,6 +464,14 @@ void GridFrame::SetLabelTextColour( wxCommandEvent& WXUNUSED(ev) ) } } +void GridFrame::SetLabelFont( wxCommandEvent& WXUNUSED(ev) ) +{ + wxFont font = wxGetFontFromUser(this); + if ( font.Ok() ) + { + grid->SetLabelFont(font); + } +} void GridFrame::SetRowLabelHorizAlignment( wxCommandEvent& WXUNUSED(ev) ) { @@ -587,8 +602,8 @@ void GridFrame::DeleteSelectedRows( wxCommandEvent& WXUNUSED(ev) ) for ( int n = 0; n < grid->GetNumberRows(); ) if ( grid->IsInSelection( n , 0 ) ) grid->DeleteRows( n, 1 ); - else - n++; + else + n++; grid->EndBatch(); } } @@ -602,8 +617,8 @@ void GridFrame::DeleteSelectedCols( wxCommandEvent& WXUNUSED(ev) ) for ( int n = 0; n < grid->GetNumberCols(); ) if ( grid->IsInSelection( 0 , n ) ) grid->DeleteCols( n, 1 ); - else - n++; + else + n++; grid->EndBatch(); } } @@ -808,6 +823,16 @@ void GridFrame::OnCellValueChanged( wxGridEvent& ev ) void GridFrame::OnEditorShown( wxGridEvent& ev ) { + + 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(); @@ -815,6 +840,16 @@ void GridFrame::OnEditorShown( wxGridEvent& ev ) void GridFrame::OnEditorHidden( wxGridEvent& ev ) { + + 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(); @@ -841,6 +876,16 @@ void GridFrame::OnBugsTable(wxCommandEvent& ) frame->Show(TRUE); } +void GridFrame::OnSmallGrid(wxCommandEvent& ) +{ + wxFrame* frame = new wxFrame(NULL, -1, "A Small Grid", + wxDefaultPosition, wxSize(640, 480)); + wxPanel* panel = new wxPanel(frame, -1); + wxGrid* grid = new wxGrid(panel, -1, wxPoint(10,10), wxSize(400,400), + wxWANTS_CHARS | wxSIMPLE_BORDER); + grid->CreateGrid(3,3); + frame->Show(TRUE); +} void GridFrame::OnVTable(wxCommandEvent& ) {