X-Git-Url: https://jfr.im/git/irc/quakenet/qwebirc.git/blobdiff_plain/bed65087b6d7fcf88807314bc5aab1e25f9b0f82..2a80269236e11d4e98170a5e07254f3f73b1284d:/js/ui/colour.js diff --git a/js/ui/colour.js b/js/ui/colour.js index 47daba7..0dd7189 100644 --- a/js/ui/colour.js +++ b/js/ui/colour.js @@ -1,103 +1,103 @@ -function Colourise(line, entity) { - var fg; - var bg; - var underline = false; - var bold = false; - - var out = []; - var xline = line.split(""); - var element = document.createElement("span"); - - entity.addClass("colourline"); - - function isNum(x) { - return x >= '0' && x <= '9'; - } - - function parseColours(xline, i) { - if(!isNum(xline[i + 1])) { - fg = undefined; - bg = undefined; - return i; - } - i++; - if(isNum(xline[i + 1])) { - fg = parseInt(xline[i] + xline[i + 1]); - i++; - } else { - fg = parseInt(xline[i]); - } - if(xline[i + 1] != ",") - return i; - if(!isNum(xline[i + 2])) - return i; - i+=2; - - if(isNum(xline[i + 1])) { - bg = parseInt(xline[i] + xline[i + 1]); - i++; - } else { - bg = parseInt(xline[i]); - } - return i; - } - - function emitEndToken() { - if(out.length > 0) { - element.appendChild(document.createTextNode(out.join(""))); - entity.appendChild(element); - out = []; - } - element = document.createElement("span"); - } - function emitStartToken() { - classes = [] - if(fg != undefined) - classes.push("Xc" + fg); - if(bg != undefined) - classes.push("Xbc" + bg); - if(bold) - classes.push("Xb"); - if(underline) - classes.push("Xu"); - element.className = classes.join(" "); - } - - for(i=0;i 15) - bg = undefined; - if(fg > 15) - fg = undefined; - - emitStartToken(); - } else { - out.push(lc); - } - } - - emitEndToken(); -} \ No newline at end of file +qwebirc.ui.Colourise = function(line, entity, execfn, cmdfn, window) { + var fg; + var bg; + var underline = false; + var bold = false; + + var out = []; + var xline = line.split(""); + var element = document.createElement("span"); + + entity.addClass("colourline"); + + function isNum(x) { + return x >= '0' && x <= '9'; + } + + function parseColours(xline, i) { + if(!isNum(xline[i + 1])) { + fg = undefined; + bg = undefined; + return i; + } + i++; + if(isNum(xline[i + 1])) { + fg = parseInt(xline[i] + xline[i + 1]); + i++; + } else { + fg = parseInt(xline[i]); + } + if(xline[i + 1] != ",") + return i; + if(!isNum(xline[i + 2])) + return i; + i+=2; + + if(isNum(xline[i + 1])) { + bg = parseInt(xline[i] + xline[i + 1]); + i++; + } else { + bg = parseInt(xline[i]); + } + return i; + } + + function emitEndToken() { + if(out.length > 0) { + qwebirc.ui.urlificate(element, out.join(""), execfn, cmdfn, window); + entity.appendChild(element); + out = []; + } + element = document.createElement("span"); + } + function emitStartToken() { + var classes = [] + if(fg != undefined) + classes.push("Xc" + fg); + if(bg != undefined) + classes.push("Xbc" + bg); + if(bold) + classes.push("Xb"); + if(underline) + classes.push("Xu"); + element.className = classes.join(" "); + } + + for(i=0;i 15) + bg = undefined; + if(fg > 15) + fg = undefined; + + emitStartToken(); + } else { + out.push(lc); + } + } + + emitEndToken(); +}