script: Add loading from a resource

GLib has gained support for compiling ancillary data files into the same
binary blob as a library or as an executable.

We should add this feature to ClutterScript, so that it's possible to
bundle UI definitions with an application.
This commit is contained in:
Emmanuele Bassi 2012-01-16 11:27:08 +00:00
parent 254ebd8765
commit 8d8d4ae7e5
4 changed files with 44 additions and 1 deletions

View File

@ -600,6 +600,45 @@ clutter_script_load_from_data (ClutterScript *script,
return priv->last_merge_id;
}
/**
* clutter_script_load_from_resource:
* @script: a #ClutterScript
* @resource_path: the resource path of the file to parse
* @error: return location for a #GError, or %NULL
*
* Loads the definitions from a resource file into @script and merges with
* the currently loaded ones, if any.
*
* Return value: on error, zero is returned and @error is set
* accordingly. On success, the merge id for the UI definitions is
* returned. You can use the merge id with clutter_script_unmerge_objects().
*
* Since: 1.10
*/
guint
clutter_script_load_from_resource (ClutterScript *script,
const gchar *resource_path,
GError **error)
{
GBytes *data;
guint res;
g_return_val_if_fail (CLUTTER_IS_SCRIPT (script), 0);
data = g_resources_lookup_data (resource_path, 0, error);
if (data == NULL)
return 0;
res = clutter_script_load_from_data (script,
g_bytes_get_data (data, NULL),
g_bytes_get_size (data),
error);
g_bytes_unref (data);
return res;
}
/**
* clutter_script_get_object:
* @script: a #ClutterScript

View File

@ -153,6 +153,9 @@ guint clutter_script_load_from_data (ClutterScript
const gchar *data,
gssize length,
GError **error);
guint clutter_script_load_from_resource (ClutterScript *script,
const gchar *resource_path,
GError **error);
GObject * clutter_script_get_object (ClutterScript *script,
const gchar *name);

View File

@ -936,6 +936,7 @@ clutter_script_get_type_from_name
clutter_script_list_objects
clutter_script_load_from_data
clutter_script_load_from_file
clutter_script_load_from_resource
clutter_script_lookup_filename
clutter_script_new
clutter_script_unmerge_objects

View File

@ -129,7 +129,7 @@ LT_INIT([disable-static])
AC_HEADER_STDC
# required versions for dependencies
m4_define([glib_req_version], [2.31.0])
m4_define([glib_req_version], [2.31.10])
m4_define([cogl_req_version], [1.9.4])
m4_define([json_glib_req_version], [0.12.0])
m4_define([atk_req_version], [2.1.5])