Add wxGrid::Render() for drawing the grid to any wxDC.

In particular, this allows to print the grid contents easily.

Closes #14294.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71577 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-05-27 13:00:19 +00:00
parent b55d57aa24
commit 779e28da63
6 changed files with 571 additions and 1 deletions

View File

@@ -1850,6 +1850,50 @@ public:
CellSpan_Main
};
/**
Rendering styles supported by wxGrid::Render() method.
@since 2.9.4
*/
enum wxGridRenderStyle
{
/// Draw grid row header labels.
wxGRID_DRAW_ROWS_HEADER = 0x001,
/// Draw grid column header labels.
wxGRID_DRAW_COLS_HEADER = 0x002,
/// Draw grid cell border lines.
wxGRID_DRAW_CELL_LINES = 0x004,
/**
Draw a bounding rectangle around the rendered cell area.
Useful where row or column headers are not drawn or where there is
multi row or column cell clipping and therefore no cell border at
the rendered outer boundary.
*/
wxGRID_DRAW_BOX_RECT = 0x008,
/**
Draw the grid cell selection highlight if a selection is present.
At present the highlight colour drawn depends on whether the grid
window loses focus before drawing begins.
*/
wxGRID_DRAW_SELECTION = 0x010,
/**
The default render style.
Includes all except wxGRID_DRAW_SELECTION.
*/
wxGRID_DRAW_DEFAULT = wxGRID_DRAW_ROWS_HEADER |
wxGRID_DRAW_COLS_HEADER |
wxGRID_DRAW_CELL_LINES |
wxGRID_DRAW_BOX_RECT
};
/**
@name Constructors and Initialization
*/
@@ -4002,6 +4046,39 @@ public:
*/
void RefreshAttr(int row, int col);
/**
Draws part or all of a wxGrid on a wxDC for printing or display.
Pagination can be accomplished by using sequential Render() calls
with appropriate values in wxGridCellCoords topLeft and bottomRight.
@param dc
The wxDC to be drawn on.
@param pos
The position on the wxDC where rendering should begin. If not
specified drawing will begin at the wxDC MaxX() and MaxY().
@param size
The size of the area on the wxDC that the rendered wxGrid should
occupy. If not specified the drawing will be scaled to fit the
available dc width or height. The wxGrid's aspect ratio is
maintained whether or not size is specified.
@param topLeft
The top left cell of the block to be drawn. Defaults to ( 0, 0 ).
@param bottomRight
The bottom right cell of the block to be drawn. Defaults to row and
column counts.
@param style
A combination of values from wxGridRenderStyle.
@since 2.9.4
*/
void Render( wxDC& dc,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
const wxGridCellCoords& topLeft = wxGridCellCoords( -1, -1 ),
const wxGridCellCoords& bottomRight = wxGridCellCoords( -1, -1 ),
int style = wxGRID_DRAW_DEFAULT );
/**
Sets the cell attributes for all cells in the specified column.