From ee08d9d13e7db1518b4d88a982669f96c4fb9da4 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Wed, 14 Feb 2018 16:37:15 -0500 Subject: [PATCH] add C.screen_width and C.screen_height methods --- ext/svi/svi.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/ext/svi/svi.c b/ext/svi/svi.c index 8733010..a85bcc8 100644 --- a/ext/svi/svi.c +++ b/ext/svi/svi.c @@ -1,5 +1,30 @@ #include +#include + +static int Screen_Width = -1; +static int Screen_Height = -1; + +VALUE Rb_screen_width(void) +{ + return INT2FIX(Screen_Width); +} + +VALUE Rb_screen_height(void) +{ + return INT2FIX(Screen_Height); +} void Init_svi(void) { + /* Determine screen dimensions. */ + initscr(); + getmaxyx(stdscr, Screen_Height, Screen_Width); + endwin(); + + VALUE svi_module = rb_define_module("Svi"); + VALUE c_module = rb_define_module_under(svi_module, "C"); + rb_define_module_function(c_module, "screen_width", + Rb_screen_width, 0); + rb_define_module_function(c_module, "screen_height", + Rb_screen_height, 0); }