diff options
-rw-r--r-- | gdk/quartz/gdkglobals-quartz.c | 17 | ||||
-rw-r--r-- | gdk/quartz/gdkquartz.h | 15 |
2 files changed, 32 insertions, 0 deletions
diff --git a/gdk/quartz/gdkglobals-quartz.c b/gdk/quartz/gdkglobals-quartz.c index 6dd43dc44b..edfd58736a 100644 --- a/gdk/quartz/gdkglobals-quartz.c +++ b/gdk/quartz/gdkglobals-quartz.c @@ -21,7 +21,24 @@ #include "config.h" #include "gdktypes.h" #include "gdkprivate.h" +#include "gdkquartz.h" GdkDisplay *_gdk_display = NULL; GdkScreen *_gdk_screen = NULL; GdkWindow *_gdk_root = NULL; + +GdkOSXVersion +gdk_quartz_osx_version (void) +{ + gint minor; + OSErr err = Gestalt(gestaltSystemVersionMinor, &minor); + g_return_val_if_fail(err == noErr, GDK_OSX_UNSUPPORTED); + + if (minor < GDK_OSX_MIN) + return GDK_OSX_UNSUPPORTED; + else if (minor > GDK_OSX_CURRENT) + return GDK_OSX_NEW; + else + return minor; + +} diff --git a/gdk/quartz/gdkquartz.h b/gdk/quartz/gdkquartz.h index ea00837393..d85c3e5047 100644 --- a/gdk/quartz/gdkquartz.h +++ b/gdk/quartz/gdkquartz.h @@ -1,3 +1,4 @@ + /* gdkquartz.h * * Copyright (C) 2005-2007 Imendio AB @@ -41,6 +42,20 @@ typedef unsigned int NSUInteger; typedef float CGFloat; #endif +typedef enum +{ + GDK_OSX_UNSUPPORTED = 0, + GDK_OSX_MIN = 4, + GDK_OSX_TIGER = 4, + GDK_OSX_LEOPARD = 5, + GDK_OSX_SNOW_LEOPARD = 6, + GDK_OSX_LION = 7, + GDK_OSX_CURRENT = 7, + GDK_OSX_NEW = 99 +} GdkOSXVersion; + +GdkOSXVersion gdk_quartz_osx_version (void); + G_END_DECLS #define __GDKQUARTZ_H_INSIDE__ |