• R/O
  • SSH
  • HTTPS

copper: Commit


Commit MetaInfo

Revision1596 (tree)
Time2020-02-20 14:44:31
Authormiyabe

Log Message

(empty log message)

Change Summary

Incremental Difference

--- copper/branches/3.1/sakae/sakae-core/src/main/java/jp/cssj/sakae/gc/text/CharacterHandler.java (revision 1595)
+++ copper/branches/3.1/sakae/sakae-core/src/main/java/jp/cssj/sakae/gc/text/CharacterHandler.java (revision 1596)
@@ -5,7 +5,7 @@
55 /**
66 * 文字列からグリフに変換するために文字列を処理します。
77 *
8- * @author <a href="mailto:tatsuhiko at miya dot be">MIYABE Tatsuhiko</a>
8+ * @author MIYABE Tatsuhiko
99 * @version $Id$
1010 */
1111 public interface CharacterHandler {
@@ -33,9 +33,16 @@
3333 public void quad(Quad quad);
3434
3535 /**
36+ * テキストを区切ります。
37+ *
38+ * <b>このメソッドはwordBreak()を呼びます。</b>
39+ */
40+ public void flush();
41+
42+ /**
3643 * 段落を終わります。
3744 *
38- * <b>このメソッドはwordBrak()を呼びます。</b>
45+ * <b>このメソッドはwordBreak()を呼びます。</b>
3946 */
40- public void flush();
47+ public void finish();
4148 }
--- copper/branches/3.1/sakae/sakae-core/src/main/java/jp/cssj/sakae/gc/text/GlyphHandler.java (revision 1595)
+++ copper/branches/3.1/sakae/sakae-core/src/main/java/jp/cssj/sakae/gc/text/GlyphHandler.java (revision 1596)
@@ -38,4 +38,9 @@
3838 public void quad(Quad quad);
3939
4040 public void flush();
41+
42+ /**
43+ * テキストの書き出しを終了します。
44+ */
45+ public void finish();
4146 }
--- copper/branches/3.1/sakae/sakae-core/src/main/java/jp/cssj/sakae/gc/text/hyphenation/impl/DefaultTextUnitizer.java (revision 1595)
+++ copper/branches/3.1/sakae/sakae-core/src/main/java/jp/cssj/sakae/gc/text/hyphenation/impl/DefaultTextUnitizer.java (revision 1596)
@@ -12,7 +12,7 @@
1212 * Exp $
1313 */
1414 class DefaultTextUnitizer implements FilterGlyphHandler {
15- private final BindingRule bindingRule;
15+ protected BindingRule hyph;
1616
1717 private GlyphHandler glyphHandler;
1818
@@ -23,8 +23,8 @@
2323
2424 private Quad beforeQuad = null;
2525
26- public DefaultTextUnitizer(BindingRule bindingRule) {
27- this.bindingRule = bindingRule;
26+ public DefaultTextUnitizer(BindingRule hyph) {
27+ this.hyph = hyph;
2828 }
2929
3030 public void setGlyphHandler(GlyphHandler glyphHandler) {
@@ -52,6 +52,7 @@
5252
5353 public void quad(Quad quad) {
5454 String str = quad.getString();
55+ // System.err.println("TU QUAD: " + quad + "/" + Integer.toHexString(this.prevChar));
5556 if (str == Quad.BREAK) {
5657 // CONTINUE_BEFORE, CONTINUE_AFTERを除いて文字列を区切る
5758 if (this.prevChar != 0 && this.prevChar != '\u2060') {
@@ -72,6 +73,10 @@
7273 }
7374 } else if (str == Quad.CONTINUE_AFTER) {
7475 // 前の文字として扱う(前の文字列にくっつける...</span>)
76+ if (this.prevChar == '\u200B') {
77+ this.internalFlush();
78+ this.prevChar = '\u2060';
79+ }
7580 } else if (str.length() == 0) {
7681 // 前の文字として扱う(前後にくっつける)
7782 if (this.prevChar == '\u200B') {
@@ -104,6 +109,14 @@
104109 this.internalFlush();
105110 }
106111
112+ public void finish() {
113+ if (this.beforeQuad != null) {
114+ this.glyphHandler.quad(this.beforeQuad);
115+ this.beforeQuad = null;
116+ }
117+ this.glyphHandler.finish();
118+ }
119+
107120 /**
108121 *
109122 * @param c1
@@ -114,10 +127,8 @@
114127 * 文字数
115128 */
116129 private void nextGlyph(char c1, char c2, int charCount) {
117- if (this.prevChar != 0
118- && this.prevChar != '\u2060'
119- && (this.prevChar == '\u200B' || !this.bindingRule.atomic(
120- this.prevChar, c1))) {
130+ if (this.prevChar != 0 && this.prevChar != '\u2060'
131+ && (this.prevChar == '\u200B' || !this.hyph.atomic(this.prevChar, c1))) {
121132 this.internalFlush();
122133 }
123134 this.prevChar = c2;
--- copper/branches/3.1/sakae/sakae-core/src/main/java/jp/cssj/sakae/gc/text/layout/FilterCharacterHandler.java (revision 1595)
+++ copper/branches/3.1/sakae/sakae-core/src/main/java/jp/cssj/sakae/gc/text/layout/FilterCharacterHandler.java (revision 1596)
@@ -31,6 +31,10 @@
3131 this.characterHandler.flush();
3232 }
3333
34+ public void finish() {
35+ this.characterHandler.flush();
36+ }
37+
3438 public void quad(Quad quad) {
3539 this.characterHandler.quad(quad);
3640 }
--- copper/branches/3.1/sakae/sakae-core/src/main/java/jp/cssj/sakae/gc/text/layout/SimpleLayoutGlyphHandler.java (revision 1595)
+++ copper/branches/3.1/sakae/sakae-core/src/main/java/jp/cssj/sakae/gc/text/layout/SimpleLayoutGlyphHandler.java (revision 1596)
@@ -98,4 +98,8 @@
9898 public void flush() {
9999 // ignore
100100 }
101+
102+ public void finish() {
103+ // ignore
104+ }
101105 }
--- copper/branches/3.1/sakae/sakae-pdf/src/main/java/jp/cssj/sakae/pdf/font/FontManagerImpl.java (revision 1595)
+++ copper/branches/3.1/sakae/sakae-pdf/src/main/java/jp/cssj/sakae/pdf/font/FontManagerImpl.java (revision 1596)
@@ -250,5 +250,10 @@
250250 this.glyphBreak();
251251 this.glyphHandler.flush();
252252 }
253+
254+ public void finish() {
255+ this.glyphBreak();
256+ this.glyphHandler.finish();
257+ }
253258 }
254259 }
\ No newline at end of file
Show on old repository browser