5 vala comment // Class which makes the event
6 vala code public class Game : Object {
7 vala comment // Note the use of the signal keyword
8 vala code public signal void score_change (int newScore, ref bool cancel);
12 vala comment // Score Property
13 vala code public int score {
15 vala code return _score;
18 vala code if (_score != value) {
19 vala code bool cancel = false;
20 vala code score_change (value, ref cancel);
21 vala code if (! cancel)
22 vala code _score = value;
28 vala comment // Class which handles the event
29 vala code public class Referee : Object
31 vala code public Game game { get; construct; }
33 vala code public Referee (construct Game game) {
37 vala comment // Monitor when a score changes in the game
38 vala code game.score_change += game_score_change;
41 vala comment // Notice how this method signature matches the score_change signal's signature
42 vala code private void game_score_change (Game game, int new_score, ref bool cancel) {
43 vala code if (new_score < 100)
44 vala code stdout.printf ("Good Score\n");
46 vala code cancel = true;
47 vala code stdout.printf ("No Score can be that high!\n");
52 vala comment // Class to test it all
53 vala code public class GameTest : Object
55 vala code public static void main () {
56 vala code var game = new Game ();
57 vala code var referee = new Referee (game);
58 vala code game.score = 70;
59 vala code game.score = 110;