1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-05 10:49:24 +02:00

full strike through support for FB2

This commit is contained in:
Nikolay Pultsin 2012-02-09 05:42:09 +00:00
parent dbcd3aa288
commit c6ae5c2e21
33 changed files with 192 additions and 119 deletions

View file

@ -1,3 +1,6 @@
===== 1.3.8 (Feb ??, 2012) =====
* striked through/underlined text support
===== 1.3.7 (Feb 9, 2012) =====
* Font smoothing settings (Settings -> Text -> Font properties)
* Fixed 'question symbols in menu' issue

View file

@ -30,7 +30,7 @@
<style id="19" partial="true" name="Subscript" fontSizeDelta="-4" vShift="-4" allowHyphenations="false"/>
<style id="20" partial="true" name="Superscript" fontSizeDelta="-4" vShift="10" allowHyphenations="false"/>
<style id="21" partial="true" name="Code" italic="true" allowHyphenations="false"/>
<style id="22" partial="true" name="StrikeThrough"/>
<style id="22" partial="true" name="StrikeThrough" strikeThrough="true"/>
<style id="27" partial="true" name="Italic" italic="true"/>
<style id="28" partial="true" name="Bold" bold="true"/>
<style id="29" partial="true" name="Definition" italic="true"/>

View file

@ -383,13 +383,13 @@
<node name="boldItalic" value="Tučná kurzíva"/>
</node>
<node name="bold" value="Tučně">
<node name="on" value="tučně"/>
<node name="off" value="obyčejné"/>
<node name="summaryOn" value="tučně"/>
<node name="summaryOff" value="obyčejné"/>
<node name="unchanged" value="&lt;nezměněno&gt;"/>
</node>
<node name="italic" value="Kurzíva">
<node name="on" value="kurzíva"/>
<node name="off" value="obyčejné"/>
<node name="summaryOn" value="kurzíva"/>
<node name="summaryOff" value="obyčejné"/>
<node name="unchanged" value="&lt;nezměněno&gt;"/>
</node>
<node name="lineSpacing" value="Řádkování">
@ -407,8 +407,8 @@
<node name="summaryOff" value="Nedělit slova automaticky"/>
</node>
<node name="allowHyphenations" value="Povolit dělení slov">
<node name="on" value="dělit slova"/>
<node name="off" value="nedělit slova"/>
<node name="summaryOn" value="dělit slova"/>
<node name="summaryOff" value="nedělit slova"/>
<node name="unchanged" value="&lt;nezměněno&gt;"/>
</node>
<node name="firstLineIndent" value="Odsazení prvního řádku"/>

View file

@ -363,13 +363,13 @@
<node name="boldItalic" value="Fett &amp; Kursiv"/>
</node>
<node name="bold" value="Fett">
<node name="on" value="Fett"/>
<node name="off" value="Normal"/>
<node name="summaryOn" value="Fett"/>
<node name="summaryOff" value="Normal"/>
<node name="unchanged" value="&lt;unverändert&gt;"/>
</node>
<node name="italic" value="Kursiv">
<node name="on" value="Kursiv"/>
<node name="off" value="Normal"/>
<node name="summaryOn" value="Kursiv"/>
<node name="summaryOff" value="Normal"/>
<node name="unchanged" value="&lt;unverändert&gt;"/>
</node>
<node name="lineSpacing" value="Zeilenabstand">
@ -387,8 +387,8 @@
<node name="summaryOff" value="Keine automatische Silbentrennung."/>
</node>
<node name="allowHyphenations" value="Trennen erlauben">
<node name="on" value="Wörter trennen"/>
<node name="off" value="Wörter nicht trennen"/>
<node name="summaryOn" value="Wörter trennen"/>
<node name="summaryOff" value="Wörter nicht trennen"/>
<node name="unchanged" value="&lt;unverändert&gt;"/>
</node>
<node name="firstLineIndent" value="Einzug erste Zeile"/>

View file

