// Modified by: Santiago Palacios
// RCS-ID: $Id$
// Copyright: (c) Michael Bedward, Julian Smart, Vadim Zeitlin
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
EVT_MENU( ID_SELECT_ROW, GridFrame::SelectRow)
EVT_MENU( ID_SELECT_ALL, GridFrame::SelectAll)
EVT_MENU( ID_SELECT_UNSELECT, GridFrame::OnAddToSelectToggle)
- EVT_MENU( ID_SHOW_SELECTION, GridFrame::OnShowSelection)
EVT_MENU( ID_SIZE_ROW, GridFrame::AutoSizeRow )
EVT_MENU( ID_SIZE_COL, GridFrame::AutoSizeCol )
selectMenu->Append( ID_SELECT_UNSELECT, wxT("Add new cells to the selection"),
wxT("When off, old selection is deselected before ")
wxT("selecting the new cells"), wxITEM_CHECK );
- selectMenu->Append( ID_SHOW_SELECTION,
- wxT("&Show current selection\tCtrl-Alt-S"));
selectMenu->AppendSeparator();
selectMenu->Append( ID_SELECT_ALL, wxT("Select all"));
selectMenu->Append( ID_SELECT_ROW, wxT("Select row 2"));
grid->SetCellValue(5, 8, wxT("Bg from row attr\nText col from cell attr"));
grid->SetCellValue(5, 5, wxT("Bg from row attr Text col from col attr and this text is so long that it covers over many many empty cells but is broken by one that isn't"));
+ // Some numeric columns with different formatting.
grid->SetColFormatFloat(6);
- grid->SetCellValue(0, 6, wxString::Format(wxT("%g"), 3.1415));
- grid->SetCellValue(1, 6, wxString::Format(wxT("%g"), 1415.0));
- grid->SetCellValue(2, 6, wxString::Format(wxT("%g"), 12345.67890));
+ grid->SetCellValue(0, 6, "Default\nfloat format");
+ grid->SetCellValue(1, 6, wxString::Format(wxT("%g"), 3.1415));
+ grid->SetCellValue(2, 6, wxString::Format(wxT("%g"), 1415.0));
+ grid->SetCellValue(3, 6, wxString::Format(wxT("%g"), 12345.67890));
grid->SetColFormatFloat(7, 6, 2);
- grid->SetCellValue(0, 7, wxString::Format(wxT("%g"), 3.1415));
- grid->SetCellValue(1, 7, wxString::Format(wxT("%g"), 1415.0));
- grid->SetCellValue(2, 7, wxString::Format(wxT("%g"), 12345.67890));
-
- grid->SetColFormatNumber(8);
- grid->SetCellValue(0, 8, "17");
- grid->SetCellValue(1, 8, "0");
- grid->SetCellValue(2, 8, "-666");
+ grid->SetCellValue(0, 7, "Width 6\nprecision 2");
+ grid->SetCellValue(1, 7, wxString::Format(wxT("%g"), 3.1415));
+ grid->SetCellValue(2, 7, wxString::Format(wxT("%g"), 1415.0));
+ grid->SetCellValue(3, 7, wxString::Format(wxT("%g"), 12345.67890));
+
+ grid->SetColFormatCustom(8,
+ wxString::Format("%s:%i,%i,%s", wxGRID_VALUE_FLOAT, -1, 4, "g"));
+ grid->SetCellValue(0, 8, "Compact\nformat");
+ grid->SetCellValue(1, 8, wxT("31415e-4"));
+ grid->SetCellValue(2, 8, wxT("1415"));
+ grid->SetCellValue(3, 8, wxT("123456789e-4"));
+
+ grid->SetColFormatNumber(9);
+ grid->SetCellValue(0, 9, "Integer\ncolumn");
+ grid->SetCellValue(1, 9, "17");
+ grid->SetCellValue(2, 9, "0");
+ grid->SetCellValue(3, 9, "-666");
+ grid->SetCellAlignment(3, 9, wxALIGN_CENTRE, wxALIGN_TOP);
+ grid->SetCellValue(3, 10, "<- This numeric cell should be centred");
const wxString choices[] =
{
grid->SetCellAlignment(7, 1, wxALIGN_CENTRE, wxALIGN_CENTRE);
grid->SetCellValue(7, 1, wxT("Big box!"));
- // create a separator-like row: it's grey and it's non-resizeable
+ // create a separator-like row: it's grey and it's non-resizable
grid->DisableRowResize(10);
grid->SetRowSize(10, 30);
attr = new wxGridCellAttr;
void GridFrame::SetLabelFont( wxCommandEvent& WXUNUSED(ev) )
{
wxFont font = wxGetFontFromUser(this);
- if ( font.Ok() )
+ if ( font.IsOk() )
{
grid->SetLabelFont(font);
}
void GridFrame::SetCellFgColour( wxCommandEvent& WXUNUSED(ev) )
{
wxColour col = wxGetColourFromUser(this);
- if ( col.Ok() )
+ if ( col.IsOk() )
{
grid->SetDefaultCellTextColour(col);
grid->Refresh();
void GridFrame::SetCellBgColour( wxCommandEvent& WXUNUSED(ev) )
{
wxColour col = wxGetColourFromUser(this);
- if ( col.Ok() )
+ if ( col.IsOk() )
{
// Check the new Refresh function by passing it a rectangle
// which exactly fits the grid.
}
-void GridFrame::OnShowSelection(wxCommandEvent& WXUNUSED(event))
-{
- // max number of elements to dump -- otherwise it can take too much time
- static const size_t countMax = 100;
-
- bool rows = false;
-
- switch ( grid->GetSelectionMode() )
- {
- case wxGrid::wxGridSelectCells:
- {
- const wxGridCellCoordsArray cells(grid->GetSelectedCells());
- size_t count = cells.size();
- wxLogMessage(wxT("%lu cells selected:"), (unsigned long)count);
- if ( count > countMax )
- {
- wxLogMessage(wxT("[too many selected cells, ")
- wxT("showing only the first %lu]"),
- (unsigned long)countMax);
- count = countMax;
- }
-
- for ( size_t n = 0; n < count; n++ )
- {
- const wxGridCellCoords& c = cells[n];
- wxLogMessage(wxT(" selected cell %lu: (%d, %d)"),
- (unsigned long)n, c.GetCol(), c.GetRow());
- }
- }
- break;
-
- case wxGrid::wxGridSelectRows:
- rows = true;
- // fall through
-
- case wxGrid::wxGridSelectColumns:
- {
- const wxChar *plural, *single;
- if ( rows )
- {
- plural = wxT("rows");
- single = wxT("row");
- }
- else // columns
- {
- plural = wxT("columns");
- single = wxT("column");
- }
-
- const wxArrayInt sels((const wxArrayInt)(rows ? grid->GetSelectedRows()
- : grid->GetSelectedCols()));
- size_t count = sels.size();
- wxLogMessage(wxT("%lu %s selected:"),
- (unsigned long)count, plural);
- if ( count > countMax )
- {
- wxLogMessage(wxT("[too many selected %s, ")
- wxT("showing only the first %lu]"),
- plural, (unsigned long)countMax);
- count = countMax;
- }
-
- for ( size_t n = 0; n < count; n++ )
- {
- wxLogMessage(wxT(" selected %s %lu: %d"),
- single, (unsigned long)n, sels[n]);
- }
- }
- break;
-
- default:
- wxFAIL_MSG( wxT("unknown wxGrid selection mode") );
- break;
- }
-}
-
void GridFrame::OnSelectCell( wxGridEvent& ev )
{
wxString logBuf;