WIP - add extractor, generate snippet_data
This commit is contained in:
156
node_modules/sharp/vendor/include/gsf/gsf-impl-utils.h
generated
vendored
Normal file
156
node_modules/sharp/vendor/include/gsf/gsf-impl-utils.h
generated
vendored
Normal file
@ -0,0 +1,156 @@
|
||||
/* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
|
||||
/*
|
||||
* gsf-impl-utils.h:
|
||||
*
|
||||
* Copyright (C) 2002-2006 Jody Goldberg (jody@gnome.org)
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of version 2.1 of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
|
||||
* USA
|
||||
*/
|
||||
|
||||
#ifndef GSF_IMPL_UTILS_H
|
||||
#define GSF_IMPL_UTILS_H
|
||||
|
||||
#include <gsf/gsf.h>
|
||||
#include <glib-object.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/* We need to do this with a version check as this header gets installed.
|
||||
*
|
||||
* DEPRECATED in favour of G_PARAM_STATIC_STRINGS
|
||||
**/
|
||||
#if GLIB_CHECK_VERSION(2,7,0)
|
||||
#define GSF_PARAM_STATIC (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)
|
||||
#else
|
||||
#define GSF_PARAM_STATIC 0
|
||||
#endif
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
#define GSF_CLASS_FULL(name, prefix, base_init, base_finalize, \
|
||||
class_init, class_finalize, instance_init, parent_type, \
|
||||
abstract, interface_decl) \
|
||||
GType \
|
||||
prefix ## _get_type (void) \
|
||||
{ \
|
||||
static GType type = 0; \
|
||||
if (G_UNLIKELY (type == 0)) { \
|
||||
static GTypeInfo const object_info = { \
|
||||
sizeof (name ## Class), \
|
||||
(GBaseInitFunc) base_init, \
|
||||
(GBaseFinalizeFunc) base_finalize, \
|
||||
(GClassInitFunc) class_init, \
|
||||
(GClassFinalizeFunc) class_finalize, \
|
||||
NULL, /* class_data */ \
|
||||
sizeof (name), \
|
||||
0, /* n_preallocs */ \
|
||||
(GInstanceInitFunc) instance_init, \
|
||||
NULL \
|
||||
}; \
|
||||
type = g_type_register_static (parent_type, #name, \
|
||||
&object_info, (GTypeFlags) abstract); \
|
||||
interface_decl \
|
||||
} \
|
||||
return type; \
|
||||
}
|
||||
|
||||
/**
|
||||
* GSF_CLASS:
|
||||
* @name: Name of the class.
|
||||
* @prefix: Symbol prefix designating the namespace to be used for
|
||||
* implementing the class.
|
||||
* @class_init: Initialisation function of type #GClassInitFunc for the class.
|
||||
* @instance_init: Initialisation function of type #GInstanceInitFunc
|
||||
* for an instance of the class.
|
||||
* @parent: Parent class to this class.
|
||||
*
|
||||
* Set up a GSF class.
|
||||
*
|
||||
*/
|
||||
#define GSF_CLASS(name, prefix, class_init, instance_init, parent) \
|
||||
GSF_CLASS_FULL(name, prefix, NULL, NULL, class_init, NULL, \
|
||||
instance_init, parent, 0, {})
|
||||
#define GSF_CLASS_ABSTRACT(name, prefix, class_init, instance_init, parent) \
|
||||
GSF_CLASS_FULL(name, prefix, NULL, NULL, class_init, NULL, \
|
||||
instance_init, parent, G_TYPE_FLAG_ABSTRACT, {})
|
||||
|
||||
#define GSF_INTERFACE_FULL(type, init_func, iface_type) { \
|
||||
static GInterfaceInfo const iface = { \
|
||||
(GInterfaceInitFunc) init_func, NULL, NULL }; \
|
||||
g_type_add_interface_static (type, iface_type, &iface); \
|
||||
}
|
||||
|
||||
#define GSF_INTERFACE(init_func, iface_type) \
|
||||
GSF_INTERFACE_FULL(type, init_func, iface_type)
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
#define GSF_DYNAMIC_CLASS_FULL(name, prefix, base_init, base_finalize, \
|
||||
class_init, class_finalize, instance_init, parent_type, \
|
||||
abstract, interface_decl) \
|
||||
static GType prefix ## _type; \
|
||||
\
|
||||
GType prefix ## _get_type (void); \
|
||||
void prefix ## _register_type (GTypeModule *module); \
|
||||
\
|
||||
GType \
|
||||
prefix ## _get_type (void) \
|
||||
{ \
|
||||
g_return_val_if_fail (prefix ## _type != 0, 0); \
|
||||
return prefix ## _type; \
|
||||
} \
|
||||
void \
|
||||
prefix ## _register_type (GTypeModule *module) \
|
||||
{ \
|
||||
GTypeInfo const type_info = { \
|
||||
sizeof (name ## Class), \
|
||||
(GBaseInitFunc) base_init, \
|
||||
(GBaseFinalizeFunc) base_finalize, \
|
||||
(GClassInitFunc) class_init, \
|
||||
(GClassFinalizeFunc) class_finalize, \
|
||||
NULL, /* class_data */ \
|
||||
sizeof (name), \
|
||||
0, /* n_preallocs */ \
|
||||
(GInstanceInitFunc) instance_init, \
|
||||
NULL \
|
||||
}; \
|
||||
GType type; \
|
||||
\
|
||||
g_return_if_fail (prefix ## _type == 0); \
|
||||
\
|
||||
prefix ## _type = type = g_type_module_register_type (module, \
|
||||
parent_type, #name, &type_info, (GTypeFlags) abstract); \
|
||||
interface_decl \
|
||||
}
|
||||
|
||||
#define GSF_DYNAMIC_CLASS(name, prefix, class_init, instance_init, parent) \
|
||||
GSF_DYNAMIC_CLASS_FULL(name, prefix, NULL, NULL, class_init, NULL, \
|
||||
instance_init, parent, 0, {})
|
||||
#define GSF_DYNAMIC_CLASS_ABSTRACT(name, prefix, class_init, instance_init, parent) \
|
||||
GSF_DYNAMIC_CLASS_FULL(name, prefix, NULL, NULL, class_init, NULL, \
|
||||
instance_init, parent, G_TYPE_FLAG_ABSTRACT, {})
|
||||
|
||||
#define GSF_DYNAMIC_INTERFACE_FULL(type, init_func, iface_type, module) { \
|
||||
GInterfaceInfo const iface = { \
|
||||
(GInterfaceInitFunc) init_func, NULL, NULL }; \
|
||||
g_type_module_add_interface (module, type, iface_type, &iface); \
|
||||
}
|
||||
|
||||
#define GSF_DYNAMIC_INTERFACE(init_func, iface_type, module) \
|
||||
GSF_DYNAMIC_INTERFACE_FULL(type, init_func, iface_type, module)
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* GSF_IMPL_UTILS_H */
|
||||
Reference in New Issue
Block a user