8
0

keyobserver.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /**
  2. * @license Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. 'use strict';
  6. import DomEventObserver from './domeventobserver.js';
  7. import { getCode } from '../../../utils/keyboard.js';
  8. /**
  9. * {@link engine.treeView.Document#keydown Key down} event observer.
  10. *
  11. * @memberOf engine.treeView.observer
  12. * @extends engine.treeView.observer.DomEventObserver
  13. */
  14. export default class KeyObserver extends DomEventObserver {
  15. constructor( document ) {
  16. super( document );
  17. this.domEventType = 'keydown';
  18. }
  19. onDomEvent( domEvt ) {
  20. this.fire( 'keydown', domEvt, {
  21. keyCode: domEvt.keyCode,
  22. altKey: domEvt.altKey,
  23. ctrlKey: domEvt.ctrlKey || domEvt.metaKey,
  24. shiftKey: domEvt.shiftKey,
  25. get keystroke() {
  26. return getCode( this );
  27. }
  28. } );
  29. }
  30. }
  31. /**
  32. * Fired when a key has been pressed.
  33. *
  34. * @event engine.treeView.Document#keydown
  35. * @param {engine.treeView.observer.keyObserver.KeyEventData} keyEventData
  36. */
  37. /**
  38. * The value of the {@link engine.treeView.Document#keydown} event.
  39. *
  40. * @class engine.treeView.observer.keyObserver.KeyEventData
  41. * @extends engine.treeView.observer.DomEventData
  42. * @implements utils.keyboard.KeystrokeData
  43. */
  44. /**
  45. * Code of the whole keystroke. See {@link utils.keyboard.getCode}.
  46. *
  47. * @readonly
  48. * @member {Number} engine.treeView.observer.keyObserver.KeyEventData#keystroke
  49. */