#include "vkvm.hpp" #include #include #include "internal.hpp" #include "../src/Terminal.h" int main() { vkvm::initialize(0); Terminal terminal = Terminal(); vkvm::registerEvent(vkvm::KeyDown, [&terminal]() { vkvm::KeyCode keycode = vkvm::getLastPressedKey(); std::cout << keycode << std::endl; if(((vkvm::KeyCode::ShiftLeft & 0xfff) == keycode) ||((vkvm::KeyCode::ShiftRight & 0xfff) == keycode)){ terminal.shiftpressed(); } if(((vkvm::KeyCode::Zero & 0xfff) <= keycode) && (keycode <= (vkvm::Nine & 0xfff))){ char ch = keycode - (vkvm::KeyCode::Zero & 0xfff) + '0'; std::cout << ch << std::endl; terminal.setString(ch); vkvm::setText(terminal.getString()); std::cout<< vkvm::getText()<< std::endl; vkvm::callEvent(vkvm::EventType::RenderText); } if(((vkvm::KeyCode::A & 0xfff) <= keycode) && (keycode <= (vkvm::KeyCode::Z & 0xfff))){ int status = terminal.getstatus(); char ch; if(status == 0){ ch = keycode - (vkvm::KeyCode::A & 0xfff) + 'a'; } else{ ch = keycode - (vkvm::KeyCode::A & 0xfff) + 'A'; } std::cout << ch << std::endl; terminal.setString(ch); vkvm::setText(terminal.getString()); std::cout<< vkvm::getText()<< std::endl; vkvm::callEvent(vkvm::EventType::RenderText); } if((vkvm::KeyCode::Space & 0xfff) == keycode){ char ch = keycode - (vkvm::KeyCode::Space & 0xfff) + ' '; std::cout << ch << std::endl; terminal.setString(ch); vkvm::setText(terminal.getString()); std::cout<< vkvm::getText()<< std::endl; vkvm::callEvent(vkvm::EventType::RenderText); } if((vkvm::KeyCode::Backspace & 0xfff) == keycode){ char ch = keycode - (vkvm::KeyCode::Backspace & 0xfff) + ' '; std::cout << ch << std::endl; terminal.subString(); vkvm::setText(terminal.getString()); std::cout<< vkvm::getText()<< std::endl; vkvm::callEvent(vkvm::EventType::RenderText); } if((vkvm::KeyCode::Tab & 0xfff) == keycode){ char ch = keycode - (vkvm::KeyCode::Tab & 0xfff) + ' '; for(int i = 0; i < 3; i++) { std::cout << ch << std::endl; terminal.setString(ch); } vkvm::setText(terminal.getString()); std::cout<< vkvm::getText()<< std::endl; vkvm::callEvent(vkvm::EventType::RenderText); } if((vkvm::KeyCode::Enter & 0xfff) == keycode){ char ch = '\n'; std::cout << ch << std::endl; terminal.setString(ch); vkvm::setText(terminal.getString()); std::cout<< vkvm::getText()<< std::endl; vkvm::callEvent(vkvm::EventType::RenderText); } }); vkvm::registerEvent(vkvm::KeyUp, [&terminal]() { vkvm::KeyCode keycode = vkvm::getLastPressedKey(); if(((vkvm::KeyCode::ShiftLeft & 0xfff) == keycode) ||((vkvm::KeyCode::ShiftRight & 0xfff) == keycode)){ terminal.shiftup(); } // char ch = keycode - (vkvm::KeyCode::A & 0xfff) + 'A'; // std::cout << ch << std::endl; // terminal.setString(ch); // vkvm::setText(terminal.getString()); // std::cout<< vkvm::getText()<< std::endl; // vkvm::callEvent(vkvm::EventType::RenderText); }); while(1){ sleep(0.1); } }