constructor()

in sim/visuals/board.ts [303:331]


        constructor(def: ButtonDefinition) {
            this.def = def;
            def.w = def.w || 15;
            def.h = def.h || 15;
            this.element = svg.elt("circle", {
                cx: def.x + def.w / 2,
                cy: def.y + def.h / 2,
                r: Math.max(def.w, def.h) / 2,
                class: "sim-board-button"
            }) as SVGCircleElement
            svg.title(this.element, def.label);
            // resolve button
            this.button = def.index !== undefined
                ? pxsim.pxtcore.getButton(def.index)
                : pxsim.pxtcore.getButtonByPin(pxsim.pinIds[def.label]);
            // hooking up events
            pointerEvents.down.forEach(evid => this.element.addEventListener(evid, ev => {
                this.button.setPressed(true);
                pxsim.U.addClass(this.element, "pressed");
            }));
            this.element.addEventListener(pointerEvents.leave, ev => {
                pxsim.U.removeClass(this.element, "pressed");
                this.button.setPressed(false);
            })
            this.element.addEventListener(pointerEvents.up, ev => {
                pxsim.U.removeClass(this.element, "pressed");
                this.button.setPressed(false);
            })
        }