From baa4a9670541f4ecd33a3979cab46c63680db079 Mon Sep 17 00:00:00 2001 From: Francesco Montorsi Date: Fri, 12 Dec 2008 23:00:06 +0000 Subject: [PATCH] extend the range of glib versions for which the GTK+ standard options can be passed to wxWidgets program since the _GOptionGroup structure never changed git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57297 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/gtk/utilsgtk.cpp | 54 ++++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/src/gtk/utilsgtk.cpp b/src/gtk/utilsgtk.cpp index d235fe87a3..19f3ffbe09 100644 --- a/src/gtk/utilsgtk.cpp +++ b/src/gtk/utilsgtk.cpp @@ -448,7 +448,9 @@ wxString wxGUIAppTraits::GetDesktopEnvironment() const // see the hack below in wxCmdLineParser::GetUsageString(). // TODO: replace this hack with a g_option_group_get_entries() -// call as soon as such function exists +// call as soon as such function exists; +// see http://bugzilla.gnome.org/show_bug.cgi?id=431021 for the relative +// feature request struct _GOptionGroup { gchar *name; @@ -498,36 +500,40 @@ wxGUIAppTraits::GetStandardCmdLineOptions(wxArrayString& names, wxString usage; #ifdef __WXGTK26__ - // check whether GTK version is greater than 2.6 but also lower than 2.12 - // because, as we use the undocumented _GOptionGroup struct, we don't want - // to run this code with future versions which might change it (2.11 is the - // latest one at the time of this writing) - if (!gtk_check_version(2,6,0) && - gtk_check_version(2,12,0)) + if (!gtk_check_version(2,6,0)) { - usage << _("The following standard GTK+ options are also supported:\n"); + // since GTK>=2.6, we can use the glib_check_version() symbol... - // passing true here means that the function can open the default - // display while parsing (not really used here anyhow) - GOptionGroup *gtkOpts = gtk_get_option_group(true); + // check whether GLib version is greater than 2.6 but also lower than 2.19 + // because, as we use the undocumented _GOptionGroup struct, we don't want + // to run this code with future versions which might change it (2.19 is the + // latest one at the time of this writing) + if (!glib_check_version(2,6,0) && glib_check_version(2,19,0)) + { + usage << _("The following standard GTK+ options are also supported:\n"); - // WARNING: here we access the internals of GOptionGroup: - GOptionEntry *entries = ((_GOptionGroup*)gtkOpts)->entries; - unsigned int n_entries = ((_GOptionGroup*)gtkOpts)->n_entries; - wxArrayString namesOptions, descOptions; + // passing true here means that the function can open the default + // display while parsing (not really used here anyhow) + GOptionGroup *gtkOpts = gtk_get_option_group(true); - for ( size_t n = 0; n < n_entries; n++ ) - { - if ( entries[n].flags & G_OPTION_FLAG_HIDDEN ) - continue; // skip + // WARNING: here we access the internals of GOptionGroup: + GOptionEntry *entries = ((_GOptionGroup*)gtkOpts)->entries; + unsigned int n_entries = ((_GOptionGroup*)gtkOpts)->n_entries; + wxArrayString namesOptions, descOptions; - names.push_back(wxGetNameFromGtkOptionEntry(&entries[n])); + for ( size_t n = 0; n < n_entries; n++ ) + { + if ( entries[n].flags & G_OPTION_FLAG_HIDDEN ) + continue; // skip - const gchar * const entryDesc = entries[n].description; - desc.push_back(wxString(entryDesc)); - } + names.push_back(wxGetNameFromGtkOptionEntry(&entries[n])); - g_option_group_free (gtkOpts); + const gchar * const entryDesc = entries[n].description; + desc.push_back(wxString(entryDesc)); + } + + g_option_group_free (gtkOpts); + } } #else wxUnusedVar(names); -- 2.45.2