--- test/html-whatpm/table-script.js 2007/05/27 06:37:05 1.1
+++ test/html-whatpm/table-script.js 2007/06/30 08:26:08 1.3
@@ -1,6 +1,9 @@
-function tableToCanvas (table) {
+function tableToCanvas (table, parent) {
var canvas = document.createElement ('canvas');
- document.body.appendChild (canvas);
+ parent.appendChild (canvas);
+ if (window.G_vmlCanvasManager) {
+ canvas = G_vmlCanvasManager.initElement (canvas);
+ }
var c2d = canvas.getContext ('2d');
var param = {
@@ -46,14 +49,15 @@
}
}
+canvas.style.width = 'auto'; // NOTE: Opera9 has default style=""
+canvas.style.height = 'auto';
+// NOTE: Set style="" before width/height="" for ExplorerCanvas compatibility
canvas.width = param.cellLeft
+ (param.columnWidth + param.columnSpacing) * columnNumber
+ param.cellRight;
canvas.height = param.cellTop
+ (param.rowHeight + param.rowSpacing) * rowNumber
+ param.cellBottom;
-canvas.style.width = 'auto'; // NOTE: Opera9 has default style=""
-canvas.style.height = 'auto';
var y = param.rowTop;
for (var i = 1; i < table.row_group.length; i++) {
@@ -114,6 +118,7 @@
c2d.closePath ();
}
+var map = document.createElement ('map');
var x = param.cellLeft;
for (var i = 1; i < table.cell.length; i++) {
var y = param.cellTop;
@@ -132,6 +137,15 @@
? param.headerCellFillStyle : param.dataCellFillStyle;
c2d.strokeStyle = c[0].is_header
? param.headerCellStrokeStyle : param.dataCellStrokeStyle;
+ if (c[0].id) {
+ var area = document.createElement ('area');
+ area.shape = 'rect';
+ area.coords = [x, y, x + width, y + height].join (',');
+ area.alt = 'Cell (' + c[0].x + ', ' + c[0].y + ')';
+ area.href = '#node-' + c[0].id;
+ area.id = 'cell-' + c[0].id;
+ map.appendChild (area);
+ }
} else {
c2d.rect (x, y, param.columnWidth, param.rowHeight);
c2d.fillStyle = param.overlappingCellFillStyle;
@@ -160,8 +174,21 @@
c2d.stroke ();
c2d.closePath ();
}
+
+ if (map.hasChildNodes ()) {
+ var mapid = 'table-map-' + ++document.TableMapId;
+ map.name = mapid;
+ parent.appendChild (map);
+ var img = document.createElement ('img');
+ img.src = canvas.toDataURL ();
+ img.useMap = '#' + mapid;
+ parent.appendChild (img);
+ canvas.style.display = 'none';
+ }
} // tableToCanvas
+if (!document.TableMapId) document.TableMapId = 0;
+
/*
Copyright 2007 Wakaba
@@ -170,4 +197,4 @@
and/or modify it under the same terms as Perl itself.
*/
-/* $Date: 2007/05/27 06:37:05 $ */
+/* $Date: 2007/06/30 08:26:08 $ */