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); }