App-revealup

 view release on metacpan or  search on metacpan

share/revealjs/js/controllers/keyboard.js  view on Meta::CPAN


		document.addEventListener( 'keydown', this.onDocumentKeyDown, false );
		document.addEventListener( 'keypress', this.onDocumentKeyPress, false );

	}

	/**
	 * Stops listening for keyboard events.
	 */
	unbind() {

		document.removeEventListener( 'keydown', this.onDocumentKeyDown, false );
		document.removeEventListener( 'keypress', this.onDocumentKeyPress, false );

	}

	/**
	 * Add a custom key binding with optional description to
	 * be added to the help screen.
	 */
	addKeyBinding( binding, callback ) {

		if( typeof binding === 'object' && binding.keyCode ) {
			this.bindings[binding.keyCode] = {
				callback: callback,
				key: binding.key,
				description: binding.description
			};
		}
		else {
			this.bindings[binding] = {
				callback: callback,
				key: null,
				description: null
			};
		}

	}

	/**
	 * Removes the specified custom key binding.
	 */
	removeKeyBinding( keyCode ) {

		delete this.bindings[keyCode];

	}

	/**
	 * Programmatically triggers a keyboard event
	 *
	 * @param {int} keyCode
	 */
	triggerKey( keyCode ) {

		this.onDocumentKeyDown( { keyCode } );

	}

	/**
	 * Registers a new shortcut to include in the help overlay
	 *
	 * @param {String} key
	 * @param {String} value
	 */
	registerKeyboardShortcut( key, value ) {

		this.shortcuts[key] = value;

	}

	getShortcuts() {

		return this.shortcuts;

	}

	getBindings() {

		return this.bindings;

	}

	/**
	 * Handler for the document level 'keypress' event.
	 *
	 * @param {object} event
	 */
	onDocumentKeyPress( event ) {

		// Check if the pressed key is question mark
		if( event.shiftKey && event.charCode === 63 ) {
			this.Reveal.toggleHelp();
		}

	}

	/**
	 * Handler for the document level 'keydown' event.
	 *
	 * @param {object} event
	 */
	onDocumentKeyDown( event ) {

		let config = this.Reveal.getConfig();

		// If there's a condition specified and it returns false,
		// ignore this event
		if( typeof config.keyboardCondition === 'function' && config.keyboardCondition(event) === false ) {
			return true;
		}

		// If keyboardCondition is set, only capture keyboard events
		// for embedded decks when they are focused
		if( config.keyboardCondition === 'focused' && !this.Reveal.isFocused() ) {
			return true;
		}

		// Shorthand
		let keyCode = event.keyCode;



( run in 0.599 second using v1.01-cache-2.11-cpan-ceb78f64989 )