1
Clutter = imports.gi.Clutter;
2
GLib = imports.gi.GLib;
4
Settings = imports.Settings;
7
parent: Clutter.Group.type,
14
var state = Math.floor(Math.random() * Settings.colors);
16
function theme_changed()
18
self.remove_actor(self.on);
19
self.on = new Clutter.Clone({source: Settings.theme.colors[state]});
20
self.on.set_size(main.tile_size, main.tile_size);
21
self.add_actor(self.on);
27
this.on = new Clutter.Clone({source: Settings.theme.colors[state]});
29
this.get_state = function ()
34
this.animate_out = function (timeline)
36
this.on.animate_with_timeline(Clutter.AnimationMode.LINEAR, timeline,
38
height: main.tile_size * 2,
39
width: main.tile_size * 2,
44
this.animate_with_timeline(Clutter.AnimationMode.LINEAR, timeline,
49
timeline.signal.completed.connect(this.hide_light, this);
51
// GLib.main_context_iteration();
54
this.animate_to = function (new_x, new_y, timeline)
56
var anim_mode = Settings.zealous ?
57
Clutter.AnimationMode.EASE_OUT_BOUNCE :
58
Clutter.AnimationMode.EASE_OUT_QUAD;
59
this.animate_with_timeline(anim_mode, timeline,
65
// GLib.main_context_iteration();
68
this.get_closed = function ()
73
this.close_tile = function (timeline)
76
this.animate_out(timeline);
79
this.hide_light = function (timeline, light)
91
this.set_light_x = function (new_x)
96
this.set_light_y = function (new_y)
101
this.get_light_x = function ()
106
this.get_light_y = function ()
112
this.on.set_size(main.tile_size, main.tile_size);
115
this.reactive = true;
117
this.set_anchor_point(main.tile_size / 2, main.tile_size / 2);
119
this.add_actor(new Clutter.Rectangle({width: main.tile_size, height: main.tile_size, color: {alpha:255}}));
120
this.add_actor(this.on);
122
Settings.Watcher.signal.theme_changed.connect(theme_changed);