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();
}
Beispiel #3
0
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 ())
    {
    }
}
Beispiel #7
0
 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 ();
    }
Beispiel #11
0
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();
    }
}
Beispiel #13
0
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();
	}
}
Beispiel #14
0
    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);
    }
}
Beispiel #19
0
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);
        }
    }
}
Beispiel #21
0
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 ();
            }

        }

    }
}