X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0208334d5d57849d7e46b9997cd8ef39daf39d2d..c7527e3f2178b3a527c50ffda6bb059f8ff8acce:/src/gtk/dcscreen.cpp diff --git a/src/gtk/dcscreen.cpp b/src/gtk/dcscreen.cpp index f0bc7c02de..96491de8ad 100644 --- a/src/gtk/dcscreen.cpp +++ b/src/gtk/dcscreen.cpp @@ -14,6 +14,9 @@ #include "wx/dcscreen.h" #include "wx/window.h" +#include "gdk/gdk.h" +#include "gtk/gtk.h" + //----------------------------------------------------------------------------- // global data initialization //----------------------------------------------------------------------------- @@ -122,6 +125,8 @@ gdk_window_transparent_new ( GdkWindow *parent, gprivate->height = (attributes->height > 1) ? (attributes->height) : (1); gprivate->window_type = attributes->window_type; gprivate->extension_events = FALSE; + +#if (GTK_MINOR_VERSION == 0) gprivate->dnd_drag_data_type = None; gprivate->dnd_drag_data_typesavail = gprivate->dnd_drop_data_typesavail = NULL; @@ -130,6 +135,7 @@ gdk_window_transparent_new ( GdkWindow *parent, gprivate->dnd_drop_data_numtypesavail = gprivate->dnd_drag_data_numtypesavail = 0; gprivate->dnd_drag_eventmask = gprivate->dnd_drag_savedeventmask = 0; +#endif gprivate->filters = NULL; gprivate->children = NULL; @@ -209,7 +215,7 @@ gdk_window_transparent_new ( GdkWindow *parent, if (attributes_mask & GDK_WA_TITLE) title = attributes->title; else -#if (GTK_MINOR_VERSION == 1) +#if (GTK_MINOR_VERSION > 0) title = "Unknown"; // GLH: Well I don't know for the moment what to write here. #else title = gdk_progname; @@ -242,54 +248,56 @@ IMPLEMENT_DYNAMIC_CLASS(wxScreenDC,wxPaintDC) wxScreenDC::wxScreenDC(void) { - m_ok = FALSE; - m_window = (GdkWindow *) NULL; - m_cmap = gdk_colormap_get_system(); + m_ok = FALSE; + m_window = (GdkWindow *) NULL; + m_cmap = gdk_colormap_get_system(); - if (sm_overlayWindow) - { - m_window = sm_overlayWindow; - m_deviceOriginX = - sm_overlayWindowX; - m_deviceOriginY = - sm_overlayWindowY; - } - else - m_window = GDK_ROOT_PARENT(); + if (sm_overlayWindow) + { + m_window = sm_overlayWindow; + m_deviceOriginX = - sm_overlayWindowX; + m_deviceOriginY = - sm_overlayWindowY; + } + else + { + m_window = GDK_ROOT_PARENT(); + } - SetUpDC(); + 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 ); + 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(); + EndDrawingOnTop(); } bool wxScreenDC::StartDrawingOnTop( wxWindow *window ) { - if (!window) return StartDrawingOnTop(); + 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 ); + int x = 0; + int y = 0; + window->GetPosition( &x, &y ); + int w = 0; + int h = 0; + window->GetSize( &w, &h ); + window->ClientToScreen( &x, &y ); - wxRectangle rect; - rect.x = x; - rect.y = y; - rect.width = 0; - rect.height = 0; + wxRect rect; + rect.x = x; + rect.y = y; + rect.width = 0; + rect.height = 0; - return StartDrawingOnTop( &rect ); + return StartDrawingOnTop( &rect ); } -bool wxScreenDC::StartDrawingOnTop( wxRectangle *rect ) +bool wxScreenDC::StartDrawingOnTop( wxRect *rect ) { int x = 0; int y = 0; @@ -321,17 +329,17 @@ bool wxScreenDC::StartDrawingOnTop( wxRectangle *rect ) if (sm_overlayWindow) gdk_window_show( sm_overlayWindow ); - return (sm_overlayWindow); + return (sm_overlayWindow != NULL); } bool wxScreenDC::EndDrawingOnTop(void) { - if (sm_overlayWindow) gdk_window_destroy( sm_overlayWindow ); + if (sm_overlayWindow) gdk_window_destroy( sm_overlayWindow ); - sm_overlayWindow = NULL; - sm_overlayWindowX = 0; - sm_overlayWindowY = 0; + sm_overlayWindow = NULL; + sm_overlayWindowX = 0; + sm_overlayWindowY = 0; - return TRUE; + return TRUE; }