blob: 4d42f9cadde662579ff060fd896c18c607cd8d71 (
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
39
40
41
42
43
44
45
46
47
48
49
50
|
class Battery : Gtk.Box {
Astal.Icon icon = new Astal.Icon();
Astal.Label label = new Astal.Label();
public Battery() {
add(icon);
add(label);
var bat = AstalBattery.get_default();
bat.bind_property("battery-icon-name", icon, "icon", BindingFlags.SYNC_CREATE);
bat.bind_property("percentage", label, "label", BindingFlags.SYNC_CREATE, (_, src, ref trgt) => {
var p = Math.floor(src.get_double() * 100);
trgt.set_string(@"$p%");
return true;
});
}
}
class Clock : Astal.Label {
string format;
Astal.Time interval;
void sync() {
label = new DateTime.now_local().format(format);
}
public Clock(string format = "%H:%M - %A %e.") {
this.format = format;
interval = Astal.Time.interval(1000, null);
interval.now.connect(sync);
destroy.connect(interval.cancel);
}
}
class Left : Gtk.Box {
public Left() {
add(new Clock());
add(new Battery());
}
}
class Bar : Astal.Window {
public Bar() {
add(new Astal.CenterBox() {
start_widget = new Left()
});
show_all();
}
}
|