Mercurial > projects > dwt-linux
comparison dwt/graphics/TextLayout.d @ 246:f08216d53777
Fix merge bug in TextLayout
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Mon, 19 May 2008 17:08:39 +0200 |
parents | ce446666f5a2 |
children | 5a30aa9820f3 |
comparison
equal
deleted
inserted
replaced
245:239b9a56bd5f | 246:f08216d53777 |
---|---|
75 int[] invalidOffsets; | 75 int[] invalidOffsets; |
76 // LTR_MARK LEFT-TO-RIGHT MARK | 76 // LTR_MARK LEFT-TO-RIGHT MARK |
77 // RTL_MARK RIGHT-TO-LEFT MARK | 77 // RTL_MARK RIGHT-TO-LEFT MARK |
78 // ZWS ZERO WIDTH SPACE | 78 // ZWS ZERO WIDTH SPACE |
79 // ZWNBS ZERO WIDTH NO-BREAK SPACE | 79 // ZWNBS ZERO WIDTH NO-BREAK SPACE |
80 static const dchar LTR_MARK = '\u200E', RTL_MARK = '\u200F', ZWS = '\u200B', ZWNBS = '\uFEFF'; | 80 static const dchar LTR_MARK = '\u200E'; // x"E2 80 8E" LEFT-TO-RIGHT MARK |
81 static const String STR_LTR_MARK = "\u200E", STR_RTL_MARK = "\u200F", STR_ZWS = "\u200B", STR_ZWNBS = "\uFEFF"; | 81 static const dchar RTL_MARK = '\u200F'; // x"E2 80 8F" RIGHT-TO-LEFT MARK |
82 static const dchar ZWS = '\u200B'; // x"E2 80 8B" ZERO WIDTH SPACE | |
83 static const dchar ZWNBS = '\uFEFF'; // x"EF BB BF" ZERO WIDTH NO-BREAK SPACE | |
84 static const String STR_LTR_MARK = "\u200E"; | |
85 static const String STR_RTL_MARK = "\u200F"; | |
86 static const String STR_ZWS = "\u200B"; | |
87 static const String STR_ZWNBS = "\uFEFF"; | |
82 | 88 |
83 /** | 89 /** |
84 * Constructs a new instance of this class on the given device. | 90 * Constructs a new instance of this class on the given device. |
85 * <p> | 91 * <p> |
86 * You must dispose the text layout when it is no longer required. | 92 * You must dispose the text layout when it is no longer required. |
157 chars[ oldPos + lineIndex*6 .. oldPos + lineIndex*6 + pos - oldPos ] = | 163 chars[ oldPos + lineIndex*6 .. oldPos + lineIndex*6 + pos - oldPos ] = |
158 segmentsText[ oldPos .. pos ]; | 164 segmentsText[ oldPos .. pos ]; |
159 oldPos = pos; | 165 oldPos = pos; |
160 lineIndex++; | 166 lineIndex++; |
161 } | 167 } |
162 segmentsText.getChars(oldPos, segementsLength, chars, oldPos + lineIndex * 2); | 168 segmentsText.getChars(oldPos, segementsLength, chars, oldPos + lineIndex * 6); |
163 chars[ oldPos + lineIndex*6 .. oldPos + lineIndex*6 + segementsLength - oldPos ] = | |
164 segmentsText[ oldPos .. segementsLength ]; | |
165 String buffer = chars;// Converter.wcsToMbcs(null, chars, false); | 169 String buffer = chars;// Converter.wcsToMbcs(null, chars, false); |
166 | 170 |
167 OS.pango_layout_set_text (layout, buffer.ptr, buffer.length); | 171 OS.pango_layout_set_text (layout, buffer.ptr, buffer.length); |
168 ptr = OS.pango_layout_get_text(layout); | 172 ptr = OS.pango_layout_get_text(layout); |
169 } else { | 173 } else { |