source: trunk/third/glib2/gobject/gtypeplugin.h @ 20721

Revision 20721, 3.0 KB checked in by ghudson, 20 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r20720, which included commits to RCS files with non-trunk default branches.
Line 
1/* GObject - GLib Type, Object, Parameter and Signal Library
2 * Copyright (C) 2000 Red Hat, Inc.
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General
15 * Public License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
17 * Boston, MA 02111-1307, USA.
18 */
19#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION)
20#error "Only <glib-object.h> can be included directly."
21#endif
22
23#ifndef __G_TYPE_PLUGIN_H__
24#define __G_TYPE_PLUGIN_H__
25
26#include        <gobject/gtype.h>
27
28G_BEGIN_DECLS
29
30/* --- type macros --- */
31#define G_TYPE_TYPE_PLUGIN              (g_type_plugin_get_type ())
32#define G_TYPE_PLUGIN(inst)             (G_TYPE_CHECK_INSTANCE_CAST ((inst), G_TYPE_TYPE_PLUGIN, GTypePlugin))
33#define G_TYPE_PLUGIN_CLASS(vtable)     (G_TYPE_CHECK_CLASS_CAST ((vtable), G_TYPE_TYPE_PLUGIN, GTypePluginClass))
34#define G_IS_TYPE_PLUGIN(inst)          (G_TYPE_CHECK_INSTANCE_TYPE ((inst), G_TYPE_TYPE_PLUGIN))
35#define G_IS_TYPE_PLUGIN_CLASS(vtable)  (G_TYPE_CHECK_CLASS_TYPE ((vtable), G_TYPE_TYPE_PLUGIN))
36#define G_TYPE_PLUGIN_GET_CLASS(inst)   (G_TYPE_INSTANCE_GET_INTERFACE ((inst), G_TYPE_TYPE_PLUGIN, GTypePluginClass))
37
38
39/* --- typedefs & structures --- */
40typedef struct _GTypePluginClass                   GTypePluginClass;
41typedef void  (*GTypePluginUse)                   (GTypePlugin     *plugin);
42typedef void  (*GTypePluginUnuse)                 (GTypePlugin     *plugin);
43typedef void  (*GTypePluginCompleteTypeInfo)      (GTypePlugin     *plugin,
44                                                   GType            g_type,
45                                                   GTypeInfo       *info,
46                                                   GTypeValueTable *value_table);
47typedef void  (*GTypePluginCompleteInterfaceInfo) (GTypePlugin     *plugin,
48                                                   GType            instance_type,
49                                                   GType            interface_type,
50                                                   GInterfaceInfo  *info);
51struct _GTypePluginClass
52{
53  /*< private >*/
54  GTypeInterface                   base_iface;
55 
56  /*< public >*/
57  GTypePluginUse                   use_plugin;
58  GTypePluginUnuse                 unuse_plugin;
59  GTypePluginCompleteTypeInfo      complete_type_info;
60  GTypePluginCompleteInterfaceInfo complete_interface_info;
61};
62
63
64/* --- prototypes --- */
65GType   g_type_plugin_get_type                  (void)  G_GNUC_CONST;
66void    g_type_plugin_use                       (GTypePlugin     *plugin);
67void    g_type_plugin_unuse                     (GTypePlugin     *plugin);
68void    g_type_plugin_complete_type_info        (GTypePlugin     *plugin,
69                                                 GType            g_type,
70                                                 GTypeInfo       *info,
71                                                 GTypeValueTable *value_table);
72void    g_type_plugin_complete_interface_info   (GTypePlugin     *plugin,
73                                                 GType            instance_type,
74                                                 GType            interface_type,
75                                                 GInterfaceInfo  *info);
76
77G_END_DECLS
78
79#endif /* __G_TYPE_PLUGIN_H__ */
Note: See TracBrowser for help on using the repository browser.