+
+ First call to g_object_new() for target type |
+ target type's base_init function |
+ On the inheritance tree of classes from fundamental type to target type. base_init is invoked once for each class structure. |
+ Never used in practice. Unlikely you will need it. |
+
+
+ target type's class_init function |
+ On target type's class structure |
+ Here, you should make sure to initialize or override class methods (that is, assign to each class' method its function pointer) and create the signals and the properties associated to your object. |
+
+
+ interface's base_init function |
+ On interface's vtable |
+ |
+
+
+ interface's interface_init function |
+ On interface's vtable |
+ |
+
+
+ Each call to g_object_new() for target type |
+ target type's class constructor method: GObjectClass->constructor
+ |
+ On object's instance |
+ If you need to handle construct properties in a custom way, or implement a singleton class, override the constructor method and make sure to chain up to the object's parent class before doing your own initialization. In doubt, do not override the constructor method. |
+
+
+ type's instance_init function |
+ On the inheritance tree of classes from fundamental type to target type. The instance_init provided for each type is invoked once for each instance structure. |
+ Provide an instance_init function to initialize your object before its construction properties are set. This is the preferred way to initialize a GObject instance. This function is equivalent to C++ constructors. |
+
+
+ target type's class constructed method: GObjectClass->constructed |
+ On object's instance |
+ If you need to perform object initialization steps after all construct properties have been set. This is the final step in the object initialization process, and is only called if the constructor method returned a new object instance (rather than, for example, an existing singleton). |
+
+
+