added wxDC::CopyAttributes() and use it in wxBufferedDC to ensure that wxAutoBufferedPaintDC font is correctly initialized from the window font, as it already happens with wxPaintDC that it mimics

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60846 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2009-05-31 19:40:04 +00:00
parent 6de9def05d
commit 4feecbb929
5 changed files with 30 additions and 3 deletions

View File

@@ -341,6 +341,7 @@ All (GUI):
- Added wxMouseEventsManager.
- Building OpenGL library is now enabled by default.
- Improve wxTreeCtrl::ScrollTo() in generic version (Raanan Barzel).
- Added wxDC::CopyAttributes() and use it in wxBufferedDC.
MSW:

View File

@@ -702,6 +702,9 @@ private:
class WXDLLIMPEXP_CORE wxDC : public wxObject
{
public:
// copy attributes (font, colours and writing direction) from another DC
void CopyAttributes(const wxDC& dc);
virtual ~wxDC() { delete m_pimpl; }
wxDCImpl *GetImpl()

View File

@@ -119,7 +119,7 @@ private:
// inherit the same layout direction as the original DC
if ( dc && dc->IsOk() )
SetLayoutDirection(dc->GetLayoutDirection());
CopyAttributes(*dc);
}
// check that the bitmap is valid and use it

View File

@@ -1122,6 +1122,19 @@ public:
//@}
/**
Copy attributes from another DC.
The copied attributes currently are:
- Font
- Text foreground and background colours
- Background brush
- Layout direction
@param dc
A valid (i.e. its IsOk() must return @true) source device context.
*/
void CopyAttributes(const wxDC& dc);
/**
Returns the depth (number of bits/pixel) of this DC.

View File

@@ -1115,7 +1115,8 @@ void wxDCImpl::InheritAttributes(wxWindow *win)
SetFont(win->GetFont());
SetTextForeground(win->GetForegroundColour());
SetTextBackground(win->GetBackgroundColour());
SetBackground(wxBrush(win->GetBackgroundColour()));
SetBackground(win->GetBackgroundColour());
SetLayoutDirection(win->GetLayoutDirection());
}
//-----------------------------------------------------------------------------
@@ -1124,6 +1125,15 @@ void wxDCImpl::InheritAttributes(wxWindow *win)
IMPLEMENT_ABSTRACT_CLASS(wxDC, wxObject)
void wxDC::CopyAttributes(const wxDC& dc)
{
SetFont(dc.GetFont());
SetTextForeground(dc.GetTextForeground());
SetTextBackground(dc.GetTextBackground());
SetBackground(dc.GetBackground());
SetLayoutDirection(dc.GetLayoutDirection());
}
void wxDC::DrawLabel(const wxString& text,
const wxBitmap& bitmap,
const wxRect& rect,