summaryrefslogtreecommitdiff
path: root/tests/objects/signals-struct.vala
blob: 8ee6e4d855f239210a66dbed210553f02849c198 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
struct Foo {
	public string s;
	public int i;
}

struct Faz : Foo {
}

[CCode (has_type_id = false)]
struct Baz {
	public int i;
	public string s;
}

class Bar : Object {
	public signal void on_foo (Foo foo);
	public signal void on_faz (Faz faz);
	public signal void on_baz (Baz baz);
}

void main () {
	var bar = new Bar ();
	bar.on_foo.connect ((f) => {
		assert (f.s == "foo");
		assert (f.i == 23);
	});
	bar.on_foo ({ "foo", 23 });
	bar.on_faz.connect ((f) => {
		assert (f.s == "faz");
		assert (f.i == 42);
	});
	bar.on_faz ({ "faz", 42 });
	bar.on_baz.connect ((b) => {
		assert (b.i == 4711);
		assert (b.s == "baz");
	});
	bar.on_baz ({ 4711, "baz" });
}