aboutsummaryrefslogtreecommitdiff
path: root/js/components/tools-properties/text-properties.reel/text-properties.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/components/tools-properties/text-properties.reel/text-properties.js')
-rwxr-xr-xjs/components/tools-properties/text-properties.reel/text-properties.js357
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
34var ToolProperties = require("js/components/tools-properties/tool-properties").ToolProperties; 34var ToolProperties = require("js/components/tools-properties/tool-properties").ToolProperties;
35 35
36exports.TextProperties = Montage.create(ToolProperties, { 36exports.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 handleJustifyCenterAction: {
135