Notcurses-Native.git | examples/ | 01-hello.raku edit


#!/usr/bin/env raku
use lib 'lib';
use NativeCall;
use Notcurses::Native;
use Notcurses::Native::Types;
use Notcurses::Native::Plane;

# Simplest notcurses program: display centered text, wait for keypress

my $nc = notcurses_init(NotcursesOptions.new, Pointer)
	or die "Failed to initialize notcurses";

my $std = notcurses_stdplane($nc);
my uint32 ($rows, $cols);
ncplane_dim_yx($std, $rows, $cols);

# Center the message
my $msg = 'Hello from Notcurses::Native!';
my $y = ($rows / 2).Int;
my $x = (($cols - $msg.chars) / 2).Int;

ncplane_set_fg_rgb8($std, 0, 255, 128);
ncplane_putstr_yx($std, $y, $x, $msg);

ncplane_set_fg_rgb8($std, 128, 128, 128);
ncplane_putstr_yx($std, $y + 2, ($cols - 22) div 2, 'Press any key to exit.');

notcurses_render($nc);

# Wait for a keypress
my $ni = Ncinput.new;
notcurses_get_blocking($nc, $ni);

notcurses_stop($nc);