To show the column later you need to call SetColSize() with non-0
width or ShowCol() to restore the previous column width.
- Notice that this method shouldn't be called if the column is already
- hidden.
+ If the column is already hidden, this method doesn't do anything.
@param col
The column index.
The column is shown again with the same width that it had before
HideCol() call.
- Notice that this method shouldn't be called if the column is not
- currently hidden.
+ If the column is currently shown, this method doesn't do anything.
@see HideCol(), SetColSize()
*/
To show the row later you need to call SetRowSize() with non-0
width or ShowRow() to restore its original height.
+ If the row is already hidden, this method doesn't do anything.
+
@param col
The row index.
*/
The row is shown again with the same height that it had before
HideRow() call.
+ If the row is currently shown, this method doesn't do anything.
+
@see HideRow(), SetRowSize()
*/
void ShowRow(int col);
EVT_MENU( ID_SIZE_LABELS_ROW, GridFrame::AutoSizeLabelsRow )
EVT_MENU( ID_SIZE_GRID, GridFrame::AutoSizeTable )
+ EVT_MENU( ID_HIDECOL, GridFrame::HideCol )
+ EVT_MENU( ID_SHOWCOL, GridFrame::ShowCol )
+ EVT_MENU( ID_HIDEROW, GridFrame::HideRow )
+ EVT_MENU( ID_SHOWROW, GridFrame::ShowRow )
+
EVT_MENU( ID_SET_HIGHLIGHT_WIDTH, GridFrame::OnSetHighlightWidth)
EVT_MENU( ID_SET_RO_HIGHLIGHT_WIDTH, GridFrame::OnSetROHighlightWidth)
viewMenu->AppendCheckItem(ID_AUTOSIZECOLS, "&Auto-size cols");
viewMenu->AppendCheckItem(ID_CELLOVERFLOW, "&Overflow cells");
viewMenu->AppendCheckItem(ID_RESIZECELL, "&Resize cell (7,1)");
-
+ viewMenu->Append(ID_HIDECOL, "&Hide column A");
+ viewMenu->Append(ID_SHOWCOL, "&Show column A");
+ viewMenu->Append(ID_HIDEROW, "&Hide row 2");
+ viewMenu->Append(ID_SHOWROW, "&Show row 2");
wxMenu *rowLabelMenu = new wxMenu;
viewMenu->Append( ID_ROWLABELALIGN, wxT("R&ow label alignment"),
m_gridBitmap.GetHeight(),
&memDc, 0, 0 );
}
+
+void GridFrame::HideCol( wxCommandEvent& WXUNUSED(event) )
+{
+ grid->HideCol(0);
+}
+
+void GridFrame::ShowCol( wxCommandEvent& WXUNUSED(event) )
+{
+ grid->ShowCol(0);
+}
+
+void GridFrame::HideRow( wxCommandEvent& WXUNUSED(event) )
+{
+ grid->HideRow(1);
+}
+
+void GridFrame::ShowRow( wxCommandEvent& WXUNUSED(event) )
+{
+ grid->ShowRow(1);
+}
void AutoSizeLabelsRow(wxCommandEvent& event);
void AutoSizeTable(wxCommandEvent& event);
+ void HideCol(wxCommandEvent& event);
+ void ShowCol(wxCommandEvent& event);
+ void HideRow(wxCommandEvent& event);
+ void ShowRow(wxCommandEvent& event);
+
+
void OnLabelLeftClick( wxGridEvent& );
void OnCellLeftClick( wxGridEvent& );
void OnRowSize( wxGridSizeEvent& );
ID_TOGGLEGRIDLINES,
ID_AUTOSIZECOLS,
ID_CELLOVERFLOW,
+ ID_HIDECOL,
+ ID_SHOWCOL,
+ ID_HIDEROW,
+ ID_SHOWROW,
ID_RESIZECELL,
ID_SETLABELCOLOUR,
ID_SETLABELTEXTCOLOUR,
// We're showing back a previously hidden row/column.
wxASSERT_MSG( sizeNew == -1, wxS("New size must be positive or -1.") );
- wxASSERT_MSG( sizeCurrent < 0, wxS("May only show back if hidden.") );
+ // If it's already visible, simply do nothing.
+ if ( sizeCurrent >= 0 )
+ return 0;
+ // Otherwise show it by restoring its old size.
sizeCurrent = -sizeCurrent;
// This is positive which is correct.
else if ( sizeNew == 0 )
{
// We're hiding a row/column.
- wxASSERT_MSG( sizeCurrent > 0, wxS("Can't hide if already hidden.") );
+ // If it's already hidden, simply do nothing.
+ if ( sizeCurrent <= 0 )
+ return 0;
+
+ // Otherwise hide it and also remember the shown size to be able to
+ // restore it later.
sizeCurrent = -sizeCurrent;
// This is negative which is correct.