summaryrefslogtreecommitdiff
path: root/src/testApp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/testApp.cpp')
-rwxr-xr-xsrc/testApp.cpp37
1 files changed, 21 insertions, 16 deletions
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<text.size();i++) {
ofDrawBitmapString(text[i],10,15+(i*12));
}
@@ -78,15 +81,19 @@ void editorWindow::draw(){
#define OF_KEY_INSERT
*/
void editorWindow::keyPressed(int key){
- printf("%i\n",key);
+ vector<string>::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++;
}
}