void phdShapeGroup::onMouseMoved(ofMouseEventArgs& args) { if(!visible) return; // if popup has focus if(getPopupMenu() != NULL && getPopupMenu()->getVisible()) { ofMouseEventArgs _args = args; _args.x = ofGetMouseX(); _args.y = ofGetMouseY(); getPopupMenu()->onMouseMoved(_args); return; } if(focused != NULL && focused->updateHitTestInfo(args.x, args.y)) return; phdShapeBase * _shape = NULL; for(int i = 0; i < shapes.size(); i++) { if(shapes[i] != NULL && shapes[i]->updateHitTestInfo(args.x, args.y)) { _shape = shapes[i]; break; } } setFocused(_shape); if(focused != NULL) focused->onMouseMoved(args); }
void phdControlManager::mouseDragged(ofMouseEventArgs& args) { if(getPopupMenu() != NULL && getPopupMenu()->getVisible() && getPopupMenu()->updateHitTestInfo(args.x,args.y)) { getPopupMenu()->onMouseDragged(args); return; } if(selectedControl != NULL) selectedControl->onMouseDragged(args); }
void phdShapeGroup::onMouseDragged(ofMouseEventArgs& args) { if(!visible) return; // if popup has focus ofMouseEventArgs _args = args; _args.x = ofGetMouseX(); _args.y = ofGetMouseY(); if(getPopupMenu() != NULL && getPopupMenu()->getVisible()) { getPopupMenu()->onMouseDragged(_args); return; } if(selected != NULL) { selected->onMouseDragged(args); } }
void phdControlManager::mousePressed(ofMouseEventArgs& args) { if(getPopupMenu() != NULL && getPopupMenu()->getVisible()) { getPopupMenu()->onMousePressed(args); return; } if(selectedControl != NULL && selectedControl->updateHitTestInfo(args.x, args.y)) { selectedControl->onMousePressed(args); } else { setSelectedControl(focusedControl); if(selectedControl != NULL) selectedControl->onMousePressed(args); } }
void Component::mousePressed(MouseEventDetails* const e) { produceMousePressed(e); if(e->getButton() == MouseEventDetails::BUTTON3 && getPopupMenu() != NULL) { getPopupMenu()->setInvoker(this); getPopupMenu()->setVisible(true); getPopupMenu()->setPosition(ViewportToComponent(e->getLocation(),getParentWindow(),e->getViewport())); getParentWindow()->pushToActivePopupMenus(getPopupMenu()); } }
void phdControlManager::mouseMoved(ofMouseEventArgs& args) { if(getPopupMenu() != NULL && getPopupMenu()->getVisible() && getPopupMenu()->updateHitTestInfo(args.x,args.y)) { getPopupMenu()->onMouseMoved(args); return; } if(selectedControl != NULL && selectedControl->updateHitTestInfo(args.x, args.y)) { selectedControl->onMouseMoved(args); return; } phdControlBase * _control = NULL; if(drawMode == cmdmControls || drawMode == cmdmBoth) { for(int i = 0; i < controls.size(); i++) { if(controls[i] != NULL && controls[i]->getClassName() != "PHDPROJECTOR" && controls[i]->updateHitTestInfo(args.x, args.y)) { _control = controls[i]; break; } } } if(drawMode == cmdmWarpers || drawMode == cmdmBoth) { if(_control == NULL) { for(int i = 0; i < controls.size(); i++) { if(controls[i] != NULL && controls[i]->getClassName() == "PHDPROJECTOR" && controls[i]->updateHitTestInfo(args.x, args.y)) { _control = controls[i]; break; } } } } setFocusedControl(_control); if(focusedControl != NULL) focusedControl->onMouseMoved(args); }
void phdControlManager::mouseReleased(ofMouseEventArgs& args) { // if popup has focus if(getPopupMenu() != NULL && getPopupMenu()->getVisible()) { getPopupMenu()->onMouseReleased(args); ofRemoveListener(getPopupMenu()->popEvent, this, &phdControlManager::onPopupClick); getPopupMenu()->setVisible(false); return; } if(selectedControl == NULL) { if(args.button == 2 && getPopupMenu() != NULL) { // right click getPopupMenu()->setOwner(this); getPopupMenu()->popup(args.x, args.y, (void*)this, "MANAGER"); ofAddListener(getPopupMenu()->popEvent, this, &phdControlManager::onPopupClick); return; } } if(selectedControl != NULL) selectedControl->onMouseReleased(args); }
void phdShapeGroup::onMouseReleased(ofMouseEventArgs& args) { if(!visible) return; // if popup has focus if(getPopupMenu() != NULL && getPopupMenu()->getVisible()) { ofMouseEventArgs _args = args; _args.x = ofGetMouseX(); _args.y = ofGetMouseY(); getPopupMenu()->onMouseReleased(_args); ofRemoveListener(getPopupMenu()->popEvent, this, &phdShapeGroup::onPopupClick); return; } if(selected != NULL && selected == focused) { if(args.button == 2 && getPopupMenu() != NULL) { // right click getPopupMenu()->setOwner(selected); getPopupMenu()->popup(ofGetMouseX(), ofGetMouseY(), (void*)selected, "SHAPE"); ofAddListener(getPopupMenu()->popEvent, this, &phdShapeGroup::onPopupClick); return; } } if(selected != NULL) selected->onMouseReleased(args); }