X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/77ffb5937e89927b621128789401db8921fe580f..12bb29f5432174ecbd65549bda832d70d34a98ae:/src/x11/dcscreen.cpp diff --git a/src/x11/dcscreen.cpp b/src/x11/dcscreen.cpp index f82868e312..7eff9560cd 100644 --- a/src/x11/dcscreen.cpp +++ b/src/x11/dcscreen.cpp @@ -1,53 +1,50 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: dcscreen.cpp +// Name: src/x11/dcscreen.cpp // Purpose: wxScreenDC class // Author: Julian Smart, Robert Roebling // Modified by: // Created: 17/09/98 // RCS-ID: $Id$ // Copyright: (c) Julian Smart, Robert Roebling -// Licence: wxWidgets licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "dcscreen.h" -#endif +// for compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" -#include "wx/window.h" -#include "wx/frame.h" #include "wx/dcscreen.h" -#include "wx/utils.h" -#include "wx/app.h" -#include "wx/fontutil.h" +#include "wx/x11/dcscreen.h" -#include "wx/x11/private.h" +#ifndef WX_PRECOMP + #include "wx/app.h" + #include "wx/utils.h" + #include "wx/window.h" + #include "wx/frame.h" +#endif -//----------------------------------------------------------------------------- -// global data initialization -//----------------------------------------------------------------------------- +#include "wx/fontutil.h" -WXWindow *wxScreenDC::sm_overlayWindow = (WXWindow*) NULL; -int wxScreenDC::sm_overlayWindowX = 0; -int wxScreenDC::sm_overlayWindowY = 0; +#include "wx/x11/private.h" //----------------------------------------------------------------------------- // wxScreenDC //----------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(wxScreenDC,wxPaintDC) +IMPLEMENT_ABSTRACT_CLASS(wxScreenDCImpl,wxPaintDCImpl) -wxScreenDC::wxScreenDC() +wxScreenDCImpl::wxScreenDCImpl( wxDC* owner ) + : wxPaintDCImpl( owner ) { - m_ok = FALSE; - + m_ok = false; + m_display = (WXDisplay *) wxGlobalDisplay(); - + int screen = DefaultScreen( (Display*) m_display ); m_cmap = (WXColormap) DefaultColormap( (Display*) m_display, screen ); - - m_window = (WXWindow) RootWindow( (Display*) m_display, screen ); - m_isScreenDC = TRUE; + m_x11window = (WXWindow) RootWindow( (Display*) m_display, screen ); + + m_isScreenDC = true; #if wxUSE_UNICODE m_context = wxTheApp->GetPangoContext(); @@ -62,64 +59,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); }