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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
/* Copyright 2012, Sebastian Reichel <sre@ring0.de>
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
public void init_ui() {
init_restock_dialog();
init_main_window();
}
public void init_main_window() {
var window = builder.get_object("main") as Gtk.Window;
/* TODO */
window.destroy.connect(() => {
Gtk.main_quit();
});
}
public void init_restock_dialog() {
var window = builder.get_object("restock_dialog") as Gtk.Window;
/* product combobox */
var box = builder.get_object("comboboxtext1") as Gtk.ComboBoxText;
foreach(var entry in db.get_products().entries) {
box.append(entry.key, entry.value);
}
/* spinner button */
var spinner = builder.get_object("spinbutton1") as Gtk.SpinButton;
/* dialog buttons */
var cancel = builder.get_object("button-restock-cancel") as Gtk.Button;
var ok = builder.get_object("button-restock-add") as Gtk.Button;
cancel.clicked.connect(() => {
spinner.value = 0.0;
box.active = -1;
window.hide();
});
ok.clicked.connect(() => {
var id = box.get_active_id();
var product = (id != null) ? uint64.parse(id) : 0;
var amount = (int) spinner.get_value();
write_to_log("restock: %lld - %d\n", product, amount);
if(db.restock(product, amount)) {
spinner.value = 0.0;
box.active = -1;
window.hide();
}
});
}
public void show_restock_dialog() {
(builder.get_object("restock-dialog") as Gtk.Window).show();
}
public void show_about_dialog() {
(builder.get_object("about-dialog") as Gtk.Window).show();
}
public void show_main_window() {
(builder.get_object("main") as Gtk.Window).show();
}
[PrintfFormat]
public void write_to_log(string format, ...) {
var arguments = va_list();
var message = format.vprintf(arguments);
var time = new DateTime.now_local();
var view = builder.get_object("logview") as Gtk.TextView;
view.buffer.insert_at_cursor(time.format("[%Y-%m-%d %H:%M:%S] ") + message + "\n", -1);
view.scroll_to_mark(view.buffer.get_insert(), 0.0, true, 0.0, 1.0);
}
|