Release 0.41.92
[vala-gnome.git] / tests / objects / signals.vala
blob3e9764d9408106da9a39e4c3ffd3fea44123a8ad
1 using GLib;
3 class Maman.Foo : Object {
4 public signal void activated (bool b);
6 public void do_action (bool b) {
7 activated (b);
11 class Maman.Bar : Object {
12 void activated (Foo foo, bool b) {
13 if (b) {
14 stdout.printf (" BAD");
15 } else {
16 stdout.printf (" 5");
20 public void run () {
21 stdout.printf (" 2");
23 var foo = new Foo ();
25 foo.activated.connect ((foo, b) => {
26 if (b) {
27 stdout.printf (" 8");
28 } else {
29 stdout.printf (" 4");
31 });
33 foo.activated.connect (activated);
35 stdout.printf (" 3");
37 foo.do_action (false);
39 stdout.printf (" 6");
41 foo.activated.disconnect (activated);
43 stdout.printf (" 7");
45 foo.do_action (true);
47 stdout.printf (" 9");
51 class Maman.UserFoo : Object {
52 public signal void activated (int i1, int i2);
54 public void do_action () {
55 activated (6, -2);
59 class Maman.UserBar : Object {
60 public void run () {
61 stdout.printf (" 2");
63 var foo = new UserFoo ();
65 foo.activated.connect ((foo, i1, i2) => {
66 stdout.printf (" %d", i1 + i2);
67 });
69 stdout.printf (" 3");
71 foo.do_action ();
73 stdout.printf (" 5");
77 class Maman.ReturnFoo : Object {
78 public signal int int_activated (int arg);
79 public signal string string_activated (string arg);
82 class Maman.ReturnBar : Object {
83 public void run () {
84 stdout.printf (" 2");
86 var foo = new ReturnFoo ();
88 foo.int_activated.connect ((foo, arg) => {
89 stdout.printf (" %d", arg);
90 return arg + 1;
91 });
93 foo.string_activated.connect ((foo, arg) => {
94 stdout.printf (arg);
95 return " 6";
96 });
98 stdout.printf (" %d", foo.int_activated (3));
100 stdout.printf (foo.string_activated (" 5"));
102 stdout.printf (" 7");
106 void main () {
107 stdout.printf ("Signal Test: 1");
109 var bar = new Maman.Bar ();
110 bar.run ();
112 stdout.printf (" 10\n");
114 stdout.printf ("User Signal Test: 1");
116 var user_bar = new Maman.UserBar ();
117 user_bar.run ();
119 stdout.printf (" 6\n");
121 stdout.printf ("Signal Return Test: 1");
123 var return_bar = new Maman.ReturnBar ();
124 return_bar.run ();
126 stdout.printf (" 8\n");