diff options
Diffstat (limited to 'src/testApp.cpp')
| -rwxr-xr-x | src/testApp.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/testApp.cpp b/src/testApp.cpp index 3f60650..5a18248 100755 --- a/src/testApp.cpp +++ b/src/testApp.cpp @@ -60,19 +60,72 @@ void editorWindow::draw(){ } else { //draw insertion point + if ((ofGetElapsedTimeMillis()/300)%2) { + ofRect((insertionPoint.column*8)+10,(insertionPoint.row*12)+5,2,10); + } } } +/* + #define OF_KEY_LEFT (100 | OF_KEY_MODIFIER) + #define OF_KEY_UP (101 | OF_KEY_MODIFIER) + #define OF_KEY_RIGHT (102 | OF_KEY_MODIFIER) + #define OF_KEY_DOWN (103 | OF_KEY_MODIFIER) + #define OF_KEY_PAGE_UP (104 | OF_KEY_MODIFIER) + #define OF_KEY_PAGE_DOWN (105 | OF_KEY_MODIFIER) + #define OF_KEY_HOME (106 | OF_KEY_MODIFIER) + #define OF_KEY_END (107 | OF_KEY_MODIFIER) + #define OF_KEY_INSERT +*/ void editorWindow::keyPressed(int key){ + printf("%i\n",key); switch (key) { case OF_KEY_RETURN: text.push_back(string("")); insertionPoint.row=text.size()-1; + insertionPoint.column=0; + break; + case OF_KEY_LEFT: + printf("left\n"); + insertionPoint.column--; + if (insertionPoint.column<0) { + if (insertionPoint.row>0) { + insertionPoint.row--; + insertionPoint.column=text[insertionPoint.row].size(); + } + else insertionPoint.column=0; + } + break; + case OF_KEY_UP: + printf("up\n"); + if (insertionPoint.row>0) { + insertionPoint.row--; + insertionPoint.column=min(insertionPoint.column,(int)text[insertionPoint.row].size()); + } + break; + case OF_KEY_RIGHT: + printf("right\n"); + insertionPoint.column++; + if (insertionPoint.column>text[insertionPoint.row].size()) { + if (text.size()>insertionPoint.column) { + insertionPoint.row++; + insertionPoint.column=min(insertionPoint.column,(int)text[insertionPoint.row].size()); + } + else insertionPoint.column--; + } + break; + case OF_KEY_DOWN: + printf("down\n"); + if (text.size()>insertionPoint.row) { + insertionPoint.row++; + insertionPoint.column=min(insertionPoint.column,(int)text[insertionPoint.row].size()); + } break; default: char buf[2]; sprintf(buf,"%c",key); text[insertionPoint.row]+=buf; + insertionPoint.column++; } } void editorWindow::keyReleased(int key){ |
