mirror of
https://github.com/Pax1601/DCSOlympus.git
synced 2025-10-29 16:56:34 +00:00
32 lines
1.3 KiB
TypeScript
32 lines
1.3 KiB
TypeScript
import { deg2rad, ftToM } from "../other/utils";
|
|
import { ContextMenu } from "./contextmenu";
|
|
|
|
/** The UnitContextMenu is shown when the user rightclicks on a unit. It dynamically presents the user with possible actions to perform on the unit. */
|
|
export class UnitContextMenu extends ContextMenu {
|
|
/**
|
|
*
|
|
* @param ID - the ID of the HTML element which will contain the context menu
|
|
*/
|
|
constructor(ID: string){
|
|
super(ID);
|
|
}
|
|
|
|
/** Set the options that will be presented to the user in the contextmenu
|
|
*
|
|
* @param options Dictionary element containing the text and tooltip of the options shown in the menu
|
|
* @param callback Callback that will be called when the user clicks on one of the options
|
|
*/
|
|
setOptions(options: { [key: string]: {text: string, tooltip: string }}, callback: CallableFunction) {
|
|
this.getContainer()?.replaceChildren(...Object.keys(options).map((key: string, idx: number) => {
|
|
const option = options[key];
|
|
var button = document.createElement("button");
|
|
var el = document.createElement("div");
|
|
el.title = option.tooltip;
|
|
el.innerText = option.text;
|
|
el.id = key;
|
|
button.addEventListener("click", () => callback(key));
|
|
button.appendChild(el);
|
|
return (button);
|
|
}));
|
|
}
|
|
} |