Now using 2nd/3rd mouse button to switch bandpass shift/expand.

This commit is contained in:
Marat Fayzullin 2023-01-29 18:02:11 -05:00
parent 83202ae2d0
commit facd55545a
2 changed files with 11 additions and 4 deletions

View File

@ -188,10 +188,10 @@ Envelope.prototype.wheel = function(x, dir, modifier){
var range = this.where_clicked(x, this.drag_ranges, {});
if (range === Demodulator.draggable_ranges.none) return false;
// When modifier is TRUE, shift bandpass up / down
// When modifier is FALSE, make bandpadd wider / narrower
// When modifier is FALSE, shift bandpass up / down
// When modifier is TRUE, make bandpadd wider / narrower
var high_delta = dir? -50 : 50;
var low_delta = modifier? high_delta : -high_delta;
var low_delta = modifier? -high_delta : high_delta;
this.demodulator.moveBandpass(
this.demodulator.low_cut + low_delta,
this.demodulator.high_cut + high_delta

View File

@ -291,6 +291,7 @@ function scale_setup() {
var scale_canvas_drag_params = {
mouse_down: false,
mouse2_down: false,
drag: false,
start_x: 0,
key_modifiers: {shiftKey: false, altKey: false, ctrlKey: false}
@ -305,7 +306,11 @@ function scale_canvas_mousedown(evt) {
scale_canvas_drag_params.key_modifiers.shiftKey = evt.shiftKey;
scale_canvas_drag_params.key_modifiers.altKey = evt.altKey;
scale_canvas_drag_params.key_modifiers.ctrlKey = evt.ctrlKey;
} else {
// Other buttons
scale_canvas_drag_params.mouse2_down = true;
}
evt.preventDefault();
}
@ -354,13 +359,15 @@ function scale_canvas_end_drag(x) {
function scale_canvas_mouseup(evt) {
if (evt.button == 0)
scale_canvas_end_drag(evt.pageX);
else
scale_canvas_drag_params.mouse2_down = false;
}
function scale_canvas_mousewheel(evt) {
var dir = (evt.deltaY / Math.abs(evt.deltaY)) > 0;
var demodulators = getDemodulators();
var event_handled = false;
for (var i = 0; i < demodulators.length; i++) event_handled |= demodulators[i].envelope.wheel(evt.pageX, dir, evt.shiftKey);
for (var i = 0; i < demodulators.length; i++) event_handled |= demodulators[i].envelope.wheel(evt.pageX, dir, scale_canvas_drag_params.mouse2_down);
// If not handled by demodulators, default to tuning
if (!event_handled) tuneBySteps(dir? -1:1);
}