- 更新日時:
- 2009/10/10 01:59:41 (3 年 前)
- パス:
- branches/release-1.0/chrome/content/tool
- ファイル:
-
- 4 追加
- 28 変更
-
mikuCalc.html (変更) (1 diff)
-
mikuCalc/0.wav (変更) (前のリビジョン)
-
mikuCalc/1.wav (変更) (前のリビジョン)
-
mikuCalc/10.wav (変更) (前のリビジョン)
-
mikuCalc/100.wav (変更) (前のリビジョン)
-
mikuCalc/1000.wav (変更) (前のリビジョン)
-
mikuCalc/2.wav (変更) (前のリビジョン)
-
mikuCalc/3.wav (変更) (前のリビジョン)
-
mikuCalc/3000.wav (変更) (前のリビジョン)
-
mikuCalc/4.wav (変更) (前のリビジョン)
-
mikuCalc/5.wav (変更) (前のリビジョン)
-
mikuCalc/6.wav (変更) (前のリビジョン)
-
mikuCalc/7.wav (変更) (前のリビジョン)
-
mikuCalc/8.wav (変更) (前のリビジョン)
-
mikuCalc/9.wav (変更) (前のリビジョン)
-
mikuCalc/ac.wav (追加)
-
mikuCalc/add.wav (変更) (前のリビジョン)
-
mikuCalc/bad.wav (変更) (前のリビジョン)
-
mikuCalc/calc.css (変更) (1 diff)
-
mikuCalc/calc.js (変更) (10 diff)
-
mikuCalc/calc.xul (変更) (6 diff)
-
mikuCalc/dayo.wav (変更) (前のリビジョン)
-
mikuCalc/del.wav (変更) (前のリビジョン)
-
mikuCalc/divide.wav (変更) (前のリビジョン)
-
mikuCalc/dot.wav (変更) (前のリビジョン)
-
mikuCalc/equal.wav (変更) (前のリビジョン)
-
mikuCalc/forget.wav (追加)
-
mikuCalc/mplus.wav (追加)
-
mikuCalc/multiply.wav (変更) (前のリビジョン)
-
mikuCalc/remem2.wav (追加)
-
mikuCalc/substract.wav (変更) (前のリビジョン)
-
tool.properties (変更) (1 diff)
凡例:
- 変更なし
- 追加
- 削除
-
branches/release-1.0/chrome/content/tool/mikuCalc.html
r64 r81 6 6 </head> 7 7 <body> 8 <iframe src="chrome://vocalofx/content/tool/mikuCalc/calc.xul" width=" 400px" height="280px" style="border: 0px;">8 <iframe src="chrome://vocalofx/content/tool/mikuCalc/calc.xul" width="380px" height="230px" style="border: 0px;"> 9 9 </body> 10 10 </html> -
branches/release-1.0/chrome/content/tool/mikuCalc/calc.css
r64 r81 3 3 font-size:15pt; 4 4 font-weight:bold; 5 /*color:black !important;*/6 5 } 7 6 #calcBox{ 8 7 font-size:20pt; 9 8 text-align:right; 10 /*color:black !important;*/11 9 } -
branches/release-1.0/chrome/content/tool/mikuCalc/calc.js
r64 r81 11 11 var con=new xpc.conSvc; 12 12 con.logStringMessage(str) 13 } 14 function WavSound(name,length){ 15 this.filename=name 16 this.length=length 17 } 18 WavSound.prototype={ 19 filename:null, 20 length:0 13 21 } 14 22 var mikuCalc={ … … 18 26 lastKey:false, 19 27 mode:null, 28 memories:{ 29 M:0 30 }, 20 31 input:function(c){ 21 32 var calcBox=$("calcBox") … … 55 66 } 56 67 return; 68 case "M+": 69 this.addmem() 70 return; 71 case "MR": 72 this.remember() 73 return 74 case "MC": 75 this.memClear() 76 return 57 77 default: 58 78 if(String(Number(c))=="NaN")return; … … 65 85 this.lastKey=false 66 86 }, 67 wavtable:{87 /*wavtable:{ 68 88 0:"0.wav", 69 89 1:"1.wav", … … 80 100 1000:"1000.wav", 81 101 3000:"3000.wav", 82 /*8000:"3000.wav",*/83 102 ".":"dot.wav", 84 103 "+":"add.wav", … … 89 108 "だよ":"dayo.wav", 90 109 "bad":"bad.wav", 91 "DEL":"del.wav"/*, 92 "AC":"ac.wav"*/ 93 }, 94 "+":function(){ 95 this.prevNum=mikuCalc.prevNum+mikuCalc.currentNum 96 }, 97 "-":function(){ 98 this.prevNum=this.prevNum-this.currentNum 99 }, 100 "*":function(){ 101 this.prevNum=mikuCalc.prevNum*mikuCalc.currentNum 102 }, 103 "/":function(){ 104 this.prevNum=mikuCalc.prevNum/mikuCalc.currentNum 105 }, 106 "=":function(){ 107 var timer=new xpc.timer; 110 "DEL":"del.wav", 111 "M+":"mplus.wav" 112 },*/ 113 wavtable:{ 114 0:new WavSound("0.wav",330), 115 1:new WavSound("1.wav",280), 116 2:new WavSound("2.wav",210), 117 3:new WavSound("3.wav",370), 118 4:new WavSound("4.wav",320), 119 5:new WavSound("5.wav",145), 120 6:new WavSound("6.wav",300), 121 7:new WavSound("7.wav",300), 122 8:new WavSound("8.wav",310), 123 9:new WavSound("9.wav",270), 124 10:new WavSound("10.wav",340), 125 100:new WavSound("100.wav",300), 126 1000:new WavSound("1000.wav",400), 127 3000:new WavSound("3000.wav",360), 128 ".":new WavSound("dot.wav",290), 129 "+":new WavSound("add.wav",280), 130 "-":new WavSound("substract.wav",320), 131 "*":new WavSound("multiply.wav",420), 132 "/":new WavSound("divide.wav",320), 133 "=":new WavSound("equal.wav",320), 134 "だよ":new WavSound("dayo.wav",280), 135 "bad":new WavSound("bad.wav",1200), 136 "DEL":new WavSound("del.wav",490), 137 "M+":new WavSound("mplus.wav",750), 138 "MR":new WavSound("remem2.wav",780), 139 "MC":new WavSound("forget.wav",840), 140 "AC":new WavSound("ac.wav",650) 141 }, 142 buildNumArray:function(){ 108 143 var numArray=[] 109 144 var parts=$("calcBox").value.split(".") … … 128 163 }) 129 164 if(floatPart) numArray=numArray.concat(["."],floatPart) 165 return numArray 166 }, 167 "+":function(){ 168 this.prevNum=mikuCalc.prevNum+mikuCalc.currentNum 169 }, 170 "-":function(){ 171 this.prevNum=this.prevNum-this.currentNum 172 }, 173 "*":function(){ 174 this.prevNum=mikuCalc.prevNum*mikuCalc.currentNum 175 }, 176 "/":function(){ 177 this.prevNum=mikuCalc.prevNum/mikuCalc.currentNum 178 }, 179 "=":function(){ 180 var numArray=this.buildNumArray() 130 181 numArray.push("だよ") 131 182 //debug(numArray) 132 var i=0 133 timer.initWithCallback( 134 {notify:function(){ 135 mikuCalc.speak(numArray[i]) 136 i++ 137 if(i==numArray.length) timer.cancel() 138 }}, 139 300, 140 Components.interfaces.nsITimer.TYPE_REPEATING_SLACK 141 ) 183 var i=0 184 var timer=setTimeout(function(){ 185 mikuCalc.speak(numArray[i]) 186 i++ 187 if(i==numArray.length) clearInterval(timer) 188 else{ 189 var timer=setTimeout(arguments.callee,mikuCalc.wavtable[numArray[i-1]].length) 190 } 191 },0) 142 192 }, 143 193 reset:function(){ … … 147 197 }, 148 198 AC:function(){ 199 this.speak("AC") 149 200 $("calcBox").value=0 150 201 this.reset() … … 181 232 var snd=new xpc.sound; 182 233 var prefix=document.documentURI.split("/").slice(0,-1).join("/") 183 var url=ios.newURI(prefix+"/"+this.wavtable[c] ,null,null)234 var url=ios.newURI(prefix+"/"+this.wavtable[c].filename,null,null) 184 235 snd.play(url) 236 }, 237 addmem:function(){ 238 var timer=new xpc.timer; 239 var i=0; 240 var numArray=this.buildNumArray() 241 $("memFrame").value="M" 242 this.memories.M=Number($("calcBox").value) 243 numArray.push("M+") 244 var timer=setTimeout(function(){ 245 mikuCalc.speak(numArray[i]) 246 i++ 247 if(i==numArray.length) clearInterval(timer) 248 else{ 249 var timer=setTimeout(arguments.callee,mikuCalc.wavtable[numArray[i-1]].length) 250 } 251 },0) 252 }, 253 remember:function(){ 254 this.speak("MR") 255 $("calcBox").value=this.memories.M 256 }, 257 memClear:function(){ 258 this.speak("MC") 259 this.memories.M=0 260 $("memFrame").value="" 185 261 } 186 262 } … … 188 264 this.removeEventListener("load",arguments.callee,false) 189 265 this.addEventListener("keypress",function(e){ 190 //if(e.charCode<48||57<e.charCode) return;191 266 mikuCalc.input(String.fromCharCode(e.charCode)) 192 267 },false) -
branches/release-1.0/chrome/content/tool/mikuCalc/calc.xul
r64 r81 2 2 <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> 3 3 <?xml-stylesheet href="calc.css" type="text/css"?> 4 <window id="p4v-mikuCalc" width=" 400" height="280" title="ミク電卓 for ぼかろfx" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">4 <window id="p4v-mikuCalc" width="380" height="280" title="ミク電卓 for ぼかろfx" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 5 5 <script type="application/x-javascript" src="calc.js"/> 6 <menubar id="menubarid">6 <menubar> 7 7 <menu id="editMenu" label="編集" accesskey="E"> 8 8 <menupopup> … … 11 11 </menupopup> 12 12 </menu> 13 <!--<menu id="" label="表示" accesskey="V">14 <menupopup>15 <menuitem label="普通の電卓" id="" accesskey="T" oncommand="mikuCalc" type="radio" checked="true" name="calcType"/>16 <menuitem label="関数電卓" id="" accesskey="S" oncommand="mikuCalc" type="radio" disabled="true" name="calcType"/>17 <menuseparator flex="1"/>18 <menuitem label="16進" id="" accesskey="H" acceltext="F5" oncommand="mikuCalc" type="radio" disabled="true" name="numeralSystem"/>19 <menuitem label="10進" id="" accesskey="D" acceltext="F6" oncommand="mikuCalc" type="radio" checked="true" name="numeralSystem"/>20 <menuitem label="8進" id="" accesskey="O" acceltext="F7" oncommand="mikuCalc" type="radio" disabled="true" name="numeralSystem"/>21 <menuitem label="2進" id="" accesskey="B" acceltext="F8" oncommand="mikuCalc" type="radio" disabled="true" name="numeralSystem"/>22 <menuseparator flex="1"/>23 <menuitem label="deg" id="" accesskey="E" acceltext="F2" oncommand="mikuCalc" type="radio" checked="true" name="angleType"/>24 <menuitem label="rad" id="" accesskey="R" acceltext="F3" oncommand="mikuCalc" type="radio" disabled="true" name="angleType"/>25 <menuitem label="grad" id="" accesskey="G" acceltext="F4" oncommand="mikuCalc" type="radio" disabled="true" name="angleType"/>26 </menupopup>27 </menu>-->28 13 </menubar> 29 14 <separator class="groove-thin"/> … … 35 20 <column/> 36 21 <column/> 37 <column width="100"/>38 22 </columns> 39 <rows >23 <rows style="width:380px !important;"> 40 24 <textbox id="calcBox" onfocus="this.blur()" context="null" value="0"/> 41 25 <row height="40"> 42 <label value="M" style="margin:5px;border:2px inset;text-align:center;padding-top:5px;"/>26 <label id="memFrame" style="margin:5px;border:2px inset;text-align:center;padding-top:5px;"/> 43 27 <button label="7"/> 44 28 <button label="8"/> 45 29 <button label="9"/> 46 <spacer/> 30 47 31 <hbox> 48 32 <button label="DEL"/> 49 33 <button label="AC" oncommand="mikuCalc.allClear()"/> 50 34 </hbox> 35 <spacer/> 51 36 </row> 52 37 <row height="40"> … … 55 40 <button label="5"/> 56 41 <button label="6"/> 57 <spacer/> 42 58 43 <hbox> 59 44 <button label="*"/> 60 45 <button label="/"/> 61 46 </hbox> 47 <spacer/> 62 48 </row> 63 49 <row height="40"> … … 66 52 <button label="2"/> 67 53 <button label="3"/> 68 <spacer/> 54 69 55 <hbox> 70 56 <button label="+" oncommand="mikuCalc.add()"/> 71 57 <button label="-"/> 72 58 </hbox> 59 <spacer/> 73 60 </row> 74 61 <row height="40"> … … 77 64 <button label="+/-"/> 78 65 <button label="."/> 66 <button id="equal" label="=" oncommand="mikuCalc.equal()"/> 79 67 <spacer/> 80 <button id="equal" label="=" oncommand="mikuCalc.equal()"/>81 68 </row> 82 69 </rows> -
branches/release-1.0/chrome/content/tool/tool.properties
r64 r81 15 15 clock.size=180,240 16 16 clock2.size=180,240 17 mikuCalc.size= 400,28017 mikuCalc.size=380,230
