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,
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