From 54d48b25a08b5b238371b2d1bd0f594dad8dbeb9 Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Mon, 20 Apr 2015 12:35:47 -0700 Subject: 1111 - start adding ncurses primitives --- cpp/070console | 34 ++++++++++++++++++++++++++++++++++ cpp/console.mu | 5 +++++ cpp/makefile | 2 +- 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 cpp/070console create mode 100644 cpp/console.mu diff --git a/cpp/070console b/cpp/070console new file mode 100644 index 00000000..18faffb6 --- /dev/null +++ b/cpp/070console @@ -0,0 +1,34 @@ +//: Text-mode cursor primitives. Currently thin wrappers around ncurses calls. + +:(before "End Includes") +#include + +:(before "End Primitive Recipe Declarations") +CONSOLE_MODE, +:(before "End Primitive Recipe Numbers") +Recipe_number["console-mode"] = CONSOLE_MODE; +:(before "End Primitive Recipe Implementations") +case CONSOLE_MODE: { + initscr(); + break; +} + +:(before "End Primitive Recipe Declarations") +RETRO_MODE, +:(before "End Primitive Recipe Numbers") +Recipe_number["retro-mode"] = RETRO_MODE; +:(before "End Primitive Recipe Implementations") +case RETRO_MODE: { + endwin(); + break; +} + +:(before "End Primitive Recipe Declarations") +WAIT_FOR_KEY, +:(before "End Primitive Recipe Numbers") +Recipe_number["wait-for-key"] = WAIT_FOR_KEY; +:(before "End Primitive Recipe Implementations") +case WAIT_FOR_KEY: { + getch(); + break; +} diff --git a/cpp/console.mu b/cpp/console.mu new file mode 100644 index 00000000..04eee3a2 --- /dev/null +++ b/cpp/console.mu @@ -0,0 +1,5 @@ +recipe main [ + console-mode 0:literal/screen + wait-for-key + retro-mode 0:literal/screen +] diff --git a/cpp/makefile b/cpp/makefile index 69b7318e..1d4cf9a7 100644 --- a/cpp/makefile +++ b/cpp/makefile @@ -1,5 +1,5 @@ mu: makefile enumerate/enumerate tangle/tangle mu.cc - g++ -g -Wall -Wextra -fno-strict-aliasing mu.cc -o mu + g++ -g -Wall -Wextra -fno-strict-aliasing mu.cc -lncurses -o mu # To see what the program looks like after all layers have been applied, read # mu.cc -- cgit 1.4.1-2-gfad0