From f73feba12a50e4410821558a06dbcaf5a1cd165a Mon Sep 17 00:00:00 2001 From: Joey Yakimowich-Payne Date: Sun, 8 Jul 2018 13:35:52 +0900 Subject: [PATCH] Add callback support to console --- src/libnx/console.nim | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/libnx/console.nim b/src/libnx/console.nim index b82d31f..3747d88 100644 --- a/src/libnx/console.nim +++ b/src/libnx/console.nim @@ -4,7 +4,7 @@ import macros, strutils type - PrintCallback* = proc (con: pointer; c: cint): bool + PrintCallback* = proc (con: Console; c: char): bool Font* = ref ConsoleFont @@ -65,7 +65,12 @@ proc toConsole(pconsole: ptr PrintConsole): Console = result.fg = pconsole.fg result.bg = pconsole.bg result.flags = {} - #result.printCharCallback = cast[PrintCallback](pconsole.PrintChar) + + result.pcon.PrintChar = proc (con: pointer, c: cint): bool {.cdecl.} = + let console = cast[ptr PrintConsole](con).toConsole() + if not console.printCharCallback.isNil: + return console.printCharCallback(console, c.char) + result.initialised = pconsole.consoleInitialised proc setFont*(console: Console; font: Font) =