mirror of
https://github.com/arduino/Arduino.git
synced 2025-02-21 15:54:39 +01:00
Scrollable menus can now be scrolled with the mouse wheel
This commit is contained in:
parent
2e80136cab
commit
c2b55eb7a1
@ -3,12 +3,16 @@
|
|||||||
*/
|
*/
|
||||||
package processing.app.tools;
|
package processing.app.tools;
|
||||||
|
|
||||||
|
import java.awt.BorderLayout;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
import java.awt.event.ActionListener;
|
import java.awt.event.ActionListener;
|
||||||
|
import java.awt.event.MouseWheelEvent;
|
||||||
|
import java.awt.event.MouseWheelListener;
|
||||||
|
|
||||||
import javax.swing.Icon;
|
import javax.swing.Icon;
|
||||||
import javax.swing.JComponent;
|
import javax.swing.JComponent;
|
||||||
import javax.swing.JMenu;
|
import javax.swing.JMenu;
|
||||||
@ -20,7 +24,7 @@ import javax.swing.event.ChangeEvent;
|
|||||||
import javax.swing.event.ChangeListener;
|
import javax.swing.event.ChangeListener;
|
||||||
import javax.swing.event.PopupMenuEvent;
|
import javax.swing.event.PopupMenuEvent;
|
||||||
import javax.swing.event.PopupMenuListener;
|
import javax.swing.event.PopupMenuListener;
|
||||||
import javax.swing.plaf.*;
|
import javax.swing.plaf.ButtonUI;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A class that provides scrolling capabilities to a long menu dropdown or
|
* A class that provides scrolling capabilities to a long menu dropdown or
|
||||||
@ -42,6 +46,7 @@ public class MenuScroller {
|
|||||||
private MenuScrollItem upItem;
|
private MenuScrollItem upItem;
|
||||||
private MenuScrollItem downItem;
|
private MenuScrollItem downItem;
|
||||||
private final MenuScrollListener menuListener = new MenuScrollListener();
|
private final MenuScrollListener menuListener = new MenuScrollListener();
|
||||||
|
private final MouseScrollListener mouseWheelListener = new MouseScrollListener();
|
||||||
private int scrollCount;
|
private int scrollCount;
|
||||||
private int interval;
|
private int interval;
|
||||||
private int topFixedCount;
|
private int topFixedCount;
|
||||||
@ -320,6 +325,7 @@ public class MenuScroller {
|
|||||||
|
|
||||||
this.menu = menu;
|
this.menu = menu;
|
||||||
menu.addPopupMenuListener(menuListener);
|
menu.addPopupMenuListener(menuListener);
|
||||||
|
menu.addMouseWheelListener(mouseWheelListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -446,6 +452,7 @@ public class MenuScroller {
|
|||||||
public void dispose() {
|
public void dispose() {
|
||||||
if (menu != null) {
|
if (menu != null) {
|
||||||
menu.removePopupMenuListener(menuListener);
|
menu.removePopupMenuListener(menuListener);
|
||||||
|
menu.removeMouseWheelListener(mouseWheelListener);
|
||||||
menu = null;
|
menu = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -497,6 +504,14 @@ public class MenuScroller {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class MouseScrollListener implements MouseWheelListener {
|
||||||
|
public void mouseWheelMoved(MouseWheelEvent mwe) {
|
||||||
|
firstIndex += mwe.getWheelRotation();
|
||||||
|
refreshMenu();
|
||||||
|
mwe.consume();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private class MenuScrollListener implements PopupMenuListener {
|
private class MenuScrollListener implements PopupMenuListener {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -555,6 +570,7 @@ public class MenuScroller {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("serial")
|
||||||
private class MenuScrollTimer extends Timer {
|
private class MenuScrollTimer extends Timer {
|
||||||
|
|
||||||
public MenuScrollTimer(final int increment, int interval) {
|
public MenuScrollTimer(final int increment, int interval) {
|
||||||
@ -569,6 +585,7 @@ public class MenuScroller {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("serial")
|
||||||
private class MenuScrollItem extends JMenuItem
|
private class MenuScrollItem extends JMenuItem
|
||||||
implements ChangeListener {
|
implements ChangeListener {
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ ARDUINO 1.5.3 BETA
|
|||||||
* Updated arm gcc to 4.7.4 and simplified build.xml
|
* Updated arm gcc to 4.7.4 and simplified build.xml
|
||||||
* ARM gcc doesn't require ia32-libs anymore on 64 bits linux systems
|
* ARM gcc doesn't require ia32-libs anymore on 64 bits linux systems
|
||||||
* Import library menu is now scrollable
|
* Import library menu is now scrollable
|
||||||
|
* Scrollable menus can now be scrolled with the mouse wheel
|
||||||
|
|
||||||
[arduino core]
|
[arduino core]
|
||||||
* sam: Fixed delayMicrosecond() when interrupts are disabled
|
* sam: Fixed delayMicrosecond() when interrupts are disabled
|
||||||
|
Loading…
x
Reference in New Issue
Block a user