Button event down (#1189)
* support for button_down events * support for AB button
This commit is contained in:
		@@ -62,6 +62,13 @@ namespace pxsim.control {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    export function onEvent(id: number, evid: number, handler: RefAction) {
 | 
			
		||||
        if (id == DAL.MICROBIT_ID_BUTTON_AB) {
 | 
			
		||||
            const b = board().buttonPairState;
 | 
			
		||||
            if (!b.usesButtonAB) {
 | 
			
		||||
                b.usesButtonAB = true;
 | 
			
		||||
                runtime.queueDisplayUpdate();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        pxtcore.registerWithDal(id, evid, handler)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -966,6 +966,7 @@ path.sim-board {
 | 
			
		||||
                    let state = this.board;
 | 
			
		||||
                    state.edgeConnectorState.pins[index].touched = true;
 | 
			
		||||
                    this.updatePin(state.edgeConnectorState.pins[index], index);
 | 
			
		||||
                    this.board.bus.queue(state.edgeConnectorState.pins[index].id, DAL.MICROBIT_BUTTON_EVT_DOWN);
 | 
			
		||||
                }));
 | 
			
		||||
                btn.addEventListener(pointerEvents.leave, ev => {
 | 
			
		||||
                    let state = this.board;
 | 
			
		||||
@@ -981,6 +982,7 @@ path.sim-board {
 | 
			
		||||
                })
 | 
			
		||||
                accessibility.enableKeyboardInteraction(btn, undefined, () => {
 | 
			
		||||
                    let state = this.board;
 | 
			
		||||
                    this.board.bus.queue(state.edgeConnectorState.pins[index].id, DAL.MICROBIT_BUTTON_EVT_DOWN);
 | 
			
		||||
                    this.board.bus.queue(state.edgeConnectorState.pins[index].id, DAL.MICROBIT_BUTTON_EVT_UP);
 | 
			
		||||
                    this.board.bus.queue(state.edgeConnectorState.pins[index].id, DAL.MICROBIT_BUTTON_EVT_CLICK);
 | 
			
		||||
                });
 | 
			
		||||
@@ -993,6 +995,7 @@ path.sim-board {
 | 
			
		||||
                    let state = this.board;
 | 
			
		||||
                    stateButtons[index].pressed = true;
 | 
			
		||||
                    svg.fill(this.buttons[index], this.props.theme.buttonDown);
 | 
			
		||||
                    this.board.bus.queue(stateButtons[index].id, DAL.MICROBIT_BUTTON_EVT_DOWN);
 | 
			
		||||
                }));
 | 
			
		||||
                btn.addEventListener(pointerEvents.leave, ev => {
 | 
			
		||||
                    let state = this.board;
 | 
			
		||||
@@ -1007,6 +1010,7 @@ path.sim-board {
 | 
			
		||||
                    this.board.bus.queue(stateButtons[index].id, DAL.MICROBIT_BUTTON_EVT_CLICK);
 | 
			
		||||
                })
 | 
			
		||||
                accessibility.enableKeyboardInteraction(btn, undefined, () => {
 | 
			
		||||
                    this.board.bus.queue(stateButtons[index].id, DAL.MICROBIT_BUTTON_EVT_DOWN);
 | 
			
		||||
                    this.board.bus.queue(stateButtons[index].id, DAL.MICROBIT_BUTTON_EVT_UP);
 | 
			
		||||
                    this.board.bus.queue(stateButtons[index].id, DAL.MICROBIT_BUTTON_EVT_CLICK);
 | 
			
		||||
                });
 | 
			
		||||
@@ -1019,6 +1023,7 @@ path.sim-board {
 | 
			
		||||
                svg.fill(this.buttons[0], this.props.theme.buttonDown);
 | 
			
		||||
                svg.fill(this.buttons[1], this.props.theme.buttonDown);
 | 
			
		||||
                svg.fill(this.buttons[2], this.props.theme.buttonDown);
 | 
			
		||||
                this.board.bus.queue(stateButtons[2].id, DAL.MICROBIT_BUTTON_EVT_DOWN);
 | 
			
		||||
            }));
 | 
			
		||||
            this.buttonsOuter[2].addEventListener(pointerEvents.leave, ev => {
 | 
			
		||||
                let state = this.board;
 | 
			
		||||
@@ -1042,6 +1047,7 @@ path.sim-board {
 | 
			
		||||
                this.board.bus.queue(stateButtons[2].id, DAL.MICROBIT_BUTTON_EVT_CLICK);
 | 
			
		||||
            })
 | 
			
		||||
            accessibility.enableKeyboardInteraction(this.buttonsOuter[2], undefined, () => {
 | 
			
		||||
                this.board.bus.queue(stateButtons[2].id, DAL.MICROBIT_BUTTON_EVT_DOWN);
 | 
			
		||||
                this.board.bus.queue(stateButtons[2].id, DAL.MICROBIT_BUTTON_EVT_UP);
 | 
			
		||||
                this.board.bus.queue(stateButtons[2].id, DAL.MICROBIT_BUTTON_EVT_CLICK);
 | 
			
		||||
            });
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user