From f2db3b2d3af91af2bcfb0623b722ae7be5adba04 Mon Sep 17 00:00:00 2001 From: yukun Date: Thu, 19 Dec 2019 12:22:39 +0100 Subject: [PATCH] realisze the Linkshift and rightShift. Send a signal value -127 to the sharedmemory. --- main/main.cpp | 11 +++++++++ src/Terminal.cpp | 64 ++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 70 insertions(+), 5 deletions(-) diff --git a/main/main.cpp b/main/main.cpp index 205182d..2dee6ac 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -92,13 +92,24 @@ int main() { if(vkvm::KeyCode::Arrow_Left == keycode){ terminal.moveleft(); std::cout << terminal.getString() << std::endl; + vkvm::setText(terminal.getString()); + vkvm::callEvent(vkvm::EventType::RenderText); } if(vkvm::KeyCode::Arrow_Right == keycode){ terminal.moveright(); std::cout << terminal.getString() << std::endl; + vkvm::setText(terminal.getString()); + vkvm::callEvent(vkvm::EventType::RenderText); } +// if(vkvm::KeyCode::Arrow_Down == keycode){ +// terminal.movedown(); +// std::cout << terminal.getString() << std::endl; +// vkvm::setText(terminal.getString()); +// vkvm::callEvent(vkvm::EventType::RenderText); +// } + diff --git a/src/Terminal.cpp b/src/Terminal.cpp index 525644e..d71055f 100644 --- a/src/Terminal.cpp +++ b/src/Terminal.cpp @@ -2,6 +2,7 @@ // Created by yukun on 29.11.19. // #include +#include #include "vkvm.hpp" #include "Terminal.h" @@ -29,9 +30,8 @@ void Terminal::setString(char c) { } else{ s = s + cursor; - std::cout << "else1 " + s << std::endl; s[s.length()-2] = c; - std::cout << "else2 " + s << std::endl; + } } @@ -41,9 +41,10 @@ void Terminal::subString(){ // s.erase(s.end() - 1); // s.erase(s.end() - 1); // s = s + cursor; - int i = s.find(cursor); - s.erase(i-1, 1); - + if(s.length() > 1) { + int i = s.find(cursor); + s.erase(i - 1, 1); + } } void Terminal::shiftpressed() { @@ -79,6 +80,59 @@ void Terminal::moveright() { } 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)<