Spencer, Matthew wrote:
> Hi Guys
>
> Not sure if this should be posted here or to the clutter lists, but I'll
> try here first :)
>
> I am trying to create a clutter app using vala and am having a few
> issues. The biggest one seems to be with the clutter-json bindings.
> How mature are these supposed to be, because the simplest application is
> failing to compile, and looking at the vapi files I would have to agree.
>
> I would like to modify the generated vapi files to make this work,
> however at the top is an 'autogenerated' warning, but I cannot find
> anywhere in the vala build that will allow me to recreate these bindings
> (there also seems to be nothing in the 1.0.8 source release of clutter).
Yes, it seems that 'clutter-1.0.vapi' was accidentally included without
the metadata information an in a very raw state without any tweaking.
Ali Sabil (asabil) has started a launchpad project as a new beginning for
Clutter bindings, this time with metadata:
http://bazaar.launchpad.net/~asabil/+junk/clutter-vala-1.0/files
At the same time I was assembling a patch with lots of fixes for the raw
'clutter-1.0.vapi' without knowing about his project:
https://bugzilla.gnome.org/show_bug.cgi?id=598778
What needs to be done now is to merge this patch into his project, but in
the form of metadata. I wanted to do that but I didn't find enough time
during the last weeks. Of course, any help is appreciated.
I have attached a Vala port of a little demo program that would work with
my patch.
Best regards,
Frederik
using Clutter;
class ClutterDemo {
private Stage stage;
private Rectangle[] rectangles;
const string[] colors = {
"blanched almond",
"OldLace",
"MistyRose",
"White",
"LavenderBlush",
"CornflowerBlue",
"chartreuse",
"chocolate",
"light coral",
"medium violet red",
"LemonChiffon2",
"RosyBrown3"
};
public ClutterDemo () {
stage = Stage.get_default ();
rectangles = new Rectangle[colors.length];
stage.hide.connect (Clutter.main_quit);
create_rectangles ();
stage.color = Color () { alpha = 255 };
stage.show_all ();
}
private void create_rectangles () {
for (int i = 0; i < colors.length; i++) {
var r = new Rectangle ();
r.width = r.height = stage.height / colors.length;
r.color = Color.from_string (colors[i]);
r.anchor_gravity = Gravity.CENTER;
r.y = i * r.height + r.height / 2;
stage.add_actor (r);
rectangles[i] = r;
}
}
public void start () {
var animations = new Animation[rectangles.length];
for (int i = 0; i < rectangles.length; i++) {
animations[i] = rectangles[i].animate (
AnimationMode.LINEAR, 5000,
"x", stage.width / 2,
"rotation-angle-z", 500.0);
animations[i].timeline.start ();
}
animations[animations.length - 1].timeline.completed.connect (() => {
var text = new Text.full ("Bitstream Vera Sans 40",
"Congratulations!",
Color.from_string ("white"));
text.set_anchor_point_from_gravity (Gravity.CENTER);
text.x = stage.width / 2;
text.y = -text.height; // Off-stage
stage.add_actor (text);
text.show ();
var text_anim = text.animate (AnimationMode.EASE_OUT_BOUNCE, 3000,
"y", stage.height / 2);
text_anim.timeline.start ();
for (int i = 0; i < rectangles.length; i++) {
animations[i] = rectangles[i].animate (
AnimationMode.EASE_OUT_BOUNCE, 3000,
"x", Random.next_double () * stage.width,
"y", Random.next_double () * stage.height / 2
+ stage.height / 2,
"rotation-angle-z", rectangles[i].rotation_angle_z,
"opacity", 0.0);
animations[i].timeline.start ();
}
});
}
}
void main (string[] args) {
Clutter.init (ref args);
var demo = new ClutterDemo ();
demo.start ();
Clutter.main ();
}
_______________________________________________
Vala-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/vala-list