+// ---------------------------------------------------------
+// wxDataViewTextRendererAttr
+// ---------------------------------------------------------
+
+IMPLEMENT_CLASS(wxDataViewTextRendererAttr, wxDataViewTextRenderer)
+
+wxDataViewTextRendererAttr::wxDataViewTextRendererAttr( const wxString &varianttype,
+ wxDataViewCellMode mode, int align ) :
+ wxDataViewTextRenderer( varianttype, mode, align )
+{
+ m_wantsAttr = true;
+}
+
+bool wxDataViewTextRendererAttr::Render( wxRect cell, wxDC *dc, int WXUNUSED(state) )
+{
+ wxFont font;
+ wxColour colour;
+
+ if (m_hasAttr)
+ {
+ if (m_attr.HasColour())
+ {
+ colour = dc->GetTextForeground();
+ dc->SetTextForeground( m_attr.GetColour() );
+ }
+
+ if (m_attr.GetBold() || m_attr.GetItalic())
+ {
+ font = dc->GetFont();
+ wxFont myfont = font;
+ if (m_attr.GetBold())
+ myfont.SetWeight( wxFONTWEIGHT_BOLD );
+ if (m_attr.GetItalic())
+ myfont.SetStyle( wxFONTSTYLE_ITALIC );
+ dc->SetFont( myfont );
+ }
+ }
+
+ dc->DrawText( m_text, cell.x, cell.y + ((cell.height - dc->GetCharHeight()) / 2));
+
+ // restore dc
+ if (m_hasAttr)
+ {
+ if (m_attr.HasColour())
+ dc->SetTextForeground( colour );
+
+ if (m_attr.GetBold() || m_attr.GetItalic())
+ dc->SetFont( font );
+ }
+
+ return true;
+}
+
+