チェンジセット 81 : branches

差分発生行の前後
無視リスト:
更新日時:
2009/10/10 01:59:41 (3 年 前)
更新者:
h
ログメッセージ:

fixes #11
ミク電卓-1.0マージ&音量調整

パス:
branches/release-1.0/chrome/content/tool
ファイル:
4 追加
28 変更

凡例:

変更なし
追加
削除
  • branches/release-1.0/chrome/content/tool/mikuCalc.html

    r64 r81  
    66</head> 
    77<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;"> 
    99</body> 
    1010</html> 
  • branches/release-1.0/chrome/content/tool/mikuCalc/calc.css

    r64 r81  
    33        font-size:15pt; 
    44        font-weight:bold; 
    5         /*color:black !important;*/ 
    65} 
    76#calcBox{ 
    87        font-size:20pt; 
    98        text-align:right; 
    10         /*color:black !important;*/ 
    119} 
  • branches/release-1.0/chrome/content/tool/mikuCalc/calc.js

    r64 r81  
    1111    var con=new xpc.conSvc; 
    1212    con.logStringMessage(str) 
     13} 
     14function WavSound(name,length){ 
     15    this.filename=name 
     16    this.length=length 
     17} 
     18WavSound.prototype={ 
     19    filename:null, 
     20    length:0 
    1321} 
    1422var mikuCalc={ 
     
    1826    lastKey:false, 
    1927    mode:null, 
     28    memories:{ 
     29        M:0 
     30    }, 
    2031    input:function(c){ 
    2132        var calcBox=$("calcBox") 
     
    5566                } 
    5667                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 
    5777            default: 
    5878                if(String(Number(c))=="NaN")return; 
     
    6585        this.lastKey=false 
    6686    }, 
    67     wavtable:{ 
     87    /*wavtable:{ 
    6888        0:"0.wav", 
    6989        1:"1.wav", 
     
    80100        1000:"1000.wav", 
    81101        3000:"3000.wav", 
    82         /*8000:"3000.wav",*/ 
    83102        ".":"dot.wav", 
    84103        "+":"add.wav", 
     
    89108        "だよ":"dayo.wav", 
    90109        "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(){ 
    108143        var numArray=[] 
    109144        var parts=$("calcBox").value.split(".") 
     
    128163        }) 
    129164        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() 
    130181        numArray.push("だよ") 
    131182        //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) 
    142192    }, 
    143193    reset:function(){ 
     
    147197    }, 
    148198    AC:function(){ 
     199        this.speak("AC") 
    149200        $("calcBox").value=0 
    150201        this.reset() 
     
    181232        var snd=new xpc.sound; 
    182233        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) 
    184235        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="" 
    185261    } 
    186262} 
     
    188264    this.removeEventListener("load",arguments.callee,false) 
    189265    this.addEventListener("keypress",function(e){ 
    190         //if(e.charCode<48||57<e.charCode) return; 
    191266        mikuCalc.input(String.fromCharCode(e.charCode)) 
    192267    },false) 
  • branches/release-1.0/chrome/content/tool/mikuCalc/calc.xul

    r64 r81  
    22<?xml-stylesheet href="chrome://global/skin/" type="text/css"?> 
    33<?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"> 
    55<script type="application/x-javascript" src="calc.js"/> 
    6         <menubar id="menubarid"> 
     6        <menubar> 
    77                <menu id="editMenu" label="編集" accesskey="E"> 
    88                        <menupopup> 
     
    1111                        </menupopup> 
    1212                </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>--> 
    2813        </menubar> 
    2914<separator class="groove-thin"/> 
     
    3520<column/> 
    3621<column/> 
    37 <column width="100"/> 
    3822    </columns> 
    39     <rows> 
     23    <rows style="width:380px !important;"> 
    4024<textbox id="calcBox" onfocus="this.blur()" context="null" value="0"/> 
    4125<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;"/> 
    4327<button label="7"/> 
    4428<button label="8"/> 
    4529<button label="9"/> 
    46 <spacer/> 
     30 
    4731<hbox> 
    4832<button label="DEL"/> 
    4933<button label="AC" oncommand="mikuCalc.allClear()"/> 
    5034</hbox> 
     35<spacer/> 
    5136</row> 
    5237<row height="40"> 
     
    5540<button label="5"/> 
    5641<button label="6"/> 
    57 <spacer/> 
     42 
    5843<hbox> 
    5944<button label="*"/> 
    6045<button label="/"/> 
    6146</hbox> 
     47<spacer/> 
    6248</row> 
    6349<row height="40"> 
     
    6652<button label="2"/> 
    6753<button label="3"/> 
    68 <spacer/> 
     54 
    6955<hbox> 
    7056<button label="+" oncommand="mikuCalc.add()"/> 
    7157<button label="-"/> 
    7258</hbox> 
     59<spacer/> 
    7360</row> 
    7461<row height="40"> 
     
    7764<button label="+/-"/> 
    7865<button label="."/> 
     66<button id="equal" label="=" oncommand="mikuCalc.equal()"/> 
    7967<spacer/> 
    80 <button id="equal" label="=" oncommand="mikuCalc.equal()"/> 
    8168</row> 
    8269        </rows> 
  • branches/release-1.0/chrome/content/tool/tool.properties

    r64 r81  
    1515clock.size=180,240 
    1616clock2.size=180,240 
    17 mikuCalc.size=400,280 
     17mikuCalc.size=380,230