Last active
September 14, 2019 11:21
-
-
Save CrackerHax/eb59957a8d1aa587d6f9 to your computer and use it in GitHub Desktop.
Simple right click menu script for highfidelity.io
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Simple Right Click Menu by Cracker Hax | |
// declare some arrays | |
var btn=[]; | |
var txt=[]; | |
// define our menu items | |
var cmd = ["Menu Item 1","Menu Item 2","Menu Item 3"]; | |
// define button size | |
var btnH = 20; | |
var btnW = 120; | |
// define colors | |
var black = { red: 0, green:0, blue:0}; | |
var white = { red: 255, green:255, blue:255}; | |
// start tracking mouse events | |
Controller.mouseMoveEvent.connect(mouseMoveEvent); | |
Controller.mousePressEvent.connect(mousePressEvent); | |
Controller.mouseReleaseEvent.connect(mouseReleaseEvent); | |
// use overlays to make buttons | |
function makebutton(posx,posy,btntxt) | |
{ | |
btn[btn.length] = Overlays.addOverlay("image", { | |
bounds: { x: posx, y: posy, width: btnW, height: btnH}, | |
imageURL: "", | |
color: white, | |
alpha: 0 | |
}); | |
txt[txt.length] = Overlays.addOverlay("text", { | |
x: posx+1, y: posy+1, width: btnW-2, height: btnH-2, | |
color: white, | |
backgroundColor: black, | |
alpha: 1, | |
topMargin: 0, | |
leftMargin: 10, | |
text: btntxt | |
}); | |
} | |
// functions for turning the menu on and off | |
function menuon(posx,posy) | |
{ | |
for(var i = 0; i < cmd.length; i++) | |
makebutton(posx+5,posy+btnH*i,cmd[i]); | |
} | |
function menuoff() | |
{ | |
for(var i = 0; i < cmd.length; i++) | |
{ | |
Overlays.deleteOverlay(btn[i]); | |
Overlays.deleteOverlay(txt[i]); | |
} | |
btn = []; | |
txt = []; | |
cmds = []; | |
} | |
// our mouse events | |
function mousePressEvent(event) | |
{ | |
switch(event.button) { | |
case 'LEFT': | |
leftclick(event.x,event.y); | |
break; | |
case 'RIGHT': | |
rightclick(event.x,event.y); | |
break; | |
case 'MIDDLE': | |
middleclick(event.x,event.y); | |
break; | |
default: | |
return; | |
} | |
} | |
function leftclick(x,y) | |
{ | |
print('left'); | |
} | |
function rightclick(posx,posy) | |
{ | |
print('right'); | |
menuon(posx,posy); | |
} | |
function middleclick(x,y) | |
{ | |
print('middle'); | |
} | |
function mouseReleaseEvent(event) { | |
var pos = {x:event.x,y:event.y}; | |
var test = Overlays.getOverlayAtPoint(pos); | |
if(test==txt[0]) | |
print("This is menu item 1"); | |
if(test==txt[1]) | |
print("This is menu item 2"); | |
if(test==txt[2]) | |
print("This is menu item 3"); | |
menuoff(); | |
} | |
function mouseMoveEvent(event) { | |
var pos = {x:event.x,y:event.y}; | |
var test = Overlays.getOverlayAtPoint(pos); | |
if(!test) | |
return; | |
for(var i = 0; i < btn.length; i++) | |
{ | |
if(test == txt[i]) | |
Overlays.editOverlay(txt[i], {backgroundColor: white, color:black} ); | |
else | |
Overlays.editOverlay(txt[i], {backgroundColor: black, color:white} ); | |
} | |
} | |
// exit gracefully and delete our menus if they are still open | |
Script.scriptEnding.connect(function() { | |
menuoff() | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment