Skip to content

Commit 4be1f40

Browse files
committed
Pan and zoom
1 parent d88f82e commit 4be1f40

File tree

4 files changed

+229
-90
lines changed

4 files changed

+229
-90
lines changed

InteractiveHtmlBom/ibom.css

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,11 @@ button#bom-btn {
7171
}
7272

7373
canvas {
74-
margin: 1px;
74+
cursor: crosshair;
75+
}
76+
77+
canvas:active {
78+
cursor: grabbing;
7579
}
7680

7781
.fileinfo {
@@ -258,3 +262,7 @@ mark.highlight {
258262
border: 1px solid #ccc;
259263
width: calc(100% - 18px);
260264
}
265+
266+
#dbg {
267+
display: none;
268+
}

InteractiveHtmlBom/ibom.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
<body>
3232
<div id="topmostdiv" style="width: 100%; height: 100%">
33-
<div id="top" style="height: 80px; border-bottom: 2px solid black;">
33+
<div id="top" style="height: 78px; border-bottom: 2px solid black;">
3434
<div style="float: right;">
3535
<div class="hideonprint menu" style="float: right; margin: 10px; top: 8px;">
3636
<button class="menubtn"></button>

InteractiveHtmlBom/ibom.js

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,9 @@ var storagePrefix = 'KiCad_HTML_BOM__' + pcbdata.metadata.title + '__' +
44
pcbdata.metadata.revision + '__';
55
var bomsplit;
66
var canvassplit;
7-
var frontscale = 12;
8-
var backscale = 12;
97
var canvaslayout = "default";
108
var bomlayout = "default";
9+
var highlightedRefs = [];
1110

1211
function readStorage(key) {
1312
return window.localStorage.getItem(storagePrefix + '#' + key);
@@ -23,7 +22,8 @@ function dbg(str) {
2322

2423
function createRowMouseEnterHandler(refs) {
2524
return function() {
26-
drawHighlights(refs);
25+
highlightedRefs = refs;
26+
drawHighlights();
2727
}
2828
}
2929

@@ -130,7 +130,8 @@ function populateBomTable() {
130130
bom.appendChild(tr);
131131
tr.onmouseenter = createRowMouseEnterHandler(references);
132132
if ((filter || reflookup) && first) {
133-
drawHighlights(references);
133+
highlightedRefs = references;
134+
drawHighlights();
134135
first = false;
135136
}
136137
}
@@ -183,7 +184,7 @@ function changeCanvasLayout(layout) {
183184
}
184185
canvaslayout = layout;
185186
writeStorage("canvaslayout", layout);
186-
resizeCanvas();
187+
resizeAll();
187188
populateBomTable(layout);
188189
}
189190

@@ -231,14 +232,14 @@ function changeBomLayout(layout) {
231232
}
232233
bomsplit = Split(['#bomdiv', '#canvasdiv'], {
233234
sizes: [50, 50],
234-
onDragEnd: resizeCanvas,
235+
onDragEnd: resizeAll,
235236
direction: "vertical",
236237
gutterSize: 5
237238
});
238239
canvassplit = Split(['#frontcanvas', '#backcanvas'], {
239240
sizes: [50, 50],
240241
gutterSize: 5,
241-
onDragEnd: resizeCanvas
242+
onDragEnd: resizeAll
242243
});
243244
break;
244245
case 'LR':
@@ -258,14 +259,14 @@ function changeBomLayout(layout) {
258259
}
259260
bomsplit = Split(['#bomdiv', '#canvasdiv'], {
260261
sizes: [50, 50],
261-
onDragEnd: resizeCanvas,
262+
onDragEnd: resizeAll,
262263
gutterSize: 5
263264
});
264265
canvassplit = Split(['#frontcanvas', '#backcanvas'], {
265266
sizes: [50, 50],
266267
gutterSize: 5,
267268
direction: "vertical",
268-
onDragEnd: resizeCanvas
269+
onDragEnd: resizeAll
269270
});
270271
}
271272
bomlayout = layout;
@@ -290,15 +291,7 @@ function cleanGutters() {
290291

291292
window.onload = function(e) {
292293
cleanGutters();
293-
allcanvas = {};
294-
allcanvas.front = {};
295-
allcanvas.back = {};
296-
allcanvas.front.bg = document.getElementById("F_bg");
297-
allcanvas.front.silk = document.getElementById("F_slk");
298-
allcanvas.front.highlight = document.getElementById("F_hl");
299-
allcanvas.back.bg = document.getElementById("B_bg");
300-
allcanvas.back.silk = document.getElementById("B_slk");
301-
allcanvas.back.highlight = document.getElementById("B_hl");
294+
initRender();
302295
dbgdiv = document.getElementById("dbg");
303296
bom = document.getElementById("bombody");
304297
bomlayout = readStorage("bomlayout");
@@ -319,5 +312,5 @@ window.onload = function(e) {
319312
}
320313
}
321314

322-
window.onresize = resizeCanvas;
323-
window.matchMedia("print").addListener(resizeCanvas);
315+
window.onresize = resizeAll;
316+
window.matchMedia("print").addListener(resizeAll);

0 commit comments

Comments
 (0)