- 更新日時:
- 2008/08/09 01:20:58 (4 年 前)
- パス:
- trunk
- ファイル:
-
- 2 削除
- 26 変更
- 11 コピー
-
chrome/content/about.js (変更) (2 diff)
-
chrome/content/about.xul (変更) (2 diff)
-
chrome/content/overlay.css (変更) (5 diff)
-
chrome/content/overlay.xul (変更) (2 diff)
-
chrome/content/skin/hachune_miku.png (変更) (前のリビジョン)
-
chrome/content/skin/miku.css (変更) (9 diff)
-
chrome/content/skin/miku2.css (コピー) (コピー元: tags/0.1pre2/chrome/content/skin/miku2.css)
-
chrome/content/skin/miku3.css (コピー) (コピー元: tags/0.1pre2/chrome/content/skin/miku3.css)
-
chrome/content/skin/sanari_miku.png (変更) (前のリビジョン)
-
chrome/content/skin/skin.properties (変更) (1 diff)
-
chrome/content/skin/yuki_miku.png (変更) (前のリビジョン)
-
chrome/content/tool/akitaneru.html (変更) (1 diff)
-
chrome/content/tool/amazon.html (変更) (1 diff)
-
chrome/content/tool/clock.html (変更) (1 diff)
-
chrome/content/tool/clock_light.html (変更) (1 diff)
-
chrome/content/tool/fullmiku.html (変更) (1 diff)
-
chrome/content/tool/mikunano.html (変更) (1 diff)
-
chrome/content/tool/mikunano2.html (変更) (1 diff)
-
chrome/content/tool/mikunyano.html (変更) (1 diff)
-
chrome/content/tool/tool.css (変更) (1 diff)
-
chrome/content/tool/tool.js (変更) (1 diff)
-
chrome/content/tool/tool.properties (変更) (1 diff)
-
chrome/content/tool/tool.xul (コピー) (コピー元: tags/0.1pre2/chrome/content/tool/tool.xul)
-
chrome/content/tool/toolhtml.css (コピー) (コピー元: tags/0.1pre2/chrome/content/tool/toolhtml.css)
-
chrome/content/update.js (コピー) (コピー元: tags/0.1pre2/chrome/content/update.js)
-
chrome/content/vocalofx.js (変更) (8 diff)
-
chrome/icons/default/aboutDialog.ico (コピー) (コピー元: tags/0.1pre2/chrome/icons/default/aboutDialog.ico)
-
chrome/icons/default/aboutDialog.xpm (コピー) (コピー元: tags/0.1pre2/chrome/icons/default/aboutDialog.xpm)
-
chrome/icons/default/genericAbout.ico (削除)
-
chrome/icons/default/genericAbout.xpm (削除)
-
chrome/icons/default/main-window.ico (コピー) (コピー元: tags/0.1pre2/chrome/icons/default/main-window.ico)
-
chrome/icons/default/main-window.xpm (コピー) (コピー元: tags/0.1pre2/chrome/icons/default/main-window.xpm)
-
chrome/icons/default/vocalofx-tooldialog.ico (コピー) (コピー元: tags/0.1pre2/chrome/icons/default/vocalofx-tooldialog.ico)
-
chrome/icons/default/vocalofx-tooldialog.xpm (コピー) (コピー元: tags/0.1pre2/chrome/icons/default/vocalofx-tooldialog.xpm)
-
chrome/locale/en-US/vocalofx.dtd (変更) (2 diff)
-
chrome/locale/en-US/vocalofx.properties (変更) (1 diff)
-
chrome/locale/ja/vocalofx.dtd (変更) (2 diff)
-
chrome/locale/ja/vocalofx.properties (変更) (1 diff)
-
install.rdf (変更) (2 diff)
凡例:
- 変更なし
- 追加
- 削除
-
trunk/chrome/content/about.js
r2 r7 1 1 function 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 2 13 var extensionsStrings = document.getElementById("extensionsStrings"); 3 14 var acceptButton = document.documentElement.getButton("accept"); 4 15 acceptButton.label = extensionsStrings.getString("aboutWindowCloseButton"); 5 document.title = extensionsStrings.getFormattedString("aboutWindowTitle", [ document.title]);16 document.title = extensionsStrings.getFormattedString("aboutWindowTitle", [addon.name]); 6 17 } 7 18 … … 10 21 window.opener.openURL(aEvent.target.getAttribute("homepageURL")); 11 22 } 23 24 function EM_NS(aProperty){ 25 return "http://www.mozilla.org/2004/em-rdf#" + aProperty; 26 } -
trunk/chrome/content/about.xul
r2 r7 7 7 8 8 <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();"> 10 10 11 11 <script type="application/x-javascript" src="chrome://vocalofx/content/about.js"/> 12 12 <stringbundleset id="aboutSet"> 13 13 <stringbundle id="extensionsStrings" src="chrome://mozapps/locale/extensions/extensions.properties"/> 14 <stringbundle id="vocalofx-properties" src="chrome://vocalofx/locale/vocalofx.properties"/> 14 15 </stringbundleset> 15 16 … … 18 19 <image src='chrome://vocalofx/content/Firemiku_icon64.png' width='64' height='64'/> 19 20 <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"/> 23 24 </vbox> 24 25 </hbox> -
trunk/chrome/content/overlay.css
r2 r7 1 1 @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"); 2 4 @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); 3 5 4 #find-field 6 #find-field, .find-field-container 7 , #urlbar, .searchbar-textbox 5 8 , #bookmarksPanel 6 9 #search-box … … 8 11 #search-box 9 12 { 10 background-color: transparent !important; 11 border: 1px solid; 13 background-color: transparent; 14 background-image: none !important; 15 border: 1px solid !important; 12 16 -moz-appearance: none !important; 13 17 -moz-border-top-colors: #96969D; … … 17 21 } 18 22 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 20 46 , #main-window toolbarbutton 21 47 , #sidebar-box > sidebarheader 22 , #find-field-container 48 , #find-field-container, .find-field-container 23 49 , #status-bar > statusbarpanel 24 50 , #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 25 71 { 26 72 -moz-appearance: none !important; … … 31 77 , #FindToolbar 32 78 { 33 border: 0px !important;79 border: 0px; 34 80 } 35 81 … … 37 83 , #sidebar-box > sidebarheader 38 84 , #status-bar > statusbarpanel 85 , treechildren::-moz-tree-row 39 86 { 40 border-color: transparent !important; 87 border-color: transparent; 88 } 89 90 #navigator-toolbox, #navigator-toolbox > toolbar 91 , #FindToolbar 92 { 93 background-image: none; 41 94 } 42 95 43 96 .tabbrowser-tabs, .tabs-bottom 44 97 { 45 background-image: none !important; 98 background-image: none !important; 46 99 } 47 100 48 #navigator-toolbox 101 #navigator-toolbox, #navigator-toolbox > toolbar 49 102 , #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 50 118 , #urlbar[level="high"] > .autocomplete-textbox-container 51 119 , #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"] 58 123 { 59 124 background-color: transparent !important; -
trunk/chrome/content/overlay.xul
r2 r7 5 5 6 6 <script type="application/x-javascript" src="chrome://vocalofx/content/vocalofx.js"/> 7 <script type="application/x-javascript" src="chrome://vocalofx/content/update.js"/> 7 8 <stringbundleset id="stringbundleset"> 8 9 <stringbundle id="vocalofx-properties" src="chrome://vocalofx/locale/vocalofx.properties"/> … … 20 21 <menu id="vocalofx-skin-menu" label="&vocalofx.skin_menu.label;"> 21 22 <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> 22 27 <menu id="vocalofx-skin-menu-miku" label="&vocalofx.skin_menu.miku.label;"> 23 28 <menupopup id="vocalofx-skin-popup-miku"> -
trunk/chrome/content/skin/miku.css
r2 r7 4 4 menu 5 5 , #main-window[vocalofx_skin="miku"] 6 menuitem :not([class~="alltabs-item"])6 menuitem 7 7 , #main-window[vocalofx_skin="miku"] 8 8 toolbarbutton 9 9 , #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"] 10 20 #sidebar-box > sidebarheader 11 21 , #main-window[vocalofx_skin="miku"] 22 #sidebar-title 23 , #main-window[vocalofx_skin="miku"] 12 24 #FindToolbar 25 , #main-window[vocalofx_skin="miku"] 26 #FindToolbar label 13 27 , #bookmarksPanel[vocalofx_skin="miku"] 14 28 menu … … 32 46 33 47 #main-window[vocalofx_skin="miku"] 34 .alltabs-item35 , #main-window[vocalofx_skin="miku"]36 48 .tabbrowser-tab 37 49 , #main-window[vocalofx_skin="miku"] 38 50 #urlbar 51 , #main-window[vocalofx_skin="miku"] 52 #identity-box > hbox 39 53 , #main-window[vocalofx_skin="miku"] 40 54 #urlbar[level="high"] > .autocomplete-textbox-container … … 44 58 .searchbar-textbox 45 59 , #main-window[vocalofx_skin="miku"] 46 treechildren.autocomplete-treebody47 , #main-window[vocalofx_skin="miku"]48 treechildren.autocomplete-treebody::-moz-tree-cell-text(selected)49 , #main-window[vocalofx_skin="miku"]50 60 #status-bar 51 61 , #main-window[vocalofx_skin="miku"] 52 62 #find-field 63 , #main-window[vocalofx_skin="miku"] 64 .findbar-textbox 53 65 , #bookmarksPanel[vocalofx_skin="miku"] 54 66 , #bookmarksPanel[vocalofx_skin="miku"] … … 64 76 65 77 #main-window[vocalofx_skin="miku"] 66 menu :hover78 menu[_moz-menuactive="true"] 67 79 , #main-window[vocalofx_skin="miku"] 68 menuitem :hover80 menuitem[_moz-menuactive="true"] 69 81 , #main-window[vocalofx_skin="miku"] 70 82 treechildren.autocomplete-treebody::-moz-tree-row(selected) 83 , #main-window[vocalofx_skin="miku"] 84 .autocomplete-richlistitem[selected="true"] 71 85 , #bookmarksPanel[vocalofx_skin="miku"] 72 menu :hover86 menu[_moz-menuactive="true"] 73 87 , #bookmarksPanel[vocalofx_skin="miku"] 74 menuitem :hover88 menuitem[_moz-menuactive="true"] 75 89 , #bookmarksPanel[vocalofx_skin="miku"] 76 90 treechildren::-moz-tree-row(selected) 77 91 , #history-panel[vocalofx_skin="miku"] 78 menu :hover92 menu[_moz-menuactive="true"] 79 93 , #history-panel[vocalofx_skin="miku"] 80 menuitem :hover94 menuitem[_moz-menuactive="true"] 81 95 , #history-panel[vocalofx_skin="miku"] 82 96 treechildren::-moz-tree-row(selected) … … 91 105 menupopup 92 106 , #main-window[vocalofx_skin="miku"] 107 .autocomplete-richlistitem 108 , #main-window[vocalofx_skin="miku"] 93 109 #sidebar-box > sidebarheader 110 , #main-window[vocalofx_skin="miku"] 111 #sidebar-title 94 112 , #main-window[vocalofx_skin="miku"] 95 113 #status-bar > statusbarpanel 96 114 , #bookmarksPanel[vocalofx_skin="miku"] 115 , #bookmarksPanel[vocalofx_skin="miku"] 116 > hbox 97 117 , #bookmarksPanel[vocalofx_skin="miku"] 98 118 popup … … 102 122 treechildren 103 123 , #history-panel[vocalofx_skin="miku"] 124 , #history-panel[vocalofx_skin="miku"] 125 > hbox 104 126 , #history-panel[vocalofx_skin="miku"] 105 127 popup … … 115 137 116 138 #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"] 117 149 #find-field[status="notfound"] 150 , #main-window[vocalofx_skin="miku"] 151 .findbar-textbox[status="notfound"] 118 152 { 119 153 color: #bec8d1 !important; … … 122 156 #main-window[vocalofx_skin="miku"] 123 157 #find-field[status="notfound"] 158 , #main-window[vocalofx_skin="miku"] 159 .findbar-textbox[status="notfound"] 124 160 { 125 161 background-color: #e12885 !important; … … 128 164 #main-window[vocalofx_skin="miku"] 129 165 #FindToolbar[flash="true"] > #find-field-container > #find-field 166 , #main-window[vocalofx_skin="miku"] 167 findbar[flash="true"] > .find-field-container > .findbar-textbox 130 168 { 131 169 background-color: #bec8d1 !important; -
trunk/chrome/content/skin/skin.properties
r2 r7 1 1 skinmenu=hachune_miku,sanari_miku,nagamon_miku,yuki_miku 2 sanari_miku.position=100% -10% 2 palletmenu.miku=miku,miku2,miku3 3 hachune_miku.position=230,2 4 hachune_miku.category=miku 5 hachune_miku.category_sub=miku 6 sanari_miku.position=180,2 3 7 sanari_miku.category=miku 4 hachune_miku.position=100% -20% 5 hachune_miku.category=miku 6 nagamon_miku.position=95% -10% 8 sanari_miku.category_sub=miku 9 nagamon_miku.position=160,2 7 10 nagamon_miku.category=miku 8 yuki_miku.position=100% -17% 11 nagamon_miku.category_sub=miku 12 yuki_miku.position=250,2 9 13 yuki_miku.category=miku 14 yuki_miku.category_sub=miku -
trunk/chrome/content/tool/akitaneru.html
r2 r7 3 3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4 4 <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"> 7 body 8 { 9 background-image: url(mate4.png); 10 background-repeat: no-repeat; 11 } 12 </style> 7 13 </head> 8 <body onunload="closeVocalofxTool(window);"> 9 <img src="mate4.png"/> 14 <body> 10 15 </body> 11 16 </html> -
trunk/chrome/content/tool/amazon.html
r2 r7 3 3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4 4 <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"> 7 body 8 { 9 background-image: url(mada5.png); 10 background-repeat: no-repeat; 11 } 12 </style> 7 13 </head> 8 <body onunload="closeVocalofxTool(window);"> 9 <img src="mada5.png"/> 14 <body> 10 15 </body> 11 16 </html> -
trunk/chrome/content/tool/clock.html
r2 r7 3 3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4 4 <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"> 7 body 8 { 9 background-image: url(mate1.png); 10 background-repeat: no-repeat; 11 } 12 </style> 7 13 </head> 8 <body onunload="closeVocalofxTool(window);"> 9 <img src="mate1.png"/> 14 <body> 10 15 </body> 11 16 </html> -
trunk/chrome/content/tool/clock_light.html
r2 r7 3 3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4 4 <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"> 7 body 8 { 9 background-image: url(mada6.png); 10 background-repeat: no-repeat; 11 } 12 </style> 7 13 </head> 8 <body onunload="closeVocalofxTool(window);"> 9 <img src="mada6.png"/> 14 <body> 10 15 </body> 11 16 </html> -
trunk/chrome/content/tool/fullmiku.html
r2 r7 3 3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4 4 <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"> 7 body 8 { 9 background-image: url(mada5.png); 10 background-repeat: no-repeat; 11 } 12 </style> 7 13 </head> 8 <body onunload="closeVocalofxTool(window);"> 9 <img src="mada5.png"/> 14 <body> 10 15 </body> 11 16 </html> -
trunk/chrome/content/tool/mikunano.html
r2 r7 3 3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4 4 <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"> 7 body 8 { 9 background-image: url(mate3.png); 10 background-repeat: no-repeat; 11 } 12 </style> 7 13 </head> 8 <body onunload="closeVocalofxTool(window);"> 9 <img src="mate3.png"/> 14 <body> 10 15 </body> 11 16 </html> -
trunk/chrome/content/tool/mikunano2.html
r2 r7 3 3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4 4 <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"> 7 body 8 { 9 background-image: url(mate2.png); 10 background-repeat: no-repeat; 11 } 12 </style> 7 13 </head> 8 <body onunload="closeVocalofxTool(window);"> 9 <img src="mate2.png"/> 14 <body> 10 15 </body> 11 16 </html> -
trunk/chrome/content/tool/mikunyano.html
r2 r7 3 3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4 4 <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"> 7 body 8 { 9 background-image: url(mate7.png); 10 background-repeat: no-repeat; 11 } 12 </style> 7 13 </head> 8 <body onunload="closeVocalofxTool(window);"> 9 <img src="mate7.png"/> 14 <body> 10 15 </body> 11 16 </html> -
trunk/chrome/content/tool/tool.css
r2 r7 1 body{ 2 background: #373b3e; 1 #vocalofx-tooldialog 2 { 3 3 margin: 0px; 4 4 } -
trunk/chrome/content/tool/tool.js
r2 r7 1 1 const TOOL_PROPERTY_POSITION = "extensions.vocalofx.tool.position"; 2 2 const TOOL_PROPERTY_STARTUP = "extensions.vocalofx.tool.startup"; 3 const TOOL_URL = "chrome://vocalofx/content/tool/"; 3 4 4 function closeVocalofxTool(dialog){ 5 var tool; 6 7 function 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 16 function closeVocalofxTool(){ 5 17 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; 9 20 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; 13 24 left -= offsetX; 14 25 top -= offsetY; 15 26 startup = true; 16 27 } 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); 19 30 } -
trunk/chrome/content/tool/tool.properties
r2 r7 1 1 toolmenu=fullmiku,mikunano,mikunano2,mikunyano,amazon,akitaneru,clock,clock_light 2 fullmiku.size=145,192 3 mikunano.size=265,215 4 mikunano2.size=276,183 5 mikunyano.size=193,226 6 amazon.size=145,192 7 akitaneru.size=144,203 8 clock.size=214,308 9 clock_light.size=222,166 -
trunk/chrome/content/vocalofx.js
r2 r7 1 1 var vocalofx = { 2 SKINPREF_OBSERVER: "extensions.vocalofx.skin_", 2 3 SKIN_PROPERTY_IMAGE: "extensions.vocalofx.skin_image", 3 4 SKIN_PROPERTY_POSITION: "extensions.vocalofx.skin_position", 5 SKIN_PROPERTY_PALLET: "extensions.vocalofx.skin_pallet", 4 6 SKIN_PROPERTY_CATEGORY: "extensions.vocalofx.skin_category", 5 7 TOOL_PROPERTY_POSITION: "extensions.vocalofx.tool.position", 6 8 TOOL_PROPERTY_STARTUP: "extensions.vocalofx.tool.startup", 9 TOOLDIALOG_URL: "chrome://vocalofx/content/tool/tool.xul", 7 10 CHROME_TOOL: "chrome://vocalofx/content/tool/", 8 11 CHROME_SKIN: "chrome://vocalofx/content/skin/", 9 12 SKIN_ATTRIBUTE: "vocalofx_skin", 10 13 BROWSER_ONLOAD: "load", 14 BROWSER_UNONLOAD: "unload", 15 BROWSER_PREF_CHANGED: "nsPref:changed", 11 16 DEFAULT_SKIN: "nagamon_miku", 17 DEFAULT_PALLET: "miku", 12 18 pref: null, 13 19 main_window: null, 20 sidebar: null, 21 navigator_toolbox: null, 14 22 menuroot: null, 15 23 vocalofx_properties: null, … … 18 26 19 27 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]; 21 32 try{ 22 33 var toolprop = pref.getCharPref(this.TOOL_PROPERTY_POSITION + "." + tool).split(","); … … 26 37 option += ",centerscreen"; 27 38 } 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); 29 41 dialog.focus(); 30 42 }, … … 37 49 pref.setCharPref(this.SKIN_PROPERTY_POSITION, position); 38 50 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(){ 43 67 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(){ 44 97 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); 62 135 this.setSidebarVocalofxSkin(); 63 136 }, 64 137 65 138 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 68 148 try{ 69 149 var bookmarksPanel = sidebar.contentDocument.getElementById("bookmarksPanel"); 70 150 if(bookmarksPanel){ 71 bookmarksPanel.setAttribute(this.SKIN_ATTRIBUTE, category);151 bookmarksPanel.setAttribute(this.SKIN_ATTRIBUTE, pallet); 72 152 } 73 153 var history_panel = sidebar.contentDocument.getElementById("history-panel"); 74 154 if(history_panel){ 75 history_panel.setAttribute(this.SKIN_ATTRIBUTE, category);155 history_panel.setAttribute(this.SKIN_ATTRIBUTE, pallet); 76 156 } 77 157 } … … 89 169 menuitem.setAttribute("oncommand", "vocalofx.selectVocalofxSkin('" + skins[i] + "')"); 90 170 91 var category = skin_properties.getString(skins[i] + ".category ");171 var category = skin_properties.getString(skins[i] + ".category_sub"); 92 172 var skin_popup = document.getElementById("vocalofx-skin-popup-" + category); 93 173 skin_popup.appendChild(menuitem); … … 113 193 }, 114 194 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 115 225 init: function(){ 116 226 window.removeEventListener(this.BROWSER_ONLOAD, this, false); 227 update.check(); 117 228 118 229 pref = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch); 119 230 main_window = document.getElementById("main-window"); 231 sidebar = document.getElementById("sidebar"); 232 navigator_toolbox = document.getElementById("navigator-toolbox"); 120 233 menuroot = document.getElementById("vocalofx-menuroot"); 121 234 vocalofx_properties = document.getElementById("vocalofx-properties"); … … 123 236 tool_properties = document.getElementById("vocalofx-tool-properties"); 124 237 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(); 129 246 this.setVocalofxMenu(); 130 247 }, 131 248 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 132 277 handleEvent: function(aEvent){ 133 if(aEvent.type == this.BROWSER_ONLOAD){ 278 switch(aEvent.type){ 279 case this.BROWSER_ONLOAD: 134 280 this.init(); 281 break; 282 case this.BROWSER_UNONLOAD: 283 this.destroy(); 284 break; 135 285 } 136 286 } … … 139 289 var vocalofx_sidebar = { 140 290 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 }, 141 301 142 302 handleEvent: function(aEvent){ 143 if(aEvent.type == this.SIDEBAR_ONLOAD){ 303 switch(aEvent.type){ 304 case this.SIDEBAR_ONLOAD: 144 305 vocalofx.setSidebarVocalofxSkin(); 306 break; 145 307 } 146 308 } 147 309 }; 148 310 311 var 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 149 357 window.addEventListener(vocalofx.BROWSER_ONLOAD, vocalofx, false); 358 window.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.">4 1 <!ENTITY vocalofx.illustrator.label "Illust:"> 5 2 <!ENTITY vocalofx.colorpallet.label "Color Pallet:"> … … 7 4 <!ENTITY vocalofx.tool_menu.label "Tool"> 8 5 <!ENTITY vocalofx.skin_menu.label "Skin"> 6 <!ENTITY vocalofx.skin_menu.pallet.label "Pallet"> 9 7 <!ENTITY vocalofx.skin_menu.miku.label "Hatsune Miku"> 10 8 -
trunk/chrome/locale/en-US/vocalofx.properties
r2 r7 1 1 extensions.vocalofx@rayflood.org.name=VocaloFx 2 2 extensions.vocalofx@rayflood.org.description=VOCALOID skin for Firefox. 3 vocalofx.skinAlert=%S default theme is not selected.\nMaybe %S skin don't work. 4 vocalofx.macAlert=On MacOS X, Please Install\nVocaloFx Option Pack for MacOS X. 3 5 vocalofx.skin.sanari_miku=saNari 4 6 vocalofx.skin.hachune_miku=tamago 5 7 vocalofx.skin.nagamon_miku=nagamon 6 8 vocalofx.skin.yuki_miku=yuki 9 vocalofx.skin.pallet.miku=Hatsune Miku 10 vocalofx.skin.pallet.miku2=Hatsune Miku(no pink) 11 vocalofx.skin.pallet.miku3=Hatsune Miku light blue 7 12 vocalofx.tool.fullmiku=Full Miku Player 8 13 vocalofx.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がミクっぽくなります。">4 1 <!ENTITY vocalofx.illustrator.label "イラスト:"> 5 2 <!ENTITY vocalofx.colorpallet.label "カラーパレット:"> … … 7 4 <!ENTITY vocalofx.tool_menu.label "ツール"> 8 5 <!ENTITY vocalofx.skin_menu.label "スキン"> 6 <!ENTITY vocalofx.skin_menu.pallet.label "配色"> 9 7 <!ENTITY vocalofx.skin_menu.miku.label "初音ミク"> 10 8 -
trunk/chrome/locale/ja/vocalofx.properties
r2 r7 1 1 extensions.vocalofx@rayflood.org.name=ぼかろFx 2 2 extensions.vocalofx@rayflood.org.description=Firefoxがミクっぽくなります。 3 vocalofx.skinAlert=%Sデフォルト以外のテーマが選択されています。\n%Sのスキンが正しく表示されないかもしれません。 4 vocalofx.macAlert=MacOS X環境でご使用の場合は、\nぼかろFx MacOS Xオプションパックを\nインストールしてください。 3 5 vocalofx.skin.sanari_miku=さなり 4 6 vocalofx.skin.hachune_miku=たまご 5 7 vocalofx.skin.nagamon_miku=nagamon 6 8 vocalofx.skin.yuki_miku=祐希 9 vocalofx.skin.pallet.miku=初音ミク 10 vocalofx.skin.pallet.miku2=初音ミク(ピンクなし) 11 vocalofx.skin.pallet.miku3=初音ミク 水色 7 12 vocalofx.tool.fullmiku=フルみっく伝染歌プレーヤー 8 13 vocalofx.tool.mikunano=初音ミクnano -
trunk/install.rdf
r2 r7 3 3 <Description about="urn:mozilla:install-manifest"> 4 4 <em:id>vocalofx@rayflood.org</em:id> 5 <em:version>0.1pre </em:version>5 <em:version>0.1pre2</em:version> 6 6 <em:type>2</em:type> 7 7 … … 37 37 <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> 38 38 <em:minVersion>2.0</em:minVersion> 39 <em:maxVersion> 2.*</em:maxVersion>39 <em:maxVersion>3.0.*</em:maxVersion> 40 40 </Description> 41 41 </em:targetApplication>