@ -389,13 +389,23 @@
<node name="boldItalic" value="Bold Italic"/>
</node>
<node name="bold" value="Bold">
<node name="on" value="bold"/>
<node name="off" value="regular"/>
<node name="summaryOn" value="bold"/>
<node name="summaryOff" value="regular"/>
<node name="unchanged" value="&lt;unchanged&gt;"/>
</node>
<node name="italic" value="Italic">
<node name="on" value="italic"/>
<node name="off" value="regular"/>
<node name="summaryOn" value="italic"/>
<node name="summaryOff" value="regular"/>
<node name="unchanged" value="&lt;unchanged&gt;"/>
</node>
<node name="underlined" value="Underlined">
<node name="summaryOn" value="underlined"/>
<node name="summaryOff" value="regular"/>
<node name="unchanged" value="&lt;unchanged&gt;"/>
</node>
<node name="strikedThrough" value="Striked through">
<node name="summaryOn" value="striked through"/>
<node name="summaryOff" value="regular"/>
<node name="unchanged" value="&lt;unchanged&gt;"/>
</node>
<node name="lineSpacing" value="Line Spacing">
@ -413,8 +423,8 @@
<node name="summaryOff" value="Do not hyphenate words automatically"/>
</node>
<node name="allowHyphenations" value="Allow Hyphenations">
<node name="on" value="hyphenate words"/>
<node name="off" value="don't hyphenate words"/>
<node name="summaryOn" value="hyphenate words"/>
<node name="summaryOff" value="don't hyphenate words"/>
<node name="unchanged" value="&lt;unchanged&gt;"/>
</node>
<node name="firstLineIndent" value="First Line Indent"/>

View file

@ -365,13 +365,13 @@
<node name="boldItalic" value="Negrita cursiva"/>
</node>
<node name="bold" value="Negrita">
<node name="on" value="negrita"/>
<node name="off" value="normal"/>
<node name="summaryOn" value="negrita"/>
<node name="summaryOff" value="normal"/>
<node name="unchanged" value="&lt;sin cambios&gt;"/>
</node>
<node name="italic" value="Cursiva">
<node name="on" value="cursiva"/>
<node name="off" value="normal"/>
<node name="summaryOn" value="cursiva"/>
<node name="summaryOff" value="normal"/>
<node name="unchanged" value="&lt;sin cambios&gt;"/>
</node>
<node name="lineSpacing" value="Interlineado">
@ -389,8 +389,8 @@
<node name="summaryOff" value="No dividirpalabras automáticamente"/>
</node>
<node name="allowHyphenations" value="Permitir división de palabras">
<node name="on" value="dividir palabras"/>
<node name="off" value="no dividir palabras"/>
<node name="summaryOn" value="dividir palabras"/>
<node name="summaryOff" value="no dividir palabras"/>
<node name="unchanged" value="&lt;sin cambios&gt;"/>
</node>
<node name="firstLineIndent" value="Sangrar la primera linea"/>

View file

@ -363,13 +363,13 @@
<node name="boldItalic" value="Gras italique"/>
</node>
<node name="bold" value="Gras">
<node name="on" value="gras"/>
<node name="off" value="normale"/>
<node name="summaryOn" value="gras"/>
<node name="summaryOff" value="normale"/>
<node name="unchanged" value="&lt;inchangé&gt;"/>
</node>
<node name="italic" value="Italique">
<node name="on" value="italique"/>
<node name="off" value="normale"/>
<node name="summaryOn" value="italique"/>
<node name="summaryOff" value="normale"/>
<node name="unchanged" value="&lt;inchangé&gt;"/>
</node>
<node name="lineSpacing" value="Espacement de lignes">
@ -387,8 +387,8 @@
<node name="summaryOff" value="Ne pas appliquer les césures automatiquement"/>
</node>
<node name="allowHyphenations" value="Autoriser les césures">
<node name="on" value="couper les mots"/>
<node name="off" value="ne pas couper les mots"/>
<node name="summaryOn" value="couper les mots"/>
<node name="summaryOff" value="ne pas couper les mots"/>
<node name="unchanged" value="&lt;inchangé&gt;"/>
</node>
<node name="firstLineIndent" value="Indentation de la première ligne"/>

View file

@ -360,13 +360,13 @@
<node name="boldItalic" value="Cursiva negriña"/>
</node>
<node name="bold" value="Negriña">
<node name="on" value="negriña"/>
<node name="off" value="normal"/>
<node name="summaryOn" value="negriña"/>
<node name="summaryOff" value="normal"/>
<node name="unchanged" value="&lt;sen cambios&gt;"/>
</node>
<node name="italic" value="Cursiva">
<node name="on" value="cursiva"/>
<node name="off" value="normal"/>
<node name="summaryOn" value="cursiva"/>
<node name="summaryOff" value="normal"/>
<node name="unchanged" value="&lt;sen cambios&gt;"/>
</node>
<node name="lineSpacing" value="Interliñado">
@ -384,8 +384,8 @@
<node name="summaryOff" value="Non guionizar as palabras automaticamente"/>
</node>
<node name="allowHyphenations" value="Permitir guionizados">
<node name="on" value="guionizar palabras"/>
<node name="off" value="non guionizar palabras"/>
<node name="summaryOn" value="guionizar palabras"/>
<node name="summaryOff" value="non guionizar palabras"/>
<node name="unchanged" value="&lt;sen cambios&gt;"/>
</node>
<node name="firstLineIndent" value="Sangrar a primeira liña"/>

View file

