gtypeplugin.h

Go to the documentation of this file.
00001 /* GObject - GLib Type, Object, Parameter and Signal Library
00002  * Copyright (C) 2000 Red Hat, Inc.
00003  * Portions copyright (c) 2006 Nokia Corporation.  All rights reserved.
00004  *
00005  * This library is free software; you can redistribute it and/or
00006  * modify it under the terms of the GNU Lesser General Public
00007  * License as published by the Free Software Foundation; either
00008  * version 2 of the License, or (at your option) any later version.
00009  *
00010  * This library is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013  * Lesser General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU Lesser General
00016  * Public License along with this library; if not, write to the
00017  * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
00018  * Boston, MA 02111-1307, USA.
00019  */
00020 #if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION)
00021 #error "Only <glib-object.h> can be included directly."
00022 #endif
00023 
00024 #ifndef __G_TYPE_PLUGIN_H__
00025 #define __G_TYPE_PLUGIN_H__
00026 
00027 #include <_ansi.h>
00028 #include        <gobject/gtype.h>
00029 
00030 G_BEGIN_DECLS
00031 
00032 /* --- type macros --- */
00033 #define G_TYPE_TYPE_PLUGIN              (g_type_plugin_get_type ())
00034 #define G_TYPE_PLUGIN(inst)             (G_TYPE_CHECK_INSTANCE_CAST ((inst), G_TYPE_TYPE_PLUGIN, GTypePlugin))
00035 #define G_TYPE_PLUGIN_CLASS(vtable)     (G_TYPE_CHECK_CLASS_CAST ((vtable), G_TYPE_TYPE_PLUGIN, GTypePluginClass))
00036 #define G_IS_TYPE_PLUGIN(inst)          (G_TYPE_CHECK_INSTANCE_TYPE ((inst), G_TYPE_TYPE_PLUGIN))
00037 #define G_IS_TYPE_PLUGIN_CLASS(vtable)  (G_TYPE_CHECK_CLASS_TYPE ((vtable), G_TYPE_TYPE_PLUGIN))
00038 #define G_TYPE_PLUGIN_GET_CLASS(inst)   (G_TYPE_INSTANCE_GET_INTERFACE ((inst), G_TYPE_TYPE_PLUGIN, GTypePluginClass))
00039 
00040 
00041 /* --- typedefs & structures --- */
00042 typedef struct _GTypePluginClass                   GTypePluginClass;
00043 typedef void  (*GTypePluginUse)                   (GTypePlugin     *plugin);
00044 typedef void  (*GTypePluginUnuse)                 (GTypePlugin     *plugin);
00045 typedef void  (*GTypePluginCompleteTypeInfo)      (GTypePlugin     *plugin,
00046                                                    GType            g_type,
00047                                                    GTypeInfo       *info,
00048                                                    GTypeValueTable *value_table);
00049 typedef void  (*GTypePluginCompleteInterfaceInfo) (GTypePlugin     *plugin,
00050                                                    GType            instance_type,
00051                                                    GType            interface_type,
00052                                                    GInterfaceInfo  *info);
00053 struct _GTypePluginClass
00054 {
00055   /*< private >*/
00056   GTypeInterface                   base_iface;
00057   
00058   /*< public >*/
00059   GTypePluginUse                   use_plugin;
00060   GTypePluginUnuse                 unuse_plugin;
00061   GTypePluginCompleteTypeInfo      complete_type_info;
00062   GTypePluginCompleteInterfaceInfo complete_interface_info;
00063 };
00064 
00065 
00066 /* --- prototypes --- */
00067 GType   g_type_plugin_get_type                  (void)  G_GNUC_CONST;
00068 IMPORT_C void   g_type_plugin_use                       (GTypePlugin     *plugin);
00069 IMPORT_C void   g_type_plugin_unuse                     (GTypePlugin     *plugin);
00070 IMPORT_C void   g_type_plugin_complete_type_info        (GTypePlugin     *plugin,
00071                                                  GType            g_type,
00072                                                  GTypeInfo       *info,
00073                                                  GTypeValueTable *value_table);
00074 IMPORT_C void   g_type_plugin_complete_interface_info   (GTypePlugin     *plugin,
00075                                                  GType            instance_type,
00076                                                  GType            interface_type,
00077                                                  GInterfaceInfo  *info);
00078 
00079 G_END_DECLS
00080 
00081 #endif /* __G_TYPE_PLUGIN_H__ */

Copyright © Nokia Corporation 2001-2008
Back to top