/** * gwy_resource_set_is_preferred: * @resource: A resource. * @is_preferred: %TRUE to make @resource preferred, %FALSE to make it not * preferred. * * Sets preferability of a resource. **/ void gwy_resource_set_is_preferred(GwyResource *resource, gboolean is_preferred) { g_return_if_fail(GWY_IS_RESOURCE(resource)); resource->is_preferred = !!is_preferred; g_object_notify(G_OBJECT(resource), "is-preferred"); }
/** * gwy_resource_data_saved: * @resource: A resource. * * Clears @is_modified flag of a resource. * * Since: 2.8 **/ void gwy_resource_data_saved(GwyResource *resource) { g_return_if_fail(GWY_IS_RESOURCE(resource)); if (resource->is_const) g_warning("Constant resource being passed to data_saved()"); resource->is_modified = FALSE; }
/** * gwy_resource_build_filename: * @resource: A resource. * * Builds file name a resource should be saved to. * * If the resource has not been newly created, renamed, or system it was * probably loaded from file of the same name. * * Returns: Resource file name as a newly allocated string that must be freed * by caller. **/ gchar* gwy_resource_build_filename(GwyResource *resource) { GwyResourceClass *klass; g_return_val_if_fail(GWY_IS_RESOURCE(resource), NULL); if (resource->is_const) g_warning("Filename of a constant resource `%s' should not be needed", resource->name->str); klass = GWY_RESOURCE_GET_CLASS(resource); return g_build_filename(gwy_get_user_dir(), klass->name, resource->name->str, NULL); }
/** * gwy_resource_dump: * @resource: A resource. * * Dumps a resource to a textual (human readable) form. * * Returns: Textual resource representation. **/ GString* gwy_resource_dump(GwyResource *resource) { void (*method)(GwyResource*, GString*); GString *str; g_return_val_if_fail(GWY_IS_RESOURCE(resource), NULL); method = GWY_RESOURCE_GET_CLASS(resource)->dump; g_return_val_if_fail(method, NULL); str = g_string_new(MAGIC_HEADER); g_string_append(str, G_OBJECT_TYPE_NAME(resource)); g_string_append_c(str, '\n'); method(resource, str); return str; }
/** * gwy_resource_use: * @resource: A resource. * * Starts using a resource. * * Call to this function is necessary to use a resource properly. * It makes the resource to create any auxiliary structures that consume * considerable amount of memory and perform other initialization to * ready-to-use form. * * When a resource is no longer used, it should be released with * gwy_resource_release(). * * In addition, it calls g_object_ref() on the resource. * * Resources usually exist through almost whole program lifetime from * #GObject perspective, but from the viewpoint of use this method is the * constructor and gwy_resource_release() is the destructor. **/ void gwy_resource_use(GwyResource *resource) { g_return_if_fail(GWY_IS_RESOURCE(resource)); gwy_debug("%s %p<%s> %d", G_OBJECT_TYPE_NAME(resource), resource, resource->name->str, resource->use_count); g_object_ref(resource); if (!resource->use_count++) { void (*method)(GwyResource*); method = GWY_RESOURCE_GET_CLASS(resource)->use; if (method) method(resource); } }
/** * gwy_resource_data_changed: * @resource: A resource. * * Emits signal "data-changed" on a resource. * * Mostly useful in resource implementation. **/ void gwy_resource_data_changed(GwyResource *resource) { g_return_if_fail(GWY_IS_RESOURCE(resource)); g_signal_emit(resource, resource_signals[DATA_CHANGED], 0); }
/** * gwy_resource_is_used: * @resource: A resource. * * Tells whether a resource is currently in use. * * See gwy_resource_use() for details. * * Returns: %TRUE if resource is in use, %FALSE otherwise. **/ gboolean gwy_resource_is_used(GwyResource *resource) { g_return_val_if_fail(GWY_IS_RESOURCE(resource), FALSE); return resource->use_count > 0; }
/** * gwy_resource_get_is_preferred: * @resource: A resource. * * Returns whether a resource is preferred. * * Returns: %TRUE if resource is preferred, %FALSE otherwise. **/ gboolean gwy_resource_get_is_preferred(GwyResource *resource) { g_return_val_if_fail(GWY_IS_RESOURCE(resource), FALSE); return resource->is_preferred; }
/** * gwy_resource_get_is_modifiable: * @resource: A resource. * * Returns whether a resource is modifiable. * * Returns: %TRUE if resource is modifiable, %FALSE if it's fixed (system) * resource. **/ gboolean gwy_resource_get_is_modifiable(GwyResource *resource) { g_return_val_if_fail(GWY_IS_RESOURCE(resource), FALSE); return !resource->is_const; }
/** * gwy_resource_get_name: * @resource: A resource. * * Returns resource name. * * Returns: Name of @resource. The string is owned by @resource and must not * be modfied or freed. **/ const gchar* gwy_resource_get_name(GwyResource *resource) { g_return_val_if_fail(GWY_IS_RESOURCE(resource), NULL); return resource->name->str; }