+ /**
+ * Checks if the mouse is pressed.
+ * Increases the pitch or velocity if the right mouse button is pressed while holding CTRL.
+ * Decreases the pitch or velocity if the left mouse button is pressed while holding CTRL.
+ * @param e the event recieved.
+ */
+ public void mousePressed(MouseEvent e) {
+ if (e.isControlDown()) {
+ if (pitchRect.contains(e.getPoint())) {
+ if (SwingUtilities.isRightMouseButton(e)) {
+ note.transpose(1);
+ } else if (SwingUtilities.isLeftMouseButton(e)) {
+ note.transpose(-1);
+ }
+ Moosique.setEdited();
+ calculateString();
+ repaint();
+ } else if (veloRect.contains(e.getPoint())) {
+ if (SwingUtilities.isRightMouseButton(e)) {
+ note.setVelocity(note.getVelocity() + 1);
+ } else if (SwingUtilities.isLeftMouseButton(e)) {
+ note.setVelocity(note.getVelocity() - 1);
+ }
+ Moosique.setEdited();
+ calculateString();
+ repaint();
+ }
+ } else maybeShowPopup(e);
+ }
+
+ public void mouseReleased(MouseEvent e) {
+ maybeShowPopup(e);
+ }
+
+ /**
+ * Shows the menu if an OS-specific popup-trigger was activated.
+ */
+ private void maybeShowPopup(MouseEvent e) {
+ if (e.isPopupTrigger() && !e.isControlDown()) {
+ if (!selected || mtv.isTheOnlySelected((MooNoteElement)e.getComponent())) popup.show(e.getComponent(), e.getX(), e.getY());
+ else mtv.showSelectionPopup(e.getComponent(), e.getX(), e.getY());
+ }
+ }
+ }