]> git.saurik.com Git - wxWidgets.git/commitdiff
Use accessor functions instead of deprecated GTK+ macros.
authorVáclav Slavík <vslavik@fastmail.fm>
Sat, 26 Mar 2011 15:49:57 +0000 (15:49 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Sat, 26 Mar 2011 15:49:57 +0000 (15:49 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67312 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

15 files changed:
include/wx/gtk/private.h
include/wx/gtk/private/compat.h [new file with mode: 0644]
src/aui/dockart.cpp
src/generic/statusbr.cpp
src/gtk/button.cpp
src/gtk/dataview.cpp
src/gtk/dcclient.cpp
src/gtk/glcanvas.cpp
src/gtk/listbox.cpp
src/gtk/radiobox.cpp
src/gtk/settings.cpp
src/gtk/textctrl.cpp
src/gtk/toplevel.cpp
src/gtk/win_gtk.cpp
src/gtk/window.cpp

index b63479d372aee9431823af5228abe6400665ffa6..00f2c9f75918c7a133197adc23e8baea38138b84 100644 (file)
@@ -15,6 +15,7 @@
 #include <gtk/gtk.h>
 
 #include "wx/gtk/private/string.h"
+#include "wx/gtk/private/compat.h"
 
 // pango_version_check symbol is quite recent ATM (4/2007)... so we
 // use our own wrapper which implements a smart trick.
diff --git a/include/wx/gtk/private/compat.h b/include/wx/gtk/private/compat.h
new file mode 100644 (file)
index 0000000..df26d5e
--- /dev/null
@@ -0,0 +1,152 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name:        wx/gtk/private/compat.h
+// Purpose:     Compatibility code for older GTK+ versions
+// Author:      Vaclav Slavik
+// Created:     2011-03-25
+// RCS-ID:      $Id$
+// Copyright:   (c) 2011 Vaclav Slavik <vslavik@fastmail.fm>
+// Licence:     wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_GTK_PRIVATE_COMPAT_H_
+#define _WX_GTK_PRIVATE_COMPAT_H_
+
+// ----------------------------------------------------------------------------
+// Implementations of new accessors for older GTK+ versions
+// ----------------------------------------------------------------------------
+
+// GTK+ deprecated direct access to struct members and some other stuff,
+// replacing them with simple accessor functions. These aren't available in
+// older versions, though, so we have to provide them for compatibility.
+//
+// Note: wx_ prefix is used to avoid symbol conflicts at runtime
+
+
+#if !GTK_CHECK_VERSION(2,18,0)
+    inline gboolean wx_gtk_widget_get_has_window(GtkWidget *widget)
+    {
+        return !GTK_WIDGET_NO_WINDOW(widget);
+    }
+    #define gtk_widget_get_has_window wx_gtk_widget_get_has_window
+#endif
+
+
+#if !GTK_CHECK_VERSION(2,18,0)
+    inline gboolean wx_gtk_widget_get_has_grab(GtkWidget *widget)
+    {
+        return GTK_WIDGET_HAS_GRAB(widget);
+    }
+    #define gtk_widget_get_has_grab wx_gtk_widget_get_has_grab
+#endif
+
+
+#if !GTK_CHECK_VERSION(2,18,0)
+    inline gboolean wx_gtk_widget_get_visible(GtkWidget *widget)
+    {
+        return GTK_WIDGET_VISIBLE(widget);
+    }
+    #define gtk_widget_get_visible wx_gtk_widget_get_visible
+#endif
+
+
+#if !GTK_CHECK_VERSION(2,18,0)
+    inline gboolean wx_gtk_widget_get_sensitive(GtkWidget *widget)
+    {
+        return GTK_WIDGET_VISIBLE(widget);
+    }
+    #define gtk_widget_get_sensitive wx_gtk_widget_get_sensitive
+#endif
+
+
+#if !GTK_CHECK_VERSION(2,18,0)
+    inline gboolean wx_gtk_widget_is_drawable(GtkWidget *widget)
+    {
+        return GTK_WIDGET_DRAWABLE(widget);
+    }
+    #define gtk_widget_is_drawable wx_gtk_widget_is_drawable
+#endif
+
+
+#if !GTK_CHECK_VERSION(2,18,0)
+    inline gboolean wx_gtk_widget_get_can_focus(GtkWidget *widget)
+    {
+        return GTK_WIDGET_CAN_FOCUS(widget);
+    }
+    #define gtk_widget_get_can_focus wx_gtk_widget_get_can_focus
+
+    inline void wx_gtk_widset_set_can_focus(GtkWidget *widget, gboolean can)
+    {
+        if ( can )
+            GTK_WIDGET_SET_FLAGS(widget, GTK_CAN_FOCUS);
+        else
+            GTK_WIDGET_UNSET_FLAGS(widget, GTK_CAN_FOCUS);
+    }
+    #define gtk_widset_set_can_focus wx_gtk_widset_set_can_focus
+#endif
+
+
+#if !GTK_CHECK_VERSION(2,18,0)
+    inline gboolean wx_gtk_widget_get_can_default(GtkWidget *widget)
+    {
+        return GTK_WIDGET_CAN_DEFAULT(widget);
+    }
+    #define gtk_widget_get_can_default wx_gtk_widget_get_can_default
+
+    inline void wx_gtk_widget_set_can_default(GtkWidget *widget, gboolean can)
+    {
+        if ( can )
+            GTK_WIDGET_SET_FLAGS(widget, GTK_CAN_DEFAULT);
+        else
+            GTK_WIDGET_UNSET_FLAGS(widget, GTK_CAN_DEFAULT);
+    }
+    #define gtk_widget_set_can_default wx_gtk_widget_set_can_default
+#endif
+
+
+#if !GTK_CHECK_VERSION(2,18,0)
+    inline gboolean wx_gtk_widget_has_default(GtkWidget *widget)
+    {
+        return GTK_WIDGET_HAS_DEFAULT(widget);
+    }
+    #define gtk_widget_has_default wx_gtk_widget_has_default
+#endif
+
+
+#if !GTK_CHECK_VERSION(2,18,0)
+    inline GtkStateType wx_gtk_widget_get_state(GtkWidget *widget)
+    {
+        return GTK_WIDGET_STATE(widget);
+    }
+    #define gtk_widget_get_state wx_gtk_widget_get_state
+#endif
+
+
+#if !GTK_CHECK_VERSION(2,18,0)
+    inline gboolean wx_gtk_widget_get_double_buffered(GtkWidget *widget)
+    {
+        return GTK_WIDGET_DOUBLE_BUFFERED(widget);
+    }
+    #define gtk_widget_get_double_buffered wx_gtk_widget_get_double_buffered
+#endif
+
+
+#if !GTK_CHECK_VERSION(2,20,0)
+    inline gboolean wx_gtk_widget_get_realized(GtkWidget *widget)
+    {
+        return GTK_WIDGET_REALIZED(widget);
+    }
+    #define gtk_widget_get_realized wx_gtk_widget_get_realized
+#endif
+
+
+#if !GTK_CHECK_VERSION(2,20,0)
+    inline gboolean wx_gtk_widget_get_mapped(GtkWidget *widget)
+    {
+        return GTK_WIDGET_MAPPED(widget);
+    }
+    #define gtk_widget_get_mapped wx_gtk_widget_get_mapped
+#endif
+
+
+#endif // _WX_GTK_PRIVATE_COMPAT_H_
+
index 003b47aa3fce3d3d59f10d2a284a2d2fc56def08..3c88ed6b963f151a9bd09c42b4fceefc73a7b892 100644 (file)
@@ -410,7 +410,7 @@ void wxAuiDefaultDockArt::DrawSash(wxDC& dc, wxWindow *window, int orientation,
 
     if (!window) return;
     if (!window->m_wxwindow) return;
-    if (!GTK_WIDGET_DRAWABLE(window->m_wxwindow)) return;
+    if (!gtk_widget_is_drawable(window->m_wxwindow)) return;
 
     gtk_paint_handle
     (
index 691cd520e11e5b0826ee5a3dd5391fbb3e11d8ab..4273049a9d560c07b9d99a01f439e396cdad94ab 100644 (file)
@@ -416,7 +416,7 @@ void wxStatusBarGeneric::OnPaint(wxPaintEvent& WXUNUSED(event) )
                                                            GDK_WINDOW_EDGE_SOUTH_EAST;
         gtk_paint_resize_grip( m_widget->style,
                             GTKGetDrawingWindow(),
-                            (GtkStateType) GTK_WIDGET_STATE (m_widget),
+                            gtk_widget_get_state(m_widget),
                             NULL,
                             m_widget,
                             "statusbar",
index 5255a240ffd8bf033b3bf0f96c341b3bc58e7ba9..68ae2b0eca26db67bffe58e33db543eefdbdb19f 100644 (file)
@@ -83,7 +83,7 @@ wxgtk_button_style_set_callback(GtkWidget* widget, GtkStyle*, wxButton* win)
 {
     /* the default button has a border around it */
     wxWindow* parent = win->GetParent();
-    if (parent && parent->m_wxwindow && GTK_WIDGET_CAN_DEFAULT(widget))
+    if (parent && parent->m_wxwindow && gtk_widget_get_can_default(widget))
     {
         GtkBorder* border = NULL;
         gtk_widget_style_get(widget, "default_border", &border, NULL);
@@ -181,7 +181,7 @@ wxWindow *wxButton::SetDefault()
 {
     wxWindow *oldDefault = wxButtonBase::SetDefault();
 
-    GTK_WIDGET_SET_FLAGS( m_widget, GTK_CAN_DEFAULT );
+    gtk_widget_set_can_default(m_widget, TRUE);
     gtk_widget_grab_default( m_widget );
 
     // resize for default border
@@ -349,11 +349,11 @@ wxSize wxButton::DoGetBestSize() const
     // extra border around it, but we don't want to take it into account in
     // our size calculations (otherwise the result is visually ugly), so
     // always return the size of non default button from here
-    const bool isDefault = GTK_WIDGET_HAS_DEFAULT(m_widget);
+    const bool isDefault = gtk_widget_has_default(m_widget);
     if ( isDefault )
     {
         // temporarily unset default flag
-        GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_DEFAULT );
+        gtk_widget_set_can_default(m_widget, FALSE);
     }
 
     wxSize ret( wxControl::DoGetBestSize() );
@@ -361,7 +361,7 @@ wxSize wxButton::DoGetBestSize() const
     if ( isDefault )
     {
         // set it back again
-        GTK_WIDGET_SET_FLAGS( m_widget, GTK_CAN_DEFAULT );
+        gtk_widget_set_can_default(m_widget, TRUE);
     }
 
     if (!HasFlag(wxBU_EXACTFIT))
index da2b6d4e67259f67e9445fba4452c0f2200c7b74..dcb66b9c9c7f095ec84116ba8b03cb1058840568 100644 (file)
@@ -3028,7 +3028,7 @@ void wxDataViewColumn::OnInternalIdle()
     if (m_isConnected)
         return;
 
-    if (GTK_WIDGET_REALIZED(GetOwner()->m_treeview))
+    if (gtk_widget_get_realized(GetOwner()->m_treeview))
     {
         GtkTreeViewColumn *column = GTK_TREE_VIEW_COLUMN(m_column);
         if (column->button)
@@ -4244,7 +4244,7 @@ wxGtkTreeModelNode *wxDataViewCtrlInternal::FindParentNode( const wxDataViewItem
 static void
 wxdataview_selection_changed_callback( GtkTreeSelection* WXUNUSED(selection), wxDataViewCtrl *dv )
 {
-    if (!GTK_WIDGET_REALIZED(dv->m_widget))
+    if (!gtk_widget_get_realized(dv->m_widget))
         return;
 
     wxDataViewEvent event( wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, dv->GetId() );
@@ -4326,7 +4326,7 @@ void wxDataViewCtrl::AddChildGTK(wxWindowGTK* child)
     GtkWidget* treeview = GtkGetTreeView();
 
     // Insert widget in GtkTreeView
-    if (GTK_WIDGET_REALIZED(treeview))
+    if (gtk_widget_get_realized(treeview))
         gtk_widget_set_parent_window( child->m_widget,
           gtk_tree_view_get_bin_window( GTK_TREE_VIEW(treeview) ) );
     gtk_widget_set_parent( child->m_widget, treeview );
index f6a7f3a94251d39c1ba7bbef9f8bc6bf989df793..798b1f413f1ef72c3d3c3320690fa26707ffaa7b 100644 (file)
@@ -295,7 +295,7 @@ wxWindowDCImpl::wxWindowDCImpl( wxDC *owner, wxWindow *window ) :
         wxCHECK_RET(widget, "DC needs a widget");
 
         m_gdkwindow = widget->window;
-        if (GTK_WIDGET_NO_WINDOW(widget))
+        if (!gtk_widget_get_has_window(widget))
             SetDeviceLocalOrigin(widget->allocation.x, widget->allocation.y);
     }
 
index 30f09a61ef312ab6014526b9abca4972c6c88d00..712fb52e41a4cbd6066c3af6abf126b58cc5e894 100644 (file)
@@ -231,11 +231,11 @@ bool wxGLCanvas::Create(wxWindow *parent,
     // if our parent window is already visible, we had been realized before we
     // connected to the "realize" signal and hence our m_glContext hasn't been
     // initialized yet and we have to do it now
-    if (GTK_WIDGET_REALIZED(m_wxwindow))
+    if (gtk_widget_get_realized(m_wxwindow))
         gtk_glwindow_realized_callback( m_wxwindow, this );
 #endif // WXWIN_COMPATIBILITY_2_8
 
-    if (GTK_WIDGET_MAPPED(m_wxwindow))
+    if (gtk_widget_get_mapped(m_wxwindow))
         gtk_glwindow_map_callback( m_wxwindow, this );
 
     return true;
index 5c2da5cb53620e629a03abeff16627584f30a94e..b17d1a32c65e73766c71d21ce4513f48321ade58 100644 (file)
@@ -773,7 +773,7 @@ void wxListBox::DoScrollToCell(int n, float alignY, float alignX)
     wxCHECK_RET( IsValid(n), wxT("invalid index"));
 
     //RN: I have no idea why this line is needed...
-    if (gdk_pointer_is_grabbed () && GTK_WIDGET_HAS_GRAB (m_treeview))
+    if (gdk_pointer_is_grabbed () && gtk_widget_has_grab(GTK_WIDGET(m_treeview)))
         return;
 
     GtkTreeIter iter;
index 887d1a3d9a1f814c94810c28d6d9157d775d1db1..96323121c866efc6aadf1883eb92aa2960090c42 100644 (file)
@@ -475,7 +475,7 @@ bool wxRadioBox::IsItemEnabled(unsigned int item) const
 
     // don't use GTK_WIDGET_IS_SENSITIVE() here, we want to return true even if
     // the parent radiobox is disabled
-    return GTK_WIDGET_SENSITIVE(GTK_WIDGET(button));
+    return gtk_widget_is_sensitive(GTK_WIDGET(button));
 }
 
 bool wxRadioBox::Show(unsigned int item, bool show)
@@ -506,7 +506,7 @@ bool wxRadioBox::IsItemShown(unsigned int item) const
 
     GtkButton *button = GTK_BUTTON( node->GetData()->button );
 
-    return GTK_WIDGET_VISIBLE(GTK_WIDGET(button));
+    return gtk_widget_get_visible(GTK_WIDGET(button));
 }
 
 unsigned int wxRadioBox::GetCount() const
index d4b9201cc653b4033b74b13d297e6dae5596e685..f05a5f947db09bb653ebc84ffab1ed5ab333026c 100644 (file)
@@ -316,7 +316,7 @@ static int GetBorderWidth(wxSystemMetric index, wxWindow* win)
 int wxSystemSettingsNative::GetMetric( wxSystemMetric index, wxWindow* win )
 {
     GdkWindow *window = NULL;
-    if(win && GTK_WIDGET_REALIZED(win->GetHandle()))
+    if(win && gtk_widget_get_realized(win->GetHandle()))
         window = win->GetHandle()->window;
 
     switch (index)
index e88d1e2aed9fbd4ed3bdd2e3849cf12a8a9645c6..57107f12d3f9398a920e93e6cf4232608c035d6b 100644 (file)
@@ -689,7 +689,7 @@ bool wxTextCtrl::Create( wxWindow *parent,
 
         gtk_widget_add_events( GTK_WIDGET(m_text), GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK );
 
-        GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS );
+        gtk_widget_set_can_focus(m_widget, FALSE);
     }
     else
     {
index 28f4fafcea6c4482373661397ffbf0b309b06952..fb3696031cc581dd659d84753a02aff12d8d34aa 100644 (file)
@@ -80,7 +80,8 @@ extern "C" {
 static void wxgtk_window_set_urgency_hint (GtkWindow *win,
                                            gboolean setting)
 {
-    wxASSERT_MSG( GTK_WIDGET_REALIZED(win), wxT("wxgtk_window_set_urgency_hint: GdkWindow not realized") );
+    wxASSERT_MSG( gtk_widget_get_realized(GTK_WIDGET(win)),
+                  wxT("wxgtk_window_set_urgency_hint: GdkWindow not realized") );
     GdkWindow *window = GTK_WIDGET(win)->window;
     XWMHints *wm_hints;
 
@@ -713,7 +714,7 @@ bool wxTopLevelWindowGTK::EnableCloseButton( bool enable )
     else
         m_gdkFunc &= ~GDK_FUNC_CLOSE;
 
-    if (GTK_WIDGET_REALIZED(m_widget) && (m_widget->window))
+    if (gtk_widget_get_realized(m_widget) && (m_widget->window))
         gdk_window_set_functions( m_widget->window, (GdkWMFunction)m_gdkFunc );
 
     return true;
@@ -820,7 +821,7 @@ bool wxTopLevelWindowGTK::Show( bool show )
     bool deferShow = show && !m_isShown && m_deferShow;
     if (deferShow)
     {
-        deferShow = m_deferShowAllowed && !GTK_WIDGET_REALIZED(m_widget);
+        deferShow = m_deferShowAllowed && !gtk_widget_get_realized(m_widget);
         if (deferShow)
         {
             deferShow = g_signal_handler_find(m_widget,
@@ -889,7 +890,7 @@ bool wxTopLevelWindowGTK::Show( bool show )
         return true;
     }
 
-    if (show && !GTK_WIDGET_REALIZED(m_widget))
+    if (show && !gtk_widget_get_realized(m_widget))
     {
         // size_allocate signals occur in reverse order (bottom to top).
         // Things work better if the initial wxSizeEvents are sent (from the
@@ -1194,7 +1195,7 @@ void wxTopLevelWindowGTK::SetIcons( const wxIconBundle &icons )
     // Setting icons before window is realized can cause a GTK assertion if
     // another TLW is realized before this one, and it has this one as it's
     // transient parent. The life demo exibits this problem.
-    if (GTK_WIDGET_REALIZED(m_widget))
+    if (gtk_widget_get_realized(m_widget))
     {
         GList* list = NULL;
         for (size_t i = icons.GetIconCount(); i--;)
@@ -1295,7 +1296,7 @@ bool wxTopLevelWindowGTK::SetShape(const wxRegion& region)
     wxCHECK_MSG( HasFlag(wxFRAME_SHAPED), false,
                  wxT("Shaped windows must be created with the wxFRAME_SHAPED style."));
 
-    if ( GTK_WIDGET_REALIZED(m_widget) )
+    if ( gtk_widget_get_realized(m_widget) )
     {
         if ( m_wxwindow )
             do_shape_combine_region(m_wxwindow->window, region);
@@ -1334,7 +1335,7 @@ void wxTopLevelWindowGTK::RequestUserAttention(int flags)
 
     m_urgency_hint = -2;
 
-    if( GTK_WIDGET_REALIZED(m_widget) && !IsActive() )
+    if( gtk_widget_get_realized(m_widget) && !IsActive() )
     {
         new_hint_value = true;
 
index 6c420a7a34422a56a04f87d61b9d871f46c4aa78..2d599c12b727749c8daee5151063dbdbac7de50b 100644 (file)
@@ -52,7 +52,7 @@ static void size_allocate(GtkWidget* widget, GtkAllocation* alloc)
     int w = alloc->width - 2 * border_x;
     if (w < 0) w = 0;
 
-    if (GTK_WIDGET_REALIZED(widget) && (is_move || is_resize))
+    if (gtk_widget_get_realized(widget) && (is_move || is_resize))
     {
         int h = alloc->height - 2 * border_y;
         if (h < 0) h = 0;
@@ -76,7 +76,7 @@ static void size_allocate(GtkWidget* widget, GtkAllocation* alloc)
     for (const GList* list = pizza->m_fixed.children; list; list = list->next)
     {
         const GtkFixedChild* child = static_cast<GtkFixedChild*>(list->data);
-        if (GTK_WIDGET_VISIBLE(child->widget))
+        if (gtk_widget_get_visible(child->widget))
         {
             GtkAllocation child_alloc;
             // note that child positions do not take border into
@@ -236,7 +236,11 @@ GtkWidget* wxPizza::New(long windowStyle)
     pizza->m_is_scrollable = (windowStyle & (wxHSCROLL | wxVSCROLL)) != 0;
     // mask off border styles not useable with wxPizza
     pizza->m_border_style = int(windowStyle & BORDER_STYLES);
+#if GTK_CHECK_VERSION(2,20,0)
+    gtk_widget_set_has_window(widget, true);
+#else
     gtk_fixed_set_has_window(GTK_FIXED(widget), true);
+#endif
     gtk_widget_add_events(widget,
         GDK_EXPOSURE_MASK |
         GDK_SCROLL_MASK |
index d09edd5c64e5820a169ff8f60a20764295b4b4c1..25b03e60bef90d7fa3a642d2d487344bc17288c2 100644 (file)
@@ -1618,7 +1618,7 @@ window_scroll_event_hscrollbar(GtkWidget*, GdkEventScroll* gdk_event, wxWindow*
     GtkRange *range = win->m_scrollBar[wxWindow::ScrollDir_Horz];
     if (!range) return FALSE;
 
-    if (range && GTK_WIDGET_VISIBLE (range))
+    if (range && gtk_widget_get_visible(GTK_WIDGET(range)))
     {
         GtkAdjustment *adj = range->adjustment;
         gdouble delta = adj->step_increment * 3;
@@ -1661,7 +1661,7 @@ window_scroll_event(GtkWidget*, GdkEventScroll* gdk_event, wxWindow* win)
     GtkRange *range = win->m_scrollBar[wxWindow::ScrollDir_Vert];
     if (!range) return FALSE;
 
-    if (range && GTK_WIDGET_VISIBLE (range))
+    if (range && gtk_widget_get_visible(GTK_WIDGET(range)))
     {
         GtkAdjustment *adj = range->adjustment;
         gdouble delta = adj->step_increment * 3;
@@ -2539,7 +2539,7 @@ void wxWindowGTK::DoSetSize( int x, int y, int width, int height, int sizeFlags
         int bottom_border = 0;
 
         /* the default button has a border around it */
-        if (GTK_WIDGET_CAN_DEFAULT(m_widget))
+        if (gtk_widget_get_can_default(m_widget))
         {
             GtkBorder *default_border = NULL;
             gtk_widget_style_get( m_widget, "default_border", &default_border, NULL );
@@ -2583,7 +2583,7 @@ void wxWindowGTK::DoSetSize( int x, int y, int width, int height, int sizeFlags
 
 bool wxWindowGTK::GTKShowFromOnIdle()
 {
-    if (IsShown() && m_showOnIdle && !GTK_WIDGET_VISIBLE (m_widget))
+    if (IsShown() && m_showOnIdle && !gtk_widget_get_visible (m_widget))
     {
         GtkAllocation alloc;
         alloc.x = m_x;
@@ -2780,7 +2780,7 @@ void wxWindowGTK::DoClientToScreen( int *x, int *y ) const
 
     if (!m_wxwindow)
     {
-        if (GTK_WIDGET_NO_WINDOW (m_widget))
+        if (!gtk_widget_get_has_window(m_widget))
         {
             org_x += m_widget->allocation.x;
             org_y += m_widget->allocation.y;
@@ -2817,7 +2817,7 @@ void wxWindowGTK::DoScreenToClient( int *x, int *y ) const
 
     if (!m_wxwindow)
     {
-        if (GTK_WIDGET_NO_WINDOW (m_widget))
+        if (!gtk_widget_get_has_window(m_widget))
         {
             org_x += m_widget->allocation.x;
             org_y += m_widget->allocation.y;
@@ -3174,7 +3174,7 @@ void wxWindowGTK::SetFocus()
     GtkWidget *widget = m_wxwindow ? m_wxwindow : m_focusWidget;
 
     if ( GTK_IS_CONTAINER(widget) &&
-         !GTK_WIDGET_CAN_FOCUS(widget) )
+         !gtk_widget_get_can_focus(widget) )
     {
         wxLogTrace(TRACE_FOCUS,
                    wxT("Setting focus to a child of %s(%p, %s)"),
@@ -3192,17 +3192,11 @@ void wxWindowGTK::SetFocus()
 
 void wxWindowGTK::SetCanFocus(bool canFocus)
 {
-    if ( canFocus )
-        GTK_WIDGET_SET_FLAGS(m_widget, GTK_CAN_FOCUS);
-    else
-        GTK_WIDGET_UNSET_FLAGS(m_widget, GTK_CAN_FOCUS);
+    gtk_widget_set_can_focus(m_widget, canFocus);
 
     if ( m_wxwindow && (m_widget != m_wxwindow) )
     {
-        if ( canFocus )
-            GTK_WIDGET_SET_FLAGS(m_wxwindow, GTK_CAN_FOCUS);
-        else
-            GTK_WIDGET_UNSET_FLAGS(m_wxwindow, GTK_CAN_FOCUS);
+        gtk_widget_set_can_focus(m_wxwindow, canFocus);
     }
 }
 
@@ -3227,7 +3221,7 @@ bool wxWindowGTK::Reparent( wxWindowBase *newParentBase )
 
     if (newParent)
     {
-        if (GTK_WIDGET_VISIBLE (newParent->m_widget))
+        if (gtk_widget_get_visible (newParent->m_widget))
         {
             m_showOnIdle = true;
             gtk_widget_hide( m_widget );
@@ -3393,10 +3387,10 @@ void wxWindowGTK::RealizeTabOrder()
                         // widget than m_widget, so if the main widget isn't
                         // focusable try the connect widget
                         GtkWidget* w = win->m_widget;
-                        if ( !GTK_WIDGET_CAN_FOCUS(w) )
+                        if ( !gtk_widget_get_can_focus(w) )
                         {
                             w = win->GetConnectWidget();
-                            if ( !GTK_WIDGET_CAN_FOCUS(w) )
+                            if ( !gtk_widget_get_can_focus(w) )
                                 w = NULL;
                         }
 
@@ -3583,7 +3577,7 @@ void wxWindowGTK::Refresh(bool WXUNUSED(eraseBackground),
         // Just return if the widget or one of its ancestors isn't mapped
         GtkWidget *w;
         for (w = m_wxwindow; w != NULL; w = w->parent)
-            if (!GTK_WIDGET_MAPPED (w))
+            if (!gtk_widget_get_mapped (w))
                 return;
 
         GdkWindow* window = GTKGetDrawingWindow();
@@ -3606,7 +3600,7 @@ void wxWindowGTK::Refresh(bool WXUNUSED(eraseBackground),
 
 void wxWindowGTK::Update()
 {
-    if (m_widget && GTK_WIDGET_MAPPED(m_widget))
+    if (m_widget && gtk_widget_get_mapped(m_widget))
     {
         GdkDisplay* display = gtk_widget_get_display(m_widget);
         // Flush everything out to the server, and wait for it to finish.
@@ -3709,7 +3703,7 @@ void wxWindowGTK::GtkSendPaintEvents()
                 if (!parent)
                     parent = (wxWindow*)this;
 
-                if (GTK_WIDGET_MAPPED(parent->m_widget))
+                if (gtk_widget_get_mapped(parent->m_widget))
                 {
                     wxRegionIterator upd( m_nativeUpdateRegion );
                     while (upd)
@@ -3722,7 +3716,7 @@ void wxWindowGTK::GtkSendPaintEvents()
 
                         gtk_paint_flat_box( parent->m_widget->style,
                                     GTKGetDrawingWindow(),
-                                    (GtkStateType)GTK_WIDGET_STATE(m_wxwindow),
+                                    (GtkStateType)gtk_widget_get_state(m_wxwindow),
                                     GTK_SHADOW_NONE,
                                     &rect,
                                     parent->m_widget,
@@ -3767,7 +3761,7 @@ void wxWindowGTK::SetDoubleBuffered( bool on )
 
 bool wxWindowGTK::IsDoubleBuffered() const
 {
-    return GTK_WIDGET_DOUBLE_BUFFERED( m_wxwindow );
+    return gtk_widget_get_double_buffered( m_wxwindow );
 }
 
 void wxWindowGTK::ClearBackground()
@@ -4449,8 +4443,8 @@ extern "C"
 // is realized (and so can be frozen):
 static void wx_frozen_widget_realize(GtkWidget* w, wxWindowGTK* win)
 {
-    wxASSERT( w && !GTK_WIDGET_NO_WINDOW(w) );
-    wxASSERT( GTK_WIDGET_REALIZED(w) );
+    wxASSERT( w && gtk_widget_get_has_window(w) );
+    wxASSERT( gtk_widget_get_realized(w) );
 
     g_signal_handlers_disconnect_by_func
     (
@@ -4469,10 +4463,10 @@ static void wx_frozen_widget_realize(GtkWidget* w, wxWindowGTK* win)
 
 void wxWindowGTK::GTKFreezeWidget(GtkWidget *w)
 {
-    if ( !w || GTK_WIDGET_NO_WINDOW(w) )
+    if ( !w || !gtk_widget_get_has_window(w) )
         return; // window-less widget, cannot be frozen
 
-    if ( !GTK_WIDGET_REALIZED(w) )
+    if ( !gtk_widget_get_realized(w) )
     {
         // we can't thaw unrealized widgets because they don't have GdkWindow,
         // so set it up to be done immediately after realization:
@@ -4494,10 +4488,10 @@ void wxWindowGTK::GTKFreezeWidget(GtkWidget *w)
 
 void wxWindowGTK::GTKThawWidget(GtkWidget *w)
 {
-    if ( !w || GTK_WIDGET_NO_WINDOW(w) )
+    if ( !w || !gtk_widget_get_has_window(w) )
         return; // window-less widget, cannot be frozen
 
-    if ( !GTK_WIDGET_REALIZED(w) )
+    if ( !gtk_widget_get_realized(w) )
     {
         // the widget wasn't realized yet, no need to thaw
         g_signal_handlers_disconnect_by_func