Добавлен новый модуль window.

This commit is contained in:
Alexander Zhirov 2026-01-06 10:57:17 +03:00
parent 01d475e0fd
commit 405a6e7ead
Signed by: alexander
GPG key ID: C8D8BE544A27C511

64
source/ncui/core/window.d Normal file
View file

@ -0,0 +1,64 @@
module ncui.core.window;
import deimos.ncurses;
import ncui.core.ncwin;
import ncui.lib.checks;
final class Window
{
private:
NCWin _window;
bool _closed;
public:
this(int h, int w, int y, int x)
{
_window = ncuiNotNull!newwin(h, w, y, x);
}
int height()
{
return ncuiNotErr!getmaxy(_window);
}
int width()
{
return ncuiNotErr!getmaxx(_window);
}
void border()
{
ncuiNotErr!box(_window, 0, 0);
}
void erase()
{
ncuiNotErr!werase(_window);
}
void refresh()
{
ncuiNotErr!wrefresh(_window);
}
@property NCWin handle()
{
return _window;
}
void close()
{
if (_closed)
return;
if (!_window.isNull)
ncuiNotErr!delwin(_window);
_window = NCWin(null);
_closed = true;
}
~this()
{
close();
}
}