X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cdccdfabb29bd51aded9aac141e1f7bbd6c85443..07aec89fe1e7bad8010911aa8863efecfa909946:/src/x11/dcscreen.cpp diff --git a/src/x11/dcscreen.cpp b/src/x11/dcscreen.cpp index 8fb5786a5a..74ef3da31c 100644 --- a/src/x11/dcscreen.cpp +++ b/src/x11/dcscreen.cpp @@ -4,7 +4,6 @@ // Author: Julian Smart, Robert Roebling // Modified by: // Created: 17/09/98 -// RCS-ID: $Id$ // Copyright: (c) Julian Smart, Robert Roebling // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -13,33 +12,27 @@ #include "wx/wxprec.h" #include "wx/dcscreen.h" +#include "wx/x11/dcscreen.h" #ifndef WX_PRECOMP #include "wx/app.h" #include "wx/utils.h" #include "wx/window.h" + #include "wx/frame.h" #endif -#include "wx/frame.h" #include "wx/fontutil.h" #include "wx/x11/private.h" -//----------------------------------------------------------------------------- -// global data initialization -//----------------------------------------------------------------------------- - -WXWindow *wxScreenDC::sm_overlayWindow = (WXWindow*) NULL; -int wxScreenDC::sm_overlayWindowX = 0; -int wxScreenDC::sm_overlayWindowY = 0; - //----------------------------------------------------------------------------- // wxScreenDC //----------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(wxScreenDC,wxPaintDC) +IMPLEMENT_ABSTRACT_CLASS(wxScreenDCImpl,wxPaintDCImpl) -wxScreenDC::wxScreenDC() +wxScreenDCImpl::wxScreenDCImpl( wxDC* owner ) + : wxPaintDCImpl( owner ) { m_ok = false; @@ -48,7 +41,7 @@ wxScreenDC::wxScreenDC() int screen = DefaultScreen( (Display*) m_display ); m_cmap = (WXColormap) DefaultColormap( (Display*) m_display, screen ); - m_window = (WXWindow) RootWindow( (Display*) m_display, screen ); + m_x11window = (WXWindow) RootWindow( (Display*) m_display, screen ); m_isScreenDC = true; @@ -65,64 +58,15 @@ wxScreenDC::wxScreenDC() XSetSubwindowMode( (Display*) m_display, (GC) m_bgGC, IncludeInferiors ); } -wxScreenDC::~wxScreenDC() +wxScreenDCImpl::~wxScreenDCImpl() { XSetSubwindowMode( (Display*) m_display, (GC) m_penGC, ClipByChildren ); XSetSubwindowMode( (Display*) m_display, (GC) m_brushGC, ClipByChildren ); XSetSubwindowMode( (Display*) m_display, (GC) m_textGC, ClipByChildren ); XSetSubwindowMode( (Display*) m_display, (GC) m_bgGC, ClipByChildren ); - - EndDrawingOnTop(); -} - -bool wxScreenDC::StartDrawingOnTop( wxWindow *window ) -{ - if (!window) return StartDrawingOnTop(); - - int x = 0; - int y = 0; - window->GetPosition( &x, &y ); - int w = 0; - int h = 0; - window->GetSize( &w, &h ); - window->ClientToScreen( &x, &y ); - - wxRect rect; - rect.x = x; - rect.y = y; - rect.width = 0; - rect.height = 0; - - return StartDrawingOnTop( &rect ); -} - -bool wxScreenDC::StartDrawingOnTop( wxRect *rectIn ) -{ - // VZ: should we do the same thing that wxMotif wxScreenDC does here? -#if 0 - wxRect rect; - if ( rectIn ) - { - rect = *rectIn; - } - else - { - rect.x = - rect.y = 0; - - DoGetSize(&rect.width, &rect.height); - } -#endif // 0 - - return true; -} - -bool wxScreenDC::EndDrawingOnTop() -{ - return true; } -void wxScreenDC::DoGetSize(int *width, int *height) const +void wxScreenDCImpl::DoGetSize(int *width, int *height) const { wxDisplaySize(width, height); }