File indexing completed on 2025-01-30 09:32:48
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #ifndef __ATK_REGISTRY_H__
0021 #define __ATK_REGISTRY_H__
0022
0023 #if defined(ATK_DISABLE_SINGLE_INCLUDES) && !defined(__ATK_H_INSIDE__) && !defined(ATK_COMPILATION)
0024 #error "Only <atk/atk.h> can be included directly."
0025 #endif
0026
0027 #include "atkobjectfactory.h"
0028 #include <glib-object.h>
0029
0030 G_BEGIN_DECLS
0031
0032 #define ATK_TYPE_REGISTRY (atk_registry_get_type ())
0033 #define ATK_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ATK_TYPE_REGISTRY, AtkRegistry))
0034 #define ATK_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ATK_TYPE_REGISTRY, AtkRegistryClass))
0035 #define ATK_IS_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ATK_TYPE_REGISTRY))
0036 #define ATK_IS_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ATK_TYPE_REGISTRY))
0037 #define ATK_REGISTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ATK_TYPE_REGISTRY, AtkRegistryClass))
0038
0039 struct _AtkRegistry
0040 {
0041 GObject parent;
0042 GHashTable *factory_type_registry;
0043 GHashTable *factory_singleton_cache;
0044 };
0045
0046 struct _AtkRegistryClass
0047 {
0048 GObjectClass parent_class;
0049 };
0050
0051 typedef struct _AtkRegistry AtkRegistry;
0052 typedef struct _AtkRegistryClass AtkRegistryClass;
0053
0054 ATK_AVAILABLE_IN_ALL
0055 GType atk_registry_get_type (void);
0056 ATK_AVAILABLE_IN_ALL
0057 void atk_registry_set_factory_type (AtkRegistry *registry,
0058 GType type,
0059 GType factory_type);
0060 ATK_AVAILABLE_IN_ALL
0061 GType atk_registry_get_factory_type (AtkRegistry *registry,
0062 GType type);
0063 ATK_AVAILABLE_IN_ALL
0064 AtkObjectFactory *atk_registry_get_factory (AtkRegistry *registry,
0065 GType type);
0066
0067 ATK_AVAILABLE_IN_ALL
0068 AtkRegistry *atk_get_default_registry (void);
0069
0070 G_END_DECLS
0071
0072 #endif