svnno****@sourc*****
svnno****@sourc*****
2007年 7月 28日 (土) 02:53:06 JST
Revision: 179 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=bbs2ch&view=rev&rev=179 Author: flyson Date: 2007-07-28 02:53:06 +0900 (Sat, 28 Jul 2007) Log Message: ----------- ããã©ã«ãã¹ãã³ããã¼ã«ã«ããèªã¿è¾¼ãããã«ãã Modified Paths: -------------- trunk/bbs2chreader/chrome/content/bbs2chreader/server/skin.js trunk/bbs2chreader/defaults/preferences/bbs2chreader-pref.js Added Paths: ----------- trunk/bbs2chreader/defaults/skin/ trunk/bbs2chreader/defaults/skin/Header.html trunk/bbs2chreader/defaults/skin/popup.js trunk/bbs2chreader/defaults/skin/style.css Removed Paths: ------------- trunk/bbs2chreader/chrome/content/bbs2chreader/res/skin-default/ trunk/bbs2chreader/defaults/skin/Header.html trunk/bbs2chreader/defaults/skin/popup.js trunk/bbs2chreader/defaults/skin/style.css Modified: trunk/bbs2chreader/chrome/content/bbs2chreader/server/skin.js =================================================================== --- trunk/bbs2chreader/chrome/content/bbs2chreader/server/skin.js 2007-07-27 17:07:41 UTC (rev 178) +++ trunk/bbs2chreader/chrome/content/bbs2chreader/server/skin.js 2007-07-27 17:53:06 UTC (rev 179) @@ -2,102 +2,69 @@ start: function(aServerHandler){ var filePath = aServerHandler.requestURL.path.substring(6); - var channel = this.getChannel(filePath); + var skinFile = this.resolveSkinFile(filePath); - if(channel == null){ + // File Not Found + if(!skinFile.exists()){ aServerHandler.sendErrorPage(404, aServerHandler.requestURL.spec); return; } + var lastModifiedString = new Date(skinFile.lastModifiedTime).toUTCString(); + aServerHandler.setResponseHeader("Last-Modified", lastModifiedString); - if(channel instanceof Components.interfaces.nsIFileChannel){ - // File Not Found - if(!channel.file.exists()){ - aServerHandler.sendErrorPage(404, aServerHandler.requestURL.spec); + // If-Modified-Since ª¶Ýµt@CªXV³êĢȯêÎ 304 + if(aServerHandler.requestHeaders["If-Modified-Since"]){ + var lastModified = parseInt(new Date(skinFile.lastModifiedTime).getTime() / 1000); + var ifLastModified = parseInt(new Date(aServerHandler.requestHeaders["If-Modified-Since"]).getTime() / 1000); + dump("\n" + lastModified +"\n"+ ifLastModified +"\n"); + if(lastModified == ifLastModified){ + aServerHandler.writeResponseHeader(304); + aServerHandler.close(); return; } - - var lastModifiedString = new Date(channel.file.lastModifiedTime).toUTCString(); - aServerHandler.setResponseHeader("Last-Modified", lastModifiedString); - - // If-Modified-Since ª¶Ýµt@CªXV³êĢȯêÎ 304 - if(aServerHandler.requestHeaders["If-Modified-Since"]){ - var lastModified = parseInt(new Date(channel.file.lastModifiedTime).getTime() / 1000); - var ifLastModified = parseInt(new Date(aServerHandler.requestHeaders["If-Modified-Since"]).getTime() / 1000); - if(lastModified == ifLastModified){ - aServerHandler.writeResponseHeader(304); - aServerHandler.close(); - return; - } - } - - aServerHandler.setResponseHeader("Content-Type", channel.contentType); - aServerHandler.writeResponseHeader(200); - var fileStream = Components.classes["@mozilla.org/network/file-input-stream;1"] - .createInstance(Components.interfaces.nsIFileInputStream); - fileStream.init(channel.file, 0x01, 0444, fileStream.CLOSE_ON_EOF); - aServerHandler._output.writeFrom(fileStream, channel.file.fileSize); - fileStream.close(); - aServerHandler.close(); - return; } - var bInputStream = Components.classes["@mozilla.org/binaryinputstream;1"] - .createInstance(Components.interfaces.nsIBinaryInputStream); - var content = ""; - try{ - bInputStream.setInputStream(channel.open()); - var content = bInputStream.readBytes(channel.contentLength); - bInputStream.close(); - }catch(ex){ - aServerHandler.sendErrorPage(404, aServerHandler.requestURL.spec); - return; - } - aServerHandler.setResponseHeader("Content-Type", channel.contentType); + var mimeService = Components.classes["@mozilla.org/uriloader/external-helper-app-service;1"] + .getService(Components.interfaces.nsIMIMEService); + var contentType = mimeService.getTypeFromFile(skinFile); + aServerHandler.setResponseHeader("Content-Type", contentType); aServerHandler.writeResponseHeader(200); - aServerHandler.write(content); + var fileStream = Components.classes["@mozilla.org/network/file-input-stream;1"] + .createInstance(Components.interfaces.nsIFileInputStream); + fileStream.init(skinFile, 0x01, 0444, fileStream.CLOSE_ON_EOF); + aServerHandler._output.writeFrom(fileStream, skinFile.fileSize); + fileStream.close(); aServerHandler.close(); }, cancel: function(){ }, - getChannel: function(aFilePath){ - var ioService = Components.classes["@mozilla.org/network/io-service;1"] - .getService(Components.interfaces.nsIIOService); + resolveSkinFile: function(aFilePath){ var bbs2chService = Components.classes["@mozilla.org/bbs2ch-service;1"] .getService(Components.interfaces.nsIBbs2chService); - - var skinURISpec = "chrome://bbs2chreader/content/res/skin-default/"; var skinName = bbs2chService.pref.getComplexValue( "extensions.bbs2chreader.thread_skin", Components.interfaces.nsISupportsString).data; - if(skinName != ""){ - var skinDir = bbs2chService.getDataDir(); - skinDir.appendRelativePath("skin"); - var fileURL = ioService.newFileURI(skinDir) - .QueryInterface(Components.interfaces.nsIFileURL); - skinURISpec = fileURL.resolve(encodeURIComponent(skinName)) + "/"; - } - var skinBaseURI = ioService.newURI(skinURISpec, null, null); - try{ - var channel = ioService.newChannel(aFilePath, null, skinBaseURI); - switch(channel.URI.scheme){ - case "file": - channel.QueryInterface(Components.interfaces.nsIFileChannel); - break; - case "jar": - channel.QueryInterface(Components.interfaces.nsIJARChannel); - break; - default: - return null; - } - }catch(ex){ - return null; + var skinFile = null; + if(skinName){ + skinFile = bbs2chService.getDataDir(); + skinFile.appendRelativePath("skin"); + skinFile.appendRelativePath(skinName); + }else{ + var bbs2chreaderID = "{0B9D558E-6983-486b-9AAD-B6CBCD2FC807}"; + var extensionManager = Components.classes["@mozilla.org/extensions/manager;1"] + .getService(Components.interfaces.nsIExtensionManager); + var installLocation = extensionManager.getInstallLocation(bbs2chreaderID); + skinFile = installLocation.getItemFile(bbs2chreaderID, "defaults/skin").clone() + .QueryInterface(Components.interfaces.nsILocalFile); } - - return channel; + for(let [index, path] in aFilePath.split("/")){ + skinFile.appendRelativePath(path); + } + return skinFile; } } Modified: trunk/bbs2chreader/defaults/preferences/bbs2chreader-pref.js =================================================================== --- trunk/bbs2chreader/defaults/preferences/bbs2chreader-pref.js 2007-07-27 17:07:41 UTC (rev 178) +++ trunk/bbs2chreader/defaults/preferences/bbs2chreader-pref.js 2007-07-27 17:53:06 UTC (rev 179) @@ -36,7 +36,6 @@ pref("extensions.bbs2chreader.board_thread_view_limit", 50); pref("extensions.bbs2chreader.thread_skin", ""); -pref("extensions.bbs2chreader.thread_skin_uri", "chrome://bbs2chreader/content/res/skin-default/"); pref("extensions.bbs2chreader.thread_font_name", "sans-serif"); pref("extensions.bbs2chreader.thread_font_size", 16); pref("extensions.bbs2chreader.thread_aa_font_name", "sans-serif"); Copied: trunk/bbs2chreader/defaults/skin (from rev 114, trunk/bbs2chreader/chrome/content/bbs2chreader/res/skin-default) Deleted: trunk/bbs2chreader/defaults/skin/Header.html =================================================================== --- trunk/bbs2chreader/chrome/content/bbs2chreader/res/skin-default/Header.html 2007-05-13 13:32:34 UTC (rev 114) +++ trunk/bbs2chreader/defaults/skin/Header.html 2007-07-27 17:53:06 UTC (rev 179) @@ -1,32 +0,0 @@ -<html> -<head> - <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> - <meta http-equiv="Content-Style-Type" content="text/css"> - <meta http-equiv="Content-Script-Type" content="text/javascript"> - <title><THREADNAME/> [bbs2chreader]</title> - <link rel="stylesheet" type="text/css" href="<SKINPATH/>style.css"> - <style type="text/css"> - body { - font: <FONTSIZE/> <FONTNAME/>; - } - </style> - <script type="text/javascript; version=1.7" src="<SKINPATH/>popup.js"></script> -</head> - -<body onload="b2rPopup.startup()"> - - -<h1 id="h1Title"><THREADNAME/></h1> - -<ul id="navMenu"> - <li><span class="menuItem">MENU</span> - <ul> - <li><a href="bbs2ch:board:<BOARDURL/>">Xbhê</a></li> - <li><a href="bbs2ch:post:<THREADURL/>">«Ý</a></li> - <li><a href="<SERVERURL/><THREADURL/>">S\¦</a></li> - <li><a href="<SERVERURL/><THREADURL/>l50">V 50</a></li> - <li><a href="#hrNew">V ÉÚ®</a></li> - <li><a href="<THREADURL/>l50">uEU\¦</a></li> - </ul> - </li> -</ul> \ No newline at end of file Copied: trunk/bbs2chreader/defaults/skin/Header.html (from rev 178, trunk/bbs2chreader/chrome/content/bbs2chreader/res/skin-default/Header.html) Deleted: trunk/bbs2chreader/defaults/skin/popup.js =================================================================== --- trunk/bbs2chreader/chrome/content/bbs2chreader/res/skin-default/popup.js 2007-05-13 13:32:34 UTC (rev 114) +++ trunk/bbs2chreader/defaults/skin/popup.js 2007-07-27 17:53:06 UTC (rev 179) @@ -1,334 +0,0 @@ -var b2rPopup = { - - POPUP_DELAY: 200, - - - startup: function(){ - setTimeout(function(){ - b2rPopup.resPopup.init(); - b2rPopup.imagePopup.init(); - b2rPopup.idPopup.init(); - b2rPopup.videoPopup.init(); - }, 100); - }, - - - mouseOut: function(aEvent){ - var targetNode = aEvent.target; - if(targetNode._popupTimeout){ - clearTimeout(targetNode._popupTimeout); - targetNode._popupTimeout = null; - } - }, - - - xpathEvaluate: function(aXpath){ - var result = new Array(); - var xpathResult = document.evaluate(aXpath, document, null, - XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); - for(let i=0; i<xpathResult.snapshotLength; i++){ - var node = xpathResult.snapshotItem(i); - result.push(node); - } - return result; - }, - - - showPopup: function(aEvent, aContentNode, aClassName){ - var targetNode = aEvent.target; - if(targetNode._popupTimeout){ - clearTimeout(targetNode._popupTimeout); - } - targetNode._popupTimeout = setTimeout(b2rPopup._showPopupDelay, b2rPopup.POPUP_DELAY, - aEvent.pageX, aEvent.pageY, aContentNode, aClassName); - }, - - _showPopupDelay: function(aPageX, aPageY, aContentNode, aClassName){ - var popup = document.createElement("div"); - popup.className = aClassName || "popup"; - - popup.onmouseout = function(aEvent){ - if(aEvent.pageX <= this.offsetLeft || - aEvent.pageY <= this.offsetTop || - aEvent.pageX >= this.offsetLeft + this.offsetWidth || - aEvent.pageY >= this.offsetTop + this.offsetHeight){ - this.onmouseout = null; - document.body.removeChild(this); - } - }; - - popup.appendChild(aContentNode); - document.body.appendChild(popup); - - if(popup.clientWidth > window.innerWidth - 40){ - popup.style.width = (window.innerWidth - 40) + "px"; - } - if(popup.clientHeight > window.innerHeight - 20){ - popup.style.height = (window.innerHeight - 20) + "px"; - } - - var winPageRight = window.innerWidth; - var winPageBottom = window.innerHeight + window.window.scrollY; - var x = winPageRight - (popup.clientWidth + aPageX); - var y = winPageBottom - (popup.clientHeight + aPageY); - - if(x > 0){ - popup.style.left = (aPageX - 10) + "px"; - }else{ - popup.style.left = "auto"; - popup.style.right = "10px"; - } - if(y > 0){ - popup.style.top = (aPageY - 10) + "px"; - }else{ - popup.style.top = (winPageBottom - popup.clientHeight - 10) + "px"; - } - } - -}; - - -b2rPopup.resPopup = { - - init: function(){ - var xpath = "descendant::a[@class='resPointer']"; - for(let [index, node] in b2rPopup.xpathEvaluate(xpath)){ - node.setAttribute("onmouseover", "b2rPopup.resPopup.mouseOver(event)"); - node.setAttribute("onmouseout", "b2rPopup.mouseOut(event)"); - } - }, - - - mouseOver: function(aEvent){ - var targetNode = aEvent.target; - var relatedNode = aEvent.relatedTarget; - if(relatedNode && (relatedNode.className=="popup" || - relatedNode.parentNode.className=="popup") && - !targetNode._popupTimeout){ return; } - - var startRes = 0; - var endRes = 0; - if(targetNode.text.match(/>>?(\d{1,3})-(\d{1,3})/)){ - startRes = parseInt(RegExp.$1); - endRes = parseInt(RegExp.$2); - }else if(targetNode.text.match(/>>?(\d{1,3})/)){ - startRes = parseInt(RegExp.$1); - } - - var content = b2rPopup.resPopup.createContent(startRes, endRes); - if(content){ - b2rPopup.showPopup(aEvent, content); - } - }, - - - createContent: function(aStart, aEnd){ - var content = document.createDocumentFragment(); - - var resNode = document.getElementById("res" + aStart); - if(!resNode) return null; - - if(aStart < aEnd){ // ¡|bvAbv - if(aStart < 1) aStart = 1; - if(aEnd > 1000) aEnd = 1000; - const POPUP_LIMIT = 20; - - if((aEnd - aStart) > POPUP_LIMIT) aStart = aEnd - POPUP_LIMIT; - - for(var i = aStart; i<=aEnd; i++){ - resNode = document.getElementById("res" + i); - if(!resNode) break; - content.appendChild(b2rPopup.resPopup.getCloneNode(resNode)); - } - }else{ // Êí|bvAbv - content.appendChild(b2rPopup.resPopup.getCloneNode(resNode)); - } - - if(!content.firstChild) return null; - return content; - }, - - - getCloneNode: function(aNode){ - aNode = aNode.cloneNode(true); - if(aNode.id) aNode.id = ""; - var elements = aNode.getElementsByTagName("*"); - for(let i=0; i<elements.length; i++){ - if(elements[i].id) elements[i].id = ""; - } - return aNode; - } - -}; - - -b2rPopup.imagePopup = { - - init: function(){ - var xpath = "descendant::a[@class='outLink']"; - for(let [index, node] in b2rPopup.xpathEvaluate(xpath)){ - if(!node.href.match(/\.jpg$|png$|gif$/i)) continue; - node.setAttribute("onmouseover", "b2rPopup.imagePopup.mouseOver(event)"); - node.setAttribute("onmouseout", "b2rPopup.mouseOut(event)"); - } - }, - - mouseOver: function(aEvent){ - var targetNode = aEvent.target; - var relatedNode = aEvent.relatedTarget; - if(relatedNode && (relatedNode.className=="imagePopup" || - relatedNode.parentNode.className=="imagePopup") && - !targetNode._popupTimeout){ return; } - - var image = document.createElement("img"); - image.style.width = "120px"; - image.style.borderStyle = "none"; - image.src = targetNode.href; - image.onclick = function(aEvent){ - var targetNode = aEvent.originalTarget; - targetNode.style.width = (targetNode.style.width == "") ? "120px" : ""; - } - b2rPopup.showPopup(aEvent, image, "imagePopup"); - } - -}; - - -b2rPopup.idPopup = { - - init: function(){ - var xpath = "descendant::span[@class='resID']|descendant::span[@class='resMesID']"; - for(let [index, node] in b2rPopup.xpathEvaluate(xpath)){ - node.setAttribute("onmouseover", "b2rPopup.idPopup.mouseOver(event)"); - node.setAttribute("onmouseout", "b2rPopup.mouseOut(event)"); - } - }, - - mouseOver: function(aEvent){ - var targetNode = aEvent.target; - var resID = ""; - if(targetNode.className.substring(0, 3) == "id_"){ - resID = targetNode.className.substring(3); - }else{ - resID = targetNode.className.substring(6); - } - if(resID == "") return; - if(resID.substring(0, 3) == "???") return; - - var xpathCategoryText = "descendant::span[@class=\'id_" + resID + "\']/../../.."; - var xpathResult = document.evaluate(xpathCategoryText, document, - null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); - - var resNumbers = new Array(); - for (var i = 0; i < xpathResult.snapshotLength; i++){ - var node = xpathResult.snapshotItem(i); - resNumbers.push(parseInt(node.id.substring(3))); - } - - // »ÝÌXÍí - var currentResNumber = parseInt(targetNode - .parentNode.parentNode.parentNode.id.substring(3)); - resNumbers = resNumbers.filter(function(aElement, aIndex, aArray){ - return aElement != currentResNumber; - }); - if(resNumbers.length == 0) return; - - var start = 0; - if(resNumbers.length > 10) start = resNumbers.length - 10; - - var content = document.createDocumentFragment(); - if(start > 0){ - var p = document.createElement("p"); - p.appendChild(document.createTextNode(start +"Ȫ")); - content.appendChild(p); - } - for(i=start; i<resNumbers.length; i++){ - var resNode = document.getElementById("res" + resNumbers[i]); - if(!resNode) break; - content.appendChild(b2rPopup.idPopup.getCloneNode(resNode)); - } - if(!content.firstChild) return; - - b2rPopup.showPopup(aEvent, content); - }, - - - getCloneNode: function(aNode){ - aNode = aNode.cloneNode(true); - if(aNode.id) aNode.id = ""; - var elements = aNode.getElementsByTagName("*"); - for(let i=0; i<elements.length; i++){ - if(elements[i].id) elements[i].id = ""; - if(elements[i].className.substring(0, 3) == "id_") elements[i].className = ""; - } - return aNode; - } - -}; - - -b2rPopup.videoPopup = { - - init: function(){ - var xpathYoutube = "descendant::a[@class='outLink'][contains(@href, 'http://www.youtube.com/watch')]"; - var xpathStage6 = "descendant::a[@class='outLink'][contains(@href, 'http://stage6.divx.com/content/show')]"; - var xpathStage6m = "descendant::a[@class='outLink'][contains(@href, 'http://stage6.divx.com/members')]"; - var xpathStage6c = "descendant::a[@class='outLink'][contains(@href, 'http://stage6.client.jp/#')]"; - var xpath = xpathYoutube +"|"+ xpathStage6 +"|"+ xpathStage6m +"|"+ xpathStage6c; - - for(let [index, node] in b2rPopup.xpathEvaluate(xpath)){ - node.setAttribute("onmouseover", "b2rPopup.videoPopup.mouseOver(event)"); - node.setAttribute("onmouseout", "b2rPopup.mouseOut(event)"); - } - }, - - mouseOver: function(aEvent){ - var targetNode = aEvent.target; - var relatedNode = aEvent.relatedTarget; - if(relatedNode && relatedNode.className == "imagePopup") return; - - var url = targetNode.href; - var content; - if(url.indexOf("www.youtube.com")!=-1 && url.match(/v=([^\&]+)/)){ - content = b2rPopup.videoPopup.createYoutubeContent(RegExp.$1); - }else if(url.indexOf("stage6.divx.com")!=-1 && url.match(/content_id=([^\&]+)/)){ - content = b2rPopup.videoPopup.createStage6Content(RegExp.$1); - }else if(url.indexOf("stage6.divx.com")!=-1 && url.match(/videos\/([^\&]+)/)){ - content = b2rPopup.videoPopup.createStage6Content(RegExp.$1); - }else if(url.indexOf("http://stage6.client.jp/#")!=-1 && url.match(/\/#([^\&]+)/)){ - content = b2rPopup.videoPopup.createStage6Content(RegExp.$1); - } - - if(content){ - b2rPopup.showPopup(aEvent, content, "imagePopup"); - } - }, - - - createYoutubeContent: function(aVideoID){ - var videoURL = "http://www.youtube.com/v/" + aVideoID - var videoObject = document.createElement("object"); - videoObject.setAttribute("data", videoURL); - videoObject.setAttribute("type", "application/x-shockwave-flash"); - videoObject.setAttribute("width", "320"); - videoObject.setAttribute("height", "260"); - return videoObject; - }, - - - createStage6Content: function(aVideoID){ - var url = "http://stage6.divx.com/content/show?content_id=" + aVideoID + ".divx"; - var thumbnailURL = "http://images.stage6.com/videos/" + aVideoID + ".jpg"; - - var link = document.createElement("a"); - link.setAttribute("href", url); - link.setAttribute("target", "_blank"); - var image = document.createElement("img"); - image.setAttribute("src", thumbnailURL); - image.style.width = "320px"; - image.style.borderStyle = "none"; - link.appendChild(image); - return link; - } - -}; \ No newline at end of file Copied: trunk/bbs2chreader/defaults/skin/popup.js (from rev 178, trunk/bbs2chreader/chrome/content/bbs2chreader/res/skin-default/popup.js) Deleted: trunk/bbs2chreader/defaults/skin/style.css =================================================================== --- trunk/bbs2chreader/chrome/content/bbs2chreader/res/skin-default/style.css 2007-05-13 13:32:34 UTC (rev 114) +++ trunk/bbs2chreader/defaults/skin/style.css 2007-07-27 17:53:06 UTC (rev 179) @@ -1,188 +0,0 @@ -html * { - -moz-box-sizing:border-box; -} - -html { - background-color: #F6F6F6; -} - -body { - color: #111; - margin: 4em 0px 0px 0px; -} - -h1 { - position: absolute; - border-bottom: 1px solid #222; - top: 0px; - left:0px; - right:0px; - line-height: 1; - margin: 0px; - padding:0.6em 5em 0.6em 0.6em; - background: #666; - color: #EEE; - font-size: 0.9em; -} - -#navMenu { - position: absolute; - top: 0.4em; - right: 0.4em; - font-size: 0.9em; - cursor: default; - padding: 0px; - margin: 0px; - list-style-type: none; - line-height: 1; -} - -#navMenu .menuItem { - font-size: 0.9em; - font-weight: bold; - color: #FFF; - display: block; - padding: 3px 6px; - margin: 0px; -} - -#navMenu ul{ - padding: 0px; - margin: 0px; - background: transparent url('popup-back.png'); -} - -#navMenu li{ - padding: 1px; - margin: 0px; - list-style-type: none; -} - -#navMenu > li > ul{ - border: 1px solid #555; - display: none; -} -#navMenu:hover > li > ul{ - display: block; -} - -#navMenu > li { - text-align: right; -} - -#navMenu > li > ul > li > a:link, -#navMenu > li > ul > li > a:visited{ - font-size: 0.9em; - color: #F6F6F6; - display: block; - padding: 4px 8px; - text-decoration: none; -} - -#navMenu > li > ul > li > a:hover{ - background-color: #888; - color: #FFF; - opacity: 1; -} - -#pStatus { - margin: 60px auto 20px auto; - max-width: 350px; - padding: 5px; - font-size: 0.8em; - border: 1px dashed #999; - color: #666; - font-weight: bold; - text-align: center; -} - -/* ***** ***** X ***** ***** */ -dl.resContainer { - margin: 5px 10px 25px 10px; -} -dt.resHeader { - margin: 0px 0px 5px 0px; - padding: 2px 4px; - font-size: 0.8em; -} - -span.resNumber { - font-weight: bold; -} - -dl.resNew span.resNumber { - font-weight: bold; - color: #E63; -} - -span.resName { - font-weight: bold; - color: #369; - font-size: 1.2em; -} - -span.resID, -span.resMesID { - text-decoration: underline; -} - - -/* ***** ***** |bvAbv ***** ***** */ -div.popup { - padding: 10px; - -moz-outline: 2px solid #555; - -moz-outline-radius: 8px; - background: transparent url('popup-back.png'); - color: #F6F6F6; - position: absolute; - font-size: 0.8em; - overflow: auto; - left: -1000px; - top: -1000px; -} - -div.imagePopup { - padding: 0px; - border: 1px solid #555; - background: transparent url('popup-back.png'); - position: absolute; - left: -1000px; - top: -1000px; -} - -div.popup a:link, -div.popup a:visited { - color: #76D6F9; - text-decoration: none; -} -div.popup span.resName { - color: #F6F6F6; -} - - -/* ***** ***** ÝètH[ ***** ***** */ -#prefForm { - font-size: 0.9em; - margin: 10px 10%; - padding: 10px 15px; - border: 2px solid #999; - background-color: #E9E9E9; -} - -#prefForm fieldset { - margin-bottom: 15px; -} - -#prefForm ul { - list-style: none; - margin: 0px; - padding: 2px; -} - -#prefForm li { - padding-bottom: 2px; -} - -#prefForm ul ul{ - padding-left: 2em; -} Copied: trunk/bbs2chreader/defaults/skin/style.css (from rev 178, trunk/bbs2chreader/chrome/content/bbs2chreader/res/skin-default/style.css)