void ProgramListBox::itemDropped(const SourceDetails& dragSourceDetails) { dragCandidate = programPosition(dragSourceDetails.localPosition.x, dragSourceDetails.localPosition.y); MemoryBlock* block = dragSourceDetails.description.getBinaryData(); if ( listener != nullptr ) listener->programDragged(this, dragCandidate, (char *)block->getData()); dragCandidate = -1; repaint(); }
void ProgramListBox::mouseDown(const MouseEvent &event) { if ( ! hasContent ) return; int pos = programPosition(event.getMouseDownX(), event.getMouseDownY()); if ( event.mods.isRightButtonDown() || event.mods.isAnyModifierKeyDown() ) { listener->programRightClicked(this, pos); return; } listener->programSelected(this, pos); }
void ProgramListBox::mouseDown(const MouseEvent &event) { if ( ! hasContent ) return; int pos = programPosition(event.getMouseDownX(), event.getMouseDownY()); if ( event.mods.isPopupMenu()) { listener->programRightClicked(this, pos); return; } listener->programSelected(this, pos); }
void ProgramListBox::mouseDrag(const MouseEvent &event) { if ( ! hasContent ) return; if ( dragCandidate != -1 ) return; if ( event.getDistanceFromDragStart() < 7 ) return; if (DragAndDropContainer* const dragContainer = DragAndDropContainer::findParentDragContainerFor(this)) { Image snapshot (Image::ARGB, cellWidth, cellHeight, true); int position = programPosition(event.getMouseDownX(), event.getMouseDownY()); Graphics g(snapshot); g.setColour(DXLookNFeel::lightBackground); g.fillRect(0,0,cellWidth, cellHeight); g.setColour(Colours::white); g.drawFittedText(programNames[position], 0, 0, cellWidth, cellHeight, Justification::centred, true); void *src = cartContent.getRawVoice() + (position*128); var description = var(src, 128); dragContainer->startDragging(description, this, snapshot, false); } }
void ProgramListBox::itemDragMove(const SourceDetails &dragSourceDetails) { dragCandidate = programPosition(dragSourceDetails.localPosition.x, dragSourceDetails.localPosition.y); repaint(); }