チェンジセット 7 : trunk

差分発生行の前後
無視リスト:
更新日時:
2008/08/09 01:20:58 (4 年 前)
更新者:
h
ログメッセージ:

0.1pre2をマージ

パス:
trunk
ファイル:
2 削除
26 変更
11 コピー

凡例:

変更なし
追加
削除
  • trunk/chrome/content/about.js

    r2 r7  
    11function init(){ 
     2        var em = Components.classes["@mozilla.org/extensions/manager;1"].getService(Components.interfaces.nsIExtensionManager); 
     3        var addon = em.getItemForID("vocalofx@rayflood.org"); 
     4        var vocalofx_properties = document.getElementById("vocalofx-properties"); 
     5 
     6        var extensionName = document.getElementById("extensionName"); 
     7        extensionName.value = addon.name; 
     8        var extensionVersion = document.getElementById("extensionVersion"); 
     9        extensionVersion.value += addon.version; 
     10        var extensionDescription = document.getElementById("extensionDescription"); 
     11        extensionDescription.value += vocalofx_properties.getString("extensions.vocalofx@rayflood.org.description"); 
     12 
    213        var extensionsStrings = document.getElementById("extensionsStrings"); 
    314        var acceptButton = document.documentElement.getButton("accept"); 
    415        acceptButton.label = extensionsStrings.getString("aboutWindowCloseButton"); 
    5         document.title = extensionsStrings.getFormattedString("aboutWindowTitle", [document.title]); 
     16        document.title = extensionsStrings.getFormattedString("aboutWindowTitle", [addon.name]); 
    617} 
    718 
     
    1021        window.opener.openURL(aEvent.target.getAttribute("homepageURL")); 
    1122} 
     23 
     24function EM_NS(aProperty){ 
     25        return "http://www.mozilla.org/2004/em-rdf#" + aProperty; 
     26} 
  • trunk/chrome/content/about.xul

    r2 r7  
    77 
    88<dialog id="genericAbout" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" 
    9  title="&vocalofx.name;" buttons="accept" onload="init();" onaccept="close();"> 
     9 buttons="accept" onload="init();" onaccept="close();"> 
    1010 
    1111        <script type="application/x-javascript" src="chrome://vocalofx/content/about.js"/> 
    1212        <stringbundleset id="aboutSet"> 
    1313                <stringbundle id="extensionsStrings" src="chrome://mozapps/locale/extensions/extensions.properties"/> 
     14                <stringbundle id="vocalofx-properties" src="chrome://vocalofx/locale/vocalofx.properties"/> 
    1415        </stringbundleset> 
    1516 
     
    1819                        <image src='chrome://vocalofx/content/Firemiku_icon64.png' width='64' height='64'/> 
    1920                        <vbox pack="end"> 
    20                                 <label id="extensionName" crop="right" value="&vocalofx.name;"/> 
    21                                 <label id="extensionVersion" crop="right" value="ver &vocalofx.version;"/> 
    22                                 <description id="extensionDescription" class="indent" value="&vocalofx.description;"/> 
     21                                <label id="extensionName" crop="right"/> 
     22                                <label id="extensionVersion" crop="right" value="ver "/> 
     23                                <description id="extensionDescription" class="indent"/> 
    2324                        </vbox> 
    2425                </hbox> 
  • trunk/chrome/content/overlay.css

    r2 r7  
    11@import url("chrome://vocalofx/content/skin/miku.css"); 
     2@import url("chrome://vocalofx/content/skin/miku2.css"); 
     3@import url("chrome://vocalofx/content/skin/miku3.css"); 
    24@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); 
    35 
    4 #find-field 
     6#find-field, .find-field-container 
     7, #urlbar, .searchbar-textbox 
    58, #bookmarksPanel 
    69        #search-box 
     
    811        #search-box 
    912{ 
    10         background-color: transparent !important; 
    11         border: 1px solid; 
     13        background-color: transparent; 
     14        background-image: none !important; 
     15        border: 1px solid !important; 
    1216        -moz-appearance: none !important; 
    1317        -moz-border-top-colors: #96969D; 
     
    1721} 
    1822 
    19 #navigator-toolbox, #navigator-toolbox > toolbar 
     23#main-window menu 
     24, #main-window menuitem 
     25, #bookmarksPanel menu 
     26, #bookmarksPanel menuitem 
     27, #history-panel menu 
     28, #history-panel menuitem 
     29{ 
     30        border: 1px solid transparent; 
     31        padding: 1px !important; 
     32} 
     33 
     34#main-window popup 
     35, #main-window menupopup 
     36, #bookmarksPanel popup 
     37, #bookmarksPanel menupopup 
     38, #history-panel popup 
     39, #history-panel menupopup 
     40{ 
     41        border: 1px solid threedshadow; 
     42        padding: 2px !important; 
     43} 
     44 
     45#main-window 
    2046, #main-window toolbarbutton 
    2147, #sidebar-box > sidebarheader 
    22 , #find-field-container 
     48, #find-field-container, .find-field-container 
    2349, #status-bar > statusbarpanel 
    2450, #history-panel #viewButton 
     51, #urlbar, .searchbar-textbox 
     52, .tabbrowser-strip 
     53{ 
     54        -moz-appearance: none; 
     55} 
     56 
     57#navigator-toolbox 
     58, #navigator-toolbox > toolbar 
     59, #main-window menu 
     60, #main-window menuitem 
     61, #bookmarksPanel menu 
     62, #bookmarksPanel menuitem 
     63, #history-panel menu 
     64, #history-panel menuitem 
     65, #main-window popup 
     66, #main-window menupopup 
     67, #bookmarksPanel popup 
     68, #bookmarksPanel menupopup 
     69, #history-panel popup 
     70, #history-panel menupopup 
    2571{ 
    2672        -moz-appearance: none !important; 
     
    3177, #FindToolbar 
    3278{ 
    33         border: 0px !important; 
     79        border: 0px; 
    3480} 
    3581 
     
    3783, #sidebar-box > sidebarheader 
    3884, #status-bar > statusbarpanel 
     85, treechildren::-moz-tree-row 
    3986{ 
    40         border-color: transparent !important; 
     87        border-color: transparent; 
     88} 
     89 
     90#navigator-toolbox, #navigator-toolbox > toolbar 
     91, #FindToolbar 
     92{ 
     93        background-image: none; 
    4194} 
    4295 
    4396.tabbrowser-tabs, .tabs-bottom 
    4497{ 
    45         background-image: none !important;  
     98        background-image: none !important; 
    4699} 
    47100 
    48 #navigator-toolbox 
     101#navigator-toolbox, #navigator-toolbox > toolbar 
    49102, #urlbar, .searchbar-textbox 
     103, #sidebar-splitter 
     104, .tabbrowser-tab[selected="true"] 
     105, .searchbar-engine-button 
     106, .findbar-textbox 
     107, #FindToolbar 
     108{ 
     109        background-color: transparent; 
     110} 
     111 
     112.tabs-alltabs-box 
     113, .tabbrowser-tabs, .tabs-bottom 
     114, .tab-image-left, .tab-image-middle, .tab-close-button, .tab-image-right 
     115, .tabbrowser-arrowscrollbox > .scrollbutton-up 
     116, .tabbrowser-arrowscrollbox > .scrollbutton-down-stack > .scrollbutton-rel-box > .scrollbutton-down-box 
     117, #identity-box > hbox 
    50118, #urlbar[level="high"] > .autocomplete-textbox-container 
    51119, #urlbar[level="low"] > .autocomplete-textbox-container 
    52 , .autocomplete-history-dropmarker 
    53 , #sidebar-splitter 
    54 , .tabbrowser-tabs, .tabs-bottom 
    55 , .tab-image-left, .tab-image-middle, .tab-close-button, .tab-image-right 
    56 , .tabs-alltabs-box 
    57 , .tabbrowser-arrowscrollbox > .scrollbutton-up, .scrollbutton-rel-box > .scrollbutton-down-box 
     120, #urlbar > .autocomplete-history-dropmarker 
     121, #urlbar > .autocomplete-history-dropmarker:hover 
     122, #urlbar > .autocomplete-history-dropmarker[open="true"] 
    58123{ 
    59124        background-color: transparent !important; 
  • trunk/chrome/content/overlay.xul

    r2 r7  
    55 
    66        <script type="application/x-javascript" src="chrome://vocalofx/content/vocalofx.js"/> 
     7        <script type="application/x-javascript" src="chrome://vocalofx/content/update.js"/> 
    78        <stringbundleset id="stringbundleset"> 
    89                <stringbundle id="vocalofx-properties" src="chrome://vocalofx/locale/vocalofx.properties"/> 
     
    2021                        <menu id="vocalofx-skin-menu" label="&vocalofx.skin_menu.label;"> 
    2122                        <menupopup id="vocalofx-skin-popup"> 
     23                                <menu id="vocalofx-skin-menu-pallet" label="&vocalofx.skin_menu.pallet.label;"> 
     24                                <menupopup id="vocalofx-skin-popup-pallet"> 
     25                                </menupopup> 
     26                                </menu> 
    2227                                <menu id="vocalofx-skin-menu-miku" label="&vocalofx.skin_menu.miku.label;"> 
    2328                                <menupopup id="vocalofx-skin-popup-miku"> 
  • trunk/chrome/content/skin/miku.css

    r2 r7  
    44        menu 
    55, #main-window[vocalofx_skin="miku"] 
    6         menuitem:not([class~="alltabs-item"]) 
     6        menuitem 
    77, #main-window[vocalofx_skin="miku"] 
    88        toolbarbutton 
    99, #main-window[vocalofx_skin="miku"] 
     10        .autocomplete-richlistitem 
     11, #main-window[vocalofx_skin="miku"] 
     12        .autocomplete-richlistitem .ac-url-text 
     13, #main-window[vocalofx_skin="miku"] 
     14        treechildren.autocomplete-treebody 
     15, #main-window[vocalofx_skin="miku"] 
     16        treechildren.autocomplete-treebody::-moz-tree-cell-text(selected) 
     17, #main-window[vocalofx_skin="miku"] 
     18        treechildren.autocomplete-treebody::-moz-tree-cell-text(treecolAutoCompleteComment) 
     19, #main-window[vocalofx_skin="miku"] 
    1020        #sidebar-box > sidebarheader 
    1121, #main-window[vocalofx_skin="miku"] 
     22        #sidebar-title 
     23, #main-window[vocalofx_skin="miku"] 
    1224        #FindToolbar 
     25, #main-window[vocalofx_skin="miku"] 
     26        #FindToolbar label 
    1327, #bookmarksPanel[vocalofx_skin="miku"] 
    1428        menu 
     
    3246 
    3347#main-window[vocalofx_skin="miku"] 
    34         .alltabs-item 
    35 , #main-window[vocalofx_skin="miku"] 
    3648        .tabbrowser-tab 
    3749, #main-window[vocalofx_skin="miku"] 
    3850        #urlbar 
     51, #main-window[vocalofx_skin="miku"] 
     52        #identity-box > hbox 
    3953, #main-window[vocalofx_skin="miku"] 
    4054        #urlbar[level="high"] > .autocomplete-textbox-container 
     
    4458        .searchbar-textbox 
    4559, #main-window[vocalofx_skin="miku"] 
    46         treechildren.autocomplete-treebody 
    47 , #main-window[vocalofx_skin="miku"] 
    48         treechildren.autocomplete-treebody::-moz-tree-cell-text(selected) 
    49 , #main-window[vocalofx_skin="miku"] 
    5060        #status-bar 
    5161, #main-window[vocalofx_skin="miku"] 
    5262        #find-field 
     63, #main-window[vocalofx_skin="miku"] 
     64        .findbar-textbox 
    5365, #bookmarksPanel[vocalofx_skin="miku"] 
    5466, #bookmarksPanel[vocalofx_skin="miku"] 
     
    6476 
    6577#main-window[vocalofx_skin="miku"] 
    66         menu:hover 
     78        menu[_moz-menuactive="true"] 
    6779, #main-window[vocalofx_skin="miku"] 
    68         menuitem:hover 
     80        menuitem[_moz-menuactive="true"] 
    6981, #main-window[vocalofx_skin="miku"] 
    7082        treechildren.autocomplete-treebody::-moz-tree-row(selected) 
     83, #main-window[vocalofx_skin="miku"] 
     84        .autocomplete-richlistitem[selected="true"] 
    7185, #bookmarksPanel[vocalofx_skin="miku"] 
    72         menu:hover 
     86        menu[_moz-menuactive="true"] 
    7387, #bookmarksPanel[vocalofx_skin="miku"] 
    74         menuitem:hover 
     88        menuitem[_moz-menuactive="true"] 
    7589, #bookmarksPanel[vocalofx_skin="miku"] 
    7690        treechildren::-moz-tree-row(selected) 
    7791, #history-panel[vocalofx_skin="miku"] 
    78         menu:hover 
     92        menu[_moz-menuactive="true"] 
    7993, #history-panel[vocalofx_skin="miku"] 
    80         menuitem:hover 
     94        menuitem[_moz-menuactive="true"] 
    8195, #history-panel[vocalofx_skin="miku"] 
    8296        treechildren::-moz-tree-row(selected) 
     
    91105        menupopup 
    92106, #main-window[vocalofx_skin="miku"] 
     107        .autocomplete-richlistitem 
     108, #main-window[vocalofx_skin="miku"] 
    93109        #sidebar-box > sidebarheader 
     110, #main-window[vocalofx_skin="miku"] 
     111        #sidebar-title 
    94112, #main-window[vocalofx_skin="miku"] 
    95113        #status-bar > statusbarpanel 
    96114, #bookmarksPanel[vocalofx_skin="miku"] 
     115, #bookmarksPanel[vocalofx_skin="miku"] 
     116        > hbox 
    97117, #bookmarksPanel[vocalofx_skin="miku"] 
    98118        popup 
     
    102122        treechildren 
    103123, #history-panel[vocalofx_skin="miku"] 
     124, #history-panel[vocalofx_skin="miku"] 
     125        > hbox 
    104126, #history-panel[vocalofx_skin="miku"] 
    105127        popup 
     
    115137 
    116138#main-window[vocalofx_skin="miku"] 
     139        treechildren.autocomplete-treebody::-moz-tree-row 
     140, #bookmarksPanel[vocalofx_skin="miku"] 
     141        treechildren::-moz-tree-row 
     142, #history-panel[vocalofx_skin="miku"] 
     143        treechildren::-moz-tree-row 
     144{ 
     145        background-color: #373b3e; 
     146} 
     147 
     148#main-window[vocalofx_skin="miku"] 
    117149        #find-field[status="notfound"] 
     150, #main-window[vocalofx_skin="miku"] 
     151        .findbar-textbox[status="notfound"] 
    118152{ 
    119153        color: #bec8d1 !important; 
     
    122156#main-window[vocalofx_skin="miku"] 
    123157        #find-field[status="notfound"] 
     158, #main-window[vocalofx_skin="miku"] 
     159        .findbar-textbox[status="notfound"] 
    124160{ 
    125161        background-color: #e12885 !important; 
     
    128164#main-window[vocalofx_skin="miku"] 
    129165        #FindToolbar[flash="true"]  > #find-field-container > #find-field 
     166, #main-window[vocalofx_skin="miku"] 
     167        findbar[flash="true"]  > .find-field-container > .findbar-textbox 
    130168{ 
    131169        background-color: #bec8d1 !important; 
  • trunk/chrome/content/skin/skin.properties

    r2 r7  
    11skinmenu=hachune_miku,sanari_miku,nagamon_miku,yuki_miku 
    2 sanari_miku.position=100% -10% 
     2palletmenu.miku=miku,miku2,miku3 
     3hachune_miku.position=230,2 
     4hachune_miku.category=miku 
     5hachune_miku.category_sub=miku 
     6sanari_miku.position=180,2 
    37sanari_miku.category=miku 
    4 hachune_miku.position=100% -20% 
    5 hachune_miku.category=miku 
    6 nagamon_miku.position=95% -10% 
     8sanari_miku.category_sub=miku 
     9nagamon_miku.position=160,2 
    710nagamon_miku.category=miku 
    8 yuki_miku.position=100% -17% 
     11nagamon_miku.category_sub=miku 
     12yuki_miku.position=250,2 
    913yuki_miku.category=miku 
     14yuki_miku.category_sub=miku 
  • trunk/chrome/content/tool/akitaneru.html

    r2 r7  
    33<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    44<title>買うな!</title> 
    5 <link rel="stylesheet" href="chrome://vocalofx/content/tool/tool.css"> 
    6 <script type="application/x-javascript" src="chrome://vocalofx/content/tool/tool.js"/> 
     5<link rel="stylesheet" href="chrome://vocalofx/content/tool/toolhtml.css"> 
     6<style type="text/css"> 
     7body 
     8{ 
     9        background-image: url(mate4.png); 
     10        background-repeat: no-repeat; 
     11} 
     12</style> 
    713</head> 
    8 <body onunload="closeVocalofxTool(window);"> 
    9 <img src="mate4.png"/> 
     14<body> 
    1015</body> 
    1116</html> 
  • trunk/chrome/content/tool/amazon.html

    r2 r7  
    33<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    44<title>双子よろしくぅ!</title> 
    5 <link rel="stylesheet" href="chrome://vocalofx/content/tool/tool.css"> 
    6 <script type="application/x-javascript" src="chrome://vocalofx/content/tool/tool.js"/> 
     5<link rel="stylesheet" href="chrome://vocalofx/content/tool/toolhtml.css"> 
     6<style type="text/css"> 
     7body 
     8{ 
     9        background-image: url(mada5.png); 
     10        background-repeat: no-repeat; 
     11} 
     12</style> 
    713</head> 
    8 <body onunload="closeVocalofxTool(window);"> 
    9 <img src="mada5.png"/> 
     14<body> 
    1015</body> 
    1116</html> 
  • trunk/chrome/content/tool/clock.html

    r2 r7  
    33<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    44<title>ミク-Clock!</title> 
    5 <link rel="stylesheet" href="chrome://vocalofx/content/tool/tool.css"> 
    6 <script type="application/x-javascript" src="chrome://vocalofx/content/tool/tool.js"/> 
     5<link rel="stylesheet" href="chrome://vocalofx/content/tool/toolhtml.css"> 
     6<style type="text/css"> 
     7body 
     8{ 
     9        background-image: url(mate1.png); 
     10        background-repeat: no-repeat; 
     11} 
     12</style> 
    713</head> 
    8 <body onunload="closeVocalofxTool(window);"> 
    9 <img src="mate1.png"/> 
     14<body> 
    1015</body> 
    1116</html> 
  • trunk/chrome/content/tool/clock_light.html

    r2 r7  
    33<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    44<title>ミク-Clock!軽量版</title> 
    5 <link rel="stylesheet" href="chrome://vocalofx/content/tool/tool.css"> 
    6 <script type="application/x-javascript" src="chrome://vocalofx/content/tool/tool.js"/> 
     5<link rel="stylesheet" href="chrome://vocalofx/content/tool/toolhtml.css"> 
     6<style type="text/css"> 
     7body 
     8{ 
     9        background-image: url(mada6.png); 
     10        background-repeat: no-repeat; 
     11} 
     12</style> 
    713</head> 
    8 <body onunload="closeVocalofxTool(window);"> 
    9 <img src="mada6.png"/> 
     14<body> 
    1015</body> 
    1116</html> 
  • trunk/chrome/content/tool/fullmiku.html

    r2 r7  
    33<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    44<title>フルみっく伝染歌プレーヤー</title> 
    5 <link rel="stylesheet" href="chrome://vocalofx/content/tool/tool.css"> 
    6 <script type="application/x-javascript" src="chrome://vocalofx/content/tool/tool.js"/> 
     5<link rel="stylesheet" href="chrome://vocalofx/content/tool/toolhtml.css"> 
     6<style type="text/css"> 
     7body 
     8{ 
     9        background-image: url(mada5.png); 
     10        background-repeat: no-repeat; 
     11} 
     12</style> 
    713</head> 
    8 <body onunload="closeVocalofxTool(window);"> 
    9 <img src="mada5.png"/> 
     14<body> 
    1015</body> 
    1116</html> 
  • trunk/chrome/content/tool/mikunano.html

    r2 r7  
    33<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    44<title>初音ミクnano</title> 
    5 <link rel="stylesheet" href="chrome://vocalofx/content/tool/tool.css"> 
    6 <script type="application/x-javascript" src="chrome://vocalofx/content/tool/tool.js"/> 
     5<link rel="stylesheet" href="chrome://vocalofx/content/tool/toolhtml.css"> 
     6<style type="text/css"> 
     7body 
     8{ 
     9        background-image: url(mate3.png); 
     10        background-repeat: no-repeat; 
     11} 
     12</style> 
    713</head> 
    8 <body onunload="closeVocalofxTool(window);"> 
    9 <img src="mate3.png"/> 
     14<body> 
    1015</body> 
    1116</html> 
  • trunk/chrome/content/tool/mikunano2.html

    r2 r7  
    33<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    44<title>初音ミクnano</title> 
    5 <link rel="stylesheet" href="chrome://vocalofx/content/tool/tool.css"> 
    6 <script type="application/x-javascript" src="chrome://vocalofx/content/tool/tool.js"/> 
     5<link rel="stylesheet" href="chrome://vocalofx/content/tool/toolhtml.css"> 
     6<style type="text/css"> 
     7body 
     8{ 
     9        background-image: url(mate2.png); 
     10        background-repeat: no-repeat; 
     11} 
     12</style> 
    713</head> 
    8 <body onunload="closeVocalofxTool(window);"> 
    9 <img src="mate2.png"/> 
     14<body> 
    1015</body> 
    1116</html> 
  • trunk/chrome/content/tool/mikunyano.html

    r2 r7  
    33<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    44<title>初音ミクnyano</title> 
    5 <link rel="stylesheet" href="chrome://vocalofx/content/tool/tool.css"> 
    6 <script type="application/x-javascript" src="chrome://vocalofx/content/tool/tool.js"/> 
     5<link rel="stylesheet" href="chrome://vocalofx/content/tool/toolhtml.css"> 
     6<style type="text/css"> 
     7body 
     8{ 
     9        background-image: url(mate7.png); 
     10        background-repeat: no-repeat; 
     11} 
     12</style> 
    713</head> 
    8 <body onunload="closeVocalofxTool(window);"> 
    9 <img src="mate7.png"/> 
     14<body> 
    1015</body> 
    1116</html> 
  • trunk/chrome/content/tool/tool.css

    r2 r7  
    1 body{ 
    2         background: #373b3e; 
     1#vocalofx-tooldialog 
     2{ 
    33        margin: 0px; 
    44} 
  • trunk/chrome/content/tool/tool.js

    r2 r7  
    11const TOOL_PROPERTY_POSITION = "extensions.vocalofx.tool.position"; 
    22const TOOL_PROPERTY_STARTUP = "extensions.vocalofx.tool.startup"; 
     3const TOOL_URL = "chrome://vocalofx/content/tool/"; 
    34 
    4 function closeVocalofxTool(dialog){ 
     5var tool; 
     6 
     7function openVocalofxTool(){ 
     8        tool = window.arguments[0]; 
     9        document.title = window.arguments[1]; 
     10        var vocalofx_toolhtml = document.getElementById("vocalofx-toolhtml"); 
     11        vocalofx_toolhtml.setAttribute("src", TOOL_URL + tool + ".html"); 
     12        vocalofx_toolhtml.style.width = window.innerWidth + "px"; 
     13        vocalofx_toolhtml.style.height = window.innerHeight + "px"; 
     14} 
     15 
     16function closeVocalofxTool(){ 
    517        var pref = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch); 
    6         var tool = dialog.name; 
    7         var left = dialog.screenX; 
    8         var top = dialog.screenY; 
     18        var left = window.screenX; 
     19        var top = window.screenY; 
    920        var startup = false; 
    10         if(dialog.opener.closed){ 
    11                 var offsetX = (dialog.outerWidth - dialog.innerWidth) / 2; 
    12                 var offsetY = dialog.outerHeight - dialog.innerHeight - offsetX; 
     21        if(window.opener.closed){ 
     22                var offsetX = (window.outerWidth - window.innerWidth) / 2; 
     23                var offsetY = window.outerHeight - window.innerHeight - offsetX; 
    1324                left -= offsetX; 
    1425                top -= offsetY; 
    1526                startup = true; 
    1627        } 
    17         pref.setCharPref(this.TOOL_PROPERTY_POSITION + "." + tool, left + "," + top); 
    18         pref.setBoolPref(this.TOOL_PROPERTY_STARTUP + "." + tool, startup); 
     28        pref.setCharPref(TOOL_PROPERTY_POSITION + "." + tool, left + "," + top); 
     29        pref.setBoolPref(TOOL_PROPERTY_STARTUP + "." + tool, startup); 
    1930} 
  • trunk/chrome/content/tool/tool.properties

    r2 r7  
    11toolmenu=fullmiku,mikunano,mikunano2,mikunyano,amazon,akitaneru,clock,clock_light 
     2fullmiku.size=145,192 
     3mikunano.size=265,215 
     4mikunano2.size=276,183 
     5mikunyano.size=193,226 
     6amazon.size=145,192 
     7akitaneru.size=144,203 
     8clock.size=214,308 
     9clock_light.size=222,166 
  • trunk/chrome/content/vocalofx.js

    r2 r7  
    11var vocalofx = { 
     2        SKINPREF_OBSERVER: "extensions.vocalofx.skin_", 
    23        SKIN_PROPERTY_IMAGE: "extensions.vocalofx.skin_image", 
    34        SKIN_PROPERTY_POSITION: "extensions.vocalofx.skin_position", 
     5        SKIN_PROPERTY_PALLET: "extensions.vocalofx.skin_pallet", 
    46        SKIN_PROPERTY_CATEGORY: "extensions.vocalofx.skin_category", 
    57        TOOL_PROPERTY_POSITION: "extensions.vocalofx.tool.position", 
    68        TOOL_PROPERTY_STARTUP: "extensions.vocalofx.tool.startup", 
     9        TOOLDIALOG_URL: "chrome://vocalofx/content/tool/tool.xul", 
    710        CHROME_TOOL: "chrome://vocalofx/content/tool/", 
    811        CHROME_SKIN: "chrome://vocalofx/content/skin/", 
    912        SKIN_ATTRIBUTE: "vocalofx_skin", 
    1013        BROWSER_ONLOAD: "load", 
     14        BROWSER_UNONLOAD: "unload", 
     15        BROWSER_PREF_CHANGED: "nsPref:changed", 
    1116        DEFAULT_SKIN: "nagamon_miku", 
     17        DEFAULT_PALLET: "miku", 
    1218        pref: null, 
    1319        main_window: null, 
     20        sidebar: null, 
     21        navigator_toolbox: null, 
    1422        menuroot: null, 
    1523        vocalofx_properties: null, 
     
    1826 
    1927        openVocalofxTool: function(tool){ 
    20                 var option = "chrome,dependent=yes"; 
     28                var option = "chrome,dependent=yes,close=yes"; 
     29                var toolsize = tool_properties.getString(tool + ".size").split(","); 
     30                option += ",width=" + toolsize[0]; 
     31                option += ",height=" + toolsize[1]; 
    2132                try{ 
    2233                        var toolprop = pref.getCharPref(this.TOOL_PROPERTY_POSITION + "." + tool).split(","); 
     
    2637                        option += ",centerscreen"; 
    2738                } 
    28                 var dialog = window.openDialog(this.CHROME_TOOL + tool + ".html", tool, option); 
     39                var toolname = vocalofx_properties.getString("vocalofx.tool." + tool) 
     40                var dialog = window.openDialog(this.TOOLDIALOG_URL, tool, option, tool, toolname); 
    2941                dialog.focus(); 
    3042        }, 
     
    3749                pref.setCharPref(this.SKIN_PROPERTY_POSITION, position); 
    3850                pref.setCharPref(this.SKIN_PROPERTY_CATEGORY, category); 
    39                 this.setVocalofxSkin(); 
    40         }, 
    41  
    42         setVocalofxSkin: function(){ 
     51        }, 
     52 
     53        selectVocalofxSkinPallet: function(pallet){ 
     54                var category; 
     55                try{ 
     56                        category = pref.getCharPref(this.SKIN_PROPERTY_CATEGORY); 
     57                } 
     58                catch(e){ 
     59                        this.selectVocalofxSkin(this.DEFAULT_SKIN); 
     60                        return; 
     61                } 
     62                pref.setCharPref(this.SKIN_PROPERTY_PALLET + "." + category, pallet); 
     63                pref.setCharPref(this.SKIN_PROPERTY_PALLET, pallet); 
     64        }, 
     65 
     66        setVocalofxSkinImage: function(){ 
    4367                var image; 
     68                try{ 
     69                        image = pref.getCharPref(this.SKIN_PROPERTY_IMAGE); 
     70                } 
     71                catch(e){ 
     72                        this.selectVocalofxSkin(this.DEFAULT_SKIN); 
     73                        return; 
     74                } 
     75 
     76                main_window.style.backgroundRepeat = "no-repeat"; 
     77                main_window.style.backgroundImage = "url('" + image + "')"; 
     78        }, 
     79 
     80        setVocalofxSkinCategory: function(){ 
     81                var category; 
     82                var pallet; 
     83                try{ 
     84                        category = pref.getCharPref(this.SKIN_PROPERTY_CATEGORY); 
     85                        pallet = pref.getCharPref(this.SKIN_PROPERTY_PALLET + "." + category); 
     86                } 
     87                catch(e){ 
     88                        this.selectVocalofxSkin(this.DEFAULT_SKIN); 
     89                        return; 
     90                } 
     91 
     92                pref.setCharPref(this.SKIN_PROPERTY_PALLET, pallet); 
     93                this.setVocalofxPalletMenu(); 
     94        }, 
     95 
     96        setVocalofxImagePosition: function(){ 
    4497                var position; 
    45                 var category; 
    46                 try{ 
    47                         image = pref.getCharPref(this.SKIN_PROPERTY_IMAGE); 
    48                         position = pref.getCharPref(this.SKIN_PROPERTY_POSITION); 
    49                         category = pref.getCharPref(this.SKIN_PROPERTY_CATEGORY); 
    50                 } 
    51                 catch(e){ 
    52                         this.selectVocalofxSkin(this.DEFAULT_SKIN); 
    53                         this.setVocalofxSkin(); 
    54                         return; 
    55                 } 
    56  
    57                 main_window.style.backgroundImage = "url('" + image + "')"; 
    58                 main_window.style.backgroundPosition = position; 
    59                 main_window.style.backgroundRepeat = "no-repeat"; 
    60                 main_window.setAttribute(this.SKIN_ATTRIBUTE, category); 
    61                 menuroot.src = this.CHROME_SKIN + category + "_logo.png"; 
     98                var position_height; 
     99                var position_ratio; 
     100                try{ 
     101                        position = pref.getCharPref(this.SKIN_PROPERTY_POSITION).split(","); 
     102                        position_height = Number(position[0]); 
     103                        position_ratio = Number(position[1]); 
     104                } 
     105                catch(e){ 
     106                        this.selectVocalofxSkin(this.DEFAULT_SKIN); 
     107                        return; 
     108                } 
     109 
     110                try{ 
     111                        var image_top = Number(vocalofx_navigator_toolbox.height.substr(0, vocalofx_navigator_toolbox.height.length - 2)); 
     112                        image_top = (image_top - position_height) / position_ratio; 
     113                        if(image_top > 0){ 
     114                                image_top = 0; 
     115                        } 
     116                        main_window.style.backgroundPosition = "100% " + image_top + "px"; 
     117                } 
     118                catch(e){ 
     119                        // nop 
     120                        alert(e); 
     121                } 
     122        }, 
     123 
     124        setVocalofxSkinPallet: function(){ 
     125                var pallet; 
     126                try{ 
     127                        pallet = pref.getCharPref(this.SKIN_PROPERTY_PALLET); 
     128                } 
     129                catch(e){ 
     130                        this.selectVocalofxSkinPallet(this.DEFAULT_PALLET); 
     131                        return; 
     132                } 
     133 
     134                main_window.setAttribute(this.SKIN_ATTRIBUTE, pallet); 
    62135                this.setSidebarVocalofxSkin(); 
    63136        }, 
    64137 
    65138        setSidebarVocalofxSkin: function(){ 
    66                 var category = pref.getCharPref(this.SKIN_PROPERTY_CATEGORY); 
    67                 var sidebar = document.getElementById("sidebar"); 
     139                var pallet; 
     140                try{ 
     141                        pallet = pref.getCharPref(this.SKIN_PROPERTY_PALLET); 
     142                } 
     143                catch(e){ 
     144                        this.selectVocalofxSkinPallet(this.DEFAULT_PALLET); 
     145                        return; 
     146                } 
     147 
    68148                try{ 
    69149                        var bookmarksPanel = sidebar.contentDocument.getElementById("bookmarksPanel"); 
    70150                        if(bookmarksPanel){ 
    71                                 bookmarksPanel.setAttribute(this.SKIN_ATTRIBUTE, category); 
     151                                bookmarksPanel.setAttribute(this.SKIN_ATTRIBUTE, pallet); 
    72152                        } 
    73153                        var history_panel = sidebar.contentDocument.getElementById("history-panel"); 
    74154                        if(history_panel){ 
    75                                 history_panel.setAttribute(this.SKIN_ATTRIBUTE, category); 
     155                                history_panel.setAttribute(this.SKIN_ATTRIBUTE, pallet); 
    76156                        } 
    77157                } 
     
    89169                        menuitem.setAttribute("oncommand", "vocalofx.selectVocalofxSkin('" + skins[i] + "')"); 
    90170 
    91                         var category = skin_properties.getString(skins[i] + ".category"); 
     171                        var category = skin_properties.getString(skins[i] + ".category_sub"); 
    92172                        var skin_popup = document.getElementById("vocalofx-skin-popup-" + category); 
    93173                        skin_popup.appendChild(menuitem); 
     
    113193        }, 
    114194 
     195        setVocalofxPalletMenu: function(){ 
     196                var category; 
     197                try{ 
     198                        category = pref.getCharPref(this.SKIN_PROPERTY_CATEGORY); 
     199                } 
     200                catch(e){ 
     201                        this.selectVocalofxSkin(this.DEFAULT_SKIN); 
     202                        return; 
     203                } 
     204 
     205                menuroot.src = this.CHROME_SKIN + category + "_logo.png"; 
     206 
     207                var skin_popup = document.getElementById("vocalofx-skin-popup-pallet"); 
     208                var oldmenu = skin_popup.getElementsByTagName("menuitem"); 
     209                for(var i = 0; i < oldmenu.length; i++){ 
     210                        if(oldmenu[i].getAttribute().match(/^vocalofx-skin-/)){ 
     211                                skin_popup.removeChild(oldmenu[i]); 
     212                        } 
     213                } 
     214 
     215                var pallets = skin_properties.getString("palletmenu." + category).split(","); 
     216                for(var i = 0; i < pallets.length; i++){ 
     217                        var menuitem = document.createElement("menuitem"); 
     218                        menuitem.setAttribute("id", "vocalofx-skin-" + pallets[i]); 
     219                        menuitem.setAttribute("label", vocalofx_properties.getString("vocalofx.skin.pallet." + pallets[i])); 
     220                        menuitem.setAttribute("oncommand", "vocalofx.selectVocalofxSkinPallet('" + pallets[i] + "')"); 
     221                        skin_popup.appendChild(menuitem); 
     222                } 
     223        }, 
     224 
    115225        init: function(){ 
    116226                window.removeEventListener(this.BROWSER_ONLOAD, this, false); 
     227                update.check(); 
    117228 
    118229                pref = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch); 
    119230                main_window = document.getElementById("main-window"); 
     231                sidebar = document.getElementById("sidebar"); 
     232                navigator_toolbox = document.getElementById("navigator-toolbox"); 
    120233                menuroot = document.getElementById("vocalofx-menuroot"); 
    121234                vocalofx_properties = document.getElementById("vocalofx-properties"); 
     
    123236                tool_properties = document.getElementById("vocalofx-tool-properties"); 
    124237 
    125                 var sidebar = document.getElementById("sidebar"); 
    126                 sidebar.addEventListener(vocalofx_sidebar.SIDEBAR_ONLOAD, vocalofx_sidebar, true); 
    127  
    128                 this.setVocalofxSkin(); 
     238                pref.QueryInterface(Components.interfaces.nsIPrefBranch2); 
     239                pref.addObserver(this.SKINPREF_OBSERVER, this, false); 
     240                vocalofx_sidebar.init(sidebar); 
     241                vocalofx_navigator_toolbox.init(navigator_toolbox); 
     242 
     243                this.setVocalofxSkinImage(); 
     244                this.setVocalofxSkinPallet(); 
     245                this.setVocalofxPalletMenu(); 
    129246                this.setVocalofxMenu(); 
    130247        }, 
    131248 
     249        destroy: function(){ 
     250                window.removeEventListener(this.BROWSER_ONLOAD, this, false); 
     251                pref.removeObserver(this.SKINPREF_OBSERVER, this, false); 
     252                vocalofx_sidebar.destroy(); 
     253                vocalofx_navigator_toolbox.destroy(); 
     254        }, 
     255 
     256        observe: function(aSubject, aTopic, aData){ 
     257                switch(aTopic){ 
     258                case this.BROWSER_PREF_CHANGED: 
     259                        switch(aData){ 
     260                        case this.SKIN_PROPERTY_IMAGE: 
     261                                this.setVocalofxSkinImage(); 
     262                        break; 
     263                        case this.SKIN_PROPERTY_POSITION: 
     264                                this.setVocalofxImagePosition(); 
     265                        break; 
     266                        case this.SKIN_PROPERTY_PALLET: 
     267                                this.setVocalofxSkinPallet(); 
     268                        break; 
     269                        case this.SKIN_PROPERTY_CATEGORY: 
     270                                this.setVocalofxSkinCategory(); 
     271                        break; 
     272                        } 
     273                break; 
     274                } 
     275        }, 
     276 
    132277        handleEvent: function(aEvent){ 
    133                 if(aEvent.type == this.BROWSER_ONLOAD){ 
     278                switch(aEvent.type){ 
     279                case this.BROWSER_ONLOAD: 
    134280                        this.init(); 
     281                break; 
     282                case this.BROWSER_UNONLOAD: 
     283                        this.destroy(); 
     284                break; 
    135285                } 
    136286        } 
     
    139289var vocalofx_sidebar = { 
    140290        SIDEBAR_ONLOAD: "load", 
     291        sidebar: null, 
     292 
     293        init: function(sidebar){ 
     294                this.sidebar = sidebar; 
     295                this.sidebar.addEventListener(this.SIDEBAR_ONLOAD, this, true); 
     296        }, 
     297 
     298        destroy: function(){ 
     299                sidebar.removeEventListener(this.SIDEBAR_ONLOAD, this, true); 
     300        }, 
    141301 
    142302        handleEvent: function(aEvent){ 
    143                 if(aEvent.type == this.SIDEBAR_ONLOAD){ 
     303                switch(aEvent.type){ 
     304                case this.SIDEBAR_ONLOAD: 
    144305                        vocalofx.setSidebarVocalofxSkin(); 
     306                break; 
    145307                } 
    146308        } 
    147309}; 
    148310 
     311var vocalofx_navigator_toolbox = { 
     312        NAVIGATOR_TOOLBAR_MODIFIED: "DOMAttrModified", 
     313        navigator_toolbox: null, 
     314        style: null, 
     315        height: null, 
     316 
     317        get height(){ 
     318                return height; 
     319        }, 
     320 
     321        set height(height){ 
     322                this.height = height; 
     323        }, 
     324 
     325        init: function(navigator_toolbox){ 
     326                height = "0px"; 
     327                this.navigator_toolbox = navigator_toolbox; 
     328                this.navigator_toolbox.addEventListener(this.NAVIGATOR_TOOLBAR_MODIFIED, this, true); 
     329        }, 
     330 
     331        destroy: function(){ 
     332                navigator_toolbox.removeEventListener(this.NAVIGATOR_TOOLBAR_MODIFIED, this, true); 
     333        }, 
     334 
     335        isNavigatorToolboxHeightChanged: function(){ 
     336                if(height != style.height){ 
     337                        height = style.height; 
     338                        return true; 
     339                } 
     340                else{ 
     341                        return false; 
     342                } 
     343        }, 
     344 
     345        handleEvent: function(aEvent){ 
     346                style = document.defaultView.getComputedStyle(navigator_toolbox, "");; 
     347                switch(aEvent.type){ 
     348                case this.NAVIGATOR_TOOLBAR_MODIFIED: 
     349                        if(this.isNavigatorToolboxHeightChanged()){ 
     350                                vocalofx.setVocalofxImagePosition(); 
     351                        } 
     352                break; 
     353                } 
     354        } 
     355}; 
     356 
    149357window.addEventListener(vocalofx.BROWSER_ONLOAD, vocalofx, false); 
     358window.addEventListener(vocalofx.BROWSER_UNONLOAD, vocalofx, false); 
  • trunk/chrome/locale/en-US/vocalofx.dtd

    r2 r7  
    1 <!ENTITY vocalofx.name "VocaloFx"> 
    2 <!ENTITY vocalofx.version "0.1pre"> 
    3 <!ENTITY vocalofx.description "VOCALOID skin for Firefox."> 
    41<!ENTITY vocalofx.illustrator.label "Illust:"> 
    52<!ENTITY vocalofx.colorpallet.label "Color Pallet:"> 
     
    74<!ENTITY vocalofx.tool_menu.label "Tool"> 
    85<!ENTITY vocalofx.skin_menu.label "Skin"> 
     6<!ENTITY vocalofx.skin_menu.pallet.label "Pallet"> 
    97<!ENTITY vocalofx.skin_menu.miku.label "Hatsune Miku"> 
    108 
  • trunk/chrome/locale/en-US/vocalofx.properties

    r2 r7  
    11extensions.vocalofx@rayflood.org.name=VocaloFx 
    22extensions.vocalofx@rayflood.org.description=VOCALOID skin for Firefox. 
     3vocalofx.skinAlert=%S default theme is not selected.\nMaybe %S skin don't work. 
     4vocalofx.macAlert=On MacOS X, Please Install\nVocaloFx Option Pack for MacOS X. 
    35vocalofx.skin.sanari_miku=saNari 
    46vocalofx.skin.hachune_miku=tamago 
    57vocalofx.skin.nagamon_miku=nagamon 
    68vocalofx.skin.yuki_miku=yuki 
     9vocalofx.skin.pallet.miku=Hatsune Miku 
     10vocalofx.skin.pallet.miku2=Hatsune Miku(no pink) 
     11vocalofx.skin.pallet.miku3=Hatsune Miku light blue 
    712vocalofx.tool.fullmiku=Full Miku Player 
    813vocalofx.tool.mikunano=Miku nano 
  • trunk/chrome/locale/ja/vocalofx.dtd

    r2 r7  
    1 <!ENTITY vocalofx.name "ぼかろFx"> 
    2 <!ENTITY vocalofx.version "0.1pre"> 
    3 <!ENTITY vocalofx.description "Firefoxがミクっぽくなります。"> 
    41<!ENTITY vocalofx.illustrator.label "イラスト:"> 
    52<!ENTITY vocalofx.colorpallet.label "カラーパレット:"> 
     
    74<!ENTITY vocalofx.tool_menu.label "ツール"> 
    85<!ENTITY vocalofx.skin_menu.label "スキン"> 
     6<!ENTITY vocalofx.skin_menu.pallet.label "配色"> 
    97<!ENTITY vocalofx.skin_menu.miku.label "初音ミク"> 
    108 
  • trunk/chrome/locale/ja/vocalofx.properties

    r2 r7  
    11extensions.vocalofx@rayflood.org.name=ぼかろFx 
    22extensions.vocalofx@rayflood.org.description=Firefoxがミクっぽくなります。 
     3vocalofx.skinAlert=%Sデフォルト以外のテーマが選択されています。\n%Sのスキンが正しく表示されないかもしれません。 
     4vocalofx.macAlert=MacOS X環境でご使用の場合は、\nぼかろFx MacOS Xオプションパックを\nインストールしてください。 
    35vocalofx.skin.sanari_miku=さなり 
    46vocalofx.skin.hachune_miku=たまご 
    57vocalofx.skin.nagamon_miku=nagamon 
    68vocalofx.skin.yuki_miku=祐希 
     9vocalofx.skin.pallet.miku=初音ミク 
     10vocalofx.skin.pallet.miku2=初音ミク(ピンクなし) 
     11vocalofx.skin.pallet.miku3=初音ミク 水色 
    712vocalofx.tool.fullmiku=フルみっく伝染歌プレーヤー 
    813vocalofx.tool.mikunano=初音ミクnano 
  • trunk/install.rdf

    r2 r7  
    33        <Description about="urn:mozilla:install-manifest"> 
    44                <em:id>vocalofx@rayflood.org</em:id> 
    5                 <em:version>0.1pre</em:version> 
     5                <em:version>0.1pre2</em:version> 
    66                <em:type>2</em:type> 
    77 
     
    3737                                <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> 
    3838                                <em:minVersion>2.0</em:minVersion> 
    39                                 <em:maxVersion>2.*</em:maxVersion> 
     39                                <em:maxVersion>3.0.*</em:maxVersion> 
    4040                        </Description> 
    4141                </em:targetApplication>