#include #include "Terminal.hpp" 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)< i; x--){ s[x] = s[x-1]; } s[x] = '\n'; count = 0; } } std::cout<<"plus enter:" + s <= 0){ if (s[beforcursorenter] != '\n') { beforcursorenter--; } else { break; } } std::cout<<"cursorpositon:" + std::to_string(cursorposition)<= (cursorposition - beforcursorenter)) { for(int newcursorposition = cursorposition;newcursorposition < (aftercursorenter1 + cursorposition -beforcursorenter -1);newcursorposition++){ s[newcursorposition] = s[newcursorposition + 1]; } s[aftercursorenter1 + cursorposition - beforcursorenter -1] = cursor; } else{ for(int newcursorposition = cursorposition;newcursorposition < (aftercursorenter2); newcursorposition++){ s[newcursorposition] = s[newcursorposition + 1]; } s[aftercursorenter2] = cursor; } } else{ std::cout<<"enter the loop & aftercursorenter2 ==s.npos" <= (cursorposition - beforcursorenter)) { std::cout<<"enter the loop if" < i; x--){ s[x] = s[x-1]; } s[x] = '\n'; count = 0; } } std::cout<<"plus enter:" + s <= 0){ if (s[beforecursorenter1] != '\n') { beforecursorenter1--; } else { break; } } std::cout<<"cursorpositon:" + std::to_string(cursorposition)<= 0){ if (s[beforecursorenter2] != '\n') { beforecursorenter2--; } else { break; } } std::cout<<"beforecursorenter2:" + std::to_string(beforecursorenter2)<= (cursorposition - beforecursorenter1)) { for(int newcursorposition = cursorposition;newcursorposition > (beforecursorenter2 + cursorposition - beforecursorenter1 );newcursorposition--){ s[newcursorposition] = s[newcursorposition - 1]; } s[beforecursorenter2 + cursorposition - beforecursorenter1] = cursor; } else{ for(int newcursorposition = cursorposition;newcursorposition > (beforecursorenter1); newcursorposition--){ s[newcursorposition] = s[newcursorposition -1]; } s[beforecursorenter1] = cursor; } } else{ std::cout<<"enter the loop & aftercursorenter2 ==s.npos" <= (cursorposition - beforecursorenter1)) { std::cout<<"enter the loop if" < (cursorposition -beforecursorenter1 -1); newcursorposition--){ s[newcursorposition] = s[newcursorposition - 1]; std::cout<<"forcursorpositon:" + std::to_string(cursorposition)< (beforecursorenter1); newcursorposition--){ s[newcursorposition] = s[newcursorposition - 1]; } std::cout<<"new cursorposition" + std::to_string(beforecursorenter1) <