X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ae1daed0739bf3c60b5bff4fbda823be2ee67872..24bcaec36746abeeb9e2023d03e3ab4289006fc3:/src/x11/dcclient.cpp diff --git a/src/x11/dcclient.cpp b/src/x11/dcclient.cpp index 8307fe264c..23629d5500 100644 --- a/src/x11/dcclient.cpp +++ b/src/x11/dcclient.cpp @@ -1375,7 +1375,7 @@ void wxWindowDC::DoDrawText( const wxString &text, wxCoord x, wxCoord y ) slen = strlen(text); XCharStruct overall_return; - (void)XTextExtents(xfont, text.c_str(), slen, &direction, + (void)XTextExtents(xfont, (char*) text.c_str(), slen, &direction, &ascent, &descent, &overall_return); cx = overall_return.width; @@ -2030,53 +2030,24 @@ int wxWindowDC::GetDepth() const return -1; } -// ---------------------------------------------------------------------------- -// wxPaintDC -// ---------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxClientDC) - -wxPaintDC::wxPaintDC(wxWindow* win) - : wxClientDC(win) -{ -#if USE_PAINT_REGION - if (!win->GetClipPaintRegion()) - return; - - m_paintClippingRegion = win->GetUpdateRegion(); - Region region = (Region) m_paintClippingRegion.GetX11Region(); - if (region) - { - m_paintClippingRegion = win->GetUpdateRegion(); - Region region2 = (Region) m_paintClippingRegion.GetX11Region(); - if (region2) - { - m_currentClippingRegion.Union( m_paintClippingRegion ); - - XSetRegion( (Display*) m_display, (GC) m_penGC, region2 ); - XSetRegion( (Display*) m_display, (GC) m_brushGC, region2 ); - XSetRegion( (Display*) m_display, (GC) m_textGC, region2 ); - XSetRegion( (Display*) m_display, (GC) m_bgGC, region2 ); - } - } -#endif // USE_PAINT_REGION -} - //----------------------------------------------------------------------------- // wxClientDC //----------------------------------------------------------------------------- IMPLEMENT_DYNAMIC_CLASS(wxClientDC, wxWindowDC) -wxClientDC::wxClientDC( wxWindow *win ) - : wxWindowDC( win ) +wxClientDC::wxClientDC( wxWindow *window ) + : wxWindowDC( window ) { - wxCHECK_RET( win, _T("NULL window in wxClientDC::wxClientDC") ); + wxCHECK_RET( window, _T("NULL window in wxClientDC::wxClientDC") ); -#ifdef __WXUNIVERSAL__ - wxPoint ptOrigin = win->GetClientAreaOrigin(); + m_window = (WXWindow*) window->GetClientWindow(); + +#if wxUSE_TWO_WINDOWS +#else + wxPoint ptOrigin = window->GetClientAreaOrigin(); SetDeviceOrigin(ptOrigin.x, ptOrigin.y); - wxSize size = win->GetClientSize(); + wxSize size = window->GetClientSize(); SetClippingRegion(wxPoint(0, 0), size); #endif // __WXUNIVERSAL__ } @@ -2088,6 +2059,33 @@ void wxClientDC::DoGetSize(int *width, int *height) const m_owner->GetClientSize( width, height ); } +// ---------------------------------------------------------------------------- +// wxPaintDC +// ---------------------------------------------------------------------------- + +IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxClientDC) + +wxPaintDC::wxPaintDC(wxWindow* window) + : wxClientDC(window) +{ +#if USE_PAINT_REGION + if (!window->GetClipPaintRegion()) + return; + + m_paintClippingRegion = window->GetUpdateRegion(); + Region region = (Region) m_paintClippingRegion.GetX11Region(); + if (region) + { + m_currentClippingRegion.Union( m_paintClippingRegion ); + + XSetRegion( (Display*) m_display, (GC) m_penGC, region ); + XSetRegion( (Display*) m_display, (GC) m_brushGC, region ); + XSetRegion( (Display*) m_display, (GC) m_textGC, region ); + XSetRegion( (Display*) m_display, (GC) m_bgGC, region ); + } +#endif // USE_PAINT_REGION +} + // ---------------------------------------------------------------------------- // wxDCModule // ----------------------------------------------------------------------------