Fix wxGTK compilation when using non X11-based GDK.
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 26 Feb 2012 17:18:41 +0000 (17:18 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 26 Feb 2012 17:18:41 +0000 (17:18 +0000)
Only use X11-specific GDK functions inside "#ifdef GDK_WINDOWING_X11" checks.

Closes #14044.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70701 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/gtk/app.cpp
src/gtk/dcscreen.cpp
src/gtk/taskbar.cpp
src/gtk/toplevel.cpp
src/gtk/utilsgtk.cpp
src/gtk/window.cpp

index a4029e23d5945f855e098d5591bf5d2086645672..7de062baa1cecd8952aeb7d025ae643e76421f95 100644 (file)
@@ -38,7 +38,9 @@
     #include <hildon/hildon.h>
 #endif // wxUSE_LIBHILDON2
 
+#ifdef GDK_WINDOWING_X11
 #include <gdk/gdkx.h>
+#endif
 
 //-----------------------------------------------------------------------------
 // link GnomeVFS
index a58d60622e8617577e24911a2bb82f376759337e..935f9bea2bb3450e4ebe5923b66fc09e5ce6a4df 100644 (file)
@@ -14,7 +14,9 @@
 #include "wx/gtk/dcscreen.h"
 
 #include <gtk/gtk.h>
+#ifdef GDK_WINDOWING_X11
 #include <gdk/gdkx.h>
+#endif
 
 //-----------------------------------------------------------------------------
 // wxScreenDCImpl
index cea57e979432df74b2201dc6791005792d98e0b8..e45534a5d22fbdda71bc860948e0ddc29094291e 100644 (file)
@@ -116,6 +116,7 @@ status_icon_popup_menu(GtkStatusIcon*, guint, guint, wxTaskBarIcon* taskBarIcon)
 
 bool wxTaskBarIconBase::IsAvailable()
 {
+#ifdef GDK_WINDOWING_X11
     char name[32];
     g_snprintf(name, sizeof(name), "_NET_SYSTEM_TRAY_S%d",
         gdk_x11_get_default_screen());
@@ -124,6 +125,9 @@ bool wxTaskBarIconBase::IsAvailable()
     Window manager = XGetSelectionOwner(gdk_x11_get_default_xdisplay(), atom);
 
     return manager != None;
+#else
+    return true;
+#endif
 }
 //-----------------------------------------------------------------------------
 
index bec8ad8e60501625b13215679afd96297c470e5b..97b552687093f3a45cd3c49efacf17ca4391c929 100644 (file)
 #include "wx/sysopt.h"
 
 #include <gtk/gtk.h>
+#ifdef GDK_WINDOWING_X11
 #include <gdk/gdkx.h>
+#endif
 
 #include "wx/gtk/private/win_gtk.h"
 
+#ifdef GDK_WINDOWING_X11
+
 #include "wx/unix/utilsx11.h"
 
 // XA_CARDINAL
 #include <X11/Xatom.h>
 
+#endif // GDK_WINDOWING_X11
+
 #if wxUSE_LIBHILDON
     #include <hildon-widgets/hildon-program.h>
     #include <hildon-widgets/hildon-window.h>
@@ -90,6 +96,7 @@ static void wxgtk_window_set_urgency_hint (GtkWindow *win,
     else
 #endif
     {
+#ifdef GDK_WINDOWING_X11
         GdkWindow* window = gtk_widget_get_window(GTK_WIDGET(win));
         wxCHECK_RET(window, "wxgtk_window_set_urgency_hint: GdkWindow not realized");
 
@@ -107,6 +114,7 @@ static void wxgtk_window_set_urgency_hint (GtkWindow *win,
 
         XSetWMHints(dpy, xid, wm_hints);
         XFree(wm_hints);
+#endif // GDK_WINDOWING_X11
     }
 }
 #define gtk_window_set_urgency_hint wxgtk_window_set_urgency_hint
@@ -399,6 +407,7 @@ gtk_frame_window_state_callback( GtkWidget* WXUNUSED(widget),
 
 bool wxGetFrameExtents(GdkWindow* window, int* left, int* right, int* top, int* bottom)
 {
+#ifdef GDK_WINDOWING_X11
     static GdkAtom property = gdk_atom_intern("_NET_FRAME_EXTENTS", false);
     Atom xproperty = gdk_x11_atom_to_xatom_for_display(
                         gdk_drawable_get_display(window), property);
@@ -424,6 +433,9 @@ bool wxGetFrameExtents(GdkWindow* window, int* left, int* right, int* top, int*
     if (data)
         XFree(data);
     return success;
+#else
+    return false;
+#endif
 }
 
 //-----------------------------------------------------------------------------
@@ -758,6 +770,7 @@ bool wxTopLevelWindowGTK::ShowFullScreen(bool show, long)
 
     m_fsIsShowing = show;
 
+#ifdef GDK_WINDOWING_X11
     wxX11FullScreenMethod method =
         wxGetFullScreenMethodX11((WXDisplay*)GDK_DISPLAY(),
                                  (WXWindow)GDK_ROOT_WINDOW());
@@ -767,12 +780,14 @@ bool wxTopLevelWindowGTK::ShowFullScreen(bool show, long)
     //     check if WM supports the spec and use legacy methods if it
     //     doesn't.
     if ( method == wxX11_FS_WMSPEC )
+#endif // GDK_WINDOWING_X11
     {
         if (show)
             gtk_window_fullscreen( GTK_WINDOW( m_widget ) );
         else
             gtk_window_unfullscreen( GTK_WINDOW( m_widget ) );
     }
+#ifdef GDK_WINDOWING_X11
     else
     {
         GdkWindow* window = gtk_widget_get_window(m_widget);
@@ -821,6 +836,7 @@ bool wxTopLevelWindowGTK::ShowFullScreen(bool show, long)
                     m_fsSaveFrame.width, m_fsSaveFrame.height);
         }
     }
+#endif // GDK_WINDOWING_X11
 
     // documented behaviour is to show the window if it's still hidden when
     // showing it full screen
@@ -866,9 +882,13 @@ bool wxTopLevelWindowGTK::Show( bool show )
         GdkScreen* screen = NULL;
         if (deferShow)
         {
+#ifdef GDK_WINDOWING_X11
             screen = gtk_widget_get_screen(m_widget);
             GdkAtom atom = gdk_atom_intern("_NET_REQUEST_FRAME_EXTENTS", false);
             deferShow = gdk_x11_screen_supports_net_wm_hint(screen, atom) != 0;
+#else
+            deferShow = false;
+#endif
             // If _NET_REQUEST_FRAME_EXTENTS not supported, don't allow changes
             // to m_decorSize, it breaks saving/restoring window size with
             // GetSize()/SetSize() because it makes window bigger between each
@@ -906,6 +926,7 @@ bool wxTopLevelWindowGTK::Show( bool show )
             gtk_widget_set_allocation(m_widget, &alloc);
         }
 
+#ifdef GDK_WINDOWING_X11
         // send _NET_REQUEST_FRAME_EXTENTS
         XClientMessageEvent xevent;
         memset(&xevent, 0, sizeof(xevent));
@@ -920,6 +941,7 @@ bool wxTopLevelWindowGTK::Show( bool show )
         XSendEvent(display, DefaultRootWindow(display), false,
             SubstructureNotifyMask | SubstructureRedirectMask,
             (XEvent*)&xevent);
+#endif // GDK_WINDOWING_X11
 
         if (gs_requestFrameExtentsStatus == 0)
         {
@@ -1377,6 +1399,7 @@ void wxTopLevelWindowGTK::SetWindowStyleFlag( long style )
     }
 }
 
+#ifdef GDK_WINDOWING_X11
 /* Get the X Window between child and the root window.
    This should usually be the WM managed XID */
 static Window wxGetTopmostWindowX11(Display *dpy, Window child)
@@ -1396,6 +1419,7 @@ static Window wxGetTopmostWindowX11(Display *dpy, Window child)
 
     return child;
 }
