void ResizableCornerComponent::mouseDrag (const MouseEvent& e) { if (component == nullptr) { jassertfalse; // You've deleted the component that this resizer is supposed to be controlling! return; } Rectangle<int> r (originalBounds.withSize (originalBounds.getWidth() + e.getDistanceFromDragStartX(), originalBounds.getHeight() + e.getDistanceFromDragStartY())); if (constrainer != nullptr) { constrainer->setBoundsForComponent (component, r, false, false, true, true); } else { Component::Positioner* const pos = component->getPositioner(); if (pos != nullptr) pos->applyNewBounds (r); else component->setBounds (r); } }
void CabbageEnvelopeHandleComponent::mouseDrag (const MouseEvent& e) { CabbageEnvelopeHandleComponent* previousHandle = getPreviousHandle(); CabbageEnvelopeHandleComponent* nextHandle = getNextHandle(); bool fixed = this->getProperties().getWithDefault("fixedPos", false); int leftLimit = previousHandle == 0 ? 0 : previousHandle->getX()+1; int rightLimit = nextHandle == 0 ? getParentWidth()-previousHandle->getHeight() : nextHandle->getX()-1; int topLimit = previousHandle == 0 ? 0 : previousHandle->getX()+1; int bottomLimit = nextHandle == 0 ? getParentWidth()-previousHandle->getHeight() : nextHandle->getX()-1; int dragX = x+e.getDistanceFromDragStartX(); int dragY = y+e.getDistanceFromDragStartY(); //dragger.dragComponent(this, e, &resizeLimits); if(dragX < leftLimit) dragX = leftLimit; if(dragX > rightLimit) dragX = rightLimit; if(dragY< 0) dragY = 0; if(dragY > height-5) dragY = height-5; if(fixed) dragX = x; this->setTopLeftPosition(dragX, dragY); getParentComponent()->repaint(); }
void LfpDisplayCanvas::mouseDragInCanvas(const MouseEvent& e) { int ypos = e.getMouseDownY(); if (ypos <= headerHeight/2) { float scaleFactor = (float) e.getDistanceFromDragStartY(); if (scaleFactor < 60.0 && scaleFactor > -200.0f) { timebase = pow(10.0f, -scaleFactor/200.0f); } repaint(); } else if (ypos > headerHeight/2 && ypos < headerHeight) { float scaleFactor = (float) e.getDistanceFromDragStartX(); timeOffset = scaleFactor; repaint(); } }
void CommentComponent::mouseDrag (const MouseEvent& e) { if (! e.mods.isPopupMenu()) { jassert (dynamic_cast <ObjectsHolder*> (getParentComponent()) != 0); // const Rectangle<int> area (((ObjectsHolder*) getParentComponent())->getComponentArea()); if (selected && ! dragging) { dragging = ! e.mouseWasClicked(); if (dragging) { owner.startDragging (); } } if (dragging) { owner.dragSelectedComps (e.getDistanceFromDragStartX(), e.getDistanceFromDragStartY()); } update(); } }
void ResizableEdgeComponent::mouseDrag (const MouseEvent& e) { if (component == nullptr) { jassertfalse; // You've deleted the component that this resizer was supposed to be using! return; } Rectangle<int> newBounds (originalBounds); switch (edge) { case leftEdge: newBounds.setLeft (jmin (newBounds.getRight(), newBounds.getX() + e.getDistanceFromDragStartX())); break; case rightEdge: newBounds.setWidth (jmax (0, newBounds.getWidth() + e.getDistanceFromDragStartX())); break; case topEdge: newBounds.setTop (jmin (newBounds.getBottom(), newBounds.getY() + e.getDistanceFromDragStartY())); break; case bottomEdge: newBounds.setHeight (jmax (0, newBounds.getHeight() + e.getDistanceFromDragStartY())); break; default: jassertfalse; break; } if (constrainer != nullptr) { constrainer->setBoundsForComponent (component, newBounds, edge == topEdge, edge == leftEdge, edge == bottomEdge, edge == rightEdge); } else { if (Component::Positioner* const pos = component->getPositioner()) pos->applyNewBounds (newBounds); else component->setBounds (newBounds); } }
void GraphComponent::mouseDrag (const MouseEvent& e) { if (e.mods.isLeftButtonDown()) { lassoComponent->toFront (false); lassoComponent->dragLasso (e); } else if (e.mods.isMiddleButtonDown ()) { Viewport* parent = findParentComponentOfClass ((Viewport*) 0); if (parent) { int x = dragStartX - e.getDistanceFromDragStartX (); int y = dragStartY - e.getDistanceFromDragStartY (); Component* comp = parent->getViewedComponent (); if (comp) { x = jmax (0, jmin (comp->getWidth () - parent->getViewWidth (), x)); y = jmax (0, jmin (comp->getHeight () - parent->getViewHeight (), y)); } parent->setViewPosition (x, y); setMouseCursor (MouseCursor::DraggingHandCursor); } } else if (e.mods.isRightButtonDown ()) { } }
void mouseDrag (const MouseEvent& e) { ConcertinaPanel& panel = getPanel(); panel.setLayout (dragStartSizes.withMovedPanel (panel.holders.indexOf (this), mouseDownY + e.getDistanceFromDragStartY(), panel.getHeight()), false); }
void mouseDrag (const MouseEvent& e) { if (Viewport* viewport = findParentComponentOfClass<Viewport>()) viewport->setViewPosition (jlimit (0, jmax (0, viewport->getViewedComponent()->getWidth() - viewport->getViewWidth()), startX - e.getDistanceFromDragStartX()), jlimit (0, jmax (0, viewport->getViewedComponent()->getHeight() - viewport->getViewHeight()), startY - e.getDistanceFromDragStartY())); }
void StretchableLayoutResizerBar::mouseDrag (const MouseEvent& e) { const int desiredPos = mouseDownPos + (isVertical ? e.getDistanceFromDragStartX() : e.getDistanceFromDragStartY()); layout->setItemPosition (itemIndex, desiredPos); hasBeenMoved(); }
//============================================================================== void GraphLinkComponent::mouseDrag (const MouseEvent& e) { if (e.mods.isLeftButtonDown()) { setTension (tension + e.getDistanceFromDragStartY () / 512.0f); updateBounds(); repaint (); }
void Joystick::mouseDrag (const MouseEvent& e) //Called continuously while moving mouse { if (isEnabled() && ! menuShown) { // If shift is down, don't allow changes to the X value if (! e.mods.isShiftDown()) { //Determine current X value based on mouse location int x = startPressX + e.getDistanceFromDragStartX (); if (x < 0) current_x = 0; else if (x >= getWidth()) current_x = x_max - x_min; else current_x = x / x_ratio; } // If ctrl is down, don't allow changes to Y value if (! e.mods.isCtrlDown()) { //Determine current Y value based on mouse location int y = startPressY + e.getDistanceFromDragStartY (); if (y < 0) current_y = 0; else if (y > getHeight()) current_y = y_max - y_min; else current_y = y / y_ratio; } // If holding down control key, then set snapback values if (e.mods.isLeftButtonDown()) { x_snap = current_x; y_snap = current_y; } // If right left is down, then hold if (e.mods.isLeftButtonDown()) holdOnMouseRelease = true; else holdOnMouseRelease = false; // Send changes and repaint screen if (! sendChangeOnlyOnRelease) { valueChanged (current_x, current_y); sendChanges (); } // update drawing position calculateDrawingSpot(); repaint (); } }
void PianoGridNote::continueVelocity (const MouseEvent& e) { float newVelocity = velocity + e.getDistanceFromDragStartY () / 100.0f; if (newVelocity != velocity) { owner->changeNoteVelocity (this, newVelocity); repaint(); } }
void PianoRoll::mouseDrag (const MouseEvent& e) { bool snap = snapToGrid != e.mods.isShiftDown(); double x = pixelsToPpq((float)e.x,false); if (snap) { lastDragTime = snapPpqToGrid(lastDragTime); } int n = (int)((float)(getHeight()-e.y)*128.f/(float)getHeight()); if(hoveringNoteIndex != No_Note) { double startTime = draggingNoteStartTime; double length = draggingNoteLength; double offset = lastDragTime-startTime; if (!e.mods.isAltDown()) { int noteDelta = n-draggingNoteNumber; double timeDelta = jmax(0.0,snap ? snapPpqToGrid(x-offset) : x-offset) - draggingNoteStartTime; draggingNoteNumber += noteDelta; draggingNoteStartTime += timeDelta; draggingNoteTransposition = n-hoveringNote->message.getNoteNumber(); draggingNoteTimeDelta = jmax(0.0,snap ? snapPpqToGrid(x-offset) : x-offset) - hoveringNote->message.getTimeStamp(); } else { wasResizing=true; length = x - startTime + draggingNoteEndOffset; double lengthDelta = snap ? snapPpqToGrid(length-draggingNoteLength,true) : length-draggingNoteLength; int velocityDelta = jlimit(1,127,originalNoteVelocity + (getHeight()-e.y) - draggingNoteNumber*getHeight()/128) - draggingNoteVelocity; for (int i=0;i<selectedNotes.size();i++) { if (selectedNotes.getUnchecked(i)->noteOffObject) { //set length and velocity when Alt is down double minWidth = snap ? stepLengthInPpq : 1.0; //if (lengthDelta!=0) selectedNotes.getUnchecked(i)->noteOffObject->message.setTimeStamp(jmax(selectedNotes.getUnchecked(i)->message.getTimeStamp()+minWidth,selectedNotes.getUnchecked(i)->message.getTimeStamp()+selectedNoteLengths.getUnchecked(i).length+lengthDelta)); selectedNotes.getUnchecked(i)->message.setVelocity((jlimit(1,127,selectedNotes.getUnchecked(i)->message.getVelocity()+velocityDelta))*midiScaler); } } draggingNoteVelocity += velocityDelta; } lastDragTime=x; noteLayer->repaint(); } else if (e.mods.isLeftButtonDown()) { lasso.setBounds(jmin(e.x,e.getMouseDownX()), jmin(e.y,e.getMouseDownY()), abs(e.getDistanceFromDragStartX()), abs(e.getDistanceFromDragStartY())); repaint(); } }
void mouseDrag (const MouseEvent& e) { if (! e.mods.isPopupMenu()) { Point<int> pos (originalPos + Point<int> (e.getDistanceFromDragStartX(), e.getDistanceFromDragStartY())); if (getParentComponent() != nullptr) pos = getParentComponent()->getLocalPoint (nullptr, pos); graph.setNodePosition (filterID, (pos.getX() + getWidth() / 2) / (double) getParentWidth(), (pos.getY() + getHeight() / 2) / (double) getParentHeight()); getGraphPanel()->updateComponents(); } }
void SequencerGridPoint::mouseDrag (const MouseEvent &e) { if (shouldChangeVelocity == true) { status = initialVelocity - e.getDistanceFromDragStartY(); if (status > 127) status = 127; else if (status < 0) status = 0; repaint(); parent.setVelocityLabelText(String(status)); } }
void NodeComponent::mouseDrag (const MouseEvent& e) { if (! e.mods.isPopupMenu()) { Point<int> pos (originalPos + Point<int> (e.getDistanceFromDragStartX(), e.getDistanceFromDragStartY())); if (getParentComponent() != nullptr) pos = getParentComponent()->getLocalPoint (nullptr, pos); endPos.x = (pos.getX() + getWidth() / 2) / (double) getParentWidth(); endPos.y = (pos.getY() + getHeight() / 2) / (double) getParentHeight(); audioEngine.getDoc().setNodePosition (nodeID, endPos.x, endPos.y); getGraphEditor()->updateComponents(); } }
void ComponentOverlayComponent::mouseDrag (const MouseEvent& e) { if (! e.mods.isPopupMenu()) { if (selected && ! dragging) { dragging = ! e.mouseWasClicked(); if (dragging) layout.startDragging(); } if (dragging) { layout.dragSelectedComps (e.getDistanceFromDragStartX(), e.getDistanceFromDragStartY()); } } }
void PaintElement::mouseDrag (const MouseEvent& e) { if (! e.mods.isPopupMenu()) { jassert (dynamic_cast<PaintRoutineEditor*> (getParentComponent()) != nullptr); const Rectangle<int> area (((PaintRoutineEditor*) getParentComponent())->getComponentArea()); if (selected && ! dragging) { dragging = e.mouseWasDraggedSinceMouseDown(); if (dragging) owner->startDragging (area); } if (dragging) owner->dragSelectedComps (e.getDistanceFromDragStartX(), e.getDistanceFromDragStartY(), area); } }
void OpenGLCanvas::mouseDragInCanvas(const MouseEvent& e) { if (getTotalHeight() > getHeight()) { if (e.getMouseDownX() > getWidth()-scrollBarWidth) { if (float(e.getMouseDownY()/float(getHeight())) > scrollBarTop && float(e.getMouseDownY()/float(getHeight())) < scrollBarBottom) { if (scrollDiff == 0) { originalScrollPix = scrollPix; scrollDiff = 1; } } if (scrollDiff == 1) { scrollPix = originalScrollPix + float(e.getDistanceFromDragStartY())/float(getHeight()) * float(getTotalHeight()); if (scrollPix < 0) scrollPix = 0; if (scrollPix + getHeight() > getTotalHeight()) scrollPix = getTotalHeight() - getHeight(); scrollTime = timer->getMillisecondCounter(); showScrollTrack = true; repaint(); } } } }
void PathPointComponent::mouseDrag (const MouseEvent& e) { if (! e.mods.isPopupMenu()) { if (selected && ! dragging) dragging = ! e.mouseWasClicked(); if (dragging) { const Rectangle<int> area (((PaintRoutineEditor*) getParentComponent())->getComponentArea()); int x = dragX + e.getDistanceFromDragStartX() - area.getX(); int y = dragY + e.getDistanceFromDragStartY() - area.getY(); if (JucerDocument* const document = owner->getDocument()) { x = document->snapPosition (x); y = document->snapPosition (y); } owner->getDocument()->getUndoManager().undoCurrentTransactionOnly(); path->movePoint (index, pointNumber, x + area.getX(), y + area.getY(), area, true); } } }
void ComponentOverlay::mouseDrag (const MouseEvent& e) { if (e.eventComponent != resizer) { bool multipleSelection = false; if (!e.mods.isPopupMenu()) { for ( ComponentOverlay* child : layoutEditor->getLassoSelection() ) { const int gridSize = 2; const int selectedCompsPosX = ((int (child->getProperties().getWithDefault ("originalX", 1)) + e.getDistanceFromDragStartX() ) / gridSize) * gridSize; const int selectedCompsPosY = ((int (child->getProperties().getWithDefault ("originalY", 1)) + e.getDistanceFromDragStartY() ) / gridSize) * gridSize; child->setTopLeftPosition (selectedCompsPosX, selectedCompsPosY); child->applyToTarget(); multipleSelection = true; } if (multipleSelection == false) { dragger.dragComponent (this, e, constrainer); applyToTarget (); } } } }