# ncurses output for DCT, by Shiar

# 1.11.0 200410152225 - uses class in filename instead of $set{display} check
# 1.10.0 200410140120 - all output functions seperated from main

use strict;
use warnings;

use Curses;

push @{$hook{init}}, sub {
	initscr;
	END { endwin; } # restore terminal on quit

	$set{height} = $LINES-2 if $LINES>=3;
	$set{width} = $COLS if $COLS;
}; # init

push @{$hook{showerror}}, sub {
	attron(A_REVERSE);
	addstr(0, 0, shift);
	attroff(A_REVERSE);
	clrtoeol;
	refresh;

	ReadKey; # wait for confirm
	1 while defined ReadKey(-1); # clear key buffer
}; # showerror

push @{$hook{showstack}}, sub {
	for (0..@stack-1) {
		addstr($set{height}-$_, 1, "$_: ".showval($stack[$_], $set{base}));
		clrtoeol;
	} # show stack
	clrtoeol($set{height}-@stack, 1);
}; # showstack

push @{$hook{refresh}}, sub {
	clear;
	addstr($set{height}+1, 0, "> ");  # prompt
}; # refresh

push @{$hook{showentry}}, sub {
	addstr($set{height}+1, 2, $_[0]);
	clrtoeol;
	refresh;
}; # showentry

return {
	author  => "Shiar",
	title   => "curses output",
	version => "1.11",
};

