static void mex_grilo_program_set_metadata (MexContent *content, MexContentMetadata key, const gchar *value) { MexContentIface *iface, *parent_iface; iface = MEX_CONTENT_GET_IFACE (content); parent_iface = g_type_interface_peek_parent (iface); parent_iface->set_metadata (content, key, value); }
/** * mex_content_get_property_name: * @key: The key ID * * Retrieves the property name for @key. * * It's possible to return %NULL when the #MexContent does not want to * associate a GObject property with a #MexContentMetadata key. This means, * for instance that it will disable the #GBindings that are setup * automatically by wigets like #MexContentBox or #MexContentButton. * * The default implementation returns %NULL for any @key value given. * * Return value: The property name or %NULL. */ const char * mex_content_get_property_name (MexContent *content, MexContentMetadata key) { MexContentIface *iface; g_return_val_if_fail (MEX_IS_CONTENT (content), NULL); iface = MEX_CONTENT_GET_IFACE (content); if (iface->get_property_name) return iface->get_property_name (content, key); return NULL; }
/** * mex_content_get_metadata_fallback: * @content: a #MexContent * @key: a #MexContentMetadata * * Retrieves a string for @key for this content. * * Return value: The string corresponding to the @key. Because this string * may be dynamically created it should be freed with g_free when no longer * needed. * * Since: 0.2 */ gchar * mex_content_get_metadata_fallback (MexContent *content, MexContentMetadata key) { MexContentIface *iface; g_return_val_if_fail (MEX_IS_CONTENT (content), NULL); iface = MEX_CONTENT_GET_IFACE (content); if (G_LIKELY (iface->get_metadata_fallback)) return iface->get_metadata_fallback (content, key); return NULL; }
/** * mex_content_save_metadata: * @content: a #MexContent * * Save all metadata into underlaying backend. * * Since: 0.2 */ void mex_content_save_metadata (MexContent *content) { MexContentIface *iface; g_return_if_fail (MEX_IS_CONTENT (content)); iface = MEX_CONTENT_GET_IFACE (content); if (iface->save_metadata) { iface->save_metadata (content); return; } g_warning ("MexContent of type '%s' does not implement save_metadata()", g_type_name (G_OBJECT_TYPE (content))); }
/** * mex_content_get_metadata: * @content: a #MexContent * @key: a #MexContentMetadata * * Retrieves a string for @key for this content. * * Return value: The string corresponding to the @key * * Since: 0.2 */ const gchar * mex_content_get_metadata (MexContent *content, MexContentMetadata key) { MexContentIface *iface; g_return_val_if_fail (MEX_IS_CONTENT (content), NULL); iface = MEX_CONTENT_GET_IFACE (content); if (G_LIKELY (iface->get_metadata)) return iface->get_metadata (content, key); g_warning ("MexContent of type '%s' does not implement get_metadata()", g_type_name (G_OBJECT_TYPE (content))); return NULL; }
/** * mex_content_set_metadata: * @content: a #MexContent * @key: a #MexContentMetadata * @value: a string corresponding to the new value of @key * * Sets a string for @key for this content. * * Since: 0.2 */ void mex_content_set_metadata (MexContent *content, MexContentMetadata key, const gchar *value) { MexContentIface *iface; g_return_if_fail (MEX_IS_CONTENT (content)); iface = MEX_CONTENT_GET_IFACE (content); if (G_LIKELY (iface->set_metadata)) { iface->set_metadata (content, key, value); return; } g_warning ("MexContent of type '%s' does not implement set_metadata()", g_type_name (G_OBJECT_TYPE (content))); }
void mex_content_foreach_metadata (MexContent *content, MexContentMetadataCb callback, gpointer data) { MexContentIface *iface; g_return_if_fail (MEX_IS_CONTENT (content)); g_return_if_fail (callback != NULL); iface = MEX_CONTENT_GET_IFACE (content); if (iface->foreach_metadata) { iface->foreach_metadata (content, callback, data); return; } g_warning ("MexContent of type '%s' does not implement foreach_metadata()", g_type_name (G_OBJECT_TYPE (content))); }