App-Music-ChordPro
view release on metacpan or search on metacpan
lib/ChordPro/res/abc/abc2svg/psvg-1.js view on Meta::CPAN
}
function defg1() {
gchg = false;
setg(0);
svgbuf += "<g"
if (gcur.xscale != 1 || gcur.yscale != 1 || gcur.rotate) {
svgbuf += ' transform="'
if (gcur.xscale != 1 || gcur.yscale != 1) {
if (gcur.xscale == gcur.yscale)
svgbuf += "scale(" + gcur.xscale.toFixed(3) + ")"
else
svgbuf += "scale(" + gcur.xscale.toFixed(3) +
"," + gcur.yscale.toFixed(3) + ")"
}
if (gcur.rotate) {
if (gcur.xoffs || gcur.yoffs) {
var x, xtmp = gcur.xoffs,
y = gcur.yoffs,
_sin = gcur.sin,
_cos = gcur.cos;
x = xtmp * _cos - y * _sin;
y = xtmp * _sin + y * _cos;
svgbuf += " translate(" + x.toFixed(1) + "," +
y.toFixed(1) + ")";
x_rot = gcur.xoffs;
y_rot = gcur.yoffs;
gcur.xoffs = 0;
gcur.yoffs = 0
}
svgbuf += " rotate(" + gcur.rotate.toFixed(2) + ")"
}
svgbuf += '"'
}
output_font(false)
if (gcur.rgb)
svgbuf += ' style="color:' + gcur.rgb + '"';
svgbuf += ">\n";
g = 1
}
function objdup(obj) {
var k, tmp = new obj.constructor()
for (k in obj)
if (obj.hasOwnProperty(k))
tmp[k] = obj[k]
return tmp
}
function output_font(back) {
var name = gcur.font_n
if (!name)
return
var prop = "",
i = name.indexOf("Italic"),
j = 100,
o = name.indexOf("Oblique"),
b = name.indexOf("Bold"),
flags = 0
if (b > 0) {
prop = ' font-weight="bold"';
j = b;
flags = 2
}
if (i > 0 || o > 0) {
if (i > 0) {
prop += ' font-style="italic"';
if (i < j)
j = i;
flags |= 4
}
if (o > 0) {
prop += ' font-style="oblique"';
if (o < j)
j = o;
flags = 8
}
}
if (j != 100) {
if (name[j - 1] == '-')
j--;
name = name.slice(0, j)
}
if (back) {
if (!(flags & 2)
&& font_n_old.indexOf("Bold") >= 0)
prop += ' font-weight="normal"';
if (!(flags & 12)
&& (font_n_old.indexOf("Italic") >= 0
|| font_n_old.indexOf("Oblique") >= 0))
prop += ' font-style="normal"'
}
svgbuf += ' font-family="' + name + '"' +
prop + ' font-size="' + gcur.font_s + '"'
}
function path_def() {
if (path)
return
setg(1);
gcur.px = gcur.cx;
gcur.py = gcur.cy;
path = '<path d="m' + (gcur.xoffs + gcur.cx).toFixed(1) +
' ' + (gcur.yoffs - gcur.cy).toFixed(1) + '\n'
}
function path_end() {
svgbuf += path;
path = ''
}
function setg(newg) {
if (g == 2) {
svgbuf += "</text>\n";
g = 1
}
if (newg == 0) {
if (g) {
g = 0;
svgbuf += "</g>\n"
( run in 1.565 second using v1.01-cache-2.11-cpan-5735350b133 )