Toolbar.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import { UIPanel, UIButton } from './libs/ui.js';
  2. function Toolbar( editor ) {
  3. const signals = editor.signals;
  4. const strings = editor.strings;
  5. const container = new UIPanel();
  6. container.setId( 'toolbar' );
  7. // translate / rotate / scale
  8. const translateIcon = document.createElement( 'img' );
  9. translateIcon.title = strings.getKey( 'toolbar/translate' );
  10. translateIcon.src = 'images/translate.svg';
  11. const translate = new UIButton();
  12. translate.dom.className = 'Button selected';
  13. translate.dom.appendChild( translateIcon );
  14. translate.onClick( function () {
  15. signals.transformModeChanged.dispatch( 'translate' );
  16. } );
  17. container.add( translate );
  18. const rotateIcon = document.createElement( 'img' );
  19. rotateIcon.title = strings.getKey( 'toolbar/rotate' );
  20. rotateIcon.src = 'images/rotate.svg';
  21. const rotate = new UIButton();
  22. rotate.dom.appendChild( rotateIcon );
  23. rotate.onClick( function () {
  24. signals.transformModeChanged.dispatch( 'rotate' );
  25. } );
  26. container.add( rotate );
  27. const scaleIcon = document.createElement( 'img' );
  28. scaleIcon.title = strings.getKey( 'toolbar/scale' );
  29. scaleIcon.src = 'images/scale.svg';
  30. const scale = new UIButton();
  31. scale.dom.appendChild( scaleIcon );
  32. scale.onClick( function () {
  33. signals.transformModeChanged.dispatch( 'scale' );
  34. } );
  35. container.add( scale );
  36. //
  37. signals.transformModeChanged.add( function ( mode ) {
  38. translate.dom.classList.remove( 'selected' );
  39. rotate.dom.classList.remove( 'selected' );
  40. scale.dom.classList.remove( 'selected' );
  41. switch ( mode ) {
  42. case 'translate': translate.dom.classList.add( 'selected' ); break;
  43. case 'rotate': rotate.dom.classList.add( 'selected' ); break;
  44. case 'scale': scale.dom.classList.add( 'selected' ); break;
  45. }
  46. } );
  47. return container;
  48. }
  49. export { Toolbar };
粤ICP备19079148号