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 )
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;
wxMenu *selectionMenu = new wxMenu;
editMenu->Append( ID_CHANGESEL, "Change &selection mode",
- selectionMenu,
- "Change selection mode" );
+ selectionMenu,
+ "Change selection mode" );
selectionMenu->Append( ID_SELCELLS, "Select &Cells" );
selectionMenu->Append( ID_SELROWS, "Select &Rows" );
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");
GetMenuBar()->Check( ID_TOGGLEROWSIZING, TRUE );
GetMenuBar()->Check( ID_TOGGLECOLSIZING, TRUE );
GetMenuBar()->Check( ID_TOGGLEGRIDSIZING, TRUE );
+ GetMenuBar()->Check( ID_TOGGLEGRIDLINES, TRUE );
}
}
+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 );
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;
}
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;
}
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;
}
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;
}
{
if ( grid->IsSelection() )
{
- for ( int n = 0; n < grid->GetNumberRows(); n++ )
- if ( grid->IsInSelection( n , 0 ) )
- grid->DeleteRows( n, 1 );
+ grid->BeginBatch();
+ for ( int n = 0; n < grid->GetNumberRows(); )
+ if ( grid->IsInSelection( n , 0 ) )
+ grid->DeleteRows( n, 1 );
+ else
+ n++;
+ grid->EndBatch();
}
}
{
if ( grid->IsSelection() )
{
- for ( int n = 0; n < grid->GetNumberCols(); n++ )
- if ( grid->IsInSelection( 0 , n ) )
- grid->DeleteCols( n, 1 );
+ grid->BeginBatch();
+ for ( int n = 0; n < grid->GetNumberCols(); )
+ if ( grid->IsInSelection( 0 , n ) )
+ grid->DeleteCols( n, 1 );
+ else
+ n++;
+ grid->EndBatch();
}
}
}
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
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
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();
Sev_Max
};
-static const wxChar* severities[] =
+static const wxString severities[] =
{
_T("wishlist"),
_T("minor"),
return wxEmptyString;
}
-long BugsGridTable::GetNumberRows()
+int BugsGridTable::GetNumberRows()
{
return WXSIZEOF(gs_dataBugsGrid);
}
-long BugsGridTable::GetNumberCols()
+int BugsGridTable::GetNumberCols()
{
return Col_Max;
}