@ -360,13 +360,13 @@
<node name="boldItalic" value="Félkövér és dőlt"/>
</node>
<node name="bold" value="Félkövér">
<node name="on" value="félkövér"/>
<node name="off" value="normál"/>
<node name="summaryOn" value="félkövér"/>
<node name="summaryOff" value="normál"/>
<node name="unchanged" value="&lt;változatlan&gt;"/>
</node>
<node name="italic" value="Dőlt">
<node name="on" value="dőlt"/>
<node name="off" value="normál"/>
<node name="summaryOn" value="dőlt"/>
<node name="summaryOff" value="normál"/>
<node name="unchanged" value="&lt;változatlan&gt;"/>
</node>
<node name="lineSpacing" value="Sorköz">
@ -384,8 +384,8 @@
<node name="summaryOff" value="Automatikus elválasztás kikapcsolva"/>
</node>
<node name="allowHyphenations" value="Elválasztás engedélyezése">
<node name="on" value="válassza el a szavakat"/>
<node name="off" value="ne válassza el a szavakat"/>
<node name="summaryOn" value="válassza el a szavakat"/>
<node name="summaryOff" value="ne válassza el a szavakat"/>
<node name="unchanged" value="&lt;változatlan&gt;"/>
</node>
<node name="firstLineIndent" value="Első sor behúzása"/>

View file

@ -361,13 +361,13 @@
<node name="boldItalic" value="Grassetto corsivo"/>
</node>
<node name="bold" value="Grassetto">
<node name="on" value="grassetto"/>
<node name="off" value="normale"/>
<node name="summaryOn" value="grassetto"/>
<node name="summaryOff" value="normale"/>
<node name="unchanged" value="&lt;non cambiare&gt;"/>
</node>
<node name="italic" value="Corsivo">
<node name="on" value="corsivo"/>
<node name="off" value="normale"/>
<node name="summaryOn" value="corsivo"/>
<node name="summaryOff" value="normale"/>
<node name="unchanged" value="&lt;non cambiare&gt;"/>
</node>
<node name="lineSpacing" value="Interlinea">
@ -385,8 +385,8 @@
<node name="summaryOff" value="Non sillabare le parole automaticamente"/>
</node>
<node name="allowHyphenations" value="Permetti divisione in sillabe">
<node name="on" value="sillabare le parole"/>
<node name="off" value="Non sillabare le parole"/>
<node name="summaryOn" value="sillabare le parole"/>
<node name="summaryOff" value="Non sillabare le parole"/>
<node name="unchanged" value="&lt;non cambiare&gt;"/>
</node>
<node name="firstLineIndent" value="Rientro alla prima riga"/>

View file

@ -360,13 +360,13 @@
<node name="boldItalic" value="Vet Cursief"/>
</node>
<node name="bold" value="Vet">
<node name="on" value="vet"/>
<node name="off" value="normaal"/>
<node name="summaryOn" value="vet"/>
<node name="summaryOff" value="normaal"/>
<node name="unchanged" value="&lt;ongewijzigd&gt;"/>
</node>
<node name="italic" value="Cursief">
<node name="on" value="cursief"/>
<node name="off" value="normaal"/>
<node name="summaryOn" value="cursief"/>
<node name="summaryOff" value="normaal"/>
<node name="unchanged" value="&lt;ongewijzigd&gt;"/>
</node>
<node name="lineSpacing" value="Regelafstand">
@ -384,8 +384,8 @@
<node name="summaryOff" value="Woorden niet automatisch afbreken"/>
</node>
<node name="allowHyphenations" value="Afbreken">
<node name="on" value="woorden afbreken"/>
<node name="off" value="woorden niet afbreken"/>
<node name="summaryOn" value="woorden afbreken"/>
<node name="summaryOff" value="woorden niet afbreken"/>
<node name="unchanged" value="&lt;ongewijzigd&gt;" />
</node>
<node name="firstLineIndent" value="Eerste regel inspringen" />

View file

@ -360,13 +360,13 @@
<node name="boldItalic" value="Pogrubiony pochyły"/>
</node>
<node name="bold" value="Pogrubienie">
<node name="on" value="pogrubienie"/>
<node name="off" value="zwykłe"/>
<node name="summaryOn" value="pogrubienie"/>
<node name="summaryOff" value="zwykłe"/>
<node name="unchanged" value="&lt;bez zmian&gt;"/>
</node>
<node name="italic" value="Kursywa">
<node name="on" value="kursywa"/>
<node name="off" value="zwykłe"/>
<node name="summaryOn" value="kursywa"/>
<node name="summaryOff" value="zwykłe"/>
<node name="unchanged" value="&lt;bez zmian&gt;"/>
</node>
<node name="lineSpacing" value="Interlinia">
@ -384,8 +384,8 @@
<node name="summaryOff" value="nie dziel wyrazów automatycznie"/>
</node>
<node name="allowHyphenations" value="Zezwalaj na dzielenie wyrazów">
<node name="on" value="dziel wyrazy"/>
<node name="off" value="nie dziel wyrazów"/>
<node name="summaryOn" value="dziel wyrazy"/>
<node name="summaryOff" value="nie dziel wyrazów"/>
<node name="unchanged" value="&lt;bez zmian&gt;"/>
</node>
<node name="firstLineIndent" value="Wcięcie pierwszego wiersza"/>

