]>
git.saurik.com Git - wxWidgets.git/blob - src/gtk/dcscreen.cpp
1 /////////////////////////////////////////////////////////////////////////////
4 // Author: Robert Roebling
6 // Copyright: (c) 1998 Robert Roebling
7 // Licence: wxWindows licence
8 /////////////////////////////////////////////////////////////////////////////
10 #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
11 #pragma implementation "dcscreen.h"
14 // For compilers that support precompilation, includes "wx.h".
15 #include "wx/wxprec.h"
17 #include "wx/dcscreen.h"
18 #include "wx/window.h"
24 //-----------------------------------------------------------------------------
25 // global data initialization
26 //-----------------------------------------------------------------------------
28 GdkWindow
*wxScreenDC::sm_overlayWindow
= (GdkWindow
*) NULL
;
29 int wxScreenDC::sm_overlayWindowX
= 0;
30 int wxScreenDC::sm_overlayWindowY
= 0;
32 //-----------------------------------------------------------------------------
34 //-----------------------------------------------------------------------------
36 IMPLEMENT_DYNAMIC_CLASS(wxScreenDC
,wxPaintDC
)
38 wxScreenDC::wxScreenDC()
41 m_cmap
= gdk_colormap_get_system();
42 m_window
= GDK_ROOT_PARENT();
45 m_context
= gdk_pango_context_get();
46 m_layout
= pango_layout_new( m_context
);
47 // m_fontdesc = pango_font_description_copy( widget->style->font_desc );
54 gdk_gc_set_subwindow( m_penGC
, GDK_INCLUDE_INFERIORS
);
55 gdk_gc_set_subwindow( m_brushGC
, GDK_INCLUDE_INFERIORS
);
56 gdk_gc_set_subwindow( m_textGC
, GDK_INCLUDE_INFERIORS
);
57 gdk_gc_set_subwindow( m_bgGC
, GDK_INCLUDE_INFERIORS
);
60 wxScreenDC::~wxScreenDC()
62 gdk_gc_set_subwindow( m_penGC
, GDK_CLIP_BY_CHILDREN
);
63 gdk_gc_set_subwindow( m_brushGC
, GDK_CLIP_BY_CHILDREN
);
64 gdk_gc_set_subwindow( m_textGC
, GDK_CLIP_BY_CHILDREN
);
65 gdk_gc_set_subwindow( m_bgGC
, GDK_CLIP_BY_CHILDREN
);
70 bool wxScreenDC::StartDrawingOnTop( wxWindow
*window
)
72 if (!window
) return StartDrawingOnTop();
76 window
->GetPosition( &x
, &y
);
79 window
->GetSize( &w
, &h
);
80 window
->ClientToScreen( &x
, &y
);
88 return StartDrawingOnTop( &rect
);
91 bool wxScreenDC::StartDrawingOnTop( wxRect
*rect
)
95 int width
= gdk_screen_width();
96 int height
= gdk_screen_height();
102 height
= rect
->height
;
108 bool wxScreenDC::EndDrawingOnTop()
113 void wxScreenDC::DoGetSize(int *width
, int *height
) const
115 wxDisplaySize(width
, height
);