void ofxUISuperCanvas::onMousePressed(ofMouseEventArgs& data) { if(rect->inside(data.x, data.y) && didHitHeaderWidgets(data.x, data.y)) { bTitleLabelHit = true; hitPoint.set(data.x - rect->getX(), data.y - rect->getY()); if((ofGetElapsedTimef() - lastHitTime) < deltaTime) { if(isMinified()) { setMinified(false); if(getTriggerType() & OFX_UI_TRIGGER_BEGIN) { triggerEvent(this); } } else { setMinified(true); if(getTriggerType() & OFX_UI_TRIGGER_END) { triggerEvent(this); } } return; } lastHitTime = ofGetElapsedTimef(); } mousePressed(data.x, data.y, data.button); }
void ofxUISuperCanvas::keyReleased(int key) { if(getIsBindedToKey(key) && bKeyHit) { bKeyHit = false; if((ofGetElapsedTimef() - lastHitTime) < deltaTime) { setMinified(false); lastPosition = ofxUIVec2f(ofGetMouseX(), ofGetMouseY()); if(getTriggerType() & OFX_UI_TRIGGER_BEGIN) { triggerEvent(this); } } else { setMinified(true); rect->setX(lastPosition.x); rect->setY(lastPosition.y); if(getTriggerType() & OFX_UI_TRIGGER_END) { triggerEvent(this); } } lastHitTime = ofGetElapsedTimef(); } ofxUICanvas::keyReleased(key); }
void ofxUISuperCanvas::loadSettings(string fileName) { ofxXmlSettings *XML = new ofxXmlSettings(); XML->loadFile(fileName); int widgetTags = XML->getNumTags("Widget"); for(int i = 0; i < widgetTags; i++) { XML->pushTag("Widget", i); string name = XML->getValue("Name", "NULL", 0); ofxUIWidget *widget = getWidget(name); if(widget != NULL && widget->hasState()) { widget->loadState(XML); if(bTriggerWidgetsUponLoad) { triggerEvent(widget); } } XML->popTag(); } XML->pushTag("Canvas", 0); int value = XML->getValue("IsMinified", (bIsMinified ? 1 : 0), 0); setMinified((value ? 1 : 0)); rect->setX(XML->getValue("XPosition", rect->getX(), 0)); rect->setY(XML->getValue("YPosition", rect->getY(), 0)); XML->popTag(); hasKeyBoard = false; delete XML; }
void ofxUISuperCanvas::touchDoubleTap(float x, float y, int id) { if(rect->inside(x, y) && didHitHeaderWidgets(x, y)) { if(isMinified()) { setMinified(false); if(getTriggerType() & OFX_UI_TRIGGER_BEGIN) { triggerEvent(this); } } else { setMinified(true); if(getTriggerType() & OFX_UI_TRIGGER_END) { triggerEvent(this); } } return; } canvasTouchDoubleTap(x, y, id); }
void ofxUISuperCanvas::keyPressed(int key) { if(getIsBindedToKey(key) && !bKeyHit) { bKeyHit = true; lastPosition = ofxUIVec2f(rect->getX(), rect->getY()); setMinified(false); rect->setX(ofGetMouseX()); rect->setY(ofGetMouseY()); if(getTriggerType() & OFX_UI_TRIGGER_BEGIN) { triggerEvent(this); } } ofxUICanvas::keyPressed(key); }
void ofxUISuperCanvas::toggleMinified() { setMinified(!bIsMinified); }