getImageSrc: function calTreeGetImageSrc(row, col) {
if (col.element.getAttribute("anonid") == "col-calendar-status") {
// Make sure this is first, to override any other status
if (this.calTree.mTreeRows[row].isLoading) {
return "chrome://skin/calendar/synch_animated.gif";
}
if (this.calTree.mTreeRows[row].readOnly) {
return "chrome://skin/calendar/Secure-url.png";
}
// Yeah, we don't support this yet, but it'd be nice to
// distinguish it from regular read-only
if (this.calTree.mTreeRows[row].inErrorMode) {
return "chrome://skin/calendar/error.png";
}
}
if (col.element.getAttribute("anonid") == "col-calendar-Checkbox") {
function drawCheckBox(aColor, aChecked) {
var canvas = document.createElementNS("http://www.w3.org/1999/xhtml", 'canvas');
var ctx = canvas.getContext('2d');
if (!aColor) {
// Default color
aColor = "#A8C2E1";
}
ctx.fillStyle = aColor.toString();
ctx.globalAlpha=.75;
ctx.beginPath();
var radius = 3;
var height = 12;
var width = 12;
ctx.moveTo(0, radius);
ctx.lineTo(0, height-radius);
ctx.quadraticCurveTo(0, height, radius, height);
ctx.lineTo(width-radius, height);
ctx.quadraticCurveTo(width, height, width, height-radius);
ctx.lineTo(width, radius);
ctx.quadraticCurveTo(width, 0, width-radius,0);
ctx.lineTo(radius, 0);
ctx.quadraticCurveTo(0, 0, 0, radius);
ctx.fill();
ctx.globalAlpha = 1.0;
ctx.stroke();
if (aChecked) {
ctx.lineWidth = 2.0;
ctx.moveTo(4,4);
ctx.lineTo(width/2, height-1);
ctx.lineTo(width+1, 0);
ctx.stroke();
}
jDebug.logMessage("returing:"+canvas.toDataURL());
return canvas.toDataURL();
}
var cal = this.calTree.mTreeRows[row];
if (!(cal instanceof Components.interfaces.calICalendar) ||
!this.calTree.mDisplayCalendar) {
// Containers
return;
}
var calMgr = Components.classes["@mozilla.org/calendar/manager;1"]
.getService(Components.interfaces.calICalendarManager);
var color = calMgr.getCalendarPref(cal, 'color');
if (this.calTree.mDisplayCalendar.getCalendar(cal.uri)) {
//XXX someone broke data: for tree icons
return "chrome://calendar/skin/unifinder/checkbox_checked.png";
var res = drawCheckBox(color,true);
jDebug.logMessage("res:"+res.toString()+'\n'+row);
return "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAACWCAYAAABkW7XSAAACf0lEQVR4nO3bT2jOcRwH8I9nW9sQa7OVlU1MGYqsrGSkFCnjRuFAmsOuGko5strFYUXtRuE25eDkIC0UdjArMzH/1sz+pG2W2Ry2p55HJpTnubxe9T38Pt/P4X16H379fhERM/9wWgIgw3IjInbuO/T24IlTfUXFZd9+tTQyNJB36Xzj2u7OhyVzo/aMJQSYk4iI+F1ZRUQsKSqZGux/X5gyuv/fkwH8JBERkVpWfS+7C2NmOm3p1rXW5Z/63y3McDaANInUh7PH925qOra7tqfr6aLkbODD6/z2q62rMh8NIF1aYZWWr5iIiHh0707yXVVcaT6zZvLrRO76zVsHMx0OIFVaYW2s3TEUEfHscUdxRMTd2zdKu550LMsvKJw6efpiTzYCAiSlFVZt3Z7hRE7OzJve50s/9PUWXL98oSoi4sDRxldl5SsnsxMRYFZaYS0uKp6qXL1udPr79wXnGuprvowO51dWVY/uP9L4MVsBAZISEbPfWSUHG2q2DkVEjI99ycvJzZtuaGp+kUjkzKTsjGchJ8BsYd1sa6lIFtKW7Xs+Jy931R/uW129aWxkaCDvZltLxdy4Mws5ASLi73/LqctOTICIbRHxICLGYv6SGpvb2ZaljADzWpbtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPyZH4e6m4acevVEAAAAAElFTkSuQmCC";
} else {
//XXX see above
return "chrome://calendar/skin/unifinder/checkbox_unchecked.png";
return drawCheckBox(color, false);
}
}
},