File size: 1,390 Bytes
af6912c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
var drawSeparator = require('./separator');
var renderText = require('./text');

function nonMusic(renderer, obj, selectables) {
	for (var i = 0; i < obj.rows.length; i++) {
		var row = obj.rows[i];
		if (row.absmove) {
			renderer.absolutemoveY(row.absmove);
		} else if (row.move) {
			renderer.moveY(row.move);
		} else if (row.text || row.phrases) {
			var x = row.left ? row.left : 0;
			var el = renderText(renderer, {
				x: x,
				y: renderer.y,
				text: row.text,
				phrases: row.phrases,
				'dominant-baseline': row['dominant-baseline'],
				type: row.font,
				klass: row.klass,
				name: row.name,
				anchor: row.anchor
			});
			if (row.absElemType) {
				selectables.wrapSvgEl({
					el_type: row.absElemType,
					name: row.name,
					startChar: row.startChar,
					endChar: row.endChar,
					text: row.text
				}, el);
			}
		} else if (row.separator) {
			drawSeparator(renderer, row.separator)
		} else if (row.startGroup) {
			renderer.paper.openGroup({ klass: row.klass, "data-name": row.name });
		} else if (row.endGroup) {
			// TODO-PER: also create a history element with the title "row.endGroup"
			var g = renderer.paper.closeGroup();
			if (row.absElemType)
				selectables.wrapSvgEl({
					el_type: row.absElemType,
					name: row.name,
					startChar: row.startChar,
					endChar: row.endChar,
					text: ""
				}, g);
		}
	}
}

module.exports = nonMusic;