// // Created by yukun on 29.11.19. // #include #include #include "vkvm.hpp" #include "Terminal.h" std::string Terminal::getString() { return s; } void Terminal::init(){ s = s + cursor; } void Terminal::setString(char c) { // s.erase(s.end() - 1); // s = s + c + cursor; int i = s.find(cursor); std::cout << i << std::endl; std::cout<< s.length() -1 < i + 1; l--){ s[l] = s[l-1]; } s[i+1] = c; } else{ s = s + cursor; s[s.length()-2] = c; } } void Terminal::subString(){ // if(s.length() > 1) // s.erase(s.end() - 1); // s.erase(s.end() - 1); // s = s + cursor; if(s.length() > 1) { int i = s.find(cursor); s.erase(i - 1, 1); } } void Terminal::shiftpressed() { status = 1; } void Terminal::shiftup() { status = 0; } int Terminal::getstatus() { return status; } void Terminal::moveleft(){ int i = s.find(cursor); if(i > 0){ char c = s[i-1]; s[i-1] = cursor; s[i] = c; } } void Terminal::moveright() { int i = s.find(cursor); if(i < (s.length() - 1)){ char c = s[i+1]; s[i+1] = cursor; s[i] = c; } } void Terminal::movedown() { std::string news=""; int i = s.find(cursor); s.erase(i, 1); std::vector> vec(100,std::vector(21,0)); for(int n = 0; n < 100; n++){ if(n*21 < s.length()) { for (int m = 0; m < 21; m++) { int sum = n * 21 + m; if (s[sum] != '\n') { vec[n][m] = s[sum]; std::cout<<"vec before" + vec[n][m]<= cursorcolumn){ cursorrow++; } else if(vec[cursorrow+1].size() >=1){ cursorrow++; cursorcolumn = vec[cursorrow].size()-1; } std::cout<<"after" + std::to_string(cursorrow) + ' '+ std::to_string(cursorcolumn)<