lineheight.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /**
  2. * @fileoverview
  3. * '줄간격' Icon Source,
  4. * Class Trex.Tool.LineHeight configuration을 포함
  5. *
  6. */
  7. TrexConfig.addTool(
  8. "lineheight",
  9. {
  10. sync: _FALSE,
  11. status: _TRUE,
  12. options: [
  13. { label: '50%', title: '50%', data: '0.5' },
  14. { label: '80%', title: '80%', data: '0.8' },
  15. { label: '100%', title: '100%', data: '1.0' },
  16. { label: '120%', title: '120%', data: '1.2' },
  17. { label: '150%', title: '150%', data: '1.5' },
  18. { label: '180%', title: '180%', data: '1.8' },
  19. { label: '200%', title: '200%', data: '2.0' }
  20. ]
  21. }
  22. );
  23. Trex.Tool.LineHeight = Trex.Class.create({
  24. $const: {
  25. __Identity: 'lineheight'
  26. },
  27. $extend: Trex.Tool,
  28. oninitialized: function(config) {
  29. var _canvas = this.canvas;
  30. var _defaultProperty = _canvas.getStyleConfig().lineHeight;
  31. var _optionz = (config.options || []);
  32. var _map = {};
  33. _optionz.each(function(option) {
  34. _map[option.data] = option.title;
  35. });
  36. var _toolHandler = function(command) {
  37. _canvas.execute(function(processor) {
  38. var _nodes = processor.blocks(function() {
  39. return '%paragraph';
  40. });
  41. processor.apply(_nodes, {
  42. 'style': {
  43. 'lineHeight': command
  44. }
  45. });
  46. });
  47. };
  48. /* button & menu weave */
  49. this.weave.bind(this)(
  50. /* button */
  51. new Trex.Button.Select(TrexConfig.merge(this.buttonCfg, {
  52. selectedValue: _defaultProperty
  53. })),
  54. /* menu */
  55. new Trex.Menu.Select(this.menuCfg),
  56. /* handler */
  57. _toolHandler);
  58. }
  59. });