Allow custom wxDataViewCtrl renderers to easily use attributes.

Set up the DC passed to wxDataViewCustomRenderer::Render() to use the font and
colour defined by the item attribute by default so that any calls to
RenderText() from it will use them automatically.

Also added public wxDataViewCustomRenderer::GetAttr() to allow retrieving the
attribute explicitly in Render().

The column using custom renderer in the dataview sample now works as expected
in the generic version; the native ones will be corrected in the upcoming
commits.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2009-11-10 17:41:11 +00:00
parent 6eec70b984
commit 62265c2c67
12 changed files with 201 additions and 263 deletions

View File

@@ -1435,9 +1435,20 @@ public:
const wxVariant& value);
/**
Create DC on request. Internal.
*/
virtual wxDC* GetDC();
Return the attribute to be used for rendering.
This function may be called from Render() implementation to use the
attributes defined for the item if the renderer supports them.
Notice that when Render() is called, the wxDC object passed to it is
already set up to use the correct attributes (e.g. its font is set to
bold or italic version if wxDataViewItemAttr::GetBold() or GetItalic()
returns true) so it may not be necessary to call it explicitly if you
only want to render text using the items attributes.
@since 2.9.1
*/
const wxDataViewItemAttr& GetAttr() const;
/**
Return size required to show content.