diff --git a/example/src/testApp.cpp b/example/src/testApp.cpp index 43ab719..f6ef6f5 100644 --- a/example/src/testApp.cpp +++ b/example/src/testApp.cpp @@ -83,19 +83,20 @@ void testApp::draw() //-------------------------------------------------------------- void testApp::keyPressed(int key) { - if(key == 'c') - cout << "CLIPBOARD DATA: " << ofxFensterManager::get()->getClipboard() << endl; + } //-------------------------------------------------------------- -void testApp::keyReleased(int key, ofxFenster* win) +void testApp::keyReleased(int key) { //cout << (0x0400) << endl; //cout << (101 | OF_KEY_MODIFIER) << " " << key << endl; if(key=='f') - win->toggleFullscreen(); + ofxFensterManager::get()->getPrimaryWindow()->toggleFullscreen(); if(key==' ') ofxFensterManager::get()->createFenster(0, 0, 400, 300, OF_WINDOW)->addListener(&imgWin); + if(key == 'c') + cout << "CLIPBOARD DATA: " << ofxFensterManager::get()->getClipboard() << endl; } //this only works if testApp is extending ofxFensterListener and not ofBaseApp diff --git a/example/src/testApp.h b/example/src/testApp.h index 30d6bfa..8b25618 100644 --- a/example/src/testApp.h +++ b/example/src/testApp.h @@ -19,6 +19,10 @@ class imageWindow: public ofxFensterListener { void keyReleased(int key, ofxFenster* window) { if(key==' ') ofxFensterManager::get()->deleteFenster(window); + if(key == 'm'){ //this is to test set and get window position + ofPoint winPos = window->getWindowPosition(); + window->setWindowPosition(winPos.x + 10, winPos.y); + } } ofImage img; @@ -66,7 +70,7 @@ class testApp : public ofBaseApp { void draw(); void keyPressed (int key); - void keyReleased(int key, ofxFenster* win); + void keyReleased(int key); void mouseMoved(int x, int y ); void mouseMoved(int x, int y, ofxFenster* win); void mouseDragged(int x, int y, int button); diff --git a/libs/ghost/lib/linux64/libGhost64.a b/libs/ghost/lib/linux64/libGhost64.a index 5eef14e..a542563 100644 Binary files a/libs/ghost/lib/linux64/libGhost64.a and b/libs/ghost/lib/linux64/libGhost64.a differ diff --git a/src/ofxFenster.cpp b/src/ofxFenster.cpp index 9a6d790..05a480a 100644 --- a/src/ofxFenster.cpp +++ b/src/ofxFenster.cpp @@ -399,6 +399,11 @@ void ofxFenster::addListener(ofxFensterListener* listener) { updateListenersMousePos(); } +void ofxFenster::addListener(ofBaseApp* app){ + ofxFensterToOfBaseApp* appWrapper = new ofxFensterToOfBaseApp(app); + addListener(appWrapper); +} + void ofxFenster::dragEvent(ofDragInfo dragInfo) { } @@ -500,3 +505,4 @@ void ofxFenster::setDraggable(bool d) { void ofxFenster::setDragAndDrop(bool on) { win->setAcceptDragOperation(on); } + diff --git a/src/ofxFenster.h b/src/ofxFenster.h index 144fd0f..9a12f7c 100644 --- a/src/ofxFenster.h +++ b/src/ofxFenster.h @@ -177,6 +177,7 @@ class ofxFenster GHOST_IWindow* getWindow(); void addListener(ofxFensterListener* listener); + void addListener(ofBaseApp* app); void onTimer(GHOST_ITimerTask* task, GHOST_TUns64 time); void setDragAndDrop(bool on); diff --git a/src/ofxFensterManager.cpp b/src/ofxFensterManager.cpp index 9416833..73619d8 100644 --- a/src/ofxFensterManager.cpp +++ b/src/ofxFensterManager.cpp @@ -11,76 +11,6 @@ #include "GHOST_SystemX11.h" #endif -/////////////////////////////////////////// -// HELPERS FOR ofRunFensterApp - -class ofxFensterToOfBaseApp: public ofxFensterListener{ - -public: - ofxFensterToOfBaseApp(ofBaseApp* base){ - mouseX = mouseY = 0; - baseApp = base; - } - - void setup(){ - baseApp->setup(); - } - void update(){ - baseApp->update(); - } - void draw(){ - baseApp->draw(); - } - void exit(){ - baseApp->exit(); - } - - void windowResized(int w, int h){ - baseApp->windowResized(w, h); - } - - void keyPressed( int key ){ - baseApp->keyPressed(key); - } - void keyReleased( int key ){ - baseApp->keyReleased(key); - } - - void mouseMoved( int x, int y ){ - baseApp->mouseX = x; - baseApp->mouseY = y; - baseApp->mouseMoved(x, y); - } - void mouseDragged( int x, int y, int button ){ - baseApp->mouseX = x; - baseApp->mouseY = y; - baseApp->mouseDragged(x, y, button); - } - void mousePressed( int x, int y, int button ){ - baseApp->mouseX = x; - baseApp->mouseY = y; - baseApp->mousePressed(x, y, button); - } - void mouseReleased(){ - baseApp->mouseReleased(); - } - void mouseReleased(int x, int y, int button ){ - baseApp->mouseX = x; - baseApp->mouseY = y; - baseApp->mouseReleased(x, y, button); - } - - void dragEvent(ofDragInfo dragInfo) { - baseApp->dragEvent(dragInfo); - } - void gotMessage(ofMessage msg){ - baseApp->gotMessage(msg); - } - -private: - ofBaseApp* baseApp; -}; - void ofRunFensterApp(ofxFensterListener* app){ ofxFensterManager::get()->getPrimaryWindow()->addListener(app); ofRunApp(app); @@ -91,7 +21,6 @@ void ofRunFensterApp(ofBaseApp* app){ ofRunFensterApp(appWrapper); } - /////////////////////////////////////// static ofBaseApp* baseApp; diff --git a/src/ofxFensterManager.h b/src/ofxFensterManager.h index 9516b9c..4a581ef 100644 --- a/src/ofxFensterManager.h +++ b/src/ofxFensterManager.h @@ -21,6 +21,76 @@ void ofRunFensterApp(ofBaseApp* app); class ofxFensterManager; +/////////////////////////////////////////// +// HELPERS FOR ofRunFensterApp + +class ofxFensterToOfBaseApp: public ofxFensterListener{ + +public: + ofxFensterToOfBaseApp(ofBaseApp* base){ + mouseX = mouseY = 0; + baseApp = base; + } + + void setup(){ + baseApp->setup(); + } + void update(){ + baseApp->update(); + } + void draw(){ + baseApp->draw(); + } + void exit(){ + baseApp->exit(); + } + + void windowResized(int w, int h){ + baseApp->windowResized(w, h); + } + + void keyPressed( int key ){ + baseApp->keyPressed(key); + } + void keyReleased( int key ){ + baseApp->keyReleased(key); + } + + void mouseMoved( int x, int y ){ + baseApp->mouseX = x; + baseApp->mouseY = y; + baseApp->mouseMoved(x, y); + } + void mouseDragged( int x, int y, int button ){ + baseApp->mouseX = x; + baseApp->mouseY = y; + baseApp->mouseDragged(x, y, button); + } + void mousePressed( int x, int y, int button ){ + baseApp->mouseX = x; + baseApp->mouseY = y; + baseApp->mousePressed(x, y, button); + } + void mouseReleased(){ + baseApp->mouseReleased(); + } + void mouseReleased(int x, int y, int button ){ + baseApp->mouseX = x; + baseApp->mouseY = y; + baseApp->mouseReleased(x, y, button); + } + + void dragEvent(ofDragInfo dragInfo) { + baseApp->dragEvent(dragInfo); + } + void gotMessage(ofMessage msg){ + baseApp->gotMessage(msg); + } + +private: + ofBaseApp* baseApp; +}; + typedef ofPtr ofxFensterPtr; typedef std::vector fensterList; typedef ofxFensterManager* ofxFensterManagerPtr;