+#endif // GDK_WINDOWING_X11
 
 bool wxTopLevelWindowGTK::SetTransparent(wxByte alpha)
 {
@@ -1405,6 +1429,7 @@ bool wxTopLevelWindowGTK::SetTransparent(wxByte alpha)
     if (window == NULL)
         return false;
 
+#ifdef GDK_WINDOWING_X11
     Display* dpy = GDK_WINDOW_XDISPLAY(window);
     // We need to get the X Window that has the root window as the immediate parent
     // and m_widget->window as a child. This should be the X Window that the WM manages and
@@ -1424,6 +1449,9 @@ bool wxTopLevelWindowGTK::SetTransparent(wxByte alpha)
     }
     XSync(dpy, False);
     return true;
+#else // !GDK_WINDOWING_X11
+    return false;
+#endif // GDK_WINDOWING_X11 / !GDK_WINDOWING_X11
 }
 
 bool wxTopLevelWindowGTK::CanSetTransparent()
index af080625e601223176fb67dfc8974909ae6273bb..abe0d0424c5a47f4646335848defed5b54988096 100644 (file)
 #include "wx/evtloop.h"
 
 #include <gtk/gtk.h>
+#ifdef GDK_WINDOWING_WIN32
+#include <gdk/gdkwin32.h>
+#endif
+#ifdef GDK_WINDOWING_X11
 #include <gdk/gdkx.h>
