/** * This class sets up a dropdown in the developer overlay and assigns its specific handler. */ class DeveloperOverlayControlDropDown extends DeveloperOverlayControl { constructor(handler, i) { super(handler, i); this.dropdown = Engine.GetGUIObjectByName("dev_command_dropdown[" + i + "]"); this.dropdown.onSelectionChange = this.onSelectionChange.bind(this); this.dropdown.hidden = false; } onSelectionChange() { this.handler.onSelectionChange(this.dropdown.selected); this.update(); } update() { this.dropdown.list = this.handler.values().map(e => e.label); this.dropdown.list_data = this.handler.values().map(e => e.value); if (this.handler.selected && this.dropdown.selected != this.handler.selected()) this.dropdown.selected = this.handler.selected(); if (this.handler.enabled) this.dropdown.enabled = this.handler.enabled(); } setHidden(hidden) { if (hidden) unregisterSimulationUpdateHandler(this.updater); else registerSimulationUpdateHandler(this.updater); } }