summaryrefslogtreecommitdiff
path: root/src/testApp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/testApp.cpp')
-rwxr-xr-xsrc/testApp.cpp140
1 files changed, 140 insertions, 0 deletions
diff --git a/src/testApp.cpp b/src/testApp.cpp
new file mode 100755
index 0000000..83620b9
--- /dev/null
+++ b/src/testApp.cpp
@@ -0,0 +1,140 @@
+#include "testApp.h"
+//--------------------------------------------------------------
+
+/*
+text editor functionality:
+
+keep text as 1 string? or as a vector of strings?
+prob faster to use a vector of strings for display
+makes it more awkward for selections? keep track of which line/char to start and end
+
+alternative - go through text and seperate into lines either by width or by /n every time it changes
+keep a display copy with /n's inserted?
+
+alternative - just have a horizontal scroll bar (contextual)
+maybe draw into an FBO in order to put a window in a window
+
+method to retreive text as a single string with \n's
+
+special key functions including ENTER, BACKSPACE, DELETE, ARROW KEYS
+
+drawing functionality: make line breaks (easier with mono font)
+
+set box size - draw scrollbar & set scrollpoint - drag to scroll
+
+insertion point/ selection - set with mouse -
+
+get and set clipboard (ofxFensterManager.h)
+
+
+*/
+editorWindow::~editorWindow(){
+ cout << "editor window destroyed" << endl;
+}
+void editorWindow::setup(){
+ ofxFenster* win=ofxFensterManager::get()->createFenster(0, 0, 600, 600, 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*10));
+ }
+ //draw blinking cursor
+ /*
+ not trivial if we deal with 1 string with /ns in
+ we have to scan the file for /ns every time we display the blinking cursor
+ is easier with vectors?
+ the difficulty here is that its messy to remember row/column
+ can we even get the height of a string formatted block
+ shorter strings make inserting quicker
+ could have a single string and maintain a vector representing line breaks- however inserting a char meansn having to manipulate the entire vector
+ with a vector of strings and then row/column insertion point its prob better
+ */
+ if (selected) {
+ //draw selection
+ }
+ else {
+ //draw insertion point
+ }
+
+}
+void editorWindow::keyPressed(int key){
+ switch (key) {
+ case OF_KEY_RETURN:
+ text+="\n";
+ break;
+ default:
+ char buf[2];
+ sprintf(buf,"%c",key);
+ text+=buf;
+ }
+}
+void editorWindow::keyReleased(int key){
+ //key repeat?
+}
+//--------------------------------------------------------------
+
+void testApp::setup(){
+ ofBackground(0);
+ ofSetColor(255);
+ editorWin=new editorWindow();
+ editorWin->setup();
+}
+
+//--------------------------------------------------------------
+void testApp::update(){
+}
+
+//--------------------------------------------------------------
+void testApp::draw(){
+
+}
+
+//--------------------------------------------------------------
+void testApp::keyPressed(int key){
+
+}
+
+//--------------------------------------------------------------
+void testApp::keyReleased(int key){
+
+}
+
+//--------------------------------------------------------------
+void testApp::mouseMoved(int x, int y ){
+
+}
+
+//--------------------------------------------------------------
+void testApp::mouseDragged(int x, int y, int button){
+
+}
+
+//--------------------------------------------------------------
+void testApp::mousePressed(int x, int y, int button){
+
+}
+
+//--------------------------------------------------------------
+void testApp::mouseReleased(int x, int y, int button){
+
+}
+
+//--------------------------------------------------------------
+void testApp::windowResized(int w, int h){
+
+}
+
+//--------------------------------------------------------------
+void testApp::gotMessage(ofMessage msg){
+
+}
+
+//--------------------------------------------------------------
+void testApp::dragEvent(ofDragInfo dragInfo){
+
+}