X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b58088819ba72c430ad028490fc45e1fc79694f0..019faef468c1558315586be8f9071acbdbc6a385:/samples/newgrid/griddemo.cpp diff --git a/samples/newgrid/griddemo.cpp b/samples/newgrid/griddemo.cpp index 1e3586dd3d..8188209452 100644 --- a/samples/newgrid/griddemo.cpp +++ b/samples/newgrid/griddemo.cpp @@ -71,6 +71,8 @@ BEGIN_EVENT_TABLE( GridFrame, wxFrame ) EVT_MENU( ID_TOGGLEROWSIZING, GridFrame::ToggleRowSizing ) EVT_MENU( ID_TOGGLECOLSIZING, GridFrame::ToggleColSizing ) EVT_MENU( ID_TOGGLEGRIDSIZING, GridFrame::ToggleGridSizing ) + EVT_MENU( ID_TOGGLEGRIDLINES, GridFrame::ToggleGridLines ) + EVT_MENU( ID_AUTOSIZECOLS, GridFrame::AutoSizeCols ) EVT_MENU( ID_SETLABELCOLOUR, GridFrame::SetLabelColour ) EVT_MENU( ID_SETLABELTEXTCOLOUR, GridFrame::SetLabelTextColour ) EVT_MENU( ID_ROWLABELHORIZALIGN, GridFrame::SetRowLabelHorizAlignment ) @@ -83,6 +85,9 @@ BEGIN_EVENT_TABLE( GridFrame, wxFrame ) EVT_MENU( ID_DELETEROW, GridFrame::DeleteSelectedRows ) EVT_MENU( ID_DELETECOL, GridFrame::DeleteSelectedCols ) EVT_MENU( ID_CLEARGRID, GridFrame::ClearGrid ) + EVT_MENU( ID_SELCELLS, GridFrame::SelectCells ) + EVT_MENU( ID_SELROWS, GridFrame::SelectRows ) + EVT_MENU( ID_SELCOLS, GridFrame::SelectCols ) EVT_MENU( ID_SET_CELL_FG_COLOUR, GridFrame::SetCellFgColour ) EVT_MENU( ID_SET_CELL_BG_COLOUR, GridFrame::SetCellBgColour ) @@ -126,6 +131,8 @@ GridFrame::GridFrame() viewMenu->Append( ID_TOGGLEROWSIZING, "Ro&w drag-resize", "", TRUE ); viewMenu->Append( ID_TOGGLECOLSIZING, "C&ol drag-resize", "", TRUE ); viewMenu->Append( ID_TOGGLEGRIDSIZING, "&Grid drag-resize", "", TRUE ); + viewMenu->Append( ID_TOGGLEGRIDLINES, "&Grid Lines", "", TRUE ); + viewMenu->Append( ID_AUTOSIZECOLS, "&Auto-size cols" ); wxMenu *rowLabelMenu = new wxMenu; @@ -159,6 +166,16 @@ GridFrame::GridFrame() editMenu->Append( ID_DELETECOL, "Delete selected co&ls" ); editMenu->Append( ID_CLEARGRID, "Cl&ear grid cell contents" ); + wxMenu *selectionMenu = new wxMenu; + + editMenu->Append( ID_CHANGESEL, "Change &selection mode", + selectionMenu, + "Change selection mode" ); + + selectionMenu->Append( ID_SELCELLS, "Select &Cells" ); + selectionMenu->Append( ID_SELROWS, "Select &Rows" ); + selectionMenu->Append( ID_SELCOLS, "Select C&ols" ); + wxMenu *helpMenu = new wxMenu; helpMenu->Append( ID_ABOUT, "&About wxGrid demo" ); @@ -212,7 +229,7 @@ GridFrame::GridFrame() grid->SetCellBackgroundColour(3, 3, *wxLIGHT_GREY); grid->SetCellValue(4, 4, "a weird looking cell"); - grid->SetCellAlignment(4, 4, wxCENTRE, wxCENTRE); + grid->SetCellAlignment(4, 4, wxALIGN_CENTRE, wxALIGN_CENTRE); grid->SetCellRenderer(4, 4, new MyGridCellRenderer); grid->SetCellValue(3, 0, "1"); @@ -275,6 +292,7 @@ void GridFrame::SetDefaults() GetMenuBar()->Check( ID_TOGGLEROWSIZING, TRUE ); GetMenuBar()->Check( ID_TOGGLECOLSIZING, TRUE ); GetMenuBar()->Check( ID_TOGGLEGRIDSIZING, TRUE ); + GetMenuBar()->Check( ID_TOGGLEGRIDLINES, TRUE ); } @@ -331,6 +349,20 @@ void GridFrame::ToggleGridSizing( wxCommandEvent& WXUNUSED(ev) ) } +void GridFrame::ToggleGridLines( wxCommandEvent& WXUNUSED(ev) ) +{ + grid->EnableGridLines( + GetMenuBar()->IsChecked( ID_TOGGLEGRIDLINES ) ); +} + + +void GridFrame::AutoSizeCols( wxCommandEvent& WXUNUSED(ev) ) +{ + grid->AutoSizeColumns(); + grid->Refresh(); +} + + void GridFrame::SetLabelColour( wxCommandEvent& WXUNUSED(ev) ) { wxColourDialog dlg( NULL ); @@ -366,16 +398,16 @@ void GridFrame::SetRowLabelHorizAlignment( wxCommandEvent& WXUNUSED(ev) ) switch ( horiz ) { - case wxLEFT: - horiz = wxCENTRE; + case wxALIGN_LEFT: + horiz = wxALIGN_CENTRE; break; - case wxCENTRE: - horiz = wxRIGHT; + case wxALIGN_CENTRE: + horiz = wxALIGN_RIGHT; break; - case wxRIGHT: - horiz = wxLEFT; + case wxALIGN_RIGHT: + horiz = wxALIGN_LEFT; break; } @@ -389,16 +421,16 @@ void GridFrame::SetRowLabelVertAlignment( wxCommandEvent& WXUNUSED(ev) ) switch ( vert ) { - case wxTOP: - vert = wxCENTRE; + case wxALIGN_TOP: + vert = wxALIGN_CENTRE; break; - case wxCENTRE: - vert = wxBOTTOM; + case wxALIGN_CENTRE: + vert = wxALIGN_BOTTOM; break; - case wxBOTTOM: - vert = wxTOP; + case wxALIGN_BOTTOM: + vert = wxALIGN_TOP; break; } @@ -413,16 +445,16 @@ void GridFrame::SetColLabelHorizAlignment( wxCommandEvent& WXUNUSED(ev) ) switch ( horiz ) { - case wxLEFT: - horiz = wxCENTRE; + case wxALIGN_LEFT: + horiz = wxALIGN_CENTRE; break; - case wxCENTRE: - horiz = wxRIGHT; + case wxALIGN_CENTRE: + horiz = wxALIGN_RIGHT; break; - case wxRIGHT: - horiz = wxLEFT; + case wxALIGN_RIGHT: + horiz = wxALIGN_LEFT; break; } @@ -437,16 +469,16 @@ void GridFrame::SetColLabelVertAlignment( wxCommandEvent& WXUNUSED(ev) ) switch ( vert ) { - case wxTOP: - vert = wxCENTRE; + case wxALIGN_TOP: + vert = wxALIGN_CENTRE; break; - case wxCENTRE: - vert = wxBOTTOM; + case wxALIGN_CENTRE: + vert = wxALIGN_BOTTOM; break; - case wxBOTTOM: - vert = wxTOP; + case wxALIGN_BOTTOM: + vert = wxALIGN_TOP; break; } @@ -482,27 +514,31 @@ void GridFrame::InsertCol( wxCommandEvent& WXUNUSED(ev) ) void GridFrame::DeleteSelectedRows( wxCommandEvent& WXUNUSED(ev) ) { -#if 0 if ( grid->IsSelection() ) { - int topRow, bottomRow, leftCol, rightCol; - grid->GetSelection( &topRow, &leftCol, &bottomRow, &rightCol ); - grid->DeleteRows( topRow, bottomRow - topRow + 1 ); + grid->BeginBatch(); + for ( int n = 0; n < grid->GetNumberRows(); ) + if ( grid->IsInSelection( n , 0 ) ) + grid->DeleteRows( n, 1 ); + else + n++; + grid->EndBatch(); } -#endif } void GridFrame::DeleteSelectedCols( wxCommandEvent& WXUNUSED(ev) ) { -#if 0 if ( grid->IsSelection() ) { - int topRow, bottomRow, leftCol, rightCol; - grid->GetSelection( &topRow, &leftCol, &bottomRow, &rightCol ); - grid->DeleteCols( leftCol, rightCol - leftCol + 1 ); + grid->BeginBatch(); + for ( int n = 0; n < grid->GetNumberCols(); ) + if ( grid->IsInSelection( 0 , n ) ) + grid->DeleteCols( n, 1 ); + else + n++; + grid->EndBatch(); } -#endif } @@ -511,6 +547,21 @@ void GridFrame::ClearGrid( wxCommandEvent& WXUNUSED(ev) ) grid->ClearGrid(); } +void GridFrame::SelectCells( wxCommandEvent& WXUNUSED(ev) ) +{ + grid->SetSelectionMode( wxGrid::wxGridSelectCells ); +} + +void GridFrame::SelectRows( wxCommandEvent& WXUNUSED(ev) ) +{ + grid->SetSelectionMode( wxGrid::wxGridSelectRows ); +} + +void GridFrame::SelectCols( wxCommandEvent& WXUNUSED(ev) ) +{ + grid->SetSelectionMode( wxGrid::wxGridSelectColumns ); +} + void GridFrame::SetCellFgColour( wxCommandEvent& WXUNUSED(ev) ) { wxColour col = wxGetColourFromUser(this); @@ -548,6 +599,7 @@ void GridFrame::OnLabelLeftClick( wxGridEvent& ev ) } if ( ev.ShiftDown() ) logBuf << " (shift down)"; + if ( ev.ControlDown() ) logBuf << " (control down)"; wxLogMessage( "%s", logBuf.c_str() ); // you must call event skip if you want default grid processing @@ -593,8 +645,16 @@ void GridFrame::OnColSize( wxGridSizeEvent& ev ) void GridFrame::OnSelectCell( wxGridEvent& ev ) { logBuf = ""; - logBuf << "Selected cell at row " << ev.GetRow() - << " col " << ev.GetCol(); + if ( ev.Selecting() ) + logBuf << "Selected "; + else + logBuf << "Deselected "; + logBuf << "cell at row " << ev.GetRow() + << " col " << ev.GetCol() + << " ( ControlDown: "<< (ev.ControlDown() ? 'T':'F') + << ", ShiftDown: "<< (ev.ShiftDown() ? 'T':'F') + << ", AltDown: "<< (ev.AltDown() ? 'T':'F') + << ", MetaDown: "<< (ev.MetaDown() ? 'T':'F') << " )"; wxLogMessage( "%s", logBuf.c_str() ); // you must call Skip() if you want the default processing @@ -605,11 +665,18 @@ void GridFrame::OnSelectCell( wxGridEvent& ev ) void GridFrame::OnRangeSelected( wxGridRangeSelectEvent& ev ) { logBuf = ""; - logBuf << "Selected cells from row " << ev.GetTopRow() - << " col " << ev.GetLeftCol() - << " to row " << ev.GetBottomRow() - << " col " << ev.GetRightCol(); - + if ( ev.Selecting() ) + logBuf << "Selected "; + else + logBuf << "Deselected "; + logBuf << "cells from row " << ev.GetTopRow() + << " col " << ev.GetLeftCol() + << " to row " << ev.GetBottomRow() + << " col " << ev.GetRightCol() + << " ( ControlDown: "<< (ev.ControlDown() ? 'T':'F') + << ", ShiftDown: "<< (ev.ShiftDown() ? 'T':'F') + << ", AltDown: "<< (ev.AltDown() ? 'T':'F') + << ", MetaDown: "<< (ev.MetaDown() ? 'T':'F') << " )"; wxLogMessage( "%s", logBuf.c_str() ); ev.Skip(); @@ -807,7 +874,7 @@ enum Severity Sev_Max }; -static const wxChar* severities[] = +static const wxString severities[] = { _T("wishlist"), _T("minor"), @@ -872,12 +939,12 @@ wxString BugsGridTable::GetTypeName(int WXUNUSED(row), int col) return wxEmptyString; } -long BugsGridTable::GetNumberRows() +int BugsGridTable::GetNumberRows() { return WXSIZEOF(gs_dataBugsGrid); } -long BugsGridTable::GetNumberCols() +int BugsGridTable::GetNumberCols() { return Col_Max; }