• R/O
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

JavaScriptを色々あれこれしようとするがひたすら失敗を繰り返している


Commit MetaInfo

Revision37 (tree)
Time2016-12-02 03:26:59
Authortakoyaki_umaaaa

Log Message

(empty log message)

Change Summary

Incremental Difference

--- HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/css/default.css (revision 36)
+++ HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/css/default.css (revision 37)
@@ -130,7 +130,9 @@
130130
131131 /* フォーカス枠と拡大縮小・回転用マーカー定義 */
132132 .scaler,
133- .roller {
133+ .roller,
134+ .mirrorLR,
135+ .mirrorUD {
134136 position: absolute;
135137 width: 15px; height: 15px;
136138 padding: 0; margin: 0;
@@ -147,6 +149,16 @@
147149 transform: translateX(-50%) translateY(-50%);
148150 background-color: green;
149151 }
152+ .mirrorLR {
153+ left: 0%; top: 0%;
154+ transform: translateX(-50%) translateY(-50%);
155+ background-color: lightpink;
156+ }
157+ .mirrorUD {
158+ left: 100%; top:0%;
159+ transform: translateX(-50%) translateY(-50%);
160+ background-color: aquamarine;
161+ }
150162
151163 .focusimage {
152164 background-image: linear-gradient(
--- HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/CommandMgr.js (revision 36)
+++ HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/CommandMgr.js (revision 37)
@@ -120,7 +120,7 @@
120120 this.cmdCreateResponse( cmdObj );
121121
122122 // Undo情報作成
123- this.createUndoInfo( cmdObj );
123+// this.createUndoInfo( cmdObj );
124124
125125 // cmdの宛先によりcmd送信処理分け
126126 eachDestOfFuncTbl[ cmdObj.to ]( cmdObj );
--- HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/CommandObj.js (revision 36)
+++ HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/CommandObj.js (revision 37)
@@ -28,6 +28,8 @@
2828 movebox: 10,
2929 scalebox: 11,
3030 rollbox: 12,
31+ mirrorlr: 13,
32+ mirrorud: 14,
3133 deletebox: 100,
3234 };
3335
--- HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/DispObj.js (revision 36)
+++ HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/DispObj.js (revision 37)
@@ -22,6 +22,8 @@
2222 this.originalHeight = 0.0;
2323 this.opacity = 1.0;
2424 this.degree = 0;
25+ this.mirrorLRdeg = 0;
26+ this.mirrorUDdeg = 0;
2527 this.text = null;
2628 this.transformStr = null;
2729
@@ -110,7 +112,9 @@
110112 this.DOMbase = document.createElement('div');
111113 this.DOMbase.classList.add('DispBase');
112114 this.DOMbase.dataset.objid = this.ObjID;
113- this.DOMbase.dataset.degree = 0;
115+ this.DOMbase.dataset.degree = this.degree;
116+ this.DOMbase.dataset.mirrorlr = this.mirrorLRdeg;
117+ this.DOMbase.dataset.mirrorud = this.mirrorUDdeg;
114118 this.DOMbase.addEventListener('mousedown', this.onMouseDown.bind(this), false);
115119 // DispObj作成
116120 let elType = (null != type.match(/imagebox/)) ? 'img' : 'div';
@@ -213,6 +217,8 @@
213217 this.height = parseInt(ele.style.height);
214218 this.ObjID = ele.dataset.objid;
215219 this.degree = ele.dataset.degree;
220+ this.mirrorLRdeg = ele.dataset.mirrorlr;
221+ this.mirrorUDdeg = ele.dataset.mirrorud;
216222 this.DOMbase.addEventListener('mousedown', this.onMouseDown.bind(this), false);
217223
218224 if( ele.children.length < 1 ){
@@ -277,11 +283,20 @@
277283 window.renderLoop.requestRenderFunc(this.renderrollbox.bind(this));
278284 }
279285 renderrollbox() {
280- this.DOMbase.style.transform = 'rotateZ(' + this.degree + 'deg);';
286+ this.DOMbase.style.transform = 'rotateY(' + this.mirrorLRdeg + 'deg) rotateX(' + this.mirrorUDdeg + 'deg) rotateZ(' + this.degree + 'deg);';
281287 }
288+ mirrorLR() {
289+ this.mirrorLRdeg = (0 < this.mirrorLRdeg) ? 0 : 180;
290+ this.DOMbase.dataset.mirrorlr = this.mirrorLRdeg;
291+ window.renderLoop.requestRenderFunc(this.renderrollbox.bind(this));
292+ }
293+ mirrorUD() {
294+ this.mirrorUDdeg = (0 < this.mirrorUDdeg) ? 0 : 180;
295+ this.DOMbase.dataset.mirrorud = this.mirrorUDdeg;
296+ window.renderLoop.requestRenderFunc(this.renderrollbox.bind(this));
297+ }
282298
283299
284-
285300 checkType(str) {
286301 return true;
287302 }
--- HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/ObjIDMgr.js (revision 36)
+++ HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/ObjIDMgr.js (revision 37)
@@ -133,6 +133,19 @@
133133 }
134134 }
135135
136+ mirrorLR(id) {
137+ this.debuglog('mirrorLR id=' + id);
138+ if (id < this.ObjIDLen) {
139+ this.ObjIDarray[id].mirrorLR();
140+ }
141+ }
142+ mirrorUD(id) {
143+ this.debuglog('mirrorUD id=' + id);
144+ if (id < this.ObjIDLen) {
145+ this.ObjIDarray[id].mirrorUD();
146+ }
147+ }
148+
136149 deletebox(id) {
137150 // 要素を画面から隠す。削除はしない。Undoに対応するため。
138151 // 要素を DOM treeから 切り離すことで表示されないようにする
--- HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/UI_parts.js (revision 36)
+++ HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/UI_parts.js (revision 37)
@@ -16,6 +16,8 @@
1616 this.DOM = [null, null, null, null]; // focus表示用
1717 this.domScaler = null;
1818 this.domRoller = null;
19+ this.domMirrorLR = null;
20+ this.domMirrorUD = null;
1921 }
2022
2123 debuglog(str) {
@@ -33,14 +35,16 @@
3335 this.DOM[cnt].dataset.objid = this.num2str[cnt];
3436 this.DOM[cnt].classList.add('focusimage');
3537 this.DOM[cnt].classList.add(this.num2str[cnt]);
36- window.renderLoop.requestRenderFunc(this.renderCreateOneFocusbar.bind(this, this.DOM[cnt], null));
38+ window.renderLoop.requestRenderFunc(this.renderCreateForcus.bind(this, this.DOM[cnt]));
3739 }
3840 // this.debuglog("create() renderFunc size=" + this.renderFunc.size());
3941
4042 this.createScaler();
4143 this.createRoller();
44+ this.createMirrorLR();
45+ this.createMirrorUD();
4246 }
43- renderCreateOneFocusbar(dom, rect) {
47+ renderCreateForcus(dom) {
4448 dom.style.display = (null == this.clingingPartner) ? "none" : "block";
4549 this.clingingPartner.appendChild(dom);
4650 }
@@ -51,26 +55,35 @@
5155 this.domScaler = document.createElement('div');
5256 this.domScaler.dataset.objid = 'scaler';
5357 this.domScaler.classList.add('scaler');
58+ this.domScaler.title = "ドラッグでサイズを変更します";
5459 this.domScaler.addEventListener('mousedown', this.onMouseDownScale.bind(this), false);
55- window.renderLoop.requestRenderFunc(this.renderScaler.bind(this, null));
60+ window.renderLoop.requestRenderFunc(this.renderCreateForcus.bind(this, this.domScaler));
5661 }
57- renderScaler(rect) {
58- this.domScaler.style.display = (null == this.clingingPartner) ? "none" : "block";
59- this.clingingPartner.appendChild(this.domScaler);
60- }
61-
6262 // 回転操作マーカー作成
6363 createRoller() {
6464 this.domRoller = document.createElement('div');
6565 this.domRoller.dataset.objid = 'roller';
6666 this.domRoller.classList.add('roller');
67+ this.domRoller.title = "ドラッグで回転します";
6768 this.domRoller.addEventListener('mousedown', this.onMouseDownRoll.bind(this), false);
68- window.renderLoop.requestRenderFunc(this.renderRoller.bind(this, null));
69+ window.renderLoop.requestRenderFunc(this.renderCreateForcus.bind(this, this.domRoller));
6970 }
70- renderRoller(rect) {
71- this.domRoller.style.display = (null == this.clingingPartner) ? "none" : "block";
72- this.clingingPartner.appendChild(this.domRoller);
71+ createMirrorLR() {
72+ this.domMirrorLR = document.createElement('div');
73+ this.domMirrorLR.dataset.objid = 'mirrorLR';
74+ this.domMirrorLR.classList.add('mirrorLR');
75+ this.domMirrorLR.title = "左右反転します";
76+ this.domMirrorLR.addEventListener('mousedown', this.onMouseDownMirror.bind(this), false);
77+ window.renderLoop.requestRenderFunc(this.renderCreateForcus.bind(this, this.domMirrorLR));
7378 }
79+ createMirrorUD() {
80+ this.domMirrorUD = document.createElement('div');
81+ this.domMirrorUD.dataset.objid = 'mirrorUD';
82+ this.domMirrorUD.classList.add('mirrorUD');
83+ this.domMirrorUD.title = "上下反転します";
84+ this.domMirrorUD.addEventListener('mousedown', this.onMouseDownMirror.bind(this), false);
85+ window.renderLoop.requestRenderFunc(this.renderCreateForcus.bind(this, this.domMirrorUD));
86+ }
7487
7588 // 操作関数-----------------------------------
7689 // Focus中の objid取得
@@ -78,7 +91,7 @@
7891 getFocusedObjid() {
7992 this.debuglog("getFocusedObjid().");
8093 let eleFocus = this.getFocusdElements();
81- if (eleFocus < 2) return null;
94+ if (eleFocus.length < 2) return null;
8295
8396 return eleFocus[0].dataset.objid;
8497 }
@@ -114,6 +127,16 @@
114127 delete this.domRoller;
115128 this.domRoller = null;
116129 }
130+ if (null != this.domMirrorLR) {
131+ this.domMirrorLR.outerHTML = "";
132+ delete this.domMirrorLR;
133+ this.domMirrorLR = null;
134+ }
135+ if (null != this.domMirrorUD) {
136+ this.domMirrorUD.outerHTML = "";
137+ delete this.domMirrorUD;
138+ this.domMirrorUD = null;
139+ }
117140 }
118141
119142 // Forcus先設定
@@ -155,7 +178,7 @@
155178 onMouseDownScale(evt) {
156179 this.debuglog('onMouseDownScale');
157180 let eleFocus = this.getFocusdElements();
158- if (eleFocus < 2) return;
181+ if (eleFocus.length < 2) return;
159182 evt.stopPropagation(); // event伝播を自分のところで止める(上位に行かなくなる)
160183 evt.preventDefault(); // 要素既定のdefault動作を止める
161184
@@ -170,7 +193,7 @@
170193 }
171194 mouseMoveScale(evt) {
172195 let eleFocus = this.getFocusdElements();
173- if (eleFocus < 2) return;
196+ if (eleFocus.length < 2) return;
174197 evt.stopPropagation(); // event伝播を自分のところで止める(上位に行かなくなる)
175198 evt.preventDefault(); // 要素既定のdefault動作を止める
176199
@@ -196,7 +219,7 @@
196219 }
197220 renderMouseMoveScale(width, height, scalefont) {
198221 let eleFocus = this.getFocusdElements();
199- if (eleFocus < 2) return;
222+ if (eleFocus.length < 2) return;
200223 eleFocus[1].style.opacity = 0.4;
201224
202225 switch(1){
@@ -217,7 +240,7 @@
217240 window.appArea.setMouseEventObj(null, null, null);
218241
219242 let eleFocus = this.getFocusdElements();
220- if (eleFocus < 2) return;
243+ if (eleFocus.length < 2) return;
221244 evt.stopPropagation(); // event伝播を自分のところで止める(上位に行かなくなる)
222245 evt.preventDefault(); // 要素既定のdefault動作を止める
223246
@@ -249,7 +272,6 @@
249272 // Scale Command発行
250273 let cmd = new CCommandObj();
251274 cmd.createCommand(cmdType.request, cmdAddress.Focus, cmdAddress.ObjIDMgr, cmdCmd.scalebox, eleFocus[0].dataset.objid, rectFrom, rectTo, scaleY, 5);
252- this.debuglog("postToWorker");
253275 window.postToWorker.post(cmd);
254276 }
255277
@@ -263,7 +285,7 @@
263285 }
264286 mouseMoveRoll(evt) {
265287 let eleFocus = this.getFocusdElements();
266- if (eleFocus < 2) return;
288+ if (eleFocus.length < 2) return;
267289 evt.stopPropagation(); // event伝播を自分のところで止める(上位に行かなくなる)
268290 evt.preventDefault(); // 要素既定のdefault動作を止める
269291
@@ -273,13 +295,16 @@
273295 let y2 = evt.pageY;
274296 let degree = angle(x2, y2, x1, y1);
275297
276- window.renderLoop.requestRenderFunc(this.renderMouseMoveRoll.bind(this, degree));
298+ let mirrorlr = parseInt(eleFocus[0].dataset.mirrorlr);
299+ let mirrorud = parseInt(eleFocus[0].dataset.mirrorud);
300+
301+ window.renderLoop.requestRenderFunc(this.renderMouseMoveRoll.bind(this, degree, mirrorlr, mirrorud));
277302 }
278- renderMouseMoveRoll(degree) {
303+ renderMouseMoveRoll(degree, mirrorlr, mirrorud) {
279304 let eleFocus = this.getFocusdElements();
280- if (eleFocus < 2) return;
305+ if (eleFocus.length < 2) return;
281306
282- eleFocus[0].style.transform = 'rotateZ(' + degree + 'deg);';
307+ eleFocus[0].style.transform = 'rotateY(' + mirrorlr + 'deg) rotateX(' + mirrorud + 'deg) rotateZ(' + degree + 'deg);';
283308 }
284309 mouseUpRoll(evt) {
285310 this.debuglog('mouseUpRoll');
@@ -286,7 +311,7 @@
286311 // Mouse event callback設定をクリア
287312 window.appArea.setMouseEventObj(null, null, null);
288313 let eleFocus = this.getFocusdElements();
289- if (eleFocus < 2) return;
314+ if (eleFocus.length < 2) return;
290315 evt.stopPropagation(); // event伝播を自分のところで止める(上位に行かなくなる)
291316 evt.preventDefault(); // 要素既定のdefault動作を止める
292317
@@ -301,16 +326,55 @@
301326 // Rotate command発行
302327 let cmd = new CCommandObj();
303328 cmd.createCommand(cmdType.request, cmdAddress.Focus, cmdAddress.ObjIDMgr, cmdCmd.rollbox, eleFocus[0].dataset.objid, degree, null, null, 6);
304- this.debuglog("postToWorker");
305329 window.postToWorker.post(cmd);
306330 }
307331
332+ onMouseDownMirror(evt) {
333+ this.debuglog('onMouseDownMirror');
334+ evt.stopPropagation(); // event伝播を自分のところで止める(上位に行かなくなる)
335+ evt.preventDefault(); // 要素既定のdefault動作を止める
308336
337+ // Mouse eventをappAreaからRollerに渡してもらうように設定
338+ window.appArea.setMouseEventObj(null, this.mouseMoveMirror.bind(this), this.mouseUpMirror.bind(this));
339+ }
340+ mouseMoveMirror(evt) {
341+ let eleFocus = this.getFocusdElements();
342+ if (eleFocus.length < 2) return;
343+ evt.stopPropagation(); // event伝播を自分のところで止める(上位に行かなくなる)
344+ evt.preventDefault(); // 要素既定のdefault動作を止める
309345
346+ // 画像反転させるだけなのでmouse moveは処理しない
347+ }
348+ mouseUpMirror(evt, target) {
349+ this.debuglog('mouseUpMirror');
350+ // Mouse event callback設定をクリア
351+ window.appArea.setMouseEventObj(null, null, null);
352+ let eleFocus = this.getFocusdElements();
353+ if (eleFocus.length < 2) return;
354+ evt.stopPropagation(); // event伝播を自分のところで止める(上位に行かなくなる)
355+ evt.preventDefault(); // 要素既定のdefault動作を止める
310356
357+ let command = -1;
358+ switch (evt.target.dataset.objid) {
359+ case "mirrorLR":
360+ command = cmdCmd.mirrorlr;
361+ break;
362+ case "mirrorUD":
363+ command = cmdCmd.mirrorud;
364+ break;
365+ default:
366+ console.error('マウス入力処理エラー mouseUpMirror objid=' + evt.target.dataset.objid);
367+ return;
368+ }
369+ let cmd = new CCommandObj();
370+ cmd.createCommand(cmdType.request, cmdAddress.Focus, cmdAddress.ObjIDMgr, command, eleFocus[0].dataset.objid, null, null, null, 6);
371+ window.postToWorker.post(cmd);
372+ }
311373
312374
313375
376+
377+
314378 getFocusdElements() {
315379 let eleBase = this.clingingPartner;
316380 if (null == eleBase) {
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
--- HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/palette.js (revision 36)
+++ HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/palette.js (revision 37)
@@ -263,7 +263,6 @@
263263
264264 // Drag中 palette elementから target element へ CSS classを追加する
265265 // 同じ種類のCSS class(Text color, BG imgなど)が既にある場合は上書き
266-
267266 if( null != target)
268267 this.replaceCSSclassToElement(palobjid, target.DOMobject);
269268 }
--- HtmlDrawApp/HTMLDrawApp/css/default.css (revision 36)
+++ HtmlDrawApp/HTMLDrawApp/css/default.css (revision 37)
@@ -130,7 +130,9 @@
130130
131131 /* フォーカス枠と拡大縮小・回転用マーカー定義 */
132132 .scaler,
133- .roller {
133+ .roller,
134+ .mirrorLR,
135+ .mirrorUD {
134136 position: absolute;
135137 width: 15px; height: 15px;
136138 padding: 0; margin: 0;
@@ -147,6 +149,16 @@
147149 transform: translateX(-50%) translateY(-50%);
148150 background-color: green;
149151 }
152+ .mirrorLR {
153+ left: 0%; top: 0%;
154+ transform: translateX(-50%) translateY(-50%);
155+ background-color: lightpink;
156+ }
157+ .mirrorUD {
158+ left: 100%; top:0%;
159+ transform: translateX(-50%) translateY(-50%);
160+ background-color: aquamarine;
161+ }
150162
151163 .focusimage {
152164 background-image: linear-gradient(
--- HtmlDrawApp/HTMLDrawApp/js/CommandMgr.js (revision 36)
+++ HtmlDrawApp/HTMLDrawApp/js/CommandMgr.js (revision 37)
@@ -120,7 +120,7 @@
120120 this.cmdCreateResponse( cmdObj );
121121
122122 // Undo情報作成
123- this.createUndoInfo( cmdObj );
123+// this.createUndoInfo( cmdObj );
124124
125125 // cmdの宛先によりcmd送信処理分け
126126 eachDestOfFuncTbl[ cmdObj.to ]( cmdObj );
--- HtmlDrawApp/HTMLDrawApp/js/CommandObj.js (revision 36)
+++ HtmlDrawApp/HTMLDrawApp/js/CommandObj.js (revision 37)
@@ -28,6 +28,8 @@
2828 movebox: 10,
2929 scalebox: 11,
3030 rollbox: 12,
31+ mirrorlr: 13,
32+ mirrorud: 14,
3133 deletebox: 100,
3234 };
3335
--- HtmlDrawApp/HTMLDrawApp/js/DispObj.js (revision 36)
+++ HtmlDrawApp/HTMLDrawApp/js/DispObj.js (revision 37)
@@ -22,6 +22,8 @@
2222 this.originalHeight = 0.0;
2323 this.opacity = 1.0;
2424 this.degree = 0;
25+ this.mirrorLRdeg = 0;
26+ this.mirrorUDdeg = 0;
2527 this.text = null;
2628 this.transformStr = null;
2729
@@ -110,7 +112,9 @@
110112 this.DOMbase = document.createElement('div');
111113 this.DOMbase.classList.add('DispBase');
112114 this.DOMbase.dataset.objid = this.ObjID;
113- this.DOMbase.dataset.degree = 0;
115+ this.DOMbase.dataset.degree = this.degree;
116+ this.DOMbase.dataset.mirrorlr = this.mirrorLRdeg;
117+ this.DOMbase.dataset.mirrorud = this.mirrorUDdeg;
114118 this.DOMbase.addEventListener('mousedown', this.onMouseDown.bind(this), false);
115119 // DispObj作成
116120 let elType = (null != type.match(/imagebox/)) ? 'img' : 'div';
@@ -213,6 +217,8 @@
213217 this.height = parseInt(ele.style.height);
214218 this.ObjID = ele.dataset.objid;
215219 this.degree = ele.dataset.degree;
220+ this.mirrorLRdeg = ele.dataset.mirrorlr;
221+ this.mirrorUDdeg = ele.dataset.mirrorud;
216222 this.DOMbase.addEventListener('mousedown', this.onMouseDown.bind(this), false);
217223
218224 if( ele.children.length < 1 ){
@@ -277,11 +283,20 @@
277283 window.renderLoop.requestRenderFunc(this.renderrollbox.bind(this));
278284 }
279285 renderrollbox() {
280- this.DOMbase.style.transform = 'rotateZ(' + this.degree + 'deg);';
286+ this.DOMbase.style.transform = 'rotateY(' + this.mirrorLRdeg + 'deg) rotateX(' + this.mirrorUDdeg + 'deg) rotateZ(' + this.degree + 'deg);';
281287 }
288+ mirrorLR() {
289+ this.mirrorLRdeg = (0 < this.mirrorLRdeg) ? 0 : 180;
290+ this.DOMbase.dataset.mirrorlr = this.mirrorLRdeg;
291+ window.renderLoop.requestRenderFunc(this.renderrollbox.bind(this));
292+ }
293+ mirrorUD() {
294+ this.mirrorUDdeg = (0 < this.mirrorUDdeg) ? 0 : 180;
295+ this.DOMbase.dataset.mirrorud = this.mirrorUDdeg;
296+ window.renderLoop.requestRenderFunc(this.renderrollbox.bind(this));
297+ }
282298
283299
284-
285300 checkType(str) {
286301 return true;
287302 }
--- HtmlDrawApp/HTMLDrawApp/js/ObjIDMgr.js (revision 36)
+++ HtmlDrawApp/HTMLDrawApp/js/ObjIDMgr.js (revision 37)
@@ -133,6 +133,19 @@
133133 }
134134 }
135135
136+ mirrorLR(id) {
137+ this.debuglog('mirrorLR id=' + id);
138+ if (id < this.ObjIDLen) {
139+ this.ObjIDarray[id].mirrorLR();
140+ }
141+ }
142+ mirrorUD(id) {
143+ this.debuglog('mirrorUD id=' + id);
144+ if (id < this.ObjIDLen) {
145+ this.ObjIDarray[id].mirrorUD();
146+ }
147+ }
148+
136149 deletebox(id) {
137150 // 要素を画面から隠す。削除はしない。Undoに対応するため。
138151 // 要素を DOM treeから 切り離すことで表示されないようにする
--- HtmlDrawApp/HTMLDrawApp/js/UI_parts.js (revision 36)
+++ HtmlDrawApp/HTMLDrawApp/js/UI_parts.js (revision 37)
@@ -16,6 +16,8 @@
1616 this.DOM = [null, null, null, null]; // focus表示用
1717 this.domScaler = null;
1818 this.domRoller = null;
19+ this.domMirrorLR = null;
20+ this.domMirrorUD = null;
1921 }
2022
2123 debuglog(str) {
@@ -33,14 +35,16 @@
3335 this.DOM[cnt].dataset.objid = this.num2str[cnt];
3436 this.DOM[cnt].classList.add('focusimage');
3537 this.DOM[cnt].classList.add(this.num2str[cnt]);
36- window.renderLoop.requestRenderFunc(this.renderCreateOneFocusbar.bind(this, this.DOM[cnt], null));
38+ window.renderLoop.requestRenderFunc(this.renderCreateForcus.bind(this, this.DOM[cnt]));
3739 }
3840 // this.debuglog("create() renderFunc size=" + this.renderFunc.size());
3941
4042 this.createScaler();
4143 this.createRoller();
44+ this.createMirrorLR();
45+ this.createMirrorUD();
4246 }
43- renderCreateOneFocusbar(dom, rect) {
47+ renderCreateForcus(dom) {
4448 dom.style.display = (null == this.clingingPartner) ? "none" : "block";
4549 this.clingingPartner.appendChild(dom);
4650 }
@@ -51,26 +55,35 @@
5155 this.domScaler = document.createElement('div');
5256 this.domScaler.dataset.objid = 'scaler';
5357 this.domScaler.classList.add('scaler');
58+ this.domScaler.title = "ドラッグでサイズを変更します";
5459 this.domScaler.addEventListener('mousedown', this.onMouseDownScale.bind(this), false);
55- window.renderLoop.requestRenderFunc(this.renderScaler.bind(this, null));
60+ window.renderLoop.requestRenderFunc(this.renderCreateForcus.bind(this, this.domScaler));
5661 }
57- renderScaler(rect) {
58- this.domScaler.style.display = (null == this.clingingPartner) ? "none" : "block";
59- this.clingingPartner.appendChild(this.domScaler);
60- }
61-
6262 // 回転操作マーカー作成
6363 createRoller() {
6464 this.domRoller = document.createElement('div');
6565 this.domRoller.dataset.objid = 'roller';
6666 this.domRoller.classList.add('roller');
67+ this.domRoller.title = "ドラッグで回転します";
6768 this.domRoller.addEventListener('mousedown', this.onMouseDownRoll.bind(this), false);
68- window.renderLoop.requestRenderFunc(this.renderRoller.bind(this, null));
69+ window.renderLoop.requestRenderFunc(this.renderCreateForcus.bind(this, this.domRoller));
6970 }
70- renderRoller(rect) {
71- this.domRoller.style.display = (null == this.clingingPartner) ? "none" : "block";
72- this.clingingPartner.appendChild(this.domRoller);
71+ createMirrorLR() {
72+ this.domMirrorLR = document.createElement('div');
73+ this.domMirrorLR.dataset.objid = 'mirrorLR';
74+ this.domMirrorLR.classList.add('mirrorLR');
75+ this.domMirrorLR.title = "左右反転します";
76+ this.domMirrorLR.addEventListener('mousedown', this.onMouseDownMirror.bind(this), false);
77+ window.renderLoop.requestRenderFunc(this.renderCreateForcus.bind(this, this.domMirrorLR));
7378 }
79+ createMirrorUD() {
80+ this.domMirrorUD = document.createElement('div');
81+ this.domMirrorUD.dataset.objid = 'mirrorUD';
82+ this.domMirrorUD.classList.add('mirrorUD');
83+ this.domMirrorUD.title = "上下反転します";
84+ this.domMirrorUD.addEventListener('mousedown', this.onMouseDownMirror.bind(this), false);
85+ window.renderLoop.requestRenderFunc(this.renderCreateForcus.bind(this, this.domMirrorUD));
86+ }
7487
7588 // 操作関数-----------------------------------
7689 // Focus中の objid取得
@@ -78,7 +91,7 @@
7891 getFocusedObjid() {
7992 this.debuglog("getFocusedObjid().");
8093 let eleFocus = this.getFocusdElements();
81- if (eleFocus < 2) return null;
94+ if (eleFocus.length < 2) return null;
8295
8396 return eleFocus[0].dataset.objid;
8497 }
@@ -114,6 +127,16 @@
114127 delete this.domRoller;
115128 this.domRoller = null;
116129 }
130+ if (null != this.domMirrorLR) {
131+ this.domMirrorLR.outerHTML = "";
132+ delete this.domMirrorLR;
133+ this.domMirrorLR = null;
134+ }
135+ if (null != this.domMirrorUD) {
136+ this.domMirrorUD.outerHTML = "";
137+ delete this.domMirrorUD;
138+ this.domMirrorUD = null;
139+ }
117140 }
118141
119142 // Forcus先設定
@@ -155,7 +178,7 @@
155178 onMouseDownScale(evt) {
156179 this.debuglog('onMouseDownScale');
157180 let eleFocus = this.getFocusdElements();
158- if (eleFocus < 2) return;
181+ if (eleFocus.length < 2) return;
159182 evt.stopPropagation(); // event伝播を自分のところで止める(上位に行かなくなる)
160183 evt.preventDefault(); // 要素既定のdefault動作を止める
161184
@@ -170,7 +193,7 @@
170193 }
171194 mouseMoveScale(evt) {
172195 let eleFocus = this.getFocusdElements();
173- if (eleFocus < 2) return;
196+ if (eleFocus.length < 2) return;
174197 evt.stopPropagation(); // event伝播を自分のところで止める(上位に行かなくなる)
175198 evt.preventDefault(); // 要素既定のdefault動作を止める
176199
@@ -196,7 +219,7 @@
196219 }
197220 renderMouseMoveScale(width, height, scalefont) {
198221 let eleFocus = this.getFocusdElements();
199- if (eleFocus < 2) return;
222+ if (eleFocus.length < 2) return;
200223 eleFocus[1].style.opacity = 0.4;
201224
202225 switch(1){
@@ -217,7 +240,7 @@
217240 window.appArea.setMouseEventObj(null, null, null);
218241
219242 let eleFocus = this.getFocusdElements();
220- if (eleFocus < 2) return;
243+ if (eleFocus.length < 2) return;
221244 evt.stopPropagation(); // event伝播を自分のところで止める(上位に行かなくなる)
222245 evt.preventDefault(); // 要素既定のdefault動作を止める
223246
@@ -249,7 +272,6 @@
249272 // Scale Command発行
250273 let cmd = new CCommandObj();
251274 cmd.createCommand(cmdType.request, cmdAddress.Focus, cmdAddress.ObjIDMgr, cmdCmd.scalebox, eleFocus[0].dataset.objid, rectFrom, rectTo, scaleY, 5);
252- this.debuglog("postToWorker");
253275 window.postToWorker.post(cmd);
254276 }
255277
@@ -263,7 +285,7 @@
263285 }
264286 mouseMoveRoll(evt) {
265287 let eleFocus = this.getFocusdElements();
266- if (eleFocus < 2) return;
288+ if (eleFocus.length < 2) return;
267289 evt.stopPropagation(); // event伝播を自分のところで止める(上位に行かなくなる)
268290 evt.preventDefault(); // 要素既定のdefault動作を止める
269291
@@ -273,13 +295,16 @@
273295 let y2 = evt.pageY;
274296 let degree = angle(x2, y2, x1, y1);
275297
276- window.renderLoop.requestRenderFunc(this.renderMouseMoveRoll.bind(this, degree));
298+ let mirrorlr = parseInt(eleFocus[0].dataset.mirrorlr);
299+ let mirrorud = parseInt(eleFocus[0].dataset.mirrorud);
300+
301+ window.renderLoop.requestRenderFunc(this.renderMouseMoveRoll.bind(this, degree, mirrorlr, mirrorud));
277302 }
278- renderMouseMoveRoll(degree) {
303+ renderMouseMoveRoll(degree, mirrorlr, mirrorud) {
279304 let eleFocus = this.getFocusdElements();
280- if (eleFocus < 2) return;
305+ if (eleFocus.length < 2) return;
281306
282- eleFocus[0].style.transform = 'rotateZ(' + degree + 'deg);';
307+ eleFocus[0].style.transform = 'rotateY(' + mirrorlr + 'deg) rotateX(' + mirrorud + 'deg) rotateZ(' + degree + 'deg);';
283308 }
284309 mouseUpRoll(evt) {
285310 this.debuglog('mouseUpRoll');
@@ -286,7 +311,7 @@
286311 // Mouse event callback設定をクリア
287312 window.appArea.setMouseEventObj(null, null, null);
288313 let eleFocus = this.getFocusdElements();
289- if (eleFocus < 2) return;
314+ if (eleFocus.length < 2) return;
290315 evt.stopPropagation(); // event伝播を自分のところで止める(上位に行かなくなる)
291316 evt.preventDefault(); // 要素既定のdefault動作を止める
292317
@@ -301,16 +326,55 @@
301326 // Rotate command発行
302327 let cmd = new CCommandObj();
303328 cmd.createCommand(cmdType.request, cmdAddress.Focus, cmdAddress.ObjIDMgr, cmdCmd.rollbox, eleFocus[0].dataset.objid, degree, null, null, 6);
304- this.debuglog("postToWorker");
305329 window.postToWorker.post(cmd);
306330 }
307331
332+ onMouseDownMirror(evt) {
333+ this.debuglog('onMouseDownMirror');
334+ evt.stopPropagation(); // event伝播を自分のところで止める(上位に行かなくなる)
335+ evt.preventDefault(); // 要素既定のdefault動作を止める
308336
337+ // Mouse eventをappAreaからRollerに渡してもらうように設定
338+ window.appArea.setMouseEventObj(null, this.mouseMoveMirror.bind(this), this.mouseUpMirror.bind(this));
339+ }
340+ mouseMoveMirror(evt) {
341+ let eleFocus = this.getFocusdElements();
342+ if (eleFocus.length < 2) return;
343+ evt.stopPropagation(); // event伝播を自分のところで止める(上位に行かなくなる)
344+ evt.preventDefault(); // 要素既定のdefault動作を止める
309345
346+ // 画像反転させるだけなのでmouse moveは処理しない
347+ }
348+ mouseUpMirror(evt, target) {
349+ this.debuglog('mouseUpMirror');
350+ // Mouse event callback設定をクリア
351+ window.appArea.setMouseEventObj(null, null, null);
352+ let eleFocus = this.getFocusdElements();
353+ if (eleFocus.length < 2) return;
354+ evt.stopPropagation(); // event伝播を自分のところで止める(上位に行かなくなる)
355+ evt.preventDefault(); // 要素既定のdefault動作を止める
310356
357+ let command = -1;
358+ switch (evt.target.dataset.objid) {
359+ case "mirrorLR":
360+ command = cmdCmd.mirrorlr;
361+ break;
362+ case "mirrorUD":
363+ command = cmdCmd.mirrorud;
364+ break;
365+ default:
366+ console.error('マウス入力処理エラー mouseUpMirror objid=' + evt.target.dataset.objid);
367+ return;
368+ }
369+ let cmd = new CCommandObj();
370+ cmd.createCommand(cmdType.request, cmdAddress.Focus, cmdAddress.ObjIDMgr, command, eleFocus[0].dataset.objid, null, null, null, 6);
371+ window.postToWorker.post(cmd);
372+ }
311373
312374
313375
376+
377+
314378 getFocusdElements() {
315379 let eleBase = this.clingingPartner;
316380 if (null == eleBase) {
--- HtmlDrawApp/HTMLDrawApp/js/main.js (revision 36)
+++ HtmlDrawApp/HTMLDrawApp/js/main.js (revision 37)
@@ -130,6 +130,12 @@
130130 // objid degree
131131 window.ObjIDMgr.rollbox(cmd.param1, cmd.param2);
132132 break;
133+ case cmdCmd.mirrorlr: // 左右反転
134+ window.ObjIDMgr.mirrorLR(cmd.param1);
135+ break;
136+ case cmdCmd.mirrorud: // 上下反転
137+ window.ObjIDMgr.mirrorUD(cmd.param1);
138+ break;
133139 case cmdCmd.deletebox: // 要素の削除
134140 // Focus先が消えるため、focusも解除
135141 window.partsFocus.setClingingPartner(null);
@@ -171,8 +177,10 @@
171177 let filename = 'savefile.dd';
172178 let save = new SaveFile();
173179
174- // save.saveFileBrowser(filename, savestr);
175- save.saveFileApp(filename, savestr, cmp, err);
180+ if( Windows )
181+ save.saveFileApp(filename, savestr, cmp, err);
182+ else
183+ save.saveFileBrowser(filename, savestr);
176184 // Anime GIFなどを指定されていると保存に時間がかかる (禁止にしたい)
177185 // 保存中 dialogが必要
178186 };
--- HtmlDrawApp/HTMLDrawApp/js/palette.js (revision 36)
+++ HtmlDrawApp/HTMLDrawApp/js/palette.js (revision 37)
@@ -263,7 +263,6 @@
263263
264264 // Drag中 palette elementから target element へ CSS classを追加する
265265 // 同じ種類のCSS class(Text color, BG imgなど)が既にある場合は上書き
266-
267266 if( null != target)
268267 this.replaceCSSclassToElement(palobjid, target.DOMobject);
269268 }
--- HtmlDrawApp/WE-Palette.css (nonexistent)
+++ HtmlDrawApp/WE-Palette.css (revision 37)
@@ -0,0 +1,28 @@
1+@-we-palette{
2+
3+ @global{
4+ color: #2c77ba;
5+ color: #58B3F0;
6+ color: #C6E2EE;
7+ color: #1F98C7;
8+ color: #78C1DD;
9+ color: #000000;
10+ color: #111111;
11+ color: #222222;
12+ color: #252525;
13+ color: #333333;
14+ color: #555555;
15+ color: #666666;
16+ color: #777777;
17+ color: #999999;
18+ color: #AAAAAA;
19+ color: #BBBBBB;
20+ color: #CCCCCC;
21+ color: #DDDDDD;
22+ color: #E8E8E8;
23+ color: #EEEEEE;
24+ color: #F5F5F5;
25+ color: #F9F9F9;
26+ color: #FFFFFF;
27+ }
28+}
\ No newline at end of file
--- HtmlDrawApp/WebEssentials2015-Settings.json (nonexistent)
+++ HtmlDrawApp/WebEssentials2015-Settings.json (revision 37)
@@ -0,0 +1,46 @@
1+{
2+ "BrowserLink": {
3+ "CssIgnorePatterns": "bootstrap*; reset.css; normalize.css; jquery*; toastr*; foundation*; animate*; inuit*; elements*; ratchet*; hint*; flat-ui*; 960*; skeleton*",
4+ "EnableMenu": true,
5+ "EnablePixelPushing": true,
6+ "ShowMenu": true
7+ },
8+ "CodeGen": {
9+ "AddTypeScriptReferencePath": true,
10+ "CamelCaseEnumerationValues": false,
11+ "CamelCasePropertyNames": true,
12+ "CamelCaseTypeNames": false
13+ },
14+ "Css": {
15+ "ShowBrowserTooltip": true,
16+ "ShowInitialInherit": false,
17+ "SyncBase64ImageValues": true,
18+ "SyncVendorValues": true,
19+ "ValidateDuplicateSelectors": true,
20+ "ValidateVendorSpecifics": true,
21+ "ValidationLocation": "Messages"
22+ },
23+ "General": {
24+ "AllMessagesToOutputWindow": false,
25+ "KeepImportantComments": true,
26+ "ShowLogoWatermark": true,
27+ "SvgPreviewPane": true
28+ },
29+ "Html": {
30+ "AttributeQuotesRemovalMode": "KeepQuotes",
31+ "CustomAngularDirectiveList": null,
32+ "EnableBootstrapValidation": true,
33+ "EnableEnterFormat": true,
34+ "EnableFoundationValidation": true,
35+ "EnableMicrodataValidation": true,
36+ "MinifyAngularBindingExpressions": false,
37+ "MinifyKnockoutBindingExpressions": false,
38+ "PreserveCase": false,
39+ "ProcessableScriptTypeList": null
40+ },
41+ "JavaScript": {
42+ "BlockCommentCompletion": false,
43+ "EvalTreatment": "MakeImmediateSafe",
44+ "TermSemicolons": false
45+ }
46+}
\ No newline at end of file