TreeTabsMigration/scripts/IO.js

73 lines
2.2 KiB
JavaScript

// Copyright (c) 2017 kroppy. All rights reserved.
// Use of this source code is governed by a Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) license
// that can be found at https://creativecommons.org/licenses/by-nc-nd/4.0/
// ********** KEYBOARD AND MOUSE ***************
function BindTabsSwitchingToMouseWheel() {
// switch tabs with mouse scroll
$("#pin_list, .group").bind("mousewheel DOMMouseScroll", function(event) {
let prev = event.originalEvent.wheelDelta > 0 || event.originalEvent.detail < 0;
if (prev) {
ActivatePrevTab();
} else {
ActivateNextTab();
}
event.preventDefault();
});
}
function SetIOEvents() {
if (!opt.switch_with_scroll) {
$("#pin_list").bind("mousewheel DOMMouseScroll", function(event) {
let direction = (event.originalEvent.wheelDelta > 0 || event.originalEvent.detail < 0) ? -1 : 1;
let speed = 0.1;
for (let t = 1; t < 40; t++) {
setTimeout(function() {
if (t < 30) {
speed = speed+0.1; // accelerate
} else {
speed = speed-0.3; // decelerate
}
$("#pin_list").scrollLeft($("#pin_list").scrollLeft()+(direction*speed));
}, t);
}
});
}
// catch keyboard keys
$(document).keydown(function(event) {
if (MouseHoverOver == "pin_list") {
// ctrl+a to select all
if (event.ctrlKey && event.which == 65) {
$(".pin").addClass("selected_tab");
}
// ctrl+i to invert selection
if (event.ctrlKey && event.which == 73) {
$(".pin").toggleClass("selected_tab");
}
}
if (MouseHoverOver.match("g_|tab_list") !== null) {
// ctrl+a to select all
if (event.ctrlKey && event.which == 65) {
$("#ch"+active_group).children(".tab:visible").addClass("selected_tab");
}
// ctrl+i to invert selection
if (event.ctrlKey && event.which == 73) {
$(".tab:visible").toggleClass("selected_tab");
}
}
RefreshGUI();
});
// remove middle mouse and set hiding menu
document.body.onmousedown = function(event) {
if (event.button == 1 && opt.close_with_MMB == true) {
event.preventDefault();
}
if (event.button == 0 && !$(event.target).is(".menu_item")) {
$(".menu").hide(300);
}
};
}