diff options
Diffstat (limited to 'js/components/tools-properties/text-properties.reel/text-properties.js')
-rwxr-xr-x | js/components/tools-properties/text-properties.reel/text-properties.js | 357 |
1 files changed, 122 insertions, 235 deletions
diff --git a/js/components/tools-properties/text-properties.reel/text-properties.js b/js/components/tools-properties/text-properties.reel/text-properties.js index 0cfa6c4c..db0d3af6 100755 --- a/js/components/tools-properties/text-properties.reel/text-properties.js +++ b/js/components/tools-properties/text-properties.reel/text-properties.js | |||
@@ -34,309 +34,196 @@ var ArrayController = require("montage/ui/controller/array-controller").ArrayCon | |||
34 | var ToolProperties = require("js/components/tools-properties/tool-properties").ToolProperties; | 34 | var ToolProperties = require("js/components/tools-properties/tool-properties").ToolProperties; |
35 | 35 | ||
36 | exports.TextProperties = Montage.create(ToolProperties, { | 36 | exports.TextProperties = Montage.create(ToolProperties, { |
37 | className: {value: null, serializable: true}, | 37 | |
38 | tagType: {value: null, serializable: true}, | 38 | fontName: {value: null, serializable: true}, |
39 | fontSelection: {value: null, serializable: true}, | ||
40 | fontSettings: {value: null, serializable: true}, | ||
41 | fontSize: {value: null, serializable: true}, | 39 | fontSize: {value: null, serializable: true}, |
42 | fontColor: {value: null, serializable: true}, | 40 | fontColor: {value: null, serializable: true}, |
41 | |||
43 | btnBold: {value: null, serializable: true}, | 42 | btnBold: {value: null, serializable: true}, |
44 | btnItalic: {value: null, serializable: true}, | 43 | btnItalic: {value: null, serializable: true}, |
45 | btnUnderline: {value: null, serializable: true}, | 44 | btnUnderline: {value: null, serializable: true}, |
46 | btnStrikethrough: {value: null, serializable: true}, | 45 | btnStrikethrough: {value: null, serializable: true}, |
47 | txtLink: {value: null, serializable: true}, | 46 | |
48 | linkTarget: {value: null, serializable: true}, | ||
49 | alignLeft: {value: null, serializable: true}, | 47 | alignLeft: {value: null, serializable: true}, |
50 | alignCenter: {value: null, serializable: true}, | 48 | alignCenter: {value: null, serializable: true}, |
51 | alignRight: {value: null, serializable: true}, | 49 | alignRight: {value: null, serializable: true}, |
52 | alignJustify: {value: null, serializable: true}, | 50 | alignJustify: {value: null, serializable: true}, |
51 | |||
53 | indent: {value: null, serializable: true}, | 52 | indent: {value: null, serializable: true}, |
54 | outdent: {value: null, serializable: true}, | 53 | outdent: {value: null, serializable: true}, |
54 | |||
55 | numberedList: {value: null, serializable: true}, | 55 | numberedList: {value: null, serializable: true}, |
56 | bulletedList: {value: null, serializable: true}, | 56 | bulletedList: {value: null, serializable: true}, |
57 | fontTypes: {value: null, serializable: true}, | ||
58 | fontSizes: {value: null, serializable: true}, | ||
59 | 57 | ||
60 | prepareForDraw: { | 58 | // Events |
61 | value: function() { | 59 | handleEditorSelect: { |
62 | // code commented out because montage ui element select-input is incomplete. Will switch back when they fix or actually complete the component | 60 | value: function(e) { |
63 | // this.fontTypes = Montage.create(ArrayController); | 61 | this.alignLeft.pressed = false; |
64 | // this.fontTypes.content = [ | 62 | this.alignCenter.pressed = false; |
65 | // { value: "Arial", text: "Arial" }, | 63 | this.alignRight.pressed = false; |
66 | // { value: "Arial Black", text: "Arial Black" }, | 64 | this.alignJustify.pressed = false; |
67 | // { value: "Courier New", text: "Courier New" }, | 65 | this.bulletedList.pressed = false; |
68 | // { value: "Garamond", text: "Garamond" }, | 66 | this.numberedList.pressed = false; |
69 | // { value: "Georgia", text: "Georgia" }, | 67 | |
70 | // { value: "Open Sans", text: "Open Sans" }, | 68 | |
71 | // { value: "Tahoma", text: "Tahoma" }, | 69 | switch(this.application.ninja.stage.textTool.justify) { |
72 | // { value: "Times New Roman", text: "Times New Roman" }, | 70 | case "left": |
73 | // { value: "Trebuchet MS", text: "Trebuchet MS" }, | 71 | this.alignLeft.pressed = true; |
74 | // { value: "Verdana", text: "Verdana" } | 72 | break; |
75 | // ]; | 73 | case "center": |
76 | 74 | this.alignCenter.pressed = true; | |
77 | //this.fontSelection.contentController = this.fontTypes; | 75 | break; |
78 | // | 76 | case "right": |
79 | // this.fontSizes = Montage.create(ArrayController); | 77 | this.alignRight.pressed = true; |
80 | // this.fontSizes.content = [ | 78 | break; |
81 | // { value: 1, text: "8pt" }, | 79 | case "full": |
82 | // { value: 2, text: "10pt" }, | 80 | this.alignJustify.pressed = true; |
83 | // { value: 3, text: "12pt" }, | 81 | } |
84 | // { value: 4, text: "14pt" }, | 82 | |
85 | // { value: 5, text: "18pt" }, | 83 | switch(this.application.ninja.stage.textTool.listStyle) { |
86 | // { value: 6, text: "24pt" }, | 84 | case "ordered": |
87 | // { value: 7, text: "36pt" } | 85 | this.numberedList.pressed = true; |
88 | // ]; | 86 | break; |
89 | // this.fontSize.contentController = this.fontSizes; | 87 | case "unordered": |
90 | 88 | this.bulletedList.pressed = true; | |
91 | this.fontSelection.items = ["Arial", "Arial Black", "Courier New", "Garamond", "Georgia", "Open Sans", "Tahoma", "Times New Roman", "Trebuchet MS", "Verdana"]; | 89 | } |
92 | this.fontSize.items = ["8pt","10pt","12pt","14pt","18pt","24pt","36pt"]; | ||
93 | this.tagType.items = ["div", "span", "p", "section", "article", "h1", "h2", "h3", "h4", "h5", "h6"]; | ||
94 | } | 90 | } |
95 | }, | 91 | }, |
96 | 92 | ||
97 | handleEditorSelect: { | 93 | handleEditorBlur: { |
98 | value: function(e) { | 94 | value: function(e) { |
99 | //this.application.ninja.stage.textTool.updateStates(); | 95 | |
100 | // this.fontSelection.value = this.application.ninja.stage.textTool.states.fontname; | ||
101 | // | ||
102 | // for( var i = 0; i < this.fontSize.items.length; i++) { | ||
103 | // if (this.application.ninja.stage.textTool.states.fontsize == i + 1) { | ||
104 | // this.fontSize.value = this.fontSize.items[i] | ||
105 | // break; | ||
106 | // } | ||
107 | // } | ||
108 | } | 96 | } |
109 | }, | 97 | }, |
110 | 98 | ||
111 | _subPrepare: { | 99 | |
100 | // Draw Cycle | ||
101 | prepareForDraw: { | ||
112 | value: function() { | 102 | value: function() { |
113 | //this.divElement.addEventListener("click", this, false); | ||
114 | } | ||
115 | }, | ||
116 | 103 | ||
117 | handleClick: { | 104 | this.fontColor.props = {side: 'top', align: 'center', wheel: true, palette: true, gradient: false, image: false, nocolor: true, offset: -80}; |
118 | value: function(event) { | 105 | this.application.ninja.colorController.addButton("chip", this.fontColor); |
119 | // this.selectedElement = event._event.target.id; | 106 | this.fontColor.color('rgb', {wasSetByCode: true, type: 'change', color: {r: 0, g: 0, b: 0}, css: 'rgb(0,0,0)'}); |
107 | this.fontColor.addEventListener("change",this.handleFontColorChange.bind(this),false); | ||
108 | |||
109 | this.application.ninja.stage.textTool.addEventListener("editorSelect", this.handleEditorSelect.bind(this), false); | ||
110 | |||
111 | |||
112 | //Bind to Rich Text editor that lives on the stage component | ||
113 | Object.defineBinding(this.application.ninja.stage.textTool, "fontName", { | ||
114 | boundObject: this.fontName, | ||
115 | boundObjectPropertyPath: "value", | ||
116 | oneway: false | ||
117 | }); | ||
118 | |||
119 | Object.defineBinding(this.application.ninja.stage.textTool, "fontSize", { | ||
120 | boundObject: this.fontSize, | ||
121 | boundObjectPropertyPath: "value", | ||
122 | oneway: false | ||
123 | }); | ||
124 | |||
125 | Object.defineBinding(this.btnBold, "pressed", { | ||
126 | boundObject: this.application.ninja.stage.textTool, | ||
127 | boundObjectPropertyPath: "bold", | ||
128 | oneway: false | ||
129 | }); | ||
130 | |||
131 | Object.defineBinding(this.btnItalic, "pressed", { | ||
132 | boundObject: this.application.ninja.stage.textTool, | ||
133 | boundObjectPropertyPath: "italic", | ||
134 | oneway: false | ||
135 | }); | ||
136 | |||
137 | Object.defineBinding(this.btnUnderline, "pressed", { | ||
138 | boundObject: this.application.ninja.stage.textTool, | ||
139 | boundObjectPropertyPath: "underline", | ||
140 | oneway: false | ||
141 | }); | ||
120 | 142 | ||
143 | Object.defineBinding(this.btnStrikethrough, "pressed", { | ||
144 | boundObject: this.application.ninja.stage.textTool, | ||
145 | boundObjectPropertyPath: "strikeThrough", | ||
146 | oneway: false | ||
147 | }); | ||
121 | } | 148 | } |
122 | }, | 149 | }, |
123 | 150 | ||
124 | handleAlignLeftAction: { | 151 | // Actions |
152 | handleJustifyLeftAction: { | ||
125 | value: function(e) { | 153 | value: function(e) { |
126 | //this.alignLeft.value = false; | 154 | this.alignCenter.pressed = false; |
127 | this.alignCenter.value = false; | 155 | this.alignRight.pressed = false; |
128 | this.alignRight.value = false; | 156 | this.alignJustify.pressed = false; |
129 | this.alignJustify.value = false; | 157 | this.application.ninja.stage.textTool.justify = "left"; |
130 | this.application.ninja.stage.textTool.doAction("justifyleft"); | ||
131 | } | 158 | } |
132 | }, | 159 | }, |
133 | 160 | ||
134 | handleAlignCenterAction: { | 161 | handle |