From e4c9063867fe86dff4a89289332cef1a41410df8 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Wed, 26 Dec 2012 23:56:20 +0000 Subject: OSX project --- src/testApp.cpp | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) (limited to 'src/testApp.cpp') diff --git a/src/testApp.cpp b/src/testApp.cpp index 5a18248..22c2897 100755 --- a/src/testApp.cpp +++ b/src/testApp.cpp @@ -25,6 +25,10 @@ set box size - draw scrollbar & set scrollpoint - drag to scroll insertion point/ selection - set with mouse - get and set clipboard (ofxFensterManager.h) + + +vector insert a problem performance wise? +you need to use an iterator to insert into a vector anyway- may as well use a list */ @@ -33,14 +37,13 @@ editorWindow::~editorWindow(){ } void editorWindow::setup(){ - ofxFenster* win=ofxFensterManager::get()->createFenster(0, 0, 600, 600, OF_WINDOW); + ofxFenster* win=ofxFensterManager::get()->createFenster(0, 0, 400, 400, OF_WINDOW); win->setWindowTitle("editor"); win->addListener(this); selected=false; text.push_back(string("")); } void editorWindow::draw(){ - for (int i=0;i::iterator i; + string t; + int l; switch (key) { case OF_KEY_RETURN: - text.push_back(string("")); - insertionPoint.row=text.size()-1; + for (i=text.begin(),l=0;l<=insertionPoint.row;i++,l++) {} + t=text[insertionPoint.row].substr(insertionPoint.column); + text[insertionPoint.row].erase(insertionPoint.column); + text.insert(i,t); + insertionPoint.row++; insertionPoint.column=0; break; - case OF_KEY_LEFT: - printf("left\n"); + case 267: //OF_KEY_LEFT is wrong? insertionPoint.column--; if (insertionPoint.column<0) { if (insertionPoint.row>0) { @@ -96,15 +103,13 @@ void editorWindow::keyPressed(int key){ else insertionPoint.column=0; } break; - case OF_KEY_UP: - printf("up\n"); + case 269: //OF_KEY_UP is wrong? if (insertionPoint.row>0) { insertionPoint.row--; insertionPoint.column=min(insertionPoint.column,(int)text[insertionPoint.row].size()); } break; - case OF_KEY_RIGHT: - printf("right\n"); + case 268: //OF_KEY_RIGHT is wrong? insertionPoint.column++; if (insertionPoint.column>text[insertionPoint.row].size()) { if (text.size()>insertionPoint.column) { @@ -114,17 +119,17 @@ void editorWindow::keyPressed(int key){ else insertionPoint.column--; } break; - case OF_KEY_DOWN: - printf("down\n"); + case 270: //OF_KEY_DOWN is wrong? 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; + //char buf[2]; + //sprintf(buf,"%c",key); + //text[insertionPoint.row]+=buf; + text[insertionPoint.row].insert(insertionPoint.column,1,(char)key); insertionPoint.column++; } } -- cgit v1.2.3