Merge pull request #694 from tdittmann/text-features

Added some Text features
master
JFH 2022-01-04 16:34:25 -03:00 committed by GitHub
commit 4205387299
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
68 changed files with 580 additions and 369 deletions

View File

@ -373,141 +373,6 @@ exports[`use various parts of svg-edit > check tool_text_change_stoke_fill_color
</body>
`;
exports[`use various parts of svg-edit > check tool_text_anchor_start #0`] = `
<body>
<svg
width="640"
height="480"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
>
<g class="layer">
<title>Layer 1</title>
<text
fill="#bf0000"
font-family="Serif"
font-size="34"
font-style="italic"
font-weight="bold"
id="svg_1"
stroke="#0000bf"
text-anchor="start"
x="46"
xml:space="preserve"
y="35"
>
AB
</text>
<text
fill="#000000"
font-family="Serif"
font-size="24"
id="svg_2"
stroke="#000000"
stroke-width="0"
text-anchor="middle"
transform="matrix(1 0 0 1 0 0)"
x="91"
xml:space="preserve"
y="80"
>
AB
</text>
</g>
</svg>
</body>
`;
exports[`use various parts of svg-edit > check tool_text_anchor_middle #0`] = `
<body>
<svg
width="640"
height="480"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
>
<g class="layer">
<title>Layer 1</title>
<text
fill="#bf0000"
font-family="Serif"
font-size="34"
font-style="italic"
font-weight="bold"
id="svg_1"
stroke="#0000bf"
text-anchor="middle"
x="46"
xml:space="preserve"
y="35"
>
AB
</text>
<text
fill="#000000"
font-family="Serif"
font-size="24"
id="svg_2"
stroke="#000000"
stroke-width="0"
text-anchor="middle"
transform="matrix(1 0 0 1 0 0)"
x="91"
xml:space="preserve"
y="80"
>
AB
</text>
</g>
</svg>
</body>
`;
exports[`use various parts of svg-edit > check tool_text_anchor_end #0`] = `
<body>
<svg
width="640"
height="480"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
>
<g class="layer">
<title>Layer 1</title>
<text
fill="#bf0000"
font-family="Serif"
font-size="34"
font-style="italic"
font-weight="bold"
id="svg_1"
stroke="#0000bf"
text-anchor="end"
x="46"
xml:space="preserve"
y="35"
>
AB
</text>
<text
fill="#000000"
font-family="Serif"
font-size="24"
id="svg_2"
stroke="#000000"
stroke-width="0"
text-anchor="middle"
transform="matrix(1 0 0 1 0 0)"
x="91"
xml:space="preserve"
y="80"
>
AB
</text>
</g>
</svg>
</body>
`;
exports[`use various parts of svg-edit > check tool_text_change_rotation #0`] = `
<body>
<svg
@ -526,7 +391,7 @@ exports[`use various parts of svg-edit > check tool_text_change_rotation #0`] =
font-weight="bold"
id="svg_1"
stroke="#0000bf"
text-anchor="end"
text-anchor="middle"
transform="matrix(1 0 0 1 0 0)"
x="46"
xml:space="preserve"
@ -572,7 +437,7 @@ exports[`use various parts of svg-edit > check tool_text_change_blur #0`] = `
font-weight="bold"
id="svg_1"
stroke="#0000bf"
text-anchor="end"
text-anchor="middle"
transform="matrix(1 0 0 1 0 0)"
x="46"
xml:space="preserve"
@ -624,7 +489,7 @@ exports[`use various parts of svg-edit > check tool_text_change_opacity #0`] = `
font-weight="bold"
id="svg_1"
stroke="#0000bf"
text-anchor="end"
text-anchor="middle"
transform="matrix(1 0 0 1 0 0)"
x="46"
xml:space="preserve"
@ -677,7 +542,7 @@ exports[`use various parts of svg-edit > check tool_text_align_to_page #0`] = `
font-weight="bold"
id="svg_1"
stroke="#0000bf"
text-anchor="end"
text-anchor="middle"
transform="matrix(1 0 0 1 0 0)"
x="46"
xml:space="preserve"
@ -730,7 +595,7 @@ exports[`use various parts of svg-edit > check tool_text_delete #0`] = `
font-weight="bold"
id="svg_1"
stroke="#0000bf"
text-anchor="end"
text-anchor="middle"
transform="matrix(1 0 0 1 0 0)"
x="46"
xml:space="preserve"
@ -761,7 +626,100 @@ exports[`use various parts of svg-edit > check tool_text_change_font_family #0`]
font-weight="bold"
id="svg_1"
stroke="#0000bf"
text-anchor="end"
text-anchor="middle"
x="46"
xml:space="preserve"
y="35"
>
AB
</text>
</g>
</svg>
</body>
`;
exports[`use various parts of svg-edit > check tool_text_decoration_underline #0`] = `
<body>
<svg
width="640"
height="480"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
>
<g class="layer">
<title>Layer 1</title>
<text
fill="#bf0000"
font-family="Serif"
font-size="34"
font-style="italic"
font-weight="bold"
id="svg_1"
stroke="#0000bf"
text-anchor="middle"
text-decoration="underline"
x="46"
xml:space="preserve"
y="35"
>
AB
</text>
</g>
</svg>
</body>
`;
exports[`use various parts of svg-edit > check tool_text_decoration_linethrough #0`] = `
<body>
<svg
width="640"
height="480"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
>
<g class="layer">
<title>Layer 1</title>
<text
fill="#bf0000"
font-family="Serif"
font-size="34"
font-style="italic"
font-weight="bold"
id="svg_1"
stroke="#0000bf"
text-anchor="middle"
text-decoration="underline line-through"
x="46"
xml:space="preserve"
y="35"
>
AB
</text>
</g>
</svg>
</body>
`;
exports[`use various parts of svg-edit > check tool_text_decoration_overline #0`] = `
<body>
<svg
width="640"
height="480"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
>
<g class="layer">
<title>Layer 1</title>
<text
fill="#bf0000"
font-family="Serif"
font-size="34"
font-style="italic"
font-weight="bold"
id="svg_1"
stroke="#0000bf"
text-anchor="middle"
text-decoration="underline line-through overline"
x="46"
xml:space="preserve"
y="35"

View File

@ -102,24 +102,6 @@ describe('use various parts of svg-edit', function () {
.find('#Ok').eq(0).click({ force: true })
testSnapshot()
})
it('check tool_text_anchor_start', function () {
cy.get('#svg_1').click({ force: true })
cy.get('#tool_text_anchor_start')
.click({ force: true })
testSnapshot()
})
it('check tool_text_anchor_middle', function () {
cy.get('#svg_1').click({ force: true })
cy.get('#tool_text_anchor_middle')
.click({ force: true })
testSnapshot()
})
it('check tool_text_anchor_end', function () {
cy.get('#svg_1').click({ force: true })
cy.get('#tool_text_anchor_end')
.click({ force: true })
testSnapshot()
})
it('check tool_text_change_rotation', function () {
cy.get('#svg_2').click({ force: true })
for (let n = 0; n < 5; n++) {
@ -181,4 +163,22 @@ describe('use various parts of svg-edit', function () {
cy.get('#tool_font_family').shadow().find('select').select('Serif')
testSnapshot()
})
it('check tool_text_decoration_underline', function () {
cy.get('#svg_1').click({ force: true })
cy.get('#tool_text_decoration_underline')
.click({ force: true })
testSnapshot()
})
it('check tool_text_decoration_linethrough', function () {
cy.get('#svg_1').click({ force: true })
cy.get('#tool_text_decoration_linethrough')
.click({ force: true })
testSnapshot()
})
it('check tool_text_decoration_overline', function () {
cy.get('#svg_1').click({ force: true })
cy.get('#tool_text_decoration_overline')
.click({ force: true })
testSnapshot()
})
})

View File

@ -0,0 +1,6 @@
<?xml version="1.0"?>
<svg width="31" height="28" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
<!-- Created with SVG-edit - https://github.com/SVG-Edit/svgedit-->
<text fill="#000000" font-family="serif" font-size="24" id="svg_1" stroke="#000000" stroke-width="0" text-anchor="middle" text-decoration="0" x="16" xml:space="preserve" y="21.5">ab</text>
<line fill="none" id="svg_2" stroke="#f9bc01" stroke-width="2" x1="1" x2="29.70526" y1="14" y2="14"/>
</svg>

After

Width:  |  Height:  |  Size: 497 B

View File

@ -0,0 +1,6 @@
<?xml version="1.0"?>
<svg width="31" height="28" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
<!-- Created with SVG-edit - https://github.com/SVG-Edit/svgedit-->
<text fill="#000000" font-family="serif" font-size="24" id="svg_1" stroke="#000000" stroke-width="0" text-anchor="middle" text-decoration="0" x="16" xml:space="preserve" y="21.5">ab</text>
<line fill="none" id="svg_2" stroke="#f9bc01" stroke-width="2" x1="1" x2="29.70526" y1="2" y2="2"/>
</svg>

After

Width:  |  Height:  |  Size: 495 B

View File

@ -0,0 +1,6 @@
<?xml version="1.0"?>
<svg width="31" height="28" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
<!-- Created with SVG-edit - https://github.com/SVG-Edit/svgedit-->
<text fill="#000000" font-family="serif" font-size="24" id="svg_1" stroke="#000000" stroke-width="0" text-anchor="middle" text-decoration="0" x="16" xml:space="preserve" y="21.5">ab</text>
<line fill="none" id="svg_2" stroke="#f9bc01" stroke-width="2" x1="1" x2="29.70526" y1="24" y2="24"/>
</svg>

After

Width:  |  Height:  |  Size: 497 B

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Lettertipe verander Familie',
font_size: 'Verandering Lettertipe Grootte',
bold: 'Vetgedrukte teks',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Italic Text',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'تغيير الخط الأسرة',
font_size: 'تغيير حجم الخط',
bold: 'نص جريء',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'مائل نص',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Change Font Family',
font_size: 'Change Font Size',
bold: 'Bold Text',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Italic Text',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Змены Сямейства шрыфтоў',
font_size: 'Змяніць памер шрыфта',
bold: 'Тоўсты тэкст',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Нахілены тэкст',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Промяна на шрифта Семейство',
font_size: 'Промени размера на буквите',
bold: 'Получер текст',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Курсив текст',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Canviar la font Família',
font_size: 'Change Font Size',
bold: 'Text en negreta',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Text en cursiva',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Změnit font',
font_size: 'Změnit velikost písma',
bold: 'Tučně',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Kurzíva',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Newid Font Teulu',
font_size: 'Newid Maint Ffont',
bold: 'Testun Bras',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Italig Testun',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -72,6 +72,9 @@ export default {
font_family: 'Skift Font Family',
font_size: 'Skift skriftstørrelse',
bold: 'Fed tekst',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Italic Text',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Schriftart wählen',
font_size: 'Schriftgröße einstellen',
bold: 'Fetter Text',
text_decoration_underline: 'Unterstrichen',
text_decoration_linethrough: 'Durchgestrichen',
text_decoration_overline: 'Überstrichen',
italic: 'Kursiver Text',
text_anchor_start: 'Den Text linksbündig ausrichten',
text_anchor_middle: 'Den Text zentriert ausrichten',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Αλλαγή γραμματοσειράς Οικογένεια',
font_size: 'Αλλαγή μεγέθους γραμματοσειράς',
bold: 'Bold Text',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Πλάγιους',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -74,6 +74,9 @@ export default {
font_family: 'Change Font Family',
font_size: 'Change Font Size',
bold: 'Bold Text',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Italic Text',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Tipo de fuente',
font_size: 'Tamaño de la fuente',
bold: 'Texto en negrita',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Texto en cursiva',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Muutke Kirjasinperhe',
font_size: 'Change font size',
bold: 'Rasvane kiri',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Kursiiv',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: '‫تغییر خانواده قلم‬',
font_size: '‫تغییر اندازه قلم‬',
bold: '‫متن توپر ',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: '‫متن کج ',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Muuta Font Family',
font_size: 'Muuta fontin kokoa',
bold: 'Lihavoitu teksti',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Kursivoitu',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Changer la famille de police',
font_size: 'Changer la taille de la police',
bold: 'Texte en gras',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Texte en italique',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Lettertype oanpasse',
font_size: 'Lettergrutte oanpasse',
bold: 'Fet',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Skean',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Athraigh an Cló Teaghlaigh',
font_size: 'Athraigh Clómhéid',
bold: 'Trom Téacs',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Iodálach Téacs',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Cambiar fonte Familia',
font_size: 'Mudar tamaño de letra',
bold: 'Bold Text',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Texto en cursiva',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'שינוי גופן משפחה',
font_size: 'שנה גודל גופן',
bold: 'טקסט מודגש',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'טקסט נטוי',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'बदलें फ़ॉन्ट परिवार',
font_size: 'फ़ॉन्ट का आकार बदलें',
bold: 'मोटा पाठ',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'इटैलिक पाठ',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -72,6 +72,9 @@ export default {
font_family: 'Promjena fontova',
font_size: 'Change font size',
bold: 'Podebljani tekst',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Italic Text',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Change Betűcsalád',
font_size: 'Change font size',
bold: 'Félkövér szöveg',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Dőlt szöveg',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family_label: 'Font:',
font_size: 'Change Font Size',
bold: 'Bold Text',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Italic Text',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family_label: 'Font:',
font_size: 'Ubah Ukuran Font',
bold: 'Bold Teks',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Italic Teks',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Change Leturfjölskylda',
font_size: 'Breyta leturstærð',
bold: 'Bold Text',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Italic Text',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Cambia il tipo di Font',
font_size: 'Modifica dimensione carattere',
bold: 'Grassetto',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Corsivo',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'フォントファミリーの変更',
font_size: '文字サイズの変更',
bold: '太字',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'イタリック体',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: '글꼴 변경 패밀리',
font_size: '글꼴 크기 변경',
bold: '굵은 텍스트',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: '기울임꼴 텍스트',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Pakeistišriftą Šeima',
font_size: 'Change font size',
bold: 'Pusjuodis',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Kursyvas',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Mainīt fonta Family',
font_size: 'Mainīt fonta izmēru',
bold: 'Bold Text',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Kursīvs',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Смени фонт Фамилија',
font_size: 'Изменифонт Големина',
bold: 'Задебелен текст',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Italic текст',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Tukar Font Keluarga',
font_size: 'Ubah Saiz Font',
bold: 'Bold Teks',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Italic Teks',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Bidla Font Familja',
font_size: 'Change font size',
bold: 'Bold Test',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Test korsiv',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Verander lettertype',
font_size: 'Verander lettertype grootte',
bold: 'Vet',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Cursief',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Change Font Family',
font_size: 'Endre skriftstørrelse',
bold: 'Fet tekst',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Kursiv tekst',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -74,6 +74,9 @@ export default {
font_family: 'Zmień krój czcionki',
font_size: 'Zmień rozmiar czcionki',
bold: 'Pogrubienie textu',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Kursywa',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Mudar o estilo da fonte',
font_size: 'Mudar o tamanho da fonte',
bold: 'Negrito',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Italico',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Alterar fonte Família',
font_size: 'Alterar tamanho de letra',
bold: 'Bold Text',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Texto em itálico',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Modificare familie de fonturi',
font_size: 'Schimbă dimensiunea fontului',
bold: 'Text Îngroşat',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Text Înclinat',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Изменить семейство шрифтов',
font_size: 'Изменить размер шрифта',
bold: 'Жирный',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Курсив',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Zmeniť font',
font_size: 'Zmeniť veľkosť písma',
bold: 'Tučné',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Kurzíva',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Spremeni tip pisave',
font_size: 'Spremeni velikost pisave',
bold: 'Krepko',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Poševno',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Ndryshimi Font Family',
font_size: 'Ndryshimi Font Size',
bold: 'Bold Text',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Italic Text',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Цханге фонт породицу',
font_size: 'Цханге фонт сизе',
bold: 'Подебљан текст',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Италиц текст',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Ändra Typsnitt',
font_size: 'Ändra textstorlek',
bold: 'Fet text',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Kursiv text',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Change font Family',
font_size: 'Change font Size',
bold: 'Bold Nakala',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Italiki Nakala',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Change Font Family',
font_size: 'Change Font Size',
bold: 'Bold Text',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Italic Text',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'ครอบครัว Change Font',
font_size: 'เปลี่ยนขนาดตัวอักษร',
bold: 'ข้อความตัวหนา',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'ข้อความตัวเอียง',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Baguhin ang Pamilya ng Font',
font_size: 'Baguhin ang Laki ng Font',
bold: 'Bold Text',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Italic Text',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Font değiştir Aile',
font_size: 'Change font size',
bold: 'Kalın Yazı',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Italik yazı',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Зміни Сімейство шрифтів',
font_size: 'Змінити розмір шрифту',
bold: 'Товстий текст',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Похилий текст',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'Thay đổi Font Gia đình',
font_size: 'Thay đổi cỡ chữ',
bold: 'Bold Text',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'Italic Text',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: 'ענדערן פאָנט פאַמילי',
font_size: 'בייטן פאָנט גרייס',
bold: 'דרייסט טעקסט',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: 'יטאַליק טעקסט',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: '更改字体样式',
font_size: '更改字体大小',
bold: '粗体',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: '斜体',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: '更改字体家族',
font_size: '更改字体大小',
bold: '粗体',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: '斜体文本',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -73,6 +73,9 @@ export default {
font_family: '更改字體',
font_size: '更改字體大小',
bold: '粗體',
text_decoration_underline: 'Underline',
text_decoration_linethrough: 'Line-Through',
text_decoration_overline: 'Overline',
italic: '斜體',
text_anchor_start: 'Align the text in start',
text_anchor_middle: 'Align the text in middle',

View File

@ -1,181 +1,189 @@
<div id="tools_top">
<div id="editor_panel">
<div class="tool_sep"></div>
<se-button id="tool_source" title="tools.tool_source" shortcut="U" src="source.svg"></se-button>
<se-button id="tool_wireframe" title="tools.wireframe_mode" shortcut="F" src="wireframe.svg"></se-button>
</div> <!-- editor_panel -->
<div id="history_panel">
<div class="tool_sep"></div>
<se-button id="tool_undo" title="tools.undo" shortcut="Z" src="undo.svg" disabled></se-button>
<se-button id="tool_redo" title="tools.redo" shortcut="Y" src="redo.svg" disabled></se-button>
</div> <!-- history_panel -->
<!-- Buttons when a single element is selected -->
<div class="selected_panel">
<div class="tool_sep"></div>
<se-button id="tool_clone" title="tools.clone" shortcut="D" src="clone.svg"></se-button>
<se-button id="tool_delete" title="tools.del" shortcut="Delete/Backspace" src="delete.svg"></se-button>
</div>
<div class="selected_panel">
<div class="tool_sep"></div>
<se-button id="tool_move_top" title="tools.move_top" shortcut="Ctrl+Shift+]" src="move_top.svg"></se-button>
<se-button id="tool_move_bottom" title="tools.move_bottom" shortcut="Ctrl+Shift+[" src="move_bottom.svg">
</se-button>
</div>
<div class="selected_panel">
<se-button id="tool_topath" title="tools.to_path" src="to_path.svg"></se-button>
<se-button id="tool_reorient" title="tools.reorient_path" src="reorient.svg"></se-button>
<se-button id="tool_make_link" title="tools.make_link" src="globe_link.svg"></se-button>
</div>
<div class="selected_panel">
<div class="tool_sep"></div>
<se-input id="elem_id" data-attr="id" size="10" label="properties.id_label" title="properties.id"></se-input>
</div>
<div class="selected_panel">
<se-input id="elem_class" data-attr="class" size="10" label="properties.class_label" title="properties.class">
</se-input>
<se-spin-input size="3" id="angle" min=-180 max=180 step=5 src="angle.svg" title="properties.angle">
</se-spin-input>
<se-spin-input size="2" id="blur" min=0 max=100 step=5 src="blur.svg" title="properties.blur"></se-spin-input>
<se-list id="tool_position" title="tools.align_to_page" label="" width="22px" height="22px">
<se-list-item id="tool_posleft" value="l" title="tools.align_left" src="align_left.svg" img-height="22px">
</se-list-item>
<se-list-item id="tool_poscenter" value="c" title="tools.align_center" src="align_center.svg"
img-height="22px"></se-list-item>
<se-list-item id="tool_posright" value="r" title="tools.align_right" src="align_right.svg"
img-height="22px"></se-list-item>
<se-list-item id="tool_postop" value="t" title="tools.align_top" src="align_top.svg" img-height="22px">
</se-list-item>
<se-list-item id="tool_posmiddle" value="m" title="tools.align_middle" src="align_middle.svg"
img-height="22px"></se-list-item>
<se-list-item id="tool_posbottom" value="b" src="align_bottom.svg" title="tools.align_bottom"
img-height="22px"></se-list-item>
</se-list>
</div>
<div class="xy_panel">
<se-spin-input id="selected_x" data-attr="x" size="4" type="text" label="properties.x_label"
title="properties.pos_x">
</se-spin-input>
<se-spin-input id="selected_y" data-attr="y" size="4" type="text" label="properties.y_label"
title="properties.pos_y">
</se-spin-input>
</div>
<!-- Buttons when multiple elements are selected -->
<div class="multiselected_panel">
<div class="tool_sep"></div>
<se-button id="tool_clone_multi" title="tools.clone" shortcut="C" src="clone.svg"></se-button>
<se-button id="tool_delete_multi" title="tools.del" shortcut="Delete/Backspace" src="delete.svg"></se-button>
</div>
<div class="multiselected_panel">
<div class="tool_sep"></div>
<se-button id="tool_group_elements" title="tools.group_elements" shortcut="G" src="group_elements.svg">
</se-button>
<se-button id="tool_make_link_multi" title="tools.make_link" src="globe_link.svg"></se-button>
<se-button id="tool_align_left" title="tools.align_left" src="align_left.svg"></se-button>
<se-button id="tool_align_center" title="tools.align_center" src="align_center.svg"></se-button>
<se-button id="tool_align_right" title="tools.align_right" src="align_right.svg"></se-button>
<se-button id="tool_align_top" title="tools.align_top" src="align_top.svg"></se-button>
<se-button id="tool_align_middle" title="tools.align_middle" src="align_middle.svg"></se-button>
<se-button id="tool_align_bottom" title="tools.align_bottom" src="align_bottom.svg"></se-button>
<se-select id="tool_align_relative" label="tools.relativeTo"
options="tools.selected_objects,tools.largest_object,tools.smallest_object,tools.page"
values="selected::largest::smallest::page">
</se-list-item>
</se-select>
</div> <!-- multiselected_panel -->
<div class="rect_panel">
<se-spin-input id="rect_width" data-attr="width" size="4" label="properties.w_label"
title="properties.rect_width"></se-spin-input>
<se-spin-input id="rect_height" data-attr="height" size="4" label="properties.h_label"
title="properties.rect_height"></se-spin-input>
<se-spin-input id="rect_rx" min=0 max=1000 step=1 size="3" title="properties.corner_radius"
data-attr="Corner Radius" src="c_radius.svg"></se-spin-input>
</div> <!-- rect_panel -->
<div class="image_panel">
<se-spin-input id="image_width" data-attr="width" size="4" type="text" label="properties.w_label"
title="properties.image_width"></se-spin-input>
<se-spin-input id="image_height" data-attr="height" size="4" type="text" label="properties.h_label"
title="properties.image_height"></se-spin-input>
</div>
<div class="image_panel">
<se-input id="image_url" data-attr="image_url" size="15" label="properties.image_url"></se-input>
</div>
<div class="circle_panel">
<se-spin-input id="circle_cx" data-attr="cx" size="4" label="properties.cx_label"></se-spin-input>
<se-spin-input id="circle_cy" data-attr="cy" size="4" label="properties.cy_label"></se-spin-input>
</div>
<div class="circle_panel">
<se-spin-input id="circle_r" data-attr="r" size="4" label="properties.r_label"></se-spin-input>
</div>
<div class="ellipse_panel">
<se-spin-input id="ellipse_cx" data-attr="cx" size="4" title="properties.ellipse_cx"
label="properties.cx_label"></se-spin-input>
<se-spin-input id="ellipse_cy" data-attr="cy" size="4" title="properties.ellipse_cy"
label="properties.cy_label"></se-spin-input>
</div>
<div class="ellipse_panel">
<se-spin-input id="ellipse_rx" data-attr="rx" size="4" title="properties.ellipse_rx"
label="properties.rx_label"></se-spin-input>
<se-spin-input id="ellipse_ry" data-attr="ry" size="4" title="properties.ellipse_ry"
label="properties.ry_label"></se-spin-input>
</div>
<div class="line_panel">
<se-spin-input id="line_x1" data-attr="x1" size="4" title="properties.line_x1" label="properties.x1_label">
</se-spin-input>
<se-spin-input id="line_y1" data-attr="y1" size="4" title="properties.line_y1" label="properties.y1_label">
</se-spin-input>
<se-spin-input id="line_x2" data-attr="x2" size="4" title="properties.line_x2" label="properties.x2_label">
</se-spin-input>
<se-spin-input id="line_y2" data-attr="y2" size="4" title="properties.line_y2" label="properties.y2_label">
</se-spin-input>
</div>
<div class="text_panel">
<se-button id="tool_bold" title="properties.bold" src="bold.svg" shortcut="B"></se-button>
<se-button id="tool_italic" title="properties.italic" src="italic.svg" shortcut="I"></se-button>
<se-select id="tool_font_family" label="properties.font_family_label"
options="properties.serif,properties.sans_serif,properties.cursive,properties.fantasy,properties.monospace,properties.courier,properties.helvetica,properties.times"
values="Serif::Sans-serif::Cursive::Fantasy::Monospace::Courier::Helvetica::Times"></se-select>
<se-spin-input size="2" id="font_size" min=1 max=1000 step=1 title="properties.font_size"
src="fontsize.svg"></se-spin-input>
</div>
<div class="text_panel">
<se-button id="tool_text_anchor_start" title="properties.text_anchor_start" src="anchor_start.svg"></se-button>
<se-button id="tool_text_anchor_middle" title="properties.text_anchor_middle" src="anchor_middle.svg">
</se-button>
<se-button id="tool_text_anchor_end" title="properties.text_anchor_end" src="anchor_end.svg"></se-button>
</div>
<!-- Not visible, but still used -->
<input id="text" type="text" size="35" />
<div class="container_panel">
<div class="tool_sep"></div>
<se-input id="g_title" data-attr="title" size="8" label="properties.label"></se-input>
</div> <!-- container_panel -->
<div class="use_panel">
<se-button id="tool_unlink_use" title="tools.tool_unlink_use" src="unlink_use.svg"></se-button>
</div> <!-- use_panel -->
<div class="g_panel">
<se-button id="tool_ungroup" title="tools.ungroup" src="ungroup.svg"></se-button>
</div> <!-- g_panel -->
<!-- For anchor elements -->
<div class="a_panel">
<label id="tool_link_url">
<span id="linkLabel" class="icon_label"></span>
<input id="link_url" type="text" size="35" />
</label>
</div> <!-- a_panel -->
<div class="path_node_panel">
<div class="tool_sep"></div>
<se-button id="tool_node_link" title="tools.node_link" src="tool_node_link.svg" pressed></se-button>
<div class="tool_sep"></div>
<se-spin-input id="path_node_x" data-attr="x" size="4" title="properties.node_x" label="properties.x_label">
</se-spin-input>
<se-spin-input id="path_node_y" data-attr="y" size="4" title="properties.node_y" label="properties.y_label">
</se-spin-input>
<se-select id="seg_type" title="properties.seg_type" label=""
options="properties.straight_segments,properties.curve_segments" values="4::6"></se-select>
<se-button id="tool_node_clone" title="tools.node_clone" src="tool_node_clone.svg"></se-button>
<se-button id="tool_node_delete" title="tools.node_delete" src="tool_node_delete.svg"></se-button>
<se-button id="tool_openclose_path" title="tools.openclose_path" src="tool_openclose_path.svg"></se-button>
<se-button id="tool_add_subpath" title="tools.add_subpath" src="tool_add_subpath.svg"></se-button>
</div> <!-- path_node_panel -->
<div id="cur_context_panel"></div>
</div>
<div id="editor_panel">
<div class="tool_sep"></div>
<se-button id="tool_source" title="tools.tool_source" shortcut="U" src="source.svg"></se-button>
<se-button id="tool_wireframe" title="tools.wireframe_mode" shortcut="F" src="wireframe.svg"></se-button>
</div> <!-- editor_panel -->
<div id="history_panel">
<div class="tool_sep"></div>
<se-button id="tool_undo" title="tools.undo" shortcut="Z" src="undo.svg" disabled></se-button>
<se-button id="tool_redo" title="tools.redo" shortcut="Y" src="redo.svg" disabled></se-button>
</div> <!-- history_panel -->
<!-- Buttons when a single element is selected -->
<div class="selected_panel">
<div class="tool_sep"></div>
<se-button id="tool_clone" title="tools.clone" shortcut="D" src="clone.svg"></se-button>
<se-button id="tool_delete" title="tools.del" shortcut="Delete/Backspace" src="delete.svg"></se-button>
</div>
<div class="selected_panel">
<div class="tool_sep"></div>
<se-button id="tool_move_top" title="tools.move_top" shortcut="Ctrl+Shift+]" src="move_top.svg"></se-button>
<se-button id="tool_move_bottom" title="tools.move_bottom" shortcut="Ctrl+Shift+[" src="move_bottom.svg">
</se-button>
</div>
<div class="selected_panel">
<se-button id="tool_topath" title="tools.to_path" src="to_path.svg"></se-button>
<se-button id="tool_reorient" title="tools.reorient_path" src="reorient.svg"></se-button>
<se-button id="tool_make_link" title="tools.make_link" src="globe_link.svg"></se-button>
</div>
<div class="selected_panel">
<div class="tool_sep"></div>
<se-input id="elem_id" data-attr="id" size="10" label="properties.id_label" title="properties.id"></se-input>
</div>
<div class="selected_panel">
<se-input id="elem_class" data-attr="class" size="10" label="properties.class_label" title="properties.class">
</se-input>
<se-spin-input size="3" id="angle" min=-180 max=180 step=5 src="angle.svg" title="properties.angle">
</se-spin-input>
<se-spin-input size="2" id="blur" min=0 max=100 step=5 src="blur.svg" title="properties.blur"></se-spin-input>
<se-list id="tool_position" title="tools.align_to_page" label="" width="22px" height="22px">
<se-list-item id="tool_posleft" value="l" title="tools.align_left" src="align_left.svg" img-height="22px">
</se-list-item>
<se-list-item id="tool_poscenter" value="c" title="tools.align_center" src="align_center.svg"
img-height="22px"></se-list-item>
<se-list-item id="tool_posright" value="r" title="tools.align_right" src="align_right.svg"
img-height="22px"></se-list-item>
<se-list-item id="tool_postop" value="t" title="tools.align_top" src="align_top.svg" img-height="22px">
</se-list-item>
<se-list-item id="tool_posmiddle" value="m" title="tools.align_middle" src="align_middle.svg"
img-height="22px"></se-list-item>
<se-list-item id="tool_posbottom" value="b" src="align_bottom.svg" title="tools.align_bottom"
img-height="22px"></se-list-item>
</se-list>
</div>
<div class="xy_panel">
<se-spin-input id="selected_x" data-attr="x" size="4" type="text" label="properties.x_label"
title="properties.pos_x">
</se-spin-input>
<se-spin-input id="selected_y" data-attr="y" size="4" type="text" label="properties.y_label"
title="properties.pos_y">
</se-spin-input>
</div>
<!-- Buttons when multiple elements are selected -->
<div class="multiselected_panel">
<div class="tool_sep"></div>
<se-button id="tool_clone_multi" title="tools.clone" shortcut="C" src="clone.svg"></se-button>
<se-button id="tool_delete_multi" title="tools.del" shortcut="Delete/Backspace" src="delete.svg"></se-button>
</div>
<div class="multiselected_panel">
<div class="tool_sep"></div>
<se-button id="tool_group_elements" title="tools.group_elements" shortcut="G" src="group_elements.svg">
</se-button>
<se-button id="tool_make_link_multi" title="tools.make_link" src="globe_link.svg"></se-button>
<se-button id="tool_align_left" title="tools.align_left" src="align_left.svg"></se-button>
<se-button id="tool_align_center" title="tools.align_center" src="align_center.svg"></se-button>
<se-button id="tool_align_right" title="tools.align_right" src="align_right.svg"></se-button>
<se-button id="tool_align_top" title="tools.align_top" src="align_top.svg"></se-button>
<se-button id="tool_align_middle" title="tools.align_middle" src="align_middle.svg"></se-button>
<se-button id="tool_align_bottom" title="tools.align_bottom" src="align_bottom.svg"></se-button>
<se-select id="tool_align_relative" label="tools.relativeTo"
options="tools.selected_objects,tools.largest_object,tools.smallest_object,tools.page"
values="selected::largest::smallest::page">
</se-list-item>
</se-select>
</div> <!-- multiselected_panel -->
<div class="rect_panel">
<se-spin-input id="rect_width" data-attr="width" size="4" label="properties.w_label"
title="properties.rect_width"></se-spin-input>
<se-spin-input id="rect_height" data-attr="height" size="4" label="properties.h_label"
title="properties.rect_height"></se-spin-input>
<se-spin-input id="rect_rx" min=0 max=1000 step=1 size="3" title="properties.corner_radius"
data-attr="Corner Radius" src="c_radius.svg"></se-spin-input>
</div> <!-- rect_panel -->
<div class="image_panel">
<se-spin-input id="image_width" data-attr="width" size="4" type="text" label="properties.w_label"
title="properties.image_width"></se-spin-input>
<se-spin-input id="image_height" data-attr="height" size="4" type="text" label="properties.h_label"
title="properties.image_height"></se-spin-input>
</div>
<div class="image_panel">
<se-input id="image_url" data-attr="image_url" size="15" label="properties.image_url"></se-input>
</div>
<div class="circle_panel">
<se-spin-input id="circle_cx" data-attr="cx" size="4" label="properties.cx_label"></se-spin-input>
<se-spin-input id="circle_cy" data-attr="cy" size="4" label="properties.cy_label"></se-spin-input>
</div>
<div class="circle_panel">
<se-spin-input id="circle_r" data-attr="r" size="4" label="properties.r_label"></se-spin-input>
</div>
<div class="ellipse_panel">
<se-spin-input id="ellipse_cx" data-attr="cx" size="4" title="properties.ellipse_cx"
label="properties.cx_label"></se-spin-input>
<se-spin-input id="ellipse_cy" data-attr="cy" size="4" title="properties.ellipse_cy"
label="properties.cy_label"></se-spin-input>
</div>
<div class="ellipse_panel">
<se-spin-input id="ellipse_rx" data-attr="rx" size="4" title="properties.ellipse_rx"
label="properties.rx_label"></se-spin-input>
<se-spin-input id="ellipse_ry" data-attr="ry" size="4" title="properties.ellipse_ry"
label="properties.ry_label"></se-spin-input>
</div>
<div class="line_panel">
<se-spin-input id="line_x1" data-attr="x1" size="4" title="properties.line_x1" label="properties.x1_label">
</se-spin-input>
<se-spin-input id="line_y1" data-attr="y1" size="4" title="properties.line_y1" label="properties.y1_label">
</se-spin-input>
<se-spin-input id="line_x2" data-attr="x2" size="4" title="properties.line_x2" label="properties.x2_label">
</se-spin-input>
<se-spin-input id="line_y2" data-attr="y2" size="4" title="properties.line_y2" label="properties.y2_label">
</se-spin-input>
</div>
<div class="text_panel">
<!-- Text styles -->
<se-button id="tool_bold" title="properties.bold" src="bold.svg" shortcut="B"></se-button>
<se-button id="tool_italic" title="properties.italic" src="italic.svg" shortcut="I"></se-button>
<se-button id="tool_text_decoration_underline" title="properties.text_decoration_underline" src="text_decoration_underline.svg"></se-button>
<se-button id="tool_text_decoration_linethrough" title="properties.text_decoration_linethrough" src="text_decoration_linethrough.svg"></se-button>
<se-button id="tool_text_decoration_overline" title="properties.text_decoration_overline" src="text_decoration_overline.svg"></se-button>
<!-- Font Size-->
<se-select id="tool_font_family" label="properties.font_family_label"
options="properties.serif,properties.sans_serif,properties.cursive,properties.fantasy,properties.monospace,properties.courier,properties.helvetica,properties.times"
values="Serif::Sans-serif::Cursive::Fantasy::Monospace::Courier::Helvetica::Times"></se-select>
<se-spin-input size="2" id="font_size" min=1 max=1000 step=1 title="properties.font_size"
src="fontsize.svg"></se-spin-input>
<!-- Text Anchor -->
<se-list id="tool_text_anchor" label="" width="22px" height="22px">
<se-list-item id="tool_text_anchor_start" value="start" title="properties.text_anchor_start" src="anchor_start.svg" img-height="25px"></se-list-item>
<se-list-item id="tool_text_anchor_middle" value="middle" title="properties.text_anchor_middle" src="anchor_middle.svg" img-height="25px"></se-list-item>
<se-list-item id="tool_text_anchor_end" value="end" title="properties.text_anchor_end" src="anchor_end.svg" img-height="25px"></se-list-item>
</se-list>
</div>
<!-- Not visible, but still used -->
<input id="text" type="text" size="35"/>
<div class="container_panel">
<div class="tool_sep"></div>
<se-input id="g_title" data-attr="title" size="8" label="properties.label"></se-input>
</div> <!-- container_panel -->
<div class="use_panel">
<se-button id="tool_unlink_use" title="tools.tool_unlink_use" src="unlink_use.svg"></se-button>
</div> <!-- use_panel -->
<div class="g_panel">
<se-button id="tool_ungroup" title="tools.ungroup" src="ungroup.svg"></se-button>
</div> <!-- g_panel -->
<!-- For anchor elements -->
<div class="a_panel">
<label id="tool_link_url">
<span id="linkLabel" class="icon_label"></span>
<input id="link_url" type="text" size="35"/>
</label>
</div> <!-- a_panel -->
<div class="path_node_panel">
<div class="tool_sep"></div>
<se-button id="tool_node_link" title="tools.node_link" src="tool_node_link.svg" pressed></se-button>
<div class="tool_sep"></div>
<se-spin-input id="path_node_x" data-attr="x" size="4" title="properties.node_x" label="properties.x_label">
</se-spin-input>
<se-spin-input id="path_node_y" data-attr="y" size="4" title="properties.node_y" label="properties.y_label">
</se-spin-input>
<se-select id="seg_type" title="properties.seg_type" label=""
options="properties.straight_segments,properties.curve_segments" values="4::6"></se-select>
<se-button id="tool_node_clone" title="tools.node_clone" src="tool_node_clone.svg"></se-button>
<se-button id="tool_node_delete" title="tools.node_delete" src="tool_node_delete.svg"></se-button>
<se-button id="tool_openclose_path" title="tools.openclose_path" src="tool_openclose_path.svg"></se-button>
<se-button id="tool_add_subpath" title="tools.add_subpath" src="tool_add_subpath.svg"></se-button>
</div> <!-- path_node_panel -->
<div id="cur_context_panel"></div>
</div>

View File

@ -96,7 +96,7 @@ class TopPanel {
break
case 'g':
case 'a': {
// Look for common styles
// Look for common styles
const childs = this.selectedElement.getElementsByTagName('*')
let gWidth = null
for (i = 0, len = childs.length; i < len; i++) {
@ -352,29 +352,13 @@ class TopPanel {
this.displayTool('text_panel')
$id('tool_italic').pressed = this.editor.svgCanvas.getItalic()
$id('tool_bold').pressed = this.editor.svgCanvas.getBold()
$id('tool_text_decoration_underline').pressed = this.editor.svgCanvas.hasTextDecoration('underline')
$id('tool_text_decoration_linethrough').pressed = this.editor.svgCanvas.hasTextDecoration('line-through')
$id('tool_text_decoration_overline').pressed = this.editor.svgCanvas.hasTextDecoration('overline')
$id('tool_font_family').setAttribute('value', elem.getAttribute('font-family'))
$id('tool_text_anchor').setAttribute('value', elem.getAttribute('text-anchor'))
$id('font_size').value = elem.getAttribute('font-size')
$id('text').value = elem.textContent
const textAnchorStart = $id('tool_text_anchor_start')
const textAnchorMiddle = $id('tool_text_anchor_middle')
const textAnchorEnd = $id('tool_text_anchor_end')
switch (elem.getAttribute('text-anchor')) {
case 'start':
textAnchorStart.pressed = true
textAnchorMiddle.pressed = false
textAnchorEnd.pressed = false
break
case 'middle':
textAnchorStart.pressed = false
textAnchorMiddle.pressed = true
textAnchorEnd.pressed = false
break
case 'end':
textAnchorStart.pressed = false
textAnchorMiddle.pressed = false
textAnchorEnd.pressed = true
break
}
if (this.editor.svgCanvas.addedNew) {
// Timeout needed for IE9
setTimeout(() => {
@ -764,13 +748,28 @@ class TopPanel {
}
/**
* Handles the click on the text decoration buttons
*
* @param value The text decoration value
* @returns {boolean} false
*/
clickTextDecoration (value) {
if (this.editor.svgCanvas.hasTextDecoration(value)) {
this.editor.svgCanvas.removeTextDecoration(value)
} else {
this.editor.svgCanvas.addTextDecoration(value)
}
this.updateContextPanel()
return false
}
/**
* Sets the text anchor value
*
* @param {string} value "start","end" or "middle"
* @returns {false}
*/
clickTextAnchor (value) {
this.editor.svgCanvas.setTextAnchor(value)
this.updateContextPanel()
clickTextAnchor (evt) {
this.editor.svgCanvas.setTextAnchor(evt.detail.value)
return false
}
@ -889,9 +888,10 @@ class TopPanel {
$id('tool_ungroup').addEventListener('click', this.clickGroup.bind(this))
$id('tool_bold').addEventListener('click', this.clickBold.bind(this))
$id('tool_italic').addEventListener('click', this.clickItalic.bind(this))
$id('tool_text_anchor_start').addEventListener('click', () => this.clickTextAnchor.bind(this)('start'))
$id('tool_text_anchor_middle').addEventListener('click', () => this.clickTextAnchor.bind(this)('middle'))
$id('tool_text_anchor_end').addEventListener('click', () => this.clickTextAnchor.bind(this)('end'))
$id('tool_text_decoration_underline').addEventListener('click', () => this.clickTextDecoration.bind(this)('underline'))
$id('tool_text_decoration_linethrough').addEventListener('click', () => this.clickTextDecoration.bind(this)('line-through'))
$id('tool_text_decoration_overline').addEventListener('click', () => this.clickTextDecoration.bind(this)('overline'))
$id('tool_text_anchor').addEventListener('change', (evt) => this.clickTextAnchor.bind(this)(evt))
$id('tool_unlink_use').addEventListener('click', this.clickGroup.bind(this))
$id('image_url').addEventListener('change', (evt) => { this.setImageURL(evt.currentTarget.value) });

View File

@ -593,6 +593,56 @@ export const setBoldMethod = function (b) {
}
}
/**
* Check whether selected element has the given text decoration value or not.
* @returns {boolean} Indicates whether or not element has the text decoration value
*/
export const hasTextDecorationMethod = function (value) {
const selectedElements = svgCanvas.getSelectedElements()
const selected = selectedElements[0]
if (!isNullish(selected) && selected.tagName === 'text' && isNullish(selectedElements[1])) {
const attribute = selected.getAttribute('text-decoration') || ''
return attribute.includes(value)
}
return false
}
/**
* Adds the given text decoration value
* @param value The text decoration value
* @returns {void}
*/
export const addTextDecorationMethod = function (value) {
const selectedElements = svgCanvas.getSelectedElements()
const selected = selectedElements[0]
if (!isNullish(selected) && selected.tagName === 'text' && isNullish(selectedElements[1])) {
const oldValue = selected.getAttribute('text-decoration') || ''
svgCanvas.changeSelectedAttribute('text-decoration', (oldValue + ' ' + value).trim())
}
if (selectedElements.length > 0 && !selectedElements[0].textContent) {
svgCanvas.textActions.setCursor()
}
}
/**
* Removes the given text decoration value
* @param value The text decoration value
* @returns {void}
*/
export const removeTextDecorationMethod = function (value) {
const selectedElements = svgCanvas.getSelectedElements()
const selected = selectedElements[0]
if (!isNullish(selected) && selected.tagName === 'text' && isNullish(selectedElements[1])) {
const actualValues = selected.getAttribute('text-decoration') || ''
svgCanvas.changeSelectedAttribute('text-decoration', actualValues.replace(value, '').trim())
}
if (selectedElements.length > 0 && !selectedElements[0].textContent) {
svgCanvas.textActions.setCursor()
}
}
/**
* Check whether selected element is in italics or not.
* @function module:svgcanvas.SvgCanvas#getItalic
@ -638,7 +688,7 @@ export const setTextAnchorMethod = function (value) {
isNullish(selectedElements[1])) {
svgCanvas.changeSelectedAttribute('text-anchor', value)
}
if (!selectedElements[0].textContent) {
if (selectedElements.length > 0 && !selectedElements[0].textContent) {
svgCanvas.textActions.setCursor()
}
}

View File

@ -56,7 +56,7 @@ const svgWhiteList_ = {
svg: ['clip-path', 'clip-rule', 'enable-background', 'filter', 'height', 'mask', 'preserveAspectRatio', 'requiredFeatures', 'systemLanguage', 'version', 'viewBox', 'width', 'x', 'xmlns', 'xmlns:se', 'xmlns:xlink', 'xmlns:oi', 'oi:animations', 'y', 'stroke-linejoin', 'fill-rule', 'aria-label', 'stroke-width', 'fill-rule', 'xml:space'],
switch: ['requiredFeatures', 'systemLanguage'],
symbol: ['fill', 'fill-opacity', 'fill-rule', 'filter', 'font-family', 'font-size', 'font-style', 'font-weight', 'opacity', 'overflow', 'preserveAspectRatio', 'requiredFeatures', 'stroke', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'systemLanguage', 'viewBox', 'width', 'height'],
text: ['clip-path', 'clip-rule', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'font-family', 'font-size', 'font-style', 'font-weight', 'mask', 'opacity', 'requiredFeatures', 'stroke', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'systemLanguage', 'text-anchor', 'x', 'xml:space', 'y'],
text: ['clip-path', 'clip-rule', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'font-family', 'font-size', 'font-style', 'font-weight', 'mask', 'opacity', 'requiredFeatures', 'stroke', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'systemLanguage', 'text-anchor', 'text-decoration', 'x', 'xml:space', 'y'],
textPath: ['method', 'requiredFeatures', 'spacing', 'startOffset', 'systemLanguage', 'xlink:href'],
title: [],
tspan: ['clip-path', 'clip-rule', 'dx', 'dy', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'font-family', 'font-size', 'font-style', 'font-weight', 'mask', 'opacity', 'requiredFeatures', 'rotate', 'stroke', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'systemLanguage', 'text-anchor', 'textLength', 'x', 'xml:space', 'y'],

View File

@ -903,6 +903,9 @@ class SvgCanvas {
this.setBold = elemGetSet.setBoldMethod // Make the selected element bold or normal.
this.getItalic = elemGetSet.getItalicMethod // Check whether selected element is in italics or not.
this.setItalic = elemGetSet.setItalicMethod // Make the selected element italic or normal.
this.hasTextDecoration = elemGetSet.hasTextDecorationMethod // Check whether the selected element has the given text decoration or not.
this.addTextDecoration = elemGetSet.addTextDecorationMethod // Adds the given value to the text decoration
this.removeTextDecoration = elemGetSet.removeTextDecorationMethod // Removes the given value from the text decoration
this.setTextAnchor = elemGetSet.setTextAnchorMethod // Set the new text anchor.
this.getFontFamily = elemGetSet.getFontFamilyMethod // The current font family
this.setFontFamily = elemGetSet.setFontFamilyMethod // Set the new font family.