alignleft.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. (function() {
  2. /**
  3. * @fileoverview
  4. * Toolbar의 AlignLeft Icon을 위해 필요한 configuration과 Class Trex.Tool.AlignLeft를 포함
  5. *
  6. */
  7. TrexConfig.addTool(
  8. "alignleft",
  9. {
  10. sync: _TRUE,
  11. status: _TRUE,
  12. hotKey: { // ctrl + ,
  13. ctrlKey: _TRUE,
  14. keyCode: 188
  15. }
  16. }
  17. );
  18. /*
  19. * Text : align left
  20. * Image : float none + align left
  21. */
  22. var __TextAlignProperty = "left";
  23. var __ImageFloatProperty = 'none';
  24. var __ImageClearProperty = 'none';
  25. var paragraphProp = {
  26. 'align': _NULL,
  27. 'style': {
  28. 'textAlign': __TextAlignProperty
  29. }
  30. };
  31. Trex.Tool.AlignLeft = Trex.Class.create({
  32. $const: {
  33. __Identity: 'alignleft',
  34. __ImageModeProps: {
  35. 'paragraph': paragraphProp,
  36. 'image': {
  37. 'style': {
  38. 'clear': __ImageClearProperty,
  39. 'float': __ImageFloatProperty,
  40. 'marginLeft': "",
  41. 'marginRight': ""
  42. }
  43. }
  44. },
  45. __TextModeProps: {
  46. 'paragraph': paragraphProp,
  47. 'button': {
  48. 'style': {
  49. 'margin': '0'
  50. }
  51. }
  52. }
  53. },
  54. $extend: Trex.Tool,
  55. $mixins: [Trex.I.AlignExecution],
  56. oninitialized: function(config) {
  57. var self = this;
  58. self.imageAlignMode = _FALSE;
  59. self.weave(new Trex.Button(self.buttonCfg), _NULL, self.handler);
  60. self.bindKeyboard(config.hotKey, self.handler.bind(self));
  61. self.startSyncButtonWithStyle();
  62. },
  63. handler: function() {
  64. var self = this;
  65. var canvas = self.canvas;
  66. var toolbar = self.toolbar;
  67. canvas.execute(function(processor) {
  68. self.executeAlign(processor);
  69. var alignMode = self.getAlignMode(processor);
  70. if (alignMode == "image") {
  71. toolbar.fireJobs(Trex.Ev.__CMD_ALIGN_IMG_LEFT);
  72. } else if (alignMode == "text") {
  73. toolbar.fireJobs(Trex.Ev.__CMD_ALIGN_LEFT);
  74. }
  75. });
  76. canvas.triggerQueryStatus();
  77. },
  78. startSyncButtonWithStyle: function() {
  79. var self = this;
  80. self.canvas.observeJob(Trex.Ev.__CANVAS_PANEL_QUERY_STATUS, function(){
  81. self.syncButtonState();
  82. });
  83. }
  84. });
  85. })();