diff options
Diffstat (limited to 'src/plugins/dt.c')
-rw-r--r-- | src/plugins/dt.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/plugins/dt.c b/src/plugins/dt.c index 69bd5df..c476dde 100644 --- a/src/plugins/dt.c +++ b/src/plugins/dt.c @@ -29,6 +29,9 @@ #include <string.h> +#include "../plugins/pglist.h" + + /* ------------------------- MODULE DE GESTION DES NOUVEAUX ------------------------- */ @@ -482,3 +485,34 @@ GType build_dynamic_type(GType parent, const char *name, GClassInitFunc cinit, g return result; } + + +/****************************************************************************** +* * +* Paramètres : type = type d'instance à créer. * +* * +* Description : Crée un objet à partir d'un type, dynamique ou classique. * +* * +* Retour : Instance d'objet mise en place ou NULL en cas d'erreur. * +* * +* Remarques : - * +* * +******************************************************************************/ + +gpointer create_object_from_type(GType type) +{ + GObject *result; /* Instance à retourner */ + + result = NULL; + + if (g_dynamic_types_find(_chrysalide_dtypes, type) != NULL) + result = build_type_instance(type); + + else + result = g_object_new(type, NULL); + + assert(result != NULL); + + return result; + +} |