Initial revision
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
121
src/gtk1/dcscreen.cpp
Normal file
121
src/gtk1/dcscreen.cpp
Normal file
@@ -0,0 +1,121 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: dcscreen.cpp
|
||||
// Purpose:
|
||||
// Author: Robert Roebling
|
||||
// Created: 01/02/97
|
||||
// Id:
|
||||
// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma implementation "dcscreen.h"
|
||||
#endif
|
||||
|
||||
#include "wx/dcscreen.h"
|
||||
#include "wx/window.h"
|
||||
#include "gdk/gdkx.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxScreenDC
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxScreenDC,wxPaintDC)
|
||||
|
||||
wxScreenDC::wxScreenDC(void)
|
||||
{
|
||||
m_ok = FALSE;
|
||||
m_window = NULL;
|
||||
m_cmap = gdk_colormap_get_system();
|
||||
|
||||
m_window = GDK_ROOT_PARENT();
|
||||
|
||||
SetUpDC();
|
||||
|
||||
gdk_gc_set_subwindow( m_penGC, GDK_INCLUDE_INFERIORS );
|
||||
gdk_gc_set_subwindow( m_brushGC, GDK_INCLUDE_INFERIORS );
|
||||
gdk_gc_set_subwindow( m_textGC, GDK_INCLUDE_INFERIORS );
|
||||
gdk_gc_set_subwindow( m_bgGC, GDK_INCLUDE_INFERIORS );
|
||||
};
|
||||
|
||||
wxScreenDC::~wxScreenDC(void)
|
||||
{
|
||||
EndDrawingOnTop();
|
||||
};
|
||||
|
||||
bool wxScreenDC::StartDrawingOnTop( wxWindow *WXUNUSED(window) )
|
||||
{
|
||||
return TRUE;
|
||||
/*
|
||||
if (!window)
|
||||
{
|
||||
StartDrawingOnTop();
|
||||
return;
|
||||
};
|
||||
wxRectangle rect;
|
||||
rect.x = 0;
|
||||
rect.y = 0;
|
||||
window->GetPosition( &rect.x, &rect.y );
|
||||
rect.width = 0;
|
||||
rect.height = 0;
|
||||
window->GetSize( &rect.width, &rect.height );
|
||||
window->ClientToScreen( &rect.x, &rect.y );
|
||||
StartDrawingOnTop( &rect );
|
||||
return TRUE;
|
||||
*/
|
||||
};
|
||||
|
||||
bool wxScreenDC::StartDrawingOnTop( wxRectangle *WXUNUSED(rect) )
|
||||
{
|
||||
return TRUE;
|
||||
/*
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
int width = gdk_screen_width();
|
||||
int height = gdk_screen_height();
|
||||
if (rect)
|
||||
{
|
||||
x = rect->x;
|
||||
y = rect->y;
|
||||
width = rect->width;
|
||||
height = rect->height;
|
||||
};
|
||||
|
||||
GTK cannot set transparent backgrounds. :-(
|
||||
|
||||
GdkWindowAttr attr;
|
||||
attr.x = x;
|
||||
attr.y = y;
|
||||
attr.width = width;
|
||||
attr.height = height;
|
||||
attr.override_redirect = TRUE;
|
||||
attr.wclass = GDK_INPUT_OUTPUT;
|
||||
attr.event_mask = 0;
|
||||
attr.window_type = GDK_WINDOW_TEMP;
|
||||
m_window = gdk_window_new( NULL, &attr, GDK_WA_NOREDIR | GDK_WA_X | GDK_WA_Y );
|
||||
|
||||
gdk_window_show( m_window );
|
||||
|
||||
m_window = GDK_ROOT_PARENT();
|
||||
|
||||
SetUpDC();
|
||||
|
||||
gdk_gc_set_subwindow( m_penGC, GDK_INCLUDE_INFERIORS );
|
||||
gdk_gc_set_subwindow( m_brushGC, GDK_INCLUDE_INFERIORS );
|
||||
gdk_gc_set_subwindow( m_textGC, GDK_INCLUDE_INFERIORS );
|
||||
gdk_gc_set_subwindow( m_bgGC, GDK_INCLUDE_INFERIORS );
|
||||
|
||||
return TRUE;
|
||||
*/
|
||||
};
|
||||
|
||||
bool wxScreenDC::EndDrawingOnTop(void)
|
||||
{
|
||||
return TRUE;
|
||||
/*
|
||||
if (m_window) gdk_window_destroy( m_window );
|
||||
m_window = NULL;
|
||||
m_isOk = FALSE;
|
||||
return TRUE;
|
||||
*/
|
||||
};
|
Reference in New Issue
Block a user