X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fee7a683ed9abfaa40359131976cf019fc256702..3e822cd8d0bdf04cd2c7a3dddff61dcc211f7439:/src/gtk/glcanvas.cpp diff --git a/src/gtk/glcanvas.cpp b/src/gtk/glcanvas.cpp index d81c4cbe57..7e2e6e7463 100644 --- a/src/gtk/glcanvas.cpp +++ b/src/gtk/glcanvas.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: gtk/glcanvas.cpp +// Name: src/gtk/glcanvas.cpp // Purpose: wxGLCanvas, for using OpenGL/Mesa with wxWidgets and GTK // Author: Robert Roebling // Modified by: @@ -9,15 +9,9 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "glcanvas.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" -#include "wx/setup.h" - #if wxUSE_GLCANVAS #include "wx/glcanvas.h" @@ -255,26 +249,6 @@ gtk_glwindow_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExpose *gdk_e } } -//----------------------------------------------------------------------------- -// "draw" of m_wxwindow -//----------------------------------------------------------------------------- - -#ifndef __WXGTK20__ -extern "C" { -static void -gtk_glwindow_draw_callback( GtkWidget *WXUNUSED(widget), GdkRectangle *rect, wxGLCanvas *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - win->m_exposed = TRUE; - - win->GetUpdateRegion().Union( rect->x, rect->y, - rect->width, rect->height ); -} -} -#endif - //----------------------------------------------------------------------------- // "size_allocate" of m_wxwindow //----------------------------------------------------------------------------- @@ -401,7 +375,7 @@ bool wxGLCanvas::Create( wxWindow *parent, GdkColormap *colormap; // MR: This needs a fix for lower gtk+ versions too. Might need to rethink logic (FIXME) -#if GTK_CHECK_VERSION(2,2,0) +#if defined(__WXGTK20__) && GTK_CHECK_VERSION(2,2,0) if (!gtk_check_version(2,2,0)) { wxWindow::Create( parent, id, pos, size, style, name ); @@ -427,38 +401,30 @@ bool wxGLCanvas::Create( wxWindow *parent, colormap = gdk_colormap_new( visual, TRUE ); gtk_widget_push_colormap( colormap ); - gtk_widget_push_visual( visual ); wxWindow::Create( parent, id, pos, size, style, name ); m_glWidget = m_wxwindow; } -#ifdef __WXGTK20__ gtk_widget_set_double_buffered( m_glWidget, FALSE ); -#endif gtk_pizza_set_clear( GTK_PIZZA(m_wxwindow), FALSE ); - gtk_signal_connect( GTK_OBJECT(m_wxwindow), "realize", - GTK_SIGNAL_FUNC(gtk_glwindow_realized_callback), (gpointer) this ); - - gtk_signal_connect( GTK_OBJECT(m_wxwindow), "map", - GTK_SIGNAL_FUNC(gtk_glwindow_map_callback), (gpointer) this ); - - gtk_signal_connect( GTK_OBJECT(m_wxwindow), "expose_event", - GTK_SIGNAL_FUNC(gtk_glwindow_expose_callback), (gpointer)this ); - -#ifndef __WXGTK20__ - gtk_signal_connect( GTK_OBJECT(m_wxwindow), "draw", - GTK_SIGNAL_FUNC(gtk_glwindow_draw_callback), (gpointer)this ); -#endif - - gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate", - GTK_SIGNAL_FUNC(gtk_glcanvas_size_callback), (gpointer)this ); + g_signal_connect (m_wxwindow, "realize", + G_CALLBACK (gtk_glwindow_realized_callback), + this); + g_signal_connect (m_wxwindow, "map", + G_CALLBACK (gtk_glwindow_map_callback), + this); + g_signal_connect (m_wxwindow, "expose_event", + G_CALLBACK (gtk_glwindow_expose_callback), + this); + g_signal_connect (m_widget, "size_allocate", + G_CALLBACK (gtk_glcanvas_size_callback), + this); if (gtk_check_version(2,2,0) != NULL) { - gtk_widget_pop_visual(); gtk_widget_pop_colormap(); }