笙默考試管理系統-MyExamTest----codemirror(53)
目錄
笙默考試管理系統-MyExamTest----codemirror(51)
一、 笙默考試管理系統-MyExamTest----codemirror
二、 笙默考試管理系統-MyExamTest----codemirror
三、 笙默考試管理系統-MyExamTest----codemirror
四、 笙默考試管理系統-MyExamTest----codemirror
五、 笙默考試管理系統-MyExamTest----codemirror
function lineNo(line) {
????????if (line.parent == null) return null;
????????var cur = line.parent, no = indexOf(cur.lines, line);
????????for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {
????????????for (var i = 0, e = chunk.children.length; ; ++i) {
????????????????if (chunk.children[i] == cur) break;
????????????????no += chunk.children[i].chunkSize();
????????????}
????????}
????????return no;
}
????function lineAtHeight(chunk, h) {
????????var n = 0;
????????outer: do {
????????????for (var i = 0, e = chunk.children.length; i < e; ++i) {
????????????????var child = chunk.children[i], ch = child.height;
????????????????if (h < ch) { chunk = child; continue outer; }
????????????????h -= ch;
????????????????n += child.chunkSize();
????????????}
????????????return n;
????????} while (!chunk.lines);
????????for (var i = 0, e = chunk.lines.length; i < e; ++i) {
????????????var line = chunk.lines[i], lh = line.height;
????????????if (h < lh) break;
????????????h -= lh;
????????}
????????return n + i;
????}
????function heightAtLine(chunk, n) {
????????var h = 0;
????????outer: do {
????????????for (var i = 0, e = chunk.children.length; i < e; ++i) {
????????????????var child = chunk.children[i], sz = child.chunkSize();
????????????????if (n < sz) { chunk = child; continue outer; }
????????????????n -= sz;
????????????????h += child.height;
????????????}
????????????return h;
????????} while (!chunk.lines);
????????for (var i = 0; i < n; ++i) h += chunk.lines[i].height;
????????return h;
????}
????// The history object 'chunks' changes that are made close together
????// and at almost the same time into bigger undoable units.
????function History() {
????????this.time = 0;
????????this.done = []; this.undone = [];
????}