From 38c7b3d369a2be83990d5d0bdedc0b0f678509ea Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Tue, 24 Nov 1998 15:34:41 +0000 Subject: [PATCH] Big fix for GTK 1.1.5 git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1031 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/gtk/clipbrd.cpp | 2 +- src/gtk/dcscreen.cpp | 3 +++ src/gtk/listbox.cpp | 40 +++++++++++++++++++------------------ src/gtk/win_gtk.c | 46 ++++++++++++++++++++++++++++++++++++++++++- src/gtk/window.cpp | 35 ++++++++++++++++++++++++++------ src/gtk1/clipbrd.cpp | 2 +- src/gtk1/dcscreen.cpp | 3 +++ src/gtk1/listbox.cpp | 40 +++++++++++++++++++------------------ src/gtk1/win_gtk.c | 46 ++++++++++++++++++++++++++++++++++++++++++- src/gtk1/window.cpp | 35 ++++++++++++++++++++++++++------ 10 files changed, 198 insertions(+), 54 deletions(-) diff --git a/src/gtk/clipbrd.cpp b/src/gtk/clipbrd.cpp index 2b77826901..10b56ff272 100644 --- a/src/gtk/clipbrd.cpp +++ b/src/gtk/clipbrd.cpp @@ -155,7 +155,6 @@ void wxClipboard::SetData( wxDataObject *data ) selection_handler, NULL ); break; -*/ case wxDF_TEXT: gtk_selection_add_handler( m_clipboardWidget, g_clipboardAtom, @@ -163,6 +162,7 @@ void wxClipboard::SetData( wxDataObject *data ) selection_handler, NULL ); break; +*/ default: break; } diff --git a/src/gtk/dcscreen.cpp b/src/gtk/dcscreen.cpp index f0bc7c02de..bd5f0c22e0 100644 --- a/src/gtk/dcscreen.cpp +++ b/src/gtk/dcscreen.cpp @@ -122,6 +122,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; + +#ifndef NEW_GTK_DND_CODE gprivate->dnd_drag_data_type = None; gprivate->dnd_drag_data_typesavail = gprivate->dnd_drop_data_typesavail = NULL; @@ -130,6 +132,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; diff --git a/src/gtk/listbox.cpp b/src/gtk/listbox.cpp index 198a207afa..2793afeb92 100644 --- a/src/gtk/listbox.cpp +++ b/src/gtk/listbox.cpp @@ -17,6 +17,16 @@ #include "wx/utils.h" #include +//------------------------------------------------------------------------- +// conditional compilation +//------------------------------------------------------------------------- + +#if (GTK_MINOR_VERSION == 1) +#if (GTK_MICRO_VERSION >= 5) +#define NEW_GTK_SCROLL_CODE +#endif +#endif + //----------------------------------------------------------------------------- // data //----------------------------------------------------------------------------- @@ -91,7 +101,12 @@ bool wxListBox::Create( wxWindow *parent, wxWindowID id, gtk_list_set_selection_mode( GTK_LIST(m_list), mode ); +#ifdef NEW_GTK_SCROLL_CODE + gtk_scrolled_window_add_with_viewport( GTK_SCROLLED_WINDOW(m_widget), GTK_WIDGET(m_list) ); +#else gtk_container_add( GTK_CONTAINER(m_widget), GTK_WIDGET(m_list) ); +#endif + gtk_widget_show( GTK_WIDGET(m_list) ); wxSize newSize = size; @@ -163,7 +178,9 @@ void wxListBox::AppendCommon( const wxString &item ) ConnectWidget( list_item ); +#ifndef NEW_GTK_DND_CODE if (m_dropTarget) m_dropTarget->RegisterWidget( list_item ); +#endif } void wxListBox::Append( const wxString &item ) @@ -481,46 +498,31 @@ void wxListBox::SetDropTarget( wxDropTarget *dropTarget ) { wxCHECK_RET( m_list != NULL, "invalid listbox" ); +#ifndef NEW_GTK_DND_CODE if (m_dropTarget) { GList *child = m_list->children; while (child) { -#ifdef NEW_GTK_DND_CODE - GtkBin *item = GTK_BIN( child->data ); - m_dropTarget->UnregisterWidget( item->child ); -#else m_dropTarget->UnregisterWidget( GTK_WIDGET( child->data ) ); -#endif child = child->next; } } - -#ifndef NEW_GTK_DND_CODE - if (m_dropTarget) m_dropTarget->UnregisterWidget( m_list ); #endif - - if (m_dropTarget) delete m_dropTarget; - m_dropTarget = dropTarget; + + wxWindow::SetDropTarget( dropTarget ); #ifndef NEW_GTK_DND_CODE - if (m_dropTarget) m_dropTarget->RegisterWidget( dnd_widget ); -#endif - if (m_dropTarget) { GList *child = m_list->children; while (child) { -#ifdef NEW_GTK_DND_CODE - GtkBin *item = GTK_BIN( child->data ); - m_dropTarget->RegisterWidget( item->child ); -#else m_dropTarget->RegisterWidget( GTK_WIDGET( child->data ) ); -#endif child = child->next; } } +#endif } GtkWidget *wxListBox::GetConnectWidget() diff --git a/src/gtk/win_gtk.c b/src/gtk/win_gtk.c index dc58604aa9..028a92ed33 100644 --- a/src/gtk/win_gtk.c +++ b/src/gtk/win_gtk.c @@ -10,6 +10,16 @@ #include "wx/gtk/win_gtk.h" #include +/*------------------------------------------------------------------------- +// conditional compilation +//------------------------------------------------------------------------- */ + +#if (GTK_MINOR_VERSION == 1) +#if (GTK_MICRO_VERSION >= 5) +#define NEW_GTK_CONSTRUCT_CODE +#endif +#endif + #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ @@ -17,7 +27,9 @@ extern "C" { static void gtk_myfixed_class_init (GtkMyFixedClass *klass); static void gtk_myfixed_init (GtkMyFixed *myfixed); static void gtk_myfixed_map (GtkWidget *widget); +#ifndef NEW_GTK_CONSTRUCT_CODE static void gtk_myfixed_unmap (GtkWidget *widget); +#endif static void gtk_myfixed_realize (GtkWidget *widget); static void gtk_myfixed_size_request (GtkWidget *widget, GtkRequisition *requisition); @@ -39,6 +51,9 @@ static void gtk_myfixed_foreach (GtkContainer *container, #endif GtkCallback callback, gpointer callback_data); +#ifdef NEW_GTK_CONSTRUCT_CODE +static GtkType gtk_myfixed_child_type (GtkContainer *container); +#endif static GtkContainerClass *parent_class = NULL; @@ -58,8 +73,14 @@ gtk_myfixed_get_type () sizeof (GtkMyFixedClass), (GtkClassInitFunc) gtk_myfixed_class_init, (GtkObjectInitFunc) gtk_myfixed_init, - (GtkArgSetFunc) NULL, +#ifndef NEW_GTK_CONSTRUCT_CODE + (GtkArgSetFunc) NULL, (GtkArgGetFunc) NULL, +#else + /* reserved_1 */ NULL, + /* reserved_2 */ NULL, + (GtkClassInitFunc) NULL, +#endif }; myfixed_type = gtk_type_unique (gtk_container_get_type (), &myfixed_info); @@ -79,10 +100,16 @@ gtk_myfixed_class_init (GtkMyFixedClass *klass) widget_class = (GtkWidgetClass*) klass; container_class = (GtkContainerClass*) klass; +#ifndef NEW_GTK_CONSTRUCT_CODE parent_class = gtk_type_class (gtk_container_get_type ()); +#else + parent_class = gtk_type_class (GTK_TYPE_CONTAINER); +#endif widget_class->map = gtk_myfixed_map; +#ifndef NEW_GTK_CONSTRUCT_CODE widget_class->unmap = gtk_myfixed_unmap; +#endif widget_class->realize = gtk_myfixed_realize; widget_class->size_request = gtk_myfixed_size_request; widget_class->size_allocate = gtk_myfixed_size_allocate; @@ -96,13 +123,28 @@ gtk_myfixed_class_init (GtkMyFixedClass *klass) #else container_class->foreach = gtk_myfixed_foreach; #endif + +#ifdef NEW_GTK_CONSTRUCT_CODE + container_class->child_type = gtk_myfixed_child_type; +#endif +} + +#ifdef NEW_GTK_CONSTRUCT_CODE +static GtkType +gtk_myfixed_child_type (GtkContainer *container) +{ + return GTK_TYPE_WIDGET; } +#endif static void gtk_myfixed_init (GtkMyFixed *myfixed) { GTK_WIDGET_UNSET_FLAGS (myfixed, GTK_NO_WINDOW); + +#ifndef NEW_GTK_CONSTRUCT_CODE GTK_WIDGET_SET_FLAGS (myfixed, GTK_BASIC); +#endif myfixed->children = NULL; } @@ -209,6 +251,7 @@ gtk_myfixed_map (GtkWidget *widget) } } +#ifndef NEW_GTK_CONSTRUCT_CODE static void gtk_myfixed_unmap (GtkWidget *widget) { @@ -217,6 +260,7 @@ gtk_myfixed_unmap (GtkWidget *widget) GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED); } +#endif static void gtk_myfixed_realize (GtkWidget *widget) diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index 95aa2af173..aadf569ac2 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -109,6 +109,16 @@ */ +//------------------------------------------------------------------------- +// conditional compilation +//------------------------------------------------------------------------- + +#if (GTK_MINOR_VERSION == 1) +#if (GTK_MICRO_VERSION >= 5) +#define NEW_GTK_SCROLL_CODE +#endif +#endif + //----------------------------------------------------------------------------- // data //----------------------------------------------------------------------------- @@ -956,6 +966,7 @@ bool wxWindow::Create( wxWindow *parent, wxWindowID id, PreCreation( parent, id, pos, size, style, name ); m_widget = gtk_scrolled_window_new( (GtkAdjustment *) NULL, (GtkAdjustment *) NULL ); + GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS ); GtkScrolledWindow *s_window = GTK_SCROLLED_WINDOW(m_widget); @@ -992,7 +1003,15 @@ bool wxWindow::Create( wxWindow *parent, wxWindowID id, gtk_signal_connect(GTK_OBJECT(m_vAdjust), "changed", (GtkSignalFunc) gtk_window_vscroll_change_callback, (gpointer) this ); + m_wxwindow = gtk_myfixed_new(); + +#ifdef NEW_GTK_SCROLL_CODE + gtk_scrolled_window_add_with_viewport( GTK_SCROLLED_WINDOW(m_widget), m_wxwindow ); + GtkViewport *viewport = GTK_VIEWPORT(s_window->child); +#else + gtk_container_add( GTK_CONTAINER(m_widget), m_wxwindow ); GtkViewport *viewport = GTK_VIEWPORT(s_window->viewport); +#endif if (m_windowStyle & wxRAISED_BORDER) { @@ -1007,17 +1026,11 @@ bool wxWindow::Create( wxWindow *parent, wxWindowID id, gtk_viewport_set_shadow_type( viewport, GTK_SHADOW_NONE ); } - m_wxwindow = gtk_myfixed_new(); - - GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS ); - if (m_windowStyle & wxTAB_TRAVERSAL == wxTAB_TRAVERSAL) GTK_WIDGET_UNSET_FLAGS( m_wxwindow, GTK_CAN_FOCUS ); else GTK_WIDGET_SET_FLAGS( m_wxwindow, GTK_CAN_FOCUS ); - gtk_container_add( GTK_CONTAINER(m_widget), m_wxwindow ); - // shut the viewport up gtk_viewport_set_hadjustment( viewport, (GtkAdjustment*) gtk_adjustment_new( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) ); gtk_viewport_set_vadjustment( viewport, (GtkAdjustment*) gtk_adjustment_new( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) ); @@ -1403,7 +1416,12 @@ void wxWindow::SetClientSize( int width, int height ) GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget); GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass ); +#ifdef NEW_GTK_SCROLL_CODE + GtkWidget *viewport = scroll_window->child; +#else GtkWidget *viewport = scroll_window->viewport; +#endif + GtkStyleClass *viewport_class = viewport->style->klass; GtkWidget *hscrollbar = scroll_window->hscrollbar; @@ -1463,7 +1481,12 @@ void wxWindow::GetClientSize( int *width, int *height ) const GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget); GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass ); +#ifdef NEW_GTK_SCROLL_CODE + GtkWidget *viewport = scroll_window->child; +#else GtkWidget *viewport = scroll_window->viewport; +#endif + GtkStyleClass *viewport_class = viewport->style->klass; GtkWidget *hscrollbar = scroll_window->hscrollbar; diff --git a/src/gtk1/clipbrd.cpp b/src/gtk1/clipbrd.cpp index 2b77826901..10b56ff272 100644 --- a/src/gtk1/clipbrd.cpp +++ b/src/gtk1/clipbrd.cpp @@ -155,7 +155,6 @@ void wxClipboard::SetData( wxDataObject *data ) selection_handler, NULL ); break; -*/ case wxDF_TEXT: gtk_selection_add_handler( m_clipboardWidget, g_clipboardAtom, @@ -163,6 +162,7 @@ void wxClipboard::SetData( wxDataObject *data ) selection_handler, NULL ); break; +*/ default: break; } diff --git a/src/gtk1/dcscreen.cpp b/src/gtk1/dcscreen.cpp index f0bc7c02de..bd5f0c22e0 100644 --- a/src/gtk1/dcscreen.cpp +++ b/src/gtk1/dcscreen.cpp @@ -122,6 +122,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; + +#ifndef NEW_GTK_DND_CODE gprivate->dnd_drag_data_type = None; gprivate->dnd_drag_data_typesavail = gprivate->dnd_drop_data_typesavail = NULL; @@ -130,6 +132,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; diff --git a/src/gtk1/listbox.cpp b/src/gtk1/listbox.cpp index 198a207afa..2793afeb92 100644 --- a/src/gtk1/listbox.cpp +++ b/src/gtk1/listbox.cpp @@ -17,6 +17,16 @@ #include "wx/utils.h" #include +//------------------------------------------------------------------------- +// conditional compilation +//------------------------------------------------------------------------- + +#if (GTK_MINOR_VERSION == 1) +#if (GTK_MICRO_VERSION >= 5) +#define NEW_GTK_SCROLL_CODE +#endif +#endif + //----------------------------------------------------------------------------- // data //----------------------------------------------------------------------------- @@ -91,7 +101,12 @@ bool wxListBox::Create( wxWindow *parent, wxWindowID id, gtk_list_set_selection_mode( GTK_LIST(m_list), mode ); +#ifdef NEW_GTK_SCROLL_CODE + gtk_scrolled_window_add_with_viewport( GTK_SCROLLED_WINDOW(m_widget), GTK_WIDGET(m_list) ); +#else gtk_container_add( GTK_CONTAINER(m_widget), GTK_WIDGET(m_list) ); +#endif + gtk_widget_show( GTK_WIDGET(m_list) ); wxSize newSize = size; @@ -163,7 +178,9 @@ void wxListBox::AppendCommon( const wxString &item ) ConnectWidget( list_item ); +#ifndef NEW_GTK_DND_CODE if (m_dropTarget) m_dropTarget->RegisterWidget( list_item ); +#endif } void wxListBox::Append( const wxString &item ) @@ -481,46 +498,31 @@ void wxListBox::SetDropTarget( wxDropTarget *dropTarget ) { wxCHECK_RET( m_list != NULL, "invalid listbox" ); +#ifndef NEW_GTK_DND_CODE if (m_dropTarget) { GList *child = m_list->children; while (child) { -#ifdef NEW_GTK_DND_CODE - GtkBin *item = GTK_BIN( child->data ); - m_dropTarget->UnregisterWidget( item->child ); -#else m_dropTarget->UnregisterWidget( GTK_WIDGET( child->data ) ); -#endif child = child->next; } } - -#ifndef NEW_GTK_DND_CODE - if (m_dropTarget) m_dropTarget->UnregisterWidget( m_list ); #endif - - if (m_dropTarget) delete m_dropTarget; - m_dropTarget = dropTarget; + + wxWindow::SetDropTarget( dropTarget ); #ifndef NEW_GTK_DND_CODE - if (m_dropTarget) m_dropTarget->RegisterWidget( dnd_widget ); -#endif - if (m_dropTarget) { GList *child = m_list->children; while (child) { -#ifdef NEW_GTK_DND_CODE - GtkBin *item = GTK_BIN( child->data ); - m_dropTarget->RegisterWidget( item->child ); -#else m_dropTarget->RegisterWidget( GTK_WIDGET( child->data ) ); -#endif child = child->next; } } +#endif } GtkWidget *wxListBox::GetConnectWidget() diff --git a/src/gtk1/win_gtk.c b/src/gtk1/win_gtk.c index dc58604aa9..028a92ed33 100644 --- a/src/gtk1/win_gtk.c +++ b/src/gtk1/win_gtk.c @@ -10,6 +10,16 @@ #include "wx/gtk/win_gtk.h" #include +/*------------------------------------------------------------------------- +// conditional compilation +//------------------------------------------------------------------------- */ + +#if (GTK_MINOR_VERSION == 1) +#if (GTK_MICRO_VERSION >= 5) +#define NEW_GTK_CONSTRUCT_CODE +#endif +#endif + #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ @@ -17,7 +27,9 @@ extern "C" { static void gtk_myfixed_class_init (GtkMyFixedClass *klass); static void gtk_myfixed_init (GtkMyFixed *myfixed); static void gtk_myfixed_map (GtkWidget *widget); +#ifndef NEW_GTK_CONSTRUCT_CODE static void gtk_myfixed_unmap (GtkWidget *widget); +#endif static void gtk_myfixed_realize (GtkWidget *widget); static void gtk_myfixed_size_request (GtkWidget *widget, GtkRequisition *requisition); @@ -39,6 +51,9 @@ static void gtk_myfixed_foreach (GtkContainer *container, #endif GtkCallback callback, gpointer callback_data); +#ifdef NEW_GTK_CONSTRUCT_CODE +static GtkType gtk_myfixed_child_type (GtkContainer *container); +#endif static GtkContainerClass *parent_class = NULL; @@ -58,8 +73,14 @@ gtk_myfixed_get_type () sizeof (GtkMyFixedClass), (GtkClassInitFunc) gtk_myfixed_class_init, (GtkObjectInitFunc) gtk_myfixed_init, - (GtkArgSetFunc) NULL, +#ifndef NEW_GTK_CONSTRUCT_CODE + (GtkArgSetFunc) NULL, (GtkArgGetFunc) NULL, +#else + /* reserved_1 */ NULL, + /* reserved_2 */ NULL, + (GtkClassInitFunc) NULL, +#endif }; myfixed_type = gtk_type_unique (gtk_container_get_type (), &myfixed_info); @@ -79,10 +100,16 @@ gtk_myfixed_class_init (GtkMyFixedClass *klass) widget_class = (GtkWidgetClass*) klass; container_class = (GtkContainerClass*) klass; +#ifndef NEW_GTK_CONSTRUCT_CODE parent_class = gtk_type_class (gtk_container_get_type ()); +#else + parent_class = gtk_type_class (GTK_TYPE_CONTAINER); +#endif widget_class->map = gtk_myfixed_map; +#ifndef NEW_GTK_CONSTRUCT_CODE widget_class->unmap = gtk_myfixed_unmap; +#endif widget_class->realize = gtk_myfixed_realize; widget_class->size_request = gtk_myfixed_size_request; widget_class->size_allocate = gtk_myfixed_size_allocate; @@ -96,13 +123,28 @@ gtk_myfixed_class_init (GtkMyFixedClass *klass) #else container_class->foreach = gtk_myfixed_foreach; #endif + +#ifdef NEW_GTK_CONSTRUCT_CODE + container_class->child_type = gtk_myfixed_child_type; +#endif +} + +#ifdef NEW_GTK_CONSTRUCT_CODE +static GtkType +gtk_myfixed_child_type (GtkContainer *container) +{ + return GTK_TYPE_WIDGET; } +#endif static void gtk_myfixed_init (GtkMyFixed *myfixed) { GTK_WIDGET_UNSET_FLAGS (myfixed, GTK_NO_WINDOW); + +#ifndef NEW_GTK_CONSTRUCT_CODE GTK_WIDGET_SET_FLAGS (myfixed, GTK_BASIC); +#endif myfixed->children = NULL; } @@ -209,6 +251,7 @@ gtk_myfixed_map (GtkWidget *widget) } } +#ifndef NEW_GTK_CONSTRUCT_CODE static void gtk_myfixed_unmap (GtkWidget *widget) { @@ -217,6 +260,7 @@ gtk_myfixed_unmap (GtkWidget *widget) GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED); } +#endif static void gtk_myfixed_realize (GtkWidget *widget) diff --git a/src/gtk1/window.cpp b/src/gtk1/window.cpp index 95aa2af173..aadf569ac2 100644 --- a/src/gtk1/window.cpp +++ b/src/gtk1/window.cpp @@ -109,6 +109,16 @@ */ +//------------------------------------------------------------------------- +// conditional compilation +//------------------------------------------------------------------------- + +#if (GTK_MINOR_VERSION == 1) +#if (GTK_MICRO_VERSION >= 5) +#define NEW_GTK_SCROLL_CODE +#endif +#endif + //----------------------------------------------------------------------------- // data //----------------------------------------------------------------------------- @@ -956,6 +966,7 @@ bool wxWindow::Create( wxWindow *parent, wxWindowID id, PreCreation( parent, id, pos, size, style, name ); m_widget = gtk_scrolled_window_new( (GtkAdjustment *) NULL, (GtkAdjustment *) NULL ); + GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS ); GtkScrolledWindow *s_window = GTK_SCROLLED_WINDOW(m_widget); @@ -992,7 +1003,15 @@ bool wxWindow::Create( wxWindow *parent, wxWindowID id, gtk_signal_connect(GTK_OBJECT(m_vAdjust), "changed", (GtkSignalFunc) gtk_window_vscroll_change_callback, (gpointer) this ); + m_wxwindow = gtk_myfixed_new(); + +#ifdef NEW_GTK_SCROLL_CODE + gtk_scrolled_window_add_with_viewport( GTK_SCROLLED_WINDOW(m_widget), m_wxwindow ); + GtkViewport *viewport = GTK_VIEWPORT(s_window->child); +#else + gtk_container_add( GTK_CONTAINER(m_widget), m_wxwindow ); GtkViewport *viewport = GTK_VIEWPORT(s_window->viewport); +#endif if (m_windowStyle & wxRAISED_BORDER) { @@ -1007,17 +1026,11 @@ bool wxWindow::Create( wxWindow *parent, wxWindowID id, gtk_viewport_set_shadow_type( viewport, GTK_SHADOW_NONE ); } - m_wxwindow = gtk_myfixed_new(); - - GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS ); - if (m_windowStyle & wxTAB_TRAVERSAL == wxTAB_TRAVERSAL) GTK_WIDGET_UNSET_FLAGS( m_wxwindow, GTK_CAN_FOCUS ); else GTK_WIDGET_SET_FLAGS( m_wxwindow, GTK_CAN_FOCUS ); - gtk_container_add( GTK_CONTAINER(m_widget), m_wxwindow ); - // shut the viewport up gtk_viewport_set_hadjustment( viewport, (GtkAdjustment*) gtk_adjustment_new( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) ); gtk_viewport_set_vadjustment( viewport, (GtkAdjustment*) gtk_adjustment_new( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) ); @@ -1403,7 +1416,12 @@ void wxWindow::SetClientSize( int width, int height ) GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget); GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass ); +#ifdef NEW_GTK_SCROLL_CODE + GtkWidget *viewport = scroll_window->child; +#else GtkWidget *viewport = scroll_window->viewport; +#endif + GtkStyleClass *viewport_class = viewport->style->klass; GtkWidget *hscrollbar = scroll_window->hscrollbar; @@ -1463,7 +1481,12 @@ void wxWindow::GetClientSize( int *width, int *height ) const GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget); GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass ); +#ifdef NEW_GTK_SCROLL_CODE + GtkWidget *viewport = scroll_window->child; +#else GtkWidget *viewport = scroll_window->viewport; +#endif + GtkStyleClass *viewport_class = viewport->style->klass; GtkWidget *hscrollbar = scroll_window->hscrollbar; -- 2.47.2