View file

@ -360,13 +360,13 @@
<node name="boldItalic" value="Ingrosat Cursiv"/>
</node>
<node name="bold" value="Ingrosat">
<node name="on" value="ingrosat"/>
<node name="off" value="normal"/>
<node name="summaryOn" value="ingrosat"/>
<node name="summaryOff" value="normal"/>
<node name="unchanged" value="&lt;neschimbat&gt;"/>
</node>
<node name="italic" value="Cursiv">
<node name="on" value="cursiv"/>
<node name="off" value="normal"/>
<node name="summaryOn" value="cursiv"/>
<node name="summaryOff" value="normal"/>
<node name="unchanged" value="&lt;neschimbat&gt;"/>
</node>
<node name="lineSpacing" value="Spatiere linii">
@ -384,8 +384,8 @@
<node name="summaryOff" value="Nu despartiti în silabe cuvintele în mod automat"/>
</node>
<node name="allowHyphenations" value="Permiteti despartire în silabe">
<node name="on" value="Desparte în silabe cuvintele"/>
<node name="off" value="nu desparti cuvintele în silabe"/>
<node name="summaryOn" value="Desparte în silabe cuvintele"/>
<node name="summaryOff" value="nu desparti cuvintele în silabe"/>
<node name="unchanged" value="&lt;neschimbat&gt;"/>
</node>
<node name="firstLineIndent" value="Aliniaza prima linie"/>

View file

@ -400,14 +400,24 @@
<node name="boldItalic" value="жирный курсив"/>
</node>
<node name="bold" value="Жирный шрифт">
<node name="on" value="использовать жирное начертание"/>
<node name="off" value="использовать нормальное начертание"/>
<node name="unchanged" value="&lt;не менять&gt;"/>
<node name="summaryOn" value="использовать жирное начертание"/>
<node name="summaryOff" value="использовать нормальное начертание"/>
<node name="unchanged" value="не менять"/>
</node>
<node name="italic" value="Курсив">
<node name="on" value="использовать курсивное начертание"/>
<node name="off" value="использовать нормальное начертание"/>
<node name="unchanged" value="&lt;не менять&gt;"/>
<node name="summaryOn" value="использовать курсивное начертание"/>
<node name="summaryOff" value="использовать нормальное начертание"/>
<node name="unchanged" value="не менять"/>
</node>
<node name="underlined" value="Подчёркнутый">
<node name="summaryOn" value="включить"/>
<node name="summaryOff" value="выключить"/>
<node name="unchanged" value="не менять"/>
</node>
<node name="strikedThrough" value="Зачёркнутый">
<node name="summaryOn" value="включить"/>
<node name="summaryOff" value="выключить"/>
<node name="unchanged" value="не менять"/>
</node>
<node name="lineSpacing" value="Интервал">
<node name="unchanged" value="&lt;не менять&gt;"/>
@ -424,8 +434,8 @@
<node name="summaryOff" value="Не расставлять переносы"/>
</node>
<node name="allowHyphenations" value="Переносы">
<node name="on" value="разрешить переносы"/>
<node name="off" value="запретить переносы"/>
<node name="summaryOn" value="разрешить переносы"/>
<node name="summaryOff" value="запретить переносы"/>
<node name="unchanged" value="&lt;не менять&gt;"/>
</node>
<node name="firstLineIndent" value="Красная строка"/>

View file

