mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-10 11:26:16 +01:00
Add G_IMPLEMENT_INTERFACE_DYNAMIC
Convenience macro to easy interface addition for dynamic types. https://bugzilla.gnome.org/show_bug.cgi?id=508157
This commit is contained in:
parent
b3156508c4
commit
7d51c96e5e
@ -202,6 +202,7 @@ g_type_module_register_flags
|
|||||||
|
|
||||||
G_DEFINE_DYNAMIC_TYPE
|
G_DEFINE_DYNAMIC_TYPE
|
||||||
G_DEFINE_DYNAMIC_TYPE_EXTENDED
|
G_DEFINE_DYNAMIC_TYPE_EXTENDED
|
||||||
|
G_IMPLEMENT_INTERFACE_DYNAMIC
|
||||||
|
|
||||||
<SUBSECTION Standard>
|
<SUBSECTION Standard>
|
||||||
G_TYPE_MODULE
|
G_TYPE_MODULE
|
||||||
|
@ -119,8 +119,8 @@ struct _GTypeModuleClass
|
|||||||
* gtk_gadget,
|
* gtk_gadget,
|
||||||
* GTK_TYPE_THING,
|
* GTK_TYPE_THING,
|
||||||
* 0,
|
* 0,
|
||||||
* G_IMPLEMENT_INTERFACE (TYPE_GIZMO,
|
* G_IMPLEMENT_INTERFACE_DYNAMIC (TYPE_GIZMO,
|
||||||
* gtk_gadget_gizmo_init));
|
* gtk_gadget_gizmo_init));
|
||||||
* ]|
|
* ]|
|
||||||
* expands to
|
* expands to
|
||||||
* |[
|
* |[
|
||||||
@ -167,7 +167,7 @@ struct _GTypeModuleClass
|
|||||||
* const GInterfaceInfo g_implement_interface_info = {
|
* const GInterfaceInfo g_implement_interface_info = {
|
||||||
* (GInterfaceInitFunc) gtk_gadget_gizmo_init
|
* (GInterfaceInitFunc) gtk_gadget_gizmo_init
|
||||||
* };
|
* };
|
||||||
* g_type_add_interface_static (g_define_type_id, TYPE_GIZMO, &g_implement_interface_info);
|
* g_type_module_add_interface (type_module, g_define_type_id, TYPE_GIZMO, &g_implement_interface_info);
|
||||||
* }
|
* }
|
||||||
* }
|
* }
|
||||||
* ]|
|
* ]|
|
||||||
@ -215,6 +215,27 @@ type_name##_register_type (GTypeModule *type_module) \
|
|||||||
{ CODE ; } \
|
{ CODE ; } \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_IMPLEMENT_INTERFACE_DYNAMIC:
|
||||||
|
* @TYPE_IFACE: The #GType of the interface to add
|
||||||
|
* @iface_init: The interface init function
|
||||||
|
*
|
||||||
|
* A convenience macro to ease interface addition in the @_C_ section
|
||||||
|
* of G_DEFINE_DYNAMIC_TYPE_EXTENDED(). See G_DEFINE_DYNAMIC_TYPE_EXTENDED()
|
||||||
|
* for an example.
|
||||||
|
*
|
||||||
|
* Note that this macro can only be used together with the
|
||||||
|
* G_DEFINE_DYNAMIC_TYPE_EXTENDED macros, since it depends on variable
|
||||||
|
* names from that macro.
|
||||||
|
*
|
||||||
|
* Since: 2.24
|
||||||
|
*/
|
||||||
|
#define G_IMPLEMENT_INTERFACE_DYNAMIC(TYPE_IFACE, iface_init) { \
|
||||||
|
const GInterfaceInfo g_implement_interface_info = { \
|
||||||
|
iface_init, NULL, NULL \
|
||||||
|
}; \
|
||||||
|
g_type_module_add_interface (type_module, g_define_type_id, TYPE_IFACE, &g_implement_interface_info); \
|
||||||
|
}
|
||||||
|
|
||||||
GType g_type_module_get_type (void) G_GNUC_CONST;
|
GType g_type_module_get_type (void) G_GNUC_CONST;
|
||||||
gboolean g_type_module_use (GTypeModule *module);
|
gboolean g_type_module_use (GTypeModule *module);
|
||||||
|
Loading…
Reference in New Issue
Block a user