From 09791400601405120c15578ab83c13a1c3e3d2b7 Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Sat, 23 Apr 2005 09:50:36 +0000 Subject: [PATCH] all interface examples use 'interface' instead of 'class' --- docs/reference/ChangeLog | 12 ++++-- docs/reference/gobject/tut_gtype.xml | 24 +++++------ docs/reference/gobject/tut_howto.xml | 64 ++++++++++++++-------------- 3 files changed, 53 insertions(+), 47 deletions(-) diff --git a/docs/reference/ChangeLog b/docs/reference/ChangeLog index 41fbc457c..fe19e66a6 100644 --- a/docs/reference/ChangeLog +++ b/docs/reference/ChangeLog @@ -1,3 +1,9 @@ +2005-04-23 Stefan Kost + + * gobject/tut_gtype.xml: + * gobject/tut_howto.xml: + all interface examples use 'interface' instead of 'class' + 2005-04-22 Stefan Kost * gobject/Makefile.am: @@ -88,7 +94,7 @@ 2005-01-04 Matthias Clasen * gobject/tmpl/signals.sgml: Small addition. (#145158, - Mariano Suárez-Alvarez) + Mariano Su??rez-Alvarez) 2004-12-20 Matthias Clasen @@ -521,7 +527,7 @@ Wed Jan 28 01:39:59 2004 Matthias Clasen Thu Jan 22 14:51:19 2004 Owen Taylor * glib/glib-sections.txt glib/tmpl/timers.sgml: Document - g_timer_continue. (Tim-Philipp Müller) + g_timer_continue. (Tim-Philipp M??ller) Sun Jan 11 01:25:44 2004 Matthias Clasen @@ -657,7 +663,7 @@ Mon Oct 20 01:12:46 2003 Matthias Clasen Sun Oct 19 22:18:28 2003 Matthias Clasen * gobject/Makefile.am (INCLUDES): Add $(top_builddir)/glib - as an include dir. (#124934, Mariano Suárez-Alvarez) + as an include dir. (#124934, Mariano Su??rez-Alvarez) Sun Oct 19 00:33:28 2003 Matthias Clasen diff --git a/docs/reference/gobject/tut_gtype.xml b/docs/reference/gobject/tut_gtype.xml index b274a4010..e3bfc8e4d 100644 --- a/docs/reference/gobject/tut_gtype.xml +++ b/docs/reference/gobject/tut_gtype.xml @@ -649,17 +649,15 @@ The class initialization process is entirely implemented in you have to register a non-instantiable classed type which derives from GTypeInterface. The following piece of code declares such an interface. -#define MAMAN_IBAZ_TYPE (maman_ibaz_get_type ()) -#define MAMAN_IBAZ(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAMAN_IBAZ_TYPE, MamanIbaz)) -#define MAMAN_IBAZ_CLASS(vtable) (G_TYPE_CHECK_CLASS_CAST ((vtable), MAMAN_IBAZ_TYPE, MamanIbazClass)) -#define MAMAN_IS_IBAZ(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAMAN_IBAZ_TYPE)) -#define MAMAN_IS_IBAZ_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), MAMAN_IBAZ_TYPE)) -#define MAMAN_IBAZ_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), MAMAN_IBAZ_TYPE, MamanIbazClass)) +#define MAMAN_IBAZ_TYPE (maman_ibaz_get_type ()) +#define MAMAN_IBAZ(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAMAN_IBAZ_TYPE, MamanIbaz)) +#define MAMAN_IS_IBAZ(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAMAN_IBAZ_TYPE)) +#define MAMAN_IBAZ_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), MAMAN_IBAZ_TYPE, MamanIbazInterface)) typedef struct _MamanIbaz MamanIbaz; /* dummy object */ -typedef struct _MamanIbazClass MamanIbazClass; +typedef struct _MamanIbazInterface MamanIbazInterface; -struct _MamanIbazClass { +struct _MamanIbazInterface { GTypeInterface parent; void (*do_action) (MamanIbaz *self); @@ -674,7 +672,7 @@ void maman_ibaz_do_action (MamanIbaz *self); void maman_ibaz_do_action (MamanIbaz *self) { - MAMAN_IBAZ_GET_CLASS (self)->do_action (self); + MAMAN_IBAZ_GET_INTERFACE (self)->do_action (self); } maman_ibaz_get_gtype registers a type named MamanIBaz @@ -707,8 +705,8 @@ static void baz_interface_init (gpointer g_iface, gpointer iface_data) { - MamanIbazClass *klass = (MamanIbazClass *)g_iface; - klass->do_action = maman_baz_do_action; + MamanIbazInterface *iface = (MamanIbazInterface *)g_iface; + iface->do_action = maman_baz_do_action; } GType @@ -717,7 +715,7 @@ maman_baz_get_type (void) static GType type = 0; if (type == 0) { static const GTypeInfo info = { - sizeof (MamanBazClass), + sizeof (MamanBazInterface), NULL, /* base_init */ NULL, /* base_finalize */ NULL, /* class_init */ @@ -799,7 +797,7 @@ struct _GInterfaceInfo multiple implementations of the interface: static void -maman_ibaz_base_init (gpointer g_class) +maman_ibaz_base_init (gpointer g_iface) { static gboolean initialized = FALSE; diff --git a/docs/reference/gobject/tut_howto.xml b/docs/reference/gobject/tut_howto.xml index 937ff7a85..a03c87e0d 100644 --- a/docs/reference/gobject/tut_howto.xml +++ b/docs/reference/gobject/tut_howto.xml @@ -776,18 +776,16 @@ b_method_to_call (B *obj, int a) #include <glib-object.h> -#define MAMAN_TYPE_IBAZ (maman_ibaz_get_type ()) -#define MAMAN_IBAZ(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAMAN_TYPE_IBAZ, MamanIbaz)) -#define MAMAN_IBAZ_CLASS(vtable) (G_TYPE_CHECK_CLASS_CAST ((vtable), MAMAN_TYPE_IBAZ, MamanIbazClass)) -#define MAMAN_IS_IBAZ(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAMAN_TYPE_IBAZ)) -#define MAMAN_IS_IBAZ_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), MAMAN_TYPE_IBAZ)) -#define MAMAN_IBAZ_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), MAMAN_TYPE_IBAZ, MamanIbazClass)) +#define MAMAN_TYPE_IBAZ (maman_ibaz_get_type ()) +#define MAMAN_IBAZ(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAMAN_TYPE_IBAZ, MamanIbaz)) +#define MAMAN_IS_IBAZ(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAMAN_TYPE_IBAZ)) +#define MAMAN_IBAZ_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), MAMAN_TYPE_IBAZ, MamanIbazInterface)) typedef struct _MamanIbaz MamanIbaz; /* dummy object */ -typedef struct _MamanIbazClass MamanIbazClass; +typedef struct _MamanIbazInterface MamanIbazInterface; -struct _MamanIbazClass { +struct _MamanIbazInterface { GTypeInterface parent; void (*do_action) (MamanIbaz *self); @@ -803,8 +801,9 @@ void maman_ibaz_do_action (MamanIbaz *self); which derives from a GObject except for a few details: - The _GET_CLASS macro is not implemented with - G_TYPE_INSTANCE_GET_CLASS but with G_TYPE_INSTANCE_GET_INTERFACE. + The _GET_CLASS macro is called _GET_INTERFACE + and not implemented with G_TYPE_INSTANCE_GET_CLASS + but with G_TYPE_INSTANCE_GET_INTERFACE. The instance type, MamanIbaz is not fully defined: it is used merely as an abstract @@ -848,7 +847,7 @@ maman_ibaz_get_type (void) static GType type = 0; if (type == 0) { static const GTypeInfo info = { - sizeof (MamanIbazClass), + sizeof (MamanIbazInterface), maman_ibaz_base_init, /* base_init */ NULL, /* base_finalize */ NULL, /* class_init */ @@ -865,7 +864,7 @@ maman_ibaz_get_type (void) void maman_ibaz_do_action (MamanIbaz *self) { - MAMAN_IBAZ_GET_CLASS (self)->do_action (self); + MAMAN_IBAZ_GET_INTERFACE (self)->do_action (self); } @@ -969,14 +968,14 @@ static void baz_interface_init (gpointer g_iface, gpointer iface_data) { - MamanIbazClass *klass = (MamanIbazClass *)g_iface; - klass->do_action = (void (*) (MamanIbaz *self))baz_do_action; + MamanIbazInteface *iface = (MamanIbazInteface *)g_iface; + iface->do_action = (void (*) (MamanIbaz *self))baz_do_action; } static void baz_instance_init (GTypeInstance *instance, gpointer g_class) { - MamanBaz *self = (MamanBaz *)instance; + MamanBaz *self = MAMAN_BAZ(instance); self->instance_member = 0xdeadbeaf; } @@ -1016,8 +1015,8 @@ static void ibar_interface_init (gpointer g_iface, gpointer iface_data) { - MamanIbarClass *klass = (MamanIbarClass *)g_iface; - klass->do_another_action = (void (*) (MamanIbar *self))ibar_do_another_action; + MamanIbarInterface *iface = (MamanIbarInterface *)g_iface; + iface->do_another_action = (void (*) (MamanIbar *self))ibar_do_another_action; } @@ -1030,8 +1029,8 @@ static void ibaz_interface_init (gpointer g_iface, gpointer iface_data) { - MamanIbazClass *klass = (MamanIbazClass *)g_iface; - klass->do_action = (void (*) (MamanIbaz *self))ibaz_do_action; + MamanIbazInterface *iface = (MamanIbazInterface *)g_iface; + iface->do_action = (void (*) (MamanIbaz *self))ibaz_do_action; } @@ -1063,7 +1062,7 @@ maman_bar_get_type (void) static const GInterfaceInfo ibar_info = { (GInterfaceInitFunc) ibar_interface_init, /* interface_init */ NULL, /* interface_finalize */ - NULL /* interface_data */ + NULL /* interface_data */ }; static const GInterfaceInfo ibaz_info = { (GInterfaceInitFunc) ibaz_interface_init, /* interface_init */ @@ -1088,11 +1087,11 @@ maman_bar_get_type (void) no prerequisites and then on the others. - - Complete source code showing how to define the MamanIbar interface which requires MamanIbaz and how to - implement the MamanIbar interface is located in sample/interface/maman-ibar.{h|c} - and sample/interface/maman-bar.{h|c}. - + + Complete source code showing how to define the MamanIbar interface which requires MamanIbaz and how to + implement the MamanIbar interface is located in sample/interface/maman-ibar.{h|c} + and sample/interface/maman-bar.{h|c}. + @@ -1109,25 +1108,28 @@ maman_bar_get_type (void) To include a property named 'name' of type string in the maman_ibaz interface example code above, we only need to add one - That really is one line extended to six for the sake of clarity - + + That really is one line extended to six for the sake of clarity + line in the maman_ibaz_base_init - The gobject_install_property can also be called from class_init but it must not be called after that point. - + + The g_object_interface_install_property can also be called from + class_init but it must not be called after that point. + as shown below: static void -maman_ibaz_base_init (gpointer g_class) +maman_ibaz_base_init (gpointer g_iface) { static gboolean initialized = FALSE; if (!initialized) { /* create interface signals here. */ - g_object_interface_install_property (g_class, + g_object_interface_install_property (g_iface, g_param_spec_string ("name", "maman_ibaz_name", "Name of the MamanIbaz",