/**
Parameters string format is "width[,precision]".
*/
- void SetParameters(const wxString& params);
+ virtual void SetParameters(const wxString& params);
/**
Sets the precision.
/// Destructor frees the attribute provider if it was created.
virtual ~wxGridTableBase();
- /// Must be overridden to return the number of rows in the table.
+ /**
+ Must be overridden to return the number of rows in the table.
+
+ For backwards compatibility reasons, this method is not const.
+ Use GetRowsCount() instead of it in const methods of derived table
+ classes.
+ */
virtual int GetNumberRows() = 0;
- /// Must be overridden to return the number of columns in the table.
+ /**
+ Must be overridden to return the number of columns in the table.
+
+ For backwards compatibility reasons, this method is not const.
+ Use GetColsCount() instead of it in const methods of derived table
+ classes,
+ */
virtual int GetNumberCols() = 0;
+ /**
+ Return the number of rows in the table.
+
+ This method is not virtual and is only provided as a convenience for
+ the derived classes which can't call GetNumberRows() without a @c
+ const_cast from their const methods.
+ */
+ int GetRowsCount() const;
+
+ /**
+ Return the number of columns in the table.
+
+ This method is not virtual and is only provided as a convenience for
+ the derived classes which can't call GetNumberCols() without a @c
+ const_cast from their const methods.
+ */
+ int GetColsCount() const;
+
/**
Accessing table cells.
/**
Final cleanup.
*/
- void Destroy();
+ virtual void Destroy();
/**
Complete the editing of the current cell. Returns @true if the value has
Some types of controls on some platforms may need some help
with the Return key.
*/
- void HandleReturn(wxKeyEvent& event);
+ virtual void HandleReturn(wxKeyEvent& event);
/**
/**
Size and position the edit control.
*/
- void SetSize(const wxRect& rect);
+ virtual void SetSize(const wxRect& rect);
/**
Show or hide the edit control, use the specified attributes to set
colours/fonts for it.
*/
- void Show(bool show, wxGridCellAttr* attr = NULL);
+ virtual void Show(bool show, wxGridCellAttr* attr = NULL);
/**
If the editor is enabled by clicking on the cell, this method will be
called.
*/
- void StartingClick();
+ virtual void StartingClick();
/**
If the editor is enabled by pressing keys on the grid,
this will be called to let the editor do something about
that first key if desired.
*/
- void StartingKey(wxKeyEvent& event);
+ virtual void StartingKey(wxKeyEvent& event);
};
The parameters string format is "n" where n is a number representing the
maximum width.
*/
- void SetParameters(const wxString& params);
+ virtual void SetParameters(const wxString& params);
};
/**
Parameters string format is "item1[,item2[...,itemN]]"
*/
- void SetParameters(const wxString& params);
+ virtual void SetParameters(const wxString& params);
};
/**
Parameters string format is "min,max".
*/
- void SetParameters(const wxString& params);
+ virtual void SetParameters(const wxString& params);
};
/**
Column at which the event occurred.
*/
- int GetCol();
+ virtual int GetCol();
/**
Position in pixels at which the event occurred.
/**
Row at which the event occurred.
*/
- int GetRow();
+ virtual int GetRow();
/**
Returns @true if the Meta key was down at the time of the event.
/**
Parameters string format is "width,precision"
*/
- void SetParameters(const wxString& params);
+ virtual void SetParameters(const wxString& params);
};
without (yet) matching calls to EndBatch(). While
the grid's batch count is greater than zero the display will not be updated.
*/
- int GetBatchCount() const;
+ int GetBatchCount();
/**
Sets the arguments to the horizontal and vertical text alignment values
See GetRowGridLinePen() for an example.
*/
- wxPen GetColGridLinePen(int col);
+ virtual wxPen GetColGridLinePen(int col);
/**
Sets the arguments to the current column label alignment values.
@see GetColGridLinePen(), GetRowGridLinePen()
*/
- wxPen GetDefaultGridLinePen();
+ virtual wxPen GetDefaultGridLinePen();
/**
Returns a pointer to the current default grid cell renderer.
}
@endcode
*/
- wxPen GetRowGridLinePen(int row);
+ virtual wxPen GetRowGridLinePen(int row);
/**
Returns the alignment used for row labels.
*/
wxGridTableBase *GetTable() const;
+ //@{
+ /**
+ Make the given cell current and ensure it is visible.
+
+ This method is equivalent to calling MakeCellVisible() and
+ SetGridCursor() and so, as with the latter, a wxEVT_GRID_SELECT_CELL
+ event is generated by it and the selected cell doesn't change if the
+ event is vetoed.
+ */
+ void GoToCell(int row, int col);
+ void GoToCell(const wxGridCellCoords& coords);
+ //@}
+
/**
Returns @true if drawing of grid lines is turned on, @false otherwise.
*/
*/
void SetDefaultRowSize(int height, bool resizeExistingRows = false);
+ //@{
/**
Set the grid cursor to the specified cell.
- This function calls MakeCellVisible().
+ The grid cursor indicates the current cell and can be moved by the user
+ using the arrow keys or the mouse.
+
+ Calling this function generates a wxEVT_GRID_SELECT_CELL event and if
+ the event handler vetoes this event, the cursor is not moved.
+
+ This function doesn't make the target call visible, use GoToCell() to
+ do this.
*/
void SetGridCursor(int row, int col);
+ void SetGridCursor(const wxGridCellCoords& coords);
+ //@}
/**
Sets the colour used to draw grid lines.
*/
int XToEdgeOfCol(int x) const;
+ //@{
+ /**
+ Translates logical pixel coordinates to the grid cell coordinates.
+
+ Notice that this function expects logical coordinates on input so if
+ you use this function in a mouse event handler you need to translate
+ the mouse position, which is expressed in device coordinates, to
+ logical ones.
+
+ @see XToCol(), YToRow()
+ */
+
+ // XYToCell(int, int, wxGridCellCoords&) overload is intentionally
+ // undocumented, using it is ugly and non-const reference parameters are
+ // not used in wxWidgets API
+
+ wxGridCellCoords XYToCell(int x, int y) const;
+ wxGridCellCoords XYToCell(const wxPoint& pos) const;
+
+ //@}
+
/**
Returns the row whose bottom edge is close to the given logical y
position.