@ -360,13 +360,13 @@
<node name="boldItalic" value="ตัวหนาและเอียง"/>
</node>
<node name="bold" value="ตัวหนา">
<node name="on" value="ตัวหนา"/>
<node name="off" value="ปกติ"/>
<node name="summaryOn" value="ตัวหนา"/>
<node name="summaryOff" value="ปกติ"/>
<node name="unchanged" value="&lt;ยกเลิก&gt;"/>
</node>
<node name="italic" value="ตัวเอียง">
<node name="on" value="ตัวเอียง"/>
<node name="off" value="ปกติ"/>
<node name="summaryOn" value="ตัวเอียง"/>
<node name="summaryOff" value="ปกติ"/>
<node name="unchanged" value="&lt;ยกเลิก&gt;"/>
</node>
<node name="lineSpacing" value="ระยะห่างระหว่างบรรทัด">
@ -384,8 +384,8 @@
<node name="summaryOff" value="ไม่เพิ่มยัติภังค์อัตโนมัติ"/>
</node>
<node name="allowHyphenations" value="อนุญาตให้ใช้ยัติภังค์">
<node name="on" value="คำยัติภังค์"/>
<node name="off" value="ไม่ใช้คำยัติภังค์"/>
<node name="summaryOn" value="คำยัติภังค์"/>
<node name="summaryOff" value="ไม่ใช้คำยัติภังค์"/>
<node name="unchanged" value="&lt;ยกเลิก&gt;"/>
</node>
<node name="firstLineIndent" value="การเยื้องบรรทัดแรกของย่อหน้า"/>

View file

@ -360,13 +360,13 @@
<node name="boldItalic" value="Жирний курсив"/>
</node>
<node name="bold" value="Жирний">
<node name="on" value="жирний"/>
<node name="off" value="звичайний"/>
<node name="summaryOn" value="жирний"/>
<node name="summaryOff" value="звичайний"/>
<node name="unchanged" value="&lt;не міняти&gt;"/>
</node>
<node name="italic" value="Курсив">
<node name="on" value="курсив"/>
<node name="off" value="звичайний"/>
<node name="summaryOn" value="курсив"/>
<node name="summaryOff" value="звичайний"/>
<node name="unchanged" value="&lt;не міняти&gt;"/>
</node>
<node name="lineSpacing" value="Інтервал">
@ -384,8 +384,8 @@
<node name="summaryOff" value="Не переносити слова автоматично"/>
</node>
<node name="allowHyphenations" value="Перенесення">
<node name="on" value="переносити слова"/>
<node name="off" value="не переносити слова"/>
<node name="summaryOn" value="переносити слова"/>
<node name="summaryOff" value="не переносити слова"/>
<node name="unchanged" value="&lt;не міняти&gt;"/>
</node>
<node name="firstLineIndent" value="Червона стрічка"/>

View file

@ -360,13 +360,13 @@
<node name="boldItalic" value="Đậm nghiêng"/>
</node>
<node name="bold" value="Đậm">
<node name="on" value="đậm"/>
<node name="off" value="thường"/>
<node name="summaryOn" value="đậm"/>
<node name="summaryOff" value="thường"/>
<node name="unchanged" value="&lt;giữ nguyên&gt;"/>
</node>
<node name="italic" value="Nghiêng">
<node name="on" value="nghiêng"/>
<node name="off" value="thường"/>
<node name="summaryOn" value="nghiêng"/>
<node name="summaryOff" value="thường"/>
<node name="unchanged" value="&lt;giữ nguyên&gt;"/>
</node>
<node name="lineSpacing" value="Cách dòng">
@ -384,8 +384,8 @@
<node name="summaryOff" value="Không tách từ một cách tự động"/>
</node>
<node name="allowHyphenations" value="Cho phép Tách từ">
<node name="on" value="tách từ"/>
<node name="off" value="không tách từ"/>
<node name="summaryOn" value="tách từ"/>
<node name="summaryOff" value="không tách từ"/>
<node name="unchanged" value="&lt;giữ nguyên&gt;"/>
</node>
<node name="firstLineIndent" value="Lùi Dòng Đầu"/>

View file

@ -360,13 +360,13 @@
<node name="boldItalic" value="加粗并倾斜"/>
</node>
<node name="bold" value="加粗">
<node name="on" value="加粗"/>
<node name="off" value="正常"/>
<node name="summaryOn" value="加粗"/>
<node name="summaryOff" value="正常"/>
<node name="unchanged" value="&lt;不变&gt;" />
</node>
<node name="italic" value="倾斜">
<node name="on" value="倾斜"/>
<node name="off" value="规则"/>
<node name="summaryOn" value="倾斜"/>
<node name="summaryOff" value="规则"/>
<node name="unchanged" value="&lt;不变&gt;" />
</node>
<node name="lineSpacing" value="行间距">
@ -384,8 +384,8 @@
<node name="summaryOff" value="禁止自动断字"/>
</node>
<node name="allowHyphenations" value="允许断字">
<node name="on" value="断字"/>
<node name="off" value="禁止断字"/>
<node name="summaryOn" value="断字"/>
<node name="summaryOff" value="禁止断字"/>
<node name="unchanged" value="&lt;不变&gt;" />
</node>
<node name="firstLineIndent" value="首行缩进" />

View file

