#include #include #include #include "../Tests.hpp" #include "core/WindowManager.hpp" namespace W = Core::Window; static W::Button closeButton = 0; static W::Button testButton = 0; static W::Button textButton = 0; static bool isRunning(void*) { return !W::shouldClose() && !W::isButtonDown(closeButton); } static void tick(void*) { if(!W::isInputEnabled()) { LOG_INFO( "TPS: #\nFPS: #\n", W::getTicksPerSecond(), W::getFramesPerSecond()); printf( "%12s | Down: %d | DownTime: %3d | Released: %d\n", W::getButtonName(closeButton), W::isButtonDown(closeButton), W::getButtonDownTime(closeButton), W::wasButtonReleased(closeButton)); printf( "%12s | Down: %d | DownTime: %3d | Released: %d\n", W::getButtonName(testButton), W::isButtonDown(testButton), W::getButtonDownTime(testButton), W::wasButtonReleased(testButton)); Core::Vector2 mouse = W::getLastMousePosition(); LOG_INFO("Mouse: # #\n", mouse[0], mouse[1]); } if(W::getButtonDownTime(textButton) == 1) { if(W::isInputEnabled()) { W::disableInput(); } else { W::enableInput(); } } if(W::isInputEnabled()) { printf("Input: '%s'\n", W::getInputString()); printf("Cursor: %zu\n", W::getInputCursor()); } } static void render(void*, float) { } static void printReport( Core::LogLevel l, const char* file, int line, void*, const char* message) { printLog(l, file, line, TERMINAL_RED, "#", message); } void testWindow() { setReportHandler(printReport, nullptr); W::Options options = {{800, 480}, false, "Test"}; if(W::open(options)) { return; } closeButton = W::addButton("Close Button"); W::bindKeyToButton(closeButton, GLFW_KEY_Q); testButton = W::addButton("Test Button"); W::bindKeyToButton(testButton, GLFW_KEY_T); textButton = W::addButton("Text Button"); W::bindKeyToButton(textButton, GLFW_KEY_C); W::show(); W::setRunHandler(isRunning, nullptr); W::setTickHandler(tick, nullptr); W::setRenderHandler(render, nullptr); W::setNanosPerTick(50'000'000); W::run(); W::close(); }