* clutter/Makefile.am: Update the regular expression to match
all the namespaces we actually use. Thanks to Neil Roberts for
spotting this. A make distclean is needed.
* clutter/cogl/gl/Makefile.am:
* clutter/cogl/gles/Makefile.am:
* clutter/json/Makefile.am:
* clutter/pango/Makefile.am: Revert previous commit.
* clutter/cogl/Makefile.am:
* clutter/cogl/gl/Makefile.am:
* clutter/cogl/gles/Makefile.am:
* clutter/json/Makefile.am:
* clutter/pango/Makefile.am: Fix the visibility of all the
symbols, for the main library and the statically linked ones.
* clutter/json/json-parser.[ch]: Use gssize, size we allow -1
as a length (meaning "use the whole string").
(json_parser_load_from_data): Use the passed length instead of
using strlen() all the time.
* clutter/clutter-script.[ch]: Ditto as above.
* clutter/json/json-parser.c:
(json_scanner_msg_handler): Set the GError to be returned by
the parsing functions into the GScanner error message handler.
(json_parser_object): Return the symbol token in case we have
a parse error after the member name.
(json_parser_load_from_data): Propagate the error set in the
message handler, if any.
* clutter/json/json-node.c (json_node_free): Unref the objects
only if are set, to avoid a couple of needless criticals we
get on error.
* tests/test-script.json: More properties.
* clutter/clutter-json.h: Header for including the JSON
parsing and data types.
* clutter/json/json-types.h: Add JSON_NODE_VALUE_TYPE() macro.
* clutter/json/Makefile.am: Install the JSON headers into a
private location. This might change in the future, and might
also cause collisions if you're using JSON-GLib and Clutter
at the same time, so be warned.
* clutter/json/json-object.c: Automatically transform every
delimiter into an underscore.
* clutter/clutter-script.c: Implement the "parent_texture"
property translation for ClutterCloneTextures, using the
passed id of the parent texture.
* clutter.symbols:
Added a bunch of missing symbols.
* clutter/clutter-script.c:
* json/json-node.c:
Use g_slice_new0 instead of g_slice_new to avoid passing garbage to functions.
* tests/test-threads.c:
Replaced non-portable sleep() with g_usleep().
* clutter/json/json-types.h:
* clutter/json/json-array.c:
* clutter/json/json-object.c: Resync with the upstream copy
of JSON-GLib; add json_object_remove_member() and
json_array_remove_element() and fix the g_hash_table_get_keys()
replacement for GLib 2.12.
* clutter/clutter-script.c: Clean up the complex properties
parsing code.
* clutter/json/json-parser.c: Use the commodity JsonNode API
and accept bare values as root nodes.
* clutter/clutter-script-private.h:
* clutter/clutter-script.c: Unreference the created objects
only if they are top-levels, like ClutterBehaviour and
ClutterTimelines. Actors have floating references, so we
just transfer ownership to their containers, and the stage
is owned by the backend. Add the "type_func" key to the
object definition, so the user can supply its own GType
function if the class name doesn't follow the GObject rules.
Document the ClutterScript public API.
* clutter/clutter-script.c (json_parse_end):
* clutter/json/json-object.c (json_object_get_members): Replace
the GLib 2.14 API with the equivalent code for GLib < 2.14.
* configure.ac: Revert the dependency bump.
Initial implementation of the UI definition files. (#424)
* clutter/json/Makefile.am:
* clutter/json/*.[ch]: In-tree copy of JSON-GLib, a GLib-based
JSON parser/generator library. We use it in-tree because we might
need to change the API. Ideally, we'd depend on it.
* clutter/clutter.h:
* clutter/clutter-script-private.h:
* clutter/clutter-script.[ch]: ClutterScript, the scenegraph
generator class. It parses JSON streams in form of buffers and
files and builds the scene.
* clutter/clutter-debug.h:
* clutter/clutter-main.c: Add a "script" debug flag
* clutter/Makefile.am: Build glue.
* tests/Makefile.am:
* tests/test-script.c: Add a test case for the ClutterScript.
* configure.ac: Depend on GLib 2.14, so we can use the
g_hash_table_get_key() and g_hash_table_get_values() functions
for the time being; we can probably reimplement those, but we
are going to need 2.14 anyway if we are going to implement a
list model using GSequence.