summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Cremer <HolgerCremer@gmail.com>2015-06-13 01:18:11 +0200
committerHolger Cremer <HolgerCremer@gmail.com>2015-06-13 01:18:11 +0200
commit288d11f4745e8d45844fc7d2f5a958fb66a16f81 (patch)
treeda1c253aba744d91be3814bb4cdd61582a802b9e
parentbf64a764cc5f4036baa6772733b373f44508f6af (diff)
downloadserial-barcode-scanner-288d11f4745e8d45844fc7d2f5a958fb66a16f81.tar.bz2
aaded missing file :(
-rw-r--r--src/curses-ui/message_box_overlay.vala53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/curses-ui/message_box_overlay.vala b/src/curses-ui/message_box_overlay.vala
new file mode 100644
index 0000000..66f5373
--- /dev/null
+++ b/src/curses-ui/message_box_overlay.vala
@@ -0,0 +1,53 @@
+/* Copyright 2015, Holger Cremer <HolgerCremer@gmail.com>
+ *
+ * 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.
+ */
+
+using Curses;
+
+public class MessageBoxOverlay {
+ Window win;
+ string dialogTitle;
+ int countdownValue;
+
+ public MessageBoxOverlay(string title, string message, int countdown) {
+ dialogTitle = title;
+ countdownValue = countdown;
+
+ win = new Window(LINES-11, COLS - 4, 9, 2);
+ win.bkgdset(COLOR_PAIR(2) | Attribute.BOLD);
+
+ win.clrtobot();
+ win.refresh();
+
+ win.addstr("\n" + message);
+ setTitle();
+ win.refresh();
+
+ Timeout.add_seconds(1, decrementTitleCountdown);
+ }
+
+ private void setTitle() {
+ var title = " === %s (%d) === ".printf(dialogTitle, countdownValue);
+ int title_x = (COLS - title.length)/2;
+ win.mvaddstr(0, title_x, title);
+ }
+
+ private bool decrementTitleCountdown() {
+ countdownValue--;
+ setTitle();
+ win.refresh();
+ // run again until countdown is zero
+ return countdownValue > 0;
+ }
+}