@ -365,13 +365,13 @@
<node name="boldItalic" value="粗斜體"/>
</node>
<node name="bold" value="粗體">
<node name="on" value="粗體"/>
<node name="off" value="正常"/>
<node name="summaryOn" value="粗體"/>
<node name="summaryOff" value="正常"/>
<node name="unchanged" value="&lt;不變&gt;"/>
</node>
<node name="italic" value="斜體">
<node name="on" value="斜體"/>
<node name="off" value="正常"/>
<node name="summaryOn" value="斜體"/>
<node name="summaryOff" value="正常"/>
<node name="unchanged" value="&lt;不變&gt;"/>
</node>
<node name="lineSpacing" value="行距">
@ -389,8 +389,8 @@
<node name="summaryOff" value="不要自動斷字"/>
</node>
<node name="allowHyphenations" value="允許斷字">
<node name="on" value="斷字"/>
<node name="off" value="不要斷字"/>
<node name="summaryOn" value="斷字"/>
<node name="summaryOff" value="不要斷字"/>
<node name="unchanged" value="&lt;不變&gt;"/>
</node>
<node name="firstLineIndent" value="首行縮進"/>

View file

@ -115,6 +115,8 @@ public class PreferenceActivity extends ZLPreferenceActivity {
this, textScreen.Resource, "fontStyle",
baseStyle.BoldOption, baseStyle.ItalicOption
));
textScreen.addOption(baseStyle.UnderlineOption, "underlined");
textScreen.addOption(baseStyle.StrikeThroughOption, "strikedThrough");
final ZLIntegerRangeOption spaceOption = baseStyle.LineSpaceOption;
final String[] spacings = new String[spaceOption.MaxValue - spaceOption.MinValue + 1];
for (int i = 0; i < spacings.length; ++i) {
@ -190,6 +192,14 @@ public class PreferenceActivity extends ZLPreferenceActivity {
this, textScreen.Resource, "italic",
decoration.ItalicOption
));
formatScreen.addPreference(new ZLBoolean3Preference(
this, textScreen.Resource, "underlined",
decoration.UnderlineOption
));
formatScreen.addPreference(new ZLBoolean3Preference(
this, textScreen.Resource, "strikedThrough",
decoration.StrikeThroughOption
));
if (fullDecoration != null) {
final String[] allAlignments = { "unchanged", "left", "right", "center", "justify" };
formatScreen.addPreference(new ZLChoicePreference(

View file

@ -26,8 +26,8 @@ import org.geometerplus.zlibrary.core.options.ZLBoolean3Option;
import org.geometerplus.zlibrary.core.resources.ZLResource;
class ZLBoolean3Preference extends ZLStringListPreference {
private static final String ON = "on";
private static final String OFF = "off";
private static final String ON = "summaryOn";
private static final String OFF = "summaryOff";
private static final String UNCHANGED = "unchanged";
private final ZLBoolean3Option myOption;

View file

@ -468,7 +468,7 @@ public final class FBView extends ZLTextView {
context.setFont(
reader.FooterFontOption.getValue(),
height <= 10 ? height + 3 : height + 1,
height > 10, false, false
height > 10, false, false, false
);
final PagePosition pagePosition = FBView.this.pagePosition();

View file

@ -43,7 +43,7 @@ final class DummyPaintContext extends ZLPaintContext {
}
@Override
protected void setFontInternal(String family, int size, boolean bold, boolean italic, boolean underline) {
protected void setFontInternal(String family, int size, boolean bold, boolean italic, boolean underline, boolean strikeThrought) {
}
@Override

View file

@ -51,8 +51,9 @@ abstract public class ZLPaintContext {
private boolean myFontIsBold;
private boolean myFontIsItalic;
private boolean myFontIsUnderlined;
private boolean myFontIsStrikedThrough;
public final void setFont(String family, int size, boolean bold, boolean italic, boolean underline) {
public final void setFont(String family, int size, boolean bold, boolean italic, boolean underline, boolean strikeThrough) {
if ((family != null) && !myFontFamily.equals(family)) {
myFontFamily = family;
myResetFont = true;
@ -73,16 +74,20 @@ abstract public class ZLPaintContext {
myFontIsUnderlined = underline;
myResetFont = true;
}
if (myFontIsStrikedThrough != strikeThrough) {
myFontIsStrikedThrough = strikeThrough;
myResetFont = true;
}
if (myResetFont) {
myResetFont = false;
setFontInternal(myFontFamily, size, bold, italic, underline);
setFontInternal(myFontFamily, size, bold, italic, underline, strikeThrough);
mySpaceWidth = -1;
myStringHeight = -1;
myDescent = -1;
}
}
abstract protected void setFontInternal(String family, int size, boolean bold, boolean italic, boolean underline);
abstract protected void setFontInternal(String family, int size, boolean bold, boolean italic, boolean underline, boolean strikeThrough);
abstract public void setTextColor(ZLColor color);
final public void setLineColor(ZLColor color) {

View file

@ -34,6 +34,7 @@ public abstract class ZLTextStyle {
public abstract boolean isBold();
public abstract boolean isItalic();
public abstract boolean isUnderline();
public abstract boolean isStrikeThrough();
public abstract int getLeftIndent();
public abstract int getRightIndent();

View file

@ -86,7 +86,7 @@ abstract class ZLTextViewBase extends ZLView {
myTextStyle = style;
myWordHeight = -1;
}
myContext.setFont(style.getFontFamily(), style.getFontSize(), style.isBold(), style.isItalic(), style.isUnderline());
myContext.setFont(style.getFontFamily(), style.getFontSize(), style.isBold(), style.isItalic(), style.isUnderline(), style.isStrikeThrough());
}
final void resetTextStyle() {

View file

@ -39,6 +39,8 @@ public class ZLTextBaseStyle extends ZLTextStyle {
new ZLBooleanOption(GROUP, "Base:italic", false);
public final ZLBooleanOption UnderlineOption =
new ZLBooleanOption(GROUP, "Base:underline", false);
public final ZLBooleanOption StrikeThroughOption =
new ZLBooleanOption(GROUP, "Base:strikeThrough", false);
public final ZLIntegerRangeOption AlignmentOption =
new ZLIntegerRangeOption(GROUP, "Base:alignment", 1, 4, ZLTextAlignmentType.ALIGN_JUSTIFY);
public final ZLIntegerRangeOption LineSpaceOption =
@ -79,6 +81,11 @@ public class ZLTextBaseStyle extends ZLTextStyle {
return UnderlineOption.getValue();
}
@Override
public boolean isStrikeThrough() {
return StrikeThroughOption.getValue();
}
@Override
public int getLeftIndent() {
return 0;

View file

@ -29,6 +29,7 @@ public abstract class ZLTextDecoratedStyle extends ZLTextStyle {
private boolean myIsItalic;
private boolean myIsBold;
private boolean myIsUnderline;
private boolean myIsStrikeThrough;
private int myVerticalShift;
private boolean myIsNotCached = true;
@ -43,6 +44,7 @@ public abstract class ZLTextDecoratedStyle extends ZLTextStyle {
myIsItalic = isItalicInternal();
myIsBold = isBoldInternal();
myIsUnderline = isUnderlineInternal();
myIsStrikeThrough = isStrikeThroughInternal();
myVerticalShift = getVerticalShiftInternal();
myIsNotCached = false;
@ -93,6 +95,15 @@ public abstract class ZLTextDecoratedStyle extends ZLTextStyle {
}
protected abstract boolean isUnderlineInternal();
@Override
public final boolean isStrikeThrough() {
if (myIsNotCached) {
initCache();
}
return myIsStrikeThrough;
}
protected abstract boolean isStrikeThroughInternal();
@Override
public final int getVerticalShift() {
if (myIsNotCached) {

View file

@ -37,8 +37,8 @@ public class ZLTextFullStyleDecoration extends ZLTextStyleDecoration {
public final ZLIntegerOption LineSpacePercentOption;
public ZLTextFullStyleDecoration(String name, int fontSizeDelta, ZLBoolean3 bold, ZLBoolean3 italic, ZLBoolean3 underline, int spaceBefore, int spaceAfter, int leftIndent,int rightIndent, int firstLineIndentDelta, int verticalShift, byte alignment, int lineSpace, ZLBoolean3 allowHyphenations) {
super(name, fontSizeDelta, bold, italic, underline, verticalShift, allowHyphenations);
public ZLTextFullStyleDecoration(String name, int fontSizeDelta, ZLBoolean3 bold, ZLBoolean3 italic, ZLBoolean3 underline, ZLBoolean3 strikeThrough, int spaceBefore, int spaceAfter, int leftIndent,int rightIndent, int firstLineIndentDelta, int verticalShift, byte alignment, int lineSpace, ZLBoolean3 allowHyphenations) {
super(name, fontSizeDelta, bold, italic, underline, strikeThrough, verticalShift, allowHyphenations);
SpaceBeforeOption = new ZLIntegerRangeOption(STYLE, name + ":spaceBefore", -10, 100, spaceBefore);
SpaceAfterOption = new ZLIntegerRangeOption(STYLE, name + ":spaceAfter", -10, 100, spaceAfter);
LeftIndentOption = new ZLIntegerRangeOption(STYLE, name + ":leftIndent", -300, 300, leftIndent);

View file

@ -77,6 +77,18 @@ class ZLTextPartialDecoratedStyle extends ZLTextDecoratedStyle {
}
}
@Override
protected boolean isStrikeThroughInternal() {
switch (myDecoration.StrikeThroughOption.getValue()) {
case B3_TRUE:
return true;
case B3_FALSE:
return false;
default:
return Base.isStrikeThrough();
}
}
@Override
public int getLeftIndent() {
return Base.getLeftIndent();

View file

@ -101,11 +101,12 @@ public class ZLTextStyleCollection {
ZLBoolean3 bold = b3Value(attributes, "bold");
ZLBoolean3 italic = b3Value(attributes, "italic");
ZLBoolean3 underline = b3Value(attributes, "underline");
ZLBoolean3 strikeThrough = b3Value(attributes, "strikeThrough");
int verticalShift = intValue(attributes, "vShift", 0);
ZLBoolean3 allowHyphenations = b3Value(attributes, "allowHyphenations");
if (booleanValue(attributes, "partial")) {
decoration = new ZLTextStyleDecoration(name, fontSizeDelta, bold, italic, underline, verticalShift, allowHyphenations);
decoration = new ZLTextStyleDecoration(name, fontSizeDelta, bold, italic, underline, strikeThrough, verticalShift, allowHyphenations);
} else {
int spaceBefore = intValue(attributes, "spaceBefore", 0);
int spaceAfter = intValue(attributes, "spaceAfter", 0);
@ -128,7 +129,7 @@ public class ZLTextStyleCollection {
}
final int lineSpacePercent = intValue(attributes, "lineSpacingPercent", -1);
decoration = new ZLTextFullStyleDecoration(name, fontSizeDelta, bold, italic, underline, spaceBefore, spaceAfter, leftIndent, rightIndent, firstLineIndentDelta, verticalShift, alignment, lineSpacePercent, allowHyphenations);
decoration = new ZLTextFullStyleDecoration(name, fontSizeDelta, bold, italic, underline, strikeThrough, spaceBefore, spaceAfter, leftIndent, rightIndent, firstLineIndentDelta, verticalShift, alignment, lineSpacePercent, allowHyphenations);
}
String fontFamily = attributes.getValue("family");

View file

@ -33,18 +33,20 @@ public class ZLTextStyleDecoration {
public final ZLBoolean3Option BoldOption;
public final ZLBoolean3Option ItalicOption;
public final ZLBoolean3Option UnderlineOption;
public final ZLBoolean3Option StrikeThroughOption;
public final ZLIntegerOption VerticalShiftOption;
public final ZLBoolean3Option AllowHyphenationsOption;
private final String myName;
public ZLTextStyleDecoration(String name, int fontSizeDelta, ZLBoolean3 bold, ZLBoolean3 italic, ZLBoolean3 underline, int verticalShift, ZLBoolean3 allowHyphenations) {
public ZLTextStyleDecoration(String name, int fontSizeDelta, ZLBoolean3 bold, ZLBoolean3 italic, ZLBoolean3 underline, ZLBoolean3 strikeThrough, int verticalShift, ZLBoolean3 allowHyphenations) {
myName = name;
FontFamilyOption = new ZLStringOption(STYLE, name + ":fontFamily", "");
FontSizeDeltaOption = new ZLIntegerRangeOption(STYLE, name + ":fontSize", -16, 16, fontSizeDelta);
BoldOption = new ZLBoolean3Option(STYLE, name + ":bold", bold);
ItalicOption = new ZLBoolean3Option(STYLE, name + ":italic", italic);
UnderlineOption = new ZLBoolean3Option(STYLE, name + ":underline", underline);
StrikeThroughOption = new ZLBoolean3Option(STYLE, name + ":strikeThrough", strikeThrough);
VerticalShiftOption = new ZLIntegerOption(STYLE, name + ":vShift", verticalShift);
AllowHyphenationsOption = new ZLBoolean3Option(STYLE, name + ":allowHyphenations", allowHyphenations);
}

View file

@ -190,7 +190,7 @@ public final class ZLAndroidPaintContext extends ZLPaintContext {
myCanvas.drawPath(path, myOutlinePaint);
}
protected void setFontInternal(String family, int size, boolean bold, boolean italic, boolean underline) {
protected void setFontInternal(String family, int size, boolean bold, boolean italic, boolean underline, boolean strikeThrought) {
family = realFontFamilyName(family);
final int style = (bold ? Typeface.BOLD : 0) | (italic ? Typeface.ITALIC : 0);
Typeface[] typefaces = myTypefaces.get(family);
@ -226,6 +226,7 @@ public final class ZLAndroidPaintContext extends ZLPaintContext {
myTextPaint.setTypeface(tf);
myTextPaint.setTextSize(size);
myTextPaint.setUnderlineText(underline);
myTextPaint.setStrikeThruText(strikeThrought);
}
@Override