| Top |
EExtension objects can be tacked on to any
Add the
#include <libedataserver/libedataserver.h>
G_DEFINE_TYPE_WITH_CODE (
ECustomWidget, e_custom_widget, GTK_TYPE_WIDGET,
G_IMPLEMENT_INTERFACE (E_TYPE_EXTENSIBLE, NULL))
Load extensions for the class at some point during
static void
e_custom_widget_constructed (ECustomWidget *widget)
{
Construction code goes here, same as call to parent's 'constructed'...
e_extensible_load_extensions (E_EXTENSIBLE (widget));
}
void e_extensible_load_extensions ();EExtensible *extensible
Creates an instance of all instantiable subtypes of EExtension which
target the class of extensible
. The lifetimes of these newly created
EExtension objects are bound to extensible
such that they are finalized
when extensible
is finalized.
Since: 3.4
GList * e_extensible_list_extensions (,EExtensible *extensible);GType extension_type
Returns a list of EExtension objects bound to extensible
whose
types are ancestors of extension_type
. For a complete list of
extension objects bound to extensible
, pass E_TYPE_EXTENSION
The list itself should be freed with g_list_free()extensible
and should not be unreferenced.
a list of extension objects derived from extension_type
.
[element-type EExtension][transfer container]
Since: 3.4