From 21e7d9260ebf66a70dc09cd912a0a5aa32abcebd Mon Sep 17 00:00:00 2001 From: Sebastian Reichel Date: Mon, 25 Feb 2013 22:33:35 +0100 Subject: new curses user interface --- src/ui/message_box.vala | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/ui/message_box.vala (limited to 'src/ui/message_box.vala') diff --git a/src/ui/message_box.vala b/src/ui/message_box.vala new file mode 100644 index 0000000..4f9c3f6 --- /dev/null +++ b/src/ui/message_box.vala @@ -0,0 +1,45 @@ +using Curses; + +public class MessageBox { + Window win; + Window subwin; + DateTime last; + + public MessageBox() { + win = new Window(LINES-9, COLS - 2, 8, 1); + win.bkgdset(COLOR_PAIR(0)); + + win.clrtobot(); + win.box(0, 0); + win.refresh(); + + subwin = win.derwin(LINES-11, COLS-4, 1, 1); + subwin.scrollok(true); + subwin.clrtobot(); + subwin.refresh(); + + last = new DateTime.from_unix_utc(0); + } + + public void add(string msg) { + var now = new DateTime.now_local(); + + if(now.get_day_of_year() != last.get_day_of_year() || now.get_year() != last.get_year()) { + string curtime = now.format("%Y-%m-%d"); + subwin.addstr("\nDate Changed: " + curtime); + } + + last = now; + + string curtime = now.format("%H:%M:%S"); + subwin.addstr("\n[" + curtime + "] " + msg); + subwin.refresh(); + } + + public void redraw() { + win.touchwin(); + win.refresh(); + subwin.touchwin(); + subwin.refresh(); + } +} -- cgit v1.2.3