+#endif
 
 #if wxDEBUG_LEVEL
     #include "wx/gtk/assertdlg_gtk.h"
index 5717ec805fc46be2f2089e544ddb1c7e212fa7f9..d30f6f98feda2a5f1d004985a137f7ff28ae8011 100644 (file)
 #include "wx/gtk/private/event.h"
 using namespace wxGTKImpl;
 
+#ifdef GDK_WINDOWING_X11
 #include <gdk/gdkx.h>
+#else
+typedef guint KeySym;
+#endif
 
 #include <gdk/gdkkeysyms.h>
 #if GTK_CHECK_VERSION(3,0,0)
@@ -728,6 +732,7 @@ wxTranslateGTKKeyEventToWx(wxKeyEvent& event,
                 keysym = (KeySym)gdk_event->string[0];
             }
 
+#ifdef GDK_WINDOWING_X11
             // we want to always get the same key code when the same key is
             // pressed regardless of the state of the modifiers, i.e. on a
             // standard US keyboard pressing '5' or '%' ('5' key with
@@ -746,6 +751,9 @@ wxTranslateGTKKeyEventToWx(wxKeyEvent& event,
             // use the normalized, i.e. lower register, keysym if we've
             // got one
             key_code = keysymNormalized ? keysymNormalized : keysym;
+#else
+            key_code = keysym;
+#endif
 
             // as explained above, we want to have lower register key codes
             // normally but for the letter keys we want to have the upper ones
@@ -3579,11 +3587,13 @@ void wxWindowGTK::WarpPointer( int x, int y )
     GdkDeviceManager* manager = gdk_display_get_device_manager(display);
     gdk_device_warp(gdk_device_manager_get_client_pointer(manager), screen, x, y);
 #else
+#ifdef GDK_WINDOWING_X11
     XWarpPointer(GDK_DISPLAY_XDISPLAY(display),
         None,
         GDK_WINDOW_XID(gdk_screen_get_root_window(screen)),
         0, 0, 0, 0, x, y);
 #endif
+#endif
 }
 
 wxWindowGTK::ScrollDir wxWindowGTK::ScrollDirFromRange(GtkRange *range) const
@@ -4088,7 +4098,7 @@ bool wxWindowGTK::SetBackgroundStyle(wxBackgroundStyle style)
         {
             // Make sure GDK/X11 doesn't refresh the window
             // automatically.
-            gdk_window_set_back_pixmap( window, None, False );
+            gdk_window_set_back_pixmap( window, NULL, FALSE );
             m_needsStyleChange = false;
         }
         else // window not realized yet