[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[GObject, long] Gtype for enum + runtime init or by init function.



1. In g_param_spec_enum I must have GType of this enum.
a) Why this function need it?
b) How create for enum GType?

2. I should register GType in package_name_get_type or
package_class_init:
a)
GType package_name_get_type() {
	static GType type = 0;
	
	if(type == 0) {
		static const GTypeInfo info = {
			sizeof(PackageNameClass),
		
			(GBaseInitFunc)NULL,
			(GBaseFinalizeFunc)NULL,
				
			(GClassInitFunc)package_name_class_init,
			(GClassFinalizeFunc)NULL,
			(gconstpointer)NULL,
			
			sizeof(PackageName),
			0,
			(GInstanceInitFunc)package_name_init
		};
		type = g_type_register_static(G_TYPE_OBJECT, "PackageName", &info, 0);
	}
	
	return type;
}
b)
static GType package_name_type;
GType package_name_get_type() {
	return package_name_type;
}

void package_name_init() {
	static const GTypeInfo info = {
		sizeof(PackageNameClass),
	
		(GBaseInitFunc)NULL,
		(GBaseFinalizeFunc)NULL,
			
		(GClassInitFunc)package_name_class_init,
		(GClassFinalizeFunc)NULL,
		(gconstpointer)NULL,
		
		sizeof(PackageName),
		0,
		(GInstanceInitFunc)package_name_init
	};
	package_name_type = g_type_register_static(G_TYPE_OBJECT,
"PackageName", &info, 0);
}

void package_init() {
	//(...)
	package_name_init();
}

Thanks in advance.
Regards
-- 
Linux user: #376500 (patrz http://counter.li.org/)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]