mirror of
				https://gitlab.gnome.org/GNOME/glib.git
				synced 2025-11-04 10:08:56 +01:00 
			
		
		
		
	Sat Mar 31 23:55:58 2001 Tim Janik <timj@gtk.org> * gtype.h: * gparamspecs.[hc]: applied patch from owen to implement GParamSpecUnichar. Fri Mar 30 07:34:02 2001 Tim Janik <timj@gtk.org> * gtype.c (type_iface_retrive_holder_info_Wm): * gtypeplugin.c (g_type_plugin_complete_interface_info): * gtypemodule.c (g_type_module_complete_interface_info): change order of instance_type and interface_type so they match the g_type_add_interface_*() API. * gsignal.c (g_signal_emit_valist): always assign C return value location, people depending on unaltered return values after emissions that had no handlers to run need to use g_signal_emitv(). * gtype.[hc] (g_type_query): new function to allow querying of class and object size (semantics like g_signal_query()). currently the implementation is better held conservative so as to only support types that are classed and static.
		
			
				
	
	
		
			101 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* GObject - GLib Type, Object, Parameter and Signal Library
 | 
						|
 * Copyright (C) 2000 Red Hat, Inc.
 | 
						|
 *
 | 
						|
 * 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, write to the
 | 
						|
 * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 | 
						|
 * Boston, MA 02111-1307, USA.
 | 
						|
 */
 | 
						|
#include	"gtypeplugin.h"
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/* --- functions --- */
 | 
						|
GType
 | 
						|
g_type_plugin_get_type (void)
 | 
						|
{
 | 
						|
  static GType type_plugin_type = 0;
 | 
						|
  
 | 
						|
  if (!type_plugin_type)
 | 
						|
    {
 | 
						|
      static const GTypeInfo type_plugin_info = {
 | 
						|
	sizeof (GTypePluginClass),
 | 
						|
	NULL,           /* base_init */
 | 
						|
	NULL,           /* base_finalize */
 | 
						|
      };
 | 
						|
      
 | 
						|
      type_plugin_type = g_type_register_static (G_TYPE_INTERFACE, "GTypePlugin", &type_plugin_info, 0);
 | 
						|
    }
 | 
						|
  
 | 
						|
  return type_plugin_type;
 | 
						|
}
 | 
						|
 | 
						|
void
 | 
						|
g_type_plugin_use (GTypePlugin *plugin)
 | 
						|
{
 | 
						|
  GTypePluginClass *iface;
 | 
						|
  
 | 
						|
  g_return_if_fail (G_IS_TYPE_PLUGIN (plugin));
 | 
						|
  
 | 
						|
  iface = G_TYPE_PLUGIN_GET_CLASS (plugin);
 | 
						|
  iface->use_plugin (plugin);
 | 
						|
}
 | 
						|
 | 
						|
void
 | 
						|
g_type_plugin_unuse (GTypePlugin *plugin)
 | 
						|
{
 | 
						|
  GTypePluginClass *iface;
 | 
						|
  
 | 
						|
  g_return_if_fail (G_IS_TYPE_PLUGIN (plugin));
 | 
						|
  
 | 
						|
  iface = G_TYPE_PLUGIN_GET_CLASS (plugin);
 | 
						|
  iface->unuse_plugin (plugin);
 | 
						|
}
 | 
						|
 | 
						|
void
 | 
						|
g_type_plugin_complete_type_info (GTypePlugin     *plugin,
 | 
						|
				  GType            g_type,
 | 
						|
				  GTypeInfo       *info,
 | 
						|
				  GTypeValueTable *value_table)
 | 
						|
{
 | 
						|
  GTypePluginClass *iface;
 | 
						|
  
 | 
						|
  g_return_if_fail (G_IS_TYPE_PLUGIN (plugin));
 | 
						|
  g_return_if_fail (info != NULL);
 | 
						|
  g_return_if_fail (value_table != NULL);
 | 
						|
  
 | 
						|
  iface = G_TYPE_PLUGIN_GET_CLASS (plugin);
 | 
						|
  iface->complete_type_info (plugin,
 | 
						|
			     g_type,
 | 
						|
			     info,
 | 
						|
			     value_table);
 | 
						|
}
 | 
						|
 | 
						|
void
 | 
						|
g_type_plugin_complete_interface_info (GTypePlugin    *plugin,
 | 
						|
				       GType           instance_type,
 | 
						|
				       GType           interface_type,
 | 
						|
				       GInterfaceInfo *info)
 | 
						|
{
 | 
						|
  GTypePluginClass *iface;
 | 
						|
  
 | 
						|
  g_return_if_fail (G_IS_TYPE_PLUGIN (plugin));
 | 
						|
  g_return_if_fail (info != NULL);
 | 
						|
  
 | 
						|
  iface = G_TYPE_PLUGIN_GET_CLASS (plugin);
 | 
						|
  iface->complete_interface_info (plugin,
 | 
						|
				  instance_type,
 | 
						|
				  interface_type,
 | 
						|
				  info);
 | 
						|
}
 |