]> git.draconx.ca Git - gob-dx.git/blobdiff - doc/gob2.1.in
Implement chaining of interface methods.
[gob-dx.git] / doc / gob2.1.in
index f39238425c2a56365db1c86cc8bf0018226cb74d..560dd8ae65ae0c762e782b4a0d6f7169a4a4367d 100644 (file)
@@ -238,6 +238,17 @@ For example:
 To make an abstract class (to pass G_TYPE_FLAG_ABSTRACT) add \'(abstract)\'
 before the curly braces above.  This works since version 2.0.13.
 
+.PP
+To make a simple dynamic class which can be registered with a GTypeModule,
+add \`(dynamic)\' to the class header.
+This will cause a type registration method to be defined, which you would
+normally call from the load method of a GTypeModule.
+In the above example, the registration function will look like
+.nf
+
+  void gtk_new_button_register_type(GTypeModule *type_module)
+
+.fi
 .SH DATA MEMBERS
 .PP
 There are five types of data members.  Three of them are normal data members,
@@ -1054,6 +1065,21 @@ a specific method of the interface, just add \'interface <typename>\'
 before the method definition.  The method can, and probably should be,
 private.
 .PP
+Interface methods behave very similarly to virtual/override methods.
+As with override methods, you can use PARENT_HANDLER in the definition of an
+interface method to call the implementation of the same interface method in
+a parent class.
+.PP
+The NAME_parent_iface variable may be used to access the complete interface
+structure from a parent class, where NAME is the implemented interface (with
+colons replaced by underscores).
+This enables access to the full parent implementation of an interface.
+For example, if a class implements the Gtk:Tree:Model interface then the
+implementation of the same interface in the parent class is available via
+the Gtk_Tree_Model_parent_iface pointer.
+If an interface is not implemented in the parent class, then the corresponding
+parent_iface value will be a null pointer.
+.PP
 The following example implements a new object, that implements the
 Gtk:Tree:Model interface and implements the get_flags method of that
 interface.  Do note that except for standard (GTK+ and glib) specific