forked from AuroraMiddleware/gtk
Move version-related functions to gtkversion.c
This is just an internal cleanup, to make gtkmain.c a bit less messy.
This commit is contained in:
parent
ff9ca2b68d
commit
d2faa38eed
143
gtk/gtkmain.c
143
gtk/gtkmain.c
@ -125,7 +125,6 @@
|
|||||||
#include "gtkrecentmanager.h"
|
#include "gtkrecentmanager.h"
|
||||||
#include "gtksettingsprivate.h"
|
#include "gtksettingsprivate.h"
|
||||||
#include "gtktooltipprivate.h"
|
#include "gtktooltipprivate.h"
|
||||||
#include "gtkversion.h"
|
|
||||||
#include "gtkwidgetprivate.h"
|
#include "gtkwidgetprivate.h"
|
||||||
#include "gtkwindowprivate.h"
|
#include "gtkwindowprivate.h"
|
||||||
#include "gtkwindowgroup.h"
|
#include "gtkwindowgroup.h"
|
||||||
@ -186,148 +185,6 @@ static const GdkDebugKey gtk_debug_keys[] = {
|
|||||||
};
|
};
|
||||||
#endif /* G_ENABLE_DEBUG */
|
#endif /* G_ENABLE_DEBUG */
|
||||||
|
|
||||||
/**
|
|
||||||
* gtk_get_major_version:
|
|
||||||
*
|
|
||||||
* Returns the major version number of the GTK library.
|
|
||||||
* (e.g. in GTK version 3.1.5 this is 3.)
|
|
||||||
*
|
|
||||||
* This function is in the library, so it represents the GTK library
|
|
||||||
* your code is running against. Contrast with the #GTK_MAJOR_VERSION
|
|
||||||
* macro, which represents the major version of the GTK headers you
|
|
||||||
* have included when compiling your code.
|
|
||||||
*
|
|
||||||
* Returns: the major version number of the GTK library
|
|
||||||
*/
|
|
||||||
guint
|
|
||||||
gtk_get_major_version (void)
|
|
||||||
{
|
|
||||||
return GTK_MAJOR_VERSION;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* gtk_get_minor_version:
|
|
||||||
*
|
|
||||||
* Returns the minor version number of the GTK library.
|
|
||||||
* (e.g. in GTK version 3.1.5 this is 1.)
|
|
||||||
*
|
|
||||||
* This function is in the library, so it represents the GTK library
|
|
||||||
* your code is are running against. Contrast with the
|
|
||||||
* #GTK_MINOR_VERSION macro, which represents the minor version of the
|
|
||||||
* GTK headers you have included when compiling your code.
|
|
||||||
*
|
|
||||||
* Returns: the minor version number of the GTK library
|
|
||||||
*/
|
|
||||||
guint
|
|
||||||
gtk_get_minor_version (void)
|
|
||||||
{
|
|
||||||
return GTK_MINOR_VERSION;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* gtk_get_micro_version:
|
|
||||||
*
|
|
||||||
* Returns the micro version number of the GTK library.
|
|
||||||
* (e.g. in GTK version 3.1.5 this is 5.)
|
|
||||||
*
|
|
||||||
* This function is in the library, so it represents the GTK library
|
|
||||||
* your code is are running against. Contrast with the
|
|
||||||
* #GTK_MICRO_VERSION macro, which represents the micro version of the
|
|
||||||
* GTK headers you have included when compiling your code.
|
|
||||||
*
|
|
||||||
* Returns: the micro version number of the GTK library
|
|
||||||
*/
|
|
||||||
guint
|
|
||||||
gtk_get_micro_version (void)
|
|
||||||
{
|
|
||||||
return GTK_MICRO_VERSION;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* gtk_get_binary_age:
|
|
||||||
*
|
|
||||||
* Returns the binary age as passed to `libtool`
|
|
||||||
* when building the GTK library the process is running against.
|
|
||||||
* If `libtool` means nothing to you, don't
|
|
||||||
* worry about it.
|
|
||||||
*
|
|
||||||
* Returns: the binary age of the GTK library
|
|
||||||
*/
|
|
||||||
guint
|
|
||||||
gtk_get_binary_age (void)
|
|
||||||
{
|
|
||||||
return GTK_BINARY_AGE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* gtk_get_interface_age:
|
|
||||||
*
|
|
||||||
* Returns the interface age as passed to `libtool`
|
|
||||||
* when building the GTK library the process is running against.
|
|
||||||
* If `libtool` means nothing to you, don't
|
|
||||||
* worry about it.
|
|
||||||
*
|
|
||||||
* Returns: the interface age of the GTK library
|
|
||||||
*/
|
|
||||||
guint
|
|
||||||
gtk_get_interface_age (void)
|
|
||||||
{
|
|
||||||
return GTK_INTERFACE_AGE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* gtk_check_version:
|
|
||||||
* @required_major: the required major version
|
|
||||||
* @required_minor: the required minor version
|
|
||||||
* @required_micro: the required micro version
|
|
||||||
*
|
|
||||||
* Checks that the GTK library in use is compatible with the
|
|
||||||
* given version. Generally you would pass in the constants
|
|
||||||
* #GTK_MAJOR_VERSION, #GTK_MINOR_VERSION, #GTK_MICRO_VERSION
|
|
||||||
* as the three arguments to this function; that produces
|
|
||||||
* a check that the library in use is compatible with
|
|
||||||
* the version of GTK the application or module was compiled
|
|
||||||
* against.
|
|
||||||
*
|
|
||||||
* Compatibility is defined by two things: first the version
|
|
||||||
* of the running library is newer than the version
|
|
||||||
* @required_major.required_minor.@required_micro. Second
|
|
||||||
* the running library must be binary compatible with the
|
|
||||||
* version @required_major.required_minor.@required_micro
|
|
||||||
* (same major version.)
|
|
||||||
*
|
|
||||||
* This function is primarily for GTK modules; the module
|
|
||||||
* can call this function to check that it wasn’t loaded
|
|
||||||
* into an incompatible version of GTK. However, such a
|
|
||||||
* check isn’t completely reliable, since the module may be
|
|
||||||
* linked against an old version of GTK and calling the
|
|
||||||
* old version of gtk_check_version(), but still get loaded
|
|
||||||
* into an application using a newer version of GTK.
|
|
||||||
*
|
|
||||||
* Returns: (nullable): %NULL if the GTK library is compatible with the
|
|
||||||
* given version, or a string describing the version mismatch.
|
|
||||||
* The returned string is owned by GTK and should not be modified
|
|
||||||
* or freed.
|
|
||||||
*/
|
|
||||||
const char *
|
|
||||||
gtk_check_version (guint required_major,
|
|
||||||
guint required_minor,
|
|
||||||
guint required_micro)
|
|
||||||
{
|
|
||||||
int gtk_effective_micro = 100 * GTK_MINOR_VERSION + GTK_MICRO_VERSION;
|
|
||||||
int required_effective_micro = 100 * required_minor + required_micro;
|
|
||||||
|
|
||||||
if (required_major > GTK_MAJOR_VERSION)
|
|
||||||
return "GTK version too old (major mismatch)";
|
|
||||||
if (required_major < GTK_MAJOR_VERSION)
|
|
||||||
return "GTK version too new (major mismatch)";
|
|
||||||
if (required_effective_micro < gtk_effective_micro - GTK_BINARY_AGE)
|
|
||||||
return "GTK version too new (micro mismatch)";
|
|
||||||
if (required_effective_micro > gtk_effective_micro)
|
|
||||||
return "GTK version too old (micro mismatch)";
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* This checks to see if the process is running suid or sgid
|
/* This checks to see if the process is running suid or sgid
|
||||||
* at the current time. If so, we don’t allow GTK to be initialized.
|
* at the current time. If so, we don’t allow GTK to be initialized.
|
||||||
* This is meant to be a mild check - we only error out if we
|
* This is meant to be a mild check - we only error out if we
|
||||||
|
@ -50,25 +50,6 @@ G_BEGIN_DECLS
|
|||||||
*/
|
*/
|
||||||
#define GTK_PRIORITY_RESIZE (G_PRIORITY_HIGH_IDLE + 10)
|
#define GTK_PRIORITY_RESIZE (G_PRIORITY_HIGH_IDLE + 10)
|
||||||
|
|
||||||
/* GTK+ version
|
|
||||||
*/
|
|
||||||
GDK_AVAILABLE_IN_ALL
|
|
||||||
guint gtk_get_major_version (void) G_GNUC_CONST;
|
|
||||||
GDK_AVAILABLE_IN_ALL
|
|
||||||
guint gtk_get_minor_version (void) G_GNUC_CONST;
|
|
||||||
GDK_AVAILABLE_IN_ALL
|
|
||||||
guint gtk_get_micro_version (void) G_GNUC_CONST;
|
|
||||||
GDK_AVAILABLE_IN_ALL
|
|
||||||
guint gtk_get_binary_age (void) G_GNUC_CONST;
|
|
||||||
GDK_AVAILABLE_IN_ALL
|
|
||||||
guint gtk_get_interface_age (void) G_GNUC_CONST;
|
|
||||||
|
|
||||||
GDK_AVAILABLE_IN_ALL
|
|
||||||
const char * gtk_check_version (guint required_major,
|
|
||||||
guint required_minor,
|
|
||||||
guint required_micro);
|
|
||||||
|
|
||||||
|
|
||||||
/* Initialization, exit, mainloop and miscellaneous routines
|
/* Initialization, exit, mainloop and miscellaneous routines
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -101,11 +82,11 @@ gboolean gtk_init_check_abi_check (int num_checks,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
GDK_AVAILABLE_IN_ALL
|
GDK_AVAILABLE_IN_ALL
|
||||||
void gtk_disable_setlocale (void);
|
void gtk_disable_setlocale (void);
|
||||||
GDK_AVAILABLE_IN_ALL
|
GDK_AVAILABLE_IN_ALL
|
||||||
PangoLanguage *gtk_get_default_language (void);
|
PangoLanguage * gtk_get_default_language (void);
|
||||||
GDK_AVAILABLE_IN_ALL
|
GDK_AVAILABLE_IN_ALL
|
||||||
GtkTextDirection gtk_get_locale_direction (void);
|
GtkTextDirection gtk_get_locale_direction (void);
|
||||||
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
179
gtk/gtkversion.c
Normal file
179
gtk/gtkversion.c
Normal file
@ -0,0 +1,179 @@
|
|||||||
|
/* GTK - The GIMP Toolkit
|
||||||
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
|
||||||
|
* file for a list of people on the GTK+ Team. See the ChangeLog
|
||||||
|
* files for a list of changes. These files are distributed with
|
||||||
|
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
|
#include "gtkversion.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SECTION:gtkfeatures
|
||||||
|
* @Short_description: Variables and functions to check the GTK version
|
||||||
|
* @Title: Version Information
|
||||||
|
*
|
||||||
|
* GTK provides version information, primarily useful in configure checks
|
||||||
|
* for builds that have a configure script. Applications will not typically
|
||||||
|
* use the features described here.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_get_major_version:
|
||||||
|
*
|
||||||
|
* Returns the major version number of the GTK library.
|
||||||
|
* (e.g. in GTK version 3.1.5 this is 3.)
|
||||||
|
*
|
||||||
|
* This function is in the library, so it represents the GTK library
|
||||||
|
* your code is running against. Contrast with the #GTK_MAJOR_VERSION
|
||||||
|
* macro, which represents the major version of the GTK headers you
|
||||||
|
* have included when compiling your code.
|
||||||
|
*
|
||||||
|
* Returns: the major version number of the GTK library
|
||||||
|
*/
|
||||||
|
guint
|
||||||
|
gtk_get_major_version (void)
|
||||||
|
{
|
||||||
|
return GTK_MAJOR_VERSION;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_get_minor_version:
|
||||||
|
*
|
||||||
|
* Returns the minor version number of the GTK library.
|
||||||
|
* (e.g. in GTK version 3.1.5 this is 1.)
|
||||||
|
*
|
||||||
|
* This function is in the library, so it represents the GTK library
|
||||||
|
* your code is are running against. Contrast with the
|
||||||
|
* #GTK_MINOR_VERSION macro, which represents the minor version of the
|
||||||
|
* GTK headers you have included when compiling your code.
|
||||||
|
*
|
||||||
|
* Returns: the minor version number of the GTK library
|
||||||
|
*/
|
||||||
|
guint
|
||||||
|
gtk_get_minor_version (void)
|
||||||
|
{
|
||||||
|
return GTK_MINOR_VERSION;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_get_micro_version:
|
||||||
|
*
|
||||||
|
* Returns the micro version number of the GTK library.
|
||||||
|
* (e.g. in GTK version 3.1.5 this is 5.)
|
||||||
|
*
|
||||||
|
* This function is in the library, so it represents the GTK library
|
||||||
|
* your code is are running against. Contrast with the
|
||||||
|
* #GTK_MICRO_VERSION macro, which represents the micro version of the
|
||||||
|
* GTK headers you have included when compiling your code.
|
||||||
|
*
|
||||||
|
* Returns: the micro version number of the GTK library
|
||||||
|
*/
|
||||||
|
guint
|
||||||
|
gtk_get_micro_version (void)
|
||||||
|
{
|
||||||
|
return GTK_MICRO_VERSION;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_get_binary_age:
|
||||||
|
*
|
||||||
|
* Returns the binary age as passed to `libtool`
|
||||||
|
* when building the GTK library the process is running against.
|
||||||
|
* If `libtool` means nothing to you, don't
|
||||||
|
* worry about it.
|
||||||
|
*
|
||||||
|
* Returns: the binary age of the GTK library
|
||||||
|
*/
|
||||||
|
guint
|
||||||
|
gtk_get_binary_age (void)
|
||||||
|
{
|
||||||
|
return GTK_BINARY_AGE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_get_interface_age:
|
||||||
|
*
|
||||||
|
* Returns the interface age as passed to `libtool`
|
||||||
|
* when building the GTK library the process is running against.
|
||||||
|
* If `libtool` means nothing to you, don't
|
||||||
|
* worry about it.
|
||||||
|
*
|
||||||
|
* Returns: the interface age of the GTK library
|
||||||
|
*/
|
||||||
|
guint
|
||||||
|
gtk_get_interface_age (void)
|
||||||
|
{
|
||||||
|
return GTK_INTERFACE_AGE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_check_version:
|
||||||
|
* @required_major: the required major version
|
||||||
|
* @required_minor: the required minor version
|
||||||
|
* @required_micro: the required micro version
|
||||||
|
*
|
||||||
|
* Checks that the GTK library in use is compatible with the
|
||||||
|
* given version. Generally you would pass in the constants
|
||||||
|
* #GTK_MAJOR_VERSION, #GTK_MINOR_VERSION, #GTK_MICRO_VERSION
|
||||||
|
* as the three arguments to this function; that produces
|
||||||
|
* a check that the library in use is compatible with
|
||||||
|
* the version of GTK the application or module was compiled
|
||||||
|
* against.
|
||||||
|
*
|
||||||
|
* Compatibility is defined by two things: first the version
|
||||||
|
* of the running library is newer than the version
|
||||||
|
* @required_major.required_minor.@required_micro. Second
|
||||||
|
* the running library must be binary compatible with the
|
||||||
|
* version @required_major.required_minor.@required_micro
|
||||||
|
* (same major version.)
|
||||||
|
*
|
||||||
|
* This function is primarily for GTK modules; the module
|
||||||
|
* can call this function to check that it wasn’t loaded
|
||||||
|
* into an incompatible version of GTK. However, such a
|
||||||
|
* check isn’t completely reliable, since the module may be
|
||||||
|
* linked against an old version of GTK and calling the
|
||||||
|
* old version of gtk_check_version(), but still get loaded
|
||||||
|
* into an application using a newer version of GTK.
|
||||||
|
*
|
||||||
|
* Returns: (nullable): %NULL if the GTK library is compatible with the
|
||||||
|
* given version, or a string describing the version mismatch.
|
||||||
|
* The returned string is owned by GTK and should not be modified
|
||||||
|
* or freed.
|
||||||
|
*/
|
||||||
|
const char *
|
||||||
|
gtk_check_version (guint required_major,
|
||||||
|
guint required_minor,
|
||||||
|
guint required_micro)
|
||||||
|
{
|
||||||
|
int gtk_effective_micro = 100 * GTK_MINOR_VERSION + GTK_MICRO_VERSION;
|
||||||
|
int required_effective_micro = 100 * required_minor + required_micro;
|
||||||
|
|
||||||
|
if (required_major > GTK_MAJOR_VERSION)
|
||||||
|
return "GTK version too old (major mismatch)";
|
||||||
|
if (required_major < GTK_MAJOR_VERSION)
|
||||||
|
return "GTK version too new (major mismatch)";
|
||||||
|
if (required_effective_micro < gtk_effective_micro - GTK_BINARY_AGE)
|
||||||
|
return "GTK version too new (micro mismatch)";
|
||||||
|
if (required_effective_micro > gtk_effective_micro)
|
||||||
|
return "GTK version too old (micro mismatch)";
|
||||||
|
return NULL;
|
||||||
|
}
|
@ -29,15 +29,9 @@
|
|||||||
#ifndef __GTK_VERSION_H__
|
#ifndef __GTK_VERSION_H__
|
||||||
#define __GTK_VERSION_H__
|
#define __GTK_VERSION_H__
|
||||||
|
|
||||||
/**
|
#include <gdk/gdk.h>
|
||||||
* SECTION:gtkfeatures
|
|
||||||
* @Short_description: Variables and functions to check the GTK version
|
G_BEGIN_DECLS
|
||||||
* @Title: Version Information
|
|
||||||
*
|
|
||||||
* GTK provides version information, primarily useful in configure checks
|
|
||||||
* for builds that have a configure script. Applications will not typically
|
|
||||||
* use the features described here.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GTK_MAJOR_VERSION:
|
* GTK_MAJOR_VERSION:
|
||||||
@ -101,4 +95,22 @@
|
|||||||
(GTK_MAJOR_VERSION == (major) && GTK_MINOR_VERSION == (minor) && \
|
(GTK_MAJOR_VERSION == (major) && GTK_MINOR_VERSION == (minor) && \
|
||||||
GTK_MICRO_VERSION >= (micro)))
|
GTK_MICRO_VERSION >= (micro)))
|
||||||
|
|
||||||
|
GDK_AVAILABLE_IN_ALL
|
||||||
|
guint gtk_get_major_version (void) G_GNUC_CONST;
|
||||||
|
GDK_AVAILABLE_IN_ALL
|
||||||
|
guint gtk_get_minor_version (void) G_GNUC_CONST;
|
||||||
|
GDK_AVAILABLE_IN_ALL
|
||||||
|
guint gtk_get_micro_version (void) G_GNUC_CONST;
|
||||||
|
GDK_AVAILABLE_IN_ALL
|
||||||
|
guint gtk_get_binary_age (void) G_GNUC_CONST;
|
||||||
|
GDK_AVAILABLE_IN_ALL
|
||||||
|
guint gtk_get_interface_age (void) G_GNUC_CONST;
|
||||||
|
|
||||||
|
GDK_AVAILABLE_IN_ALL
|
||||||
|
const char * gtk_check_version (guint required_major,
|
||||||
|
guint required_minor,
|
||||||
|
guint required_micro);
|
||||||
|
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __GTK_VERSION_H__ */
|
#endif /* __GTK_VERSION_H__ */
|
||||||
|
@ -421,6 +421,7 @@ gtk_public_sources = files([
|
|||||||
'gtktreestore.c',
|
'gtktreestore.c',
|
||||||
'gtktreeview.c',
|
'gtktreeview.c',
|
||||||
'gtktreeviewcolumn.c',
|
'gtktreeviewcolumn.c',
|
||||||
|
'gtkversion.c',
|
||||||
'gtkvideo.c',
|
'gtkvideo.c',
|
||||||
'gtkviewport.c',
|
'gtkviewport.c',
|
||||||
'gtkvolumebutton.c',
|
'gtkvolumebutton.c',
|
||||||
|
Loading…
Reference in New Issue
Block a user