|
@@ -21,6 +21,10 @@ import javax.swing.event.CaretEvent;
|
|
import javax.swing.event.CaretListener;
|
|
import javax.swing.event.CaretListener;
|
|
import javax.swing.event.ChangeEvent;
|
|
import javax.swing.event.ChangeEvent;
|
|
import javax.swing.event.ChangeListener;
|
|
import javax.swing.event.ChangeListener;
|
|
|
|
+import javax.swing.plaf.SliderUI;
|
|
|
|
+import javax.swing.plaf.basic.BasicSliderUI;
|
|
|
|
+import javax.swing.plaf.metal.MetalSliderUI;
|
|
|
|
+import javax.swing.plaf.synth.SynthSliderUI;
|
|
|
|
|
|
import ui.controller.Control;
|
|
import ui.controller.Control;
|
|
import ui.model.Model;
|
|
import ui.model.Model;
|
|
@@ -208,6 +212,19 @@ public class TimePanel extends JPanel {
|
|
|
|
|
|
this.add(timeBtnPanel, BorderLayout.WEST);
|
|
this.add(timeBtnPanel, BorderLayout.WEST);
|
|
this.add(timeSlider);
|
|
this.add(timeSlider);
|
|
|
|
+
|
|
|
|
+ // Make the slider jump to mouse position on left click
|
|
|
|
+ timeSlider.setUI(new SynthSliderUI(timeSlider) {
|
|
|
|
+ protected void scrollDueToClickInTrack(int direction) {
|
|
|
|
+ int value = timeSlider.getValue();
|
|
|
|
+ if (timeSlider.getOrientation() == JSlider.HORIZONTAL) {
|
|
|
|
+ value = this.valueForXPosition(timeSlider.getMousePosition().x);
|
|
|
|
+ } else if (timeSlider.getOrientation() == JSlider.VERTICAL) {
|
|
|
|
+ value = ((BasicSliderUI)this).valueForYPosition(timeSlider.getMousePosition().y);
|
|
|
|
+ }
|
|
|
|
+ timeSlider.setValue(value);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|