public string prop { get; set; }
}
+class Bar : Object {
+ public bool success = false;
+
+ public void sig_cb () {
+ success = true;
+ }
+
+ public void sig_after_cb () {
+ assert (success);
+ }
+}
+
bool success = false;
void sig_cb () {
}
void main () {
- var real = new Foo ();
- dynamic Object foo = real;
+ {
+ var real = new Foo ();
+ dynamic Object foo = real;
- foo.prop = "foo";
- string s = foo.prop;
- assert (s == "foo");
+ foo.prop = "foo";
+ string s = foo.prop;
+ assert (s == "foo");
- success = false;
- var id1 = foo.sig.connect_after (sig_after_cb);
- var id2 = foo.sig.connect (sig_cb);
- real.sig ();
- assert (success);
+ success = false;
+ var id1 = foo.sig.connect_after (sig_after_cb);
+ var id2 = foo.sig.connect (sig_cb);
+ real.sig ();
+ assert (success);
+
+ success = false;
+ SignalHandler.disconnect (foo, id1);
+ SignalHandler.disconnect (foo, id2);
+ real.sig ();
+ assert (!success);
+ }
+ {
+ var real = new Foo ();
+ dynamic Object foo = real;
+
+ var bar = new Bar ();
+ bar.success = false;
+ var id1 = foo.sig.connect_after (bar.sig_after_cb);
+ var id2 = foo.sig.connect (bar.sig_cb);
+ real.sig ();
+ assert (bar.success);
- success = false;
- SignalHandler.disconnect (foo, id1);
- SignalHandler.disconnect (foo, id2);
- real.sig ();
- assert (!success);
+ bar.success = false;
+ SignalHandler.disconnect (foo, id1);
+ SignalHandler.disconnect (foo, id2);
+ real.sig ();
+ assert (!bar.success);
+ }
}