#define GTK_CHECK_VERSION(a, b, c) 0
#endif
+// pango_version_check symbol is quite recent ATM (4/2007)... so we
+// use our own wrapper which implements a smart trick.
+// Use this function as you'd use pango_version_check:
+//
+// if (!wx_pango_version_check(1,18,0))
+// ... call to a function available only in pango >= 1.18 ...
+//
+// and use it only to test for pango versions >= 1.16.0
+extern const gchar *wx_pango_version_check(int major, int minor, int micro);
+
#if wxUSE_UNICODE
#define wxGTK_CONV(s) wxConvUTF8.cWX2MB((s))
#define wxGTK_CONV_ENC(s, enc) wxGTK_CONV((s))
return;
size_t datalen = strlen(data);
- // TODO: as soon as Pango provides a function to check at runtime its
- // version, we can use it to disable the underline hack for
- // Pango >= 1.16 as the "underline of leading/trailing spaces"
- // has been fixed there
- bool needshack = underlined;
+ // in Pango >= 1.16 the "underline of leading/trailing spaces" bug
+ // has been fixed and thus the hack implemented below should never be used
+ static bool pangoOk = !wx_pango_version_check(1, 16, 0);
+
+ bool needshack = underlined && !pangoOk;
char *hackstring = NULL;
if (needshack)
#endif // !wxUSE_UNICODE
+// Returns false if version is certainly greater or equal than major.minor.micro
+// Returns true if version is lower than major.minor.micro OR it cannot be
+// determined and one should not rely on the availability of pango version
+// major.minor.micro, nor the non-availability
+const gchar *wx_pango_version_check (int major, int minor, int micro)
+{
+#ifdef PANGO_VERSION_MAJOR
+ if (!gtk_check_version (2,11,0))
+ {
+ // GTK+ 2.11 requires Pango >= 1.15.3 and pango_version_check
+ // was added in Pango 1.15.2 thus we know for sure the pango lib we're
+ // using has the pango_version_check function:
+ return pango_version_check (major, minor, micro);
+ }
+
+ return "can't check";
+#else // !PANGO_VERSION_MAJOR
+ return "too old headers";
+#endif
+}
+
+
// ----------------------------------------------------------------------------
// subprocess routines
// ----------------------------------------------------------------------------