X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3cd0b8c5b5a320bba065c4da306be3687d144157..af4d748440f97aa6e37ab44dfc3fd14b7f42868e:/src/x11/dcscreen.cpp?ds=sidebyside diff --git a/src/x11/dcscreen.cpp b/src/x11/dcscreen.cpp index 0efabc519c..7eff9560cd 100644 --- a/src/x11/dcscreen.cpp +++ b/src/x11/dcscreen.cpp @@ -1,51 +1,55 @@ ///////////////////////////////////////////////////////////////////////////// -// 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: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#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/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(); + m_fontdesc = wxNORMAL_FONT->GetNativeFontInfo()->description; +#endif SetUpDC(); @@ -55,65 +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 *rect ) -{ - int x = 0; - int y = 0; -#if 0 - int width = gdk_screen_width(); - int height = gdk_screen_height(); -#else - int width = 1024; - int height = 768; -#endif - if (rect) - { - x = rect->x; - y = rect->y; - width = rect->width; - height = rect->height; - } - - 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); }