annotate dwt/custom/StyleRange.d @ 238:380bad9f6852

reverted char[] to String
author Frank Benoit <benoit@tionex.de>
date Mon, 05 May 2008 00:42:55 +0200
parents cd8dc3f19679
children ce446666f5a2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
115
52b32f5cb1e0 many file checked for switch default
Frank Benoit <benoit@tionex.de>
parents: 108
diff changeset
1 /*******************************************************************************
95
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * Copyright (c) 2000, 2006 IBM Corporation and others.
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * IBM Corporation - initial API and implementation
108
0f12f6bb9739 author notice
Frank Benoit <benoit@tionex.de>
parents: 102
diff changeset
10 * Port to the D programming language:
0f12f6bb9739 author notice
Frank Benoit <benoit@tionex.de>
parents: 102
diff changeset
11 * Frank Benoit <benoit@tionex.de>
95
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 *******************************************************************************/
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13 module dwt.custom.StyleRange;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14
238
380bad9f6852 reverted char[] to String
Frank Benoit <benoit@tionex.de>
parents: 187
diff changeset
15 import dwt.dwthelper.utils;
380bad9f6852 reverted char[] to String
Frank Benoit <benoit@tionex.de>
parents: 187
diff changeset
16
95
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 import dwt.DWT;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 import dwt.graphics.Color;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 import dwt.graphics.TextStyle;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 import dwt.internal.CloneableCompatibility;
102
12e3e0e477cd package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents: 95
diff changeset
22 import dwt.custom.StyleRange;
12e3e0e477cd package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents: 95
diff changeset
23 import dwt.custom.TextChangedEvent;
12e3e0e477cd package custom, module and imports ok
Frank Benoit <benoit@tionex.de>
parents: 95
diff changeset
24 import dwt.custom.TextChangingEvent;
95
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 static import tango.text.Text;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 alias tango.text.Text.Text!(char) StringBuffer;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 public class StyleRange : TextStyle, CloneableCompatibility {
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 /**
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 * the start offset of the range, zero-based from the document start
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 */
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 public int start;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 /**
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 * the length of the range
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 */
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 public int length;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 /**
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 * the font style of the range. It may be a combination of
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 * DWT.NORMAL, DWT.ITALIC or DWT.BOLD
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 *
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 * Note: the font style is not used if the <code>font</code> attribute
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 * is set
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 */
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 public int fontStyle = DWT.NORMAL;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49
187
cd8dc3f19679 Fix: missing styles in StyleRange
Frank Benoit <benoit@tionex.de>
parents: 152
diff changeset
50 /++
cd8dc3f19679 Fix: missing styles in StyleRange
Frank Benoit <benoit@tionex.de>
parents: 152
diff changeset
51 + DWT extension for clone implementation
cd8dc3f19679 Fix: missing styles in StyleRange
Frank Benoit <benoit@tionex.de>
parents: 152
diff changeset
52 +/
cd8dc3f19679 Fix: missing styles in StyleRange
Frank Benoit <benoit@tionex.de>
parents: 152
diff changeset
53 protected this( StyleRange other ){
cd8dc3f19679 Fix: missing styles in StyleRange
Frank Benoit <benoit@tionex.de>
parents: 152
diff changeset
54 super( other );
cd8dc3f19679 Fix: missing styles in StyleRange
Frank Benoit <benoit@tionex.de>
parents: 152
diff changeset
55 start = other.start;
cd8dc3f19679 Fix: missing styles in StyleRange
Frank Benoit <benoit@tionex.de>
parents: 152
diff changeset
56 length = other.length;
cd8dc3f19679 Fix: missing styles in StyleRange
Frank Benoit <benoit@tionex.de>
parents: 152
diff changeset
57 fontStyle = other.fontStyle;
cd8dc3f19679 Fix: missing styles in StyleRange
Frank Benoit <benoit@tionex.de>
parents: 152
diff changeset
58 }
cd8dc3f19679 Fix: missing styles in StyleRange
Frank Benoit <benoit@tionex.de>
parents: 152
diff changeset
59
95
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 /**
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 * Create a new style range with no styles
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 *
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63 * @since 3.2
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 */
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 public this() {
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 super(null, null, null);
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 }
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 /**
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 * Create a new style range.
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 *
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 * @param start start offset of the style
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 * @param length length of the style
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 * @param foreground foreground color of the style, null if none
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 * @param background background color of the style, null if none
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 */
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 public this(int start, int length, Color foreground, Color background) {
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 super(null, foreground, background);
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 this.start = start;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 this.length = length;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 }
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 /**
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 * Create a new style range.
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 *
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 * @param start start offset of the style
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 * @param length length of the style
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 * @param foreground foreground color of the style, null if none
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 * @param background background color of the style, null if none
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 * @param fontStyle font style of the style, may be DWT.NORMAL, DWT.ITALIC or DWT.BOLD
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 */
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 public this(int start, int length, Color foreground, Color background, int fontStyle) {
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 this(start, length, foreground, background);
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 this.fontStyle = fontStyle;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 }
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 /**
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 * Compares the argument to the receiver, and returns true
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 * if they represent the <em>same</em> object using a class
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 * specific comparison.
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 *
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 * @param object the object to compare with this object
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 * @return <code>true</code> if the object is the same as this object and <code>false</code> otherwise
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 *
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 * @see #hashCode()
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 */
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 public override int opEquals(Object object) {
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 if (object is this) return true;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 if (auto style = cast(StyleRange) object ) {
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 if (start !is style.start) return false;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 if (length !is style.length) return false;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 return similarTo(style);
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 }
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114 return false;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 }
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 /**
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 * Returns an integer hash code for the receiver. Any two
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 * objects that return <code>true</code> when passed to
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 * <code>equals</code> must return the same value for this
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 * method.
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 *
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 * @return the receiver's hash
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 *
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 * @see #equals(Object)
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 */
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 public override hash_t toHash() {
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 return super.toHash() ^ fontStyle;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 }
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 bool isVariableHeight() {
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 return font !is null || metrics !is null || rise !is 0;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 }
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 /**
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 * Returns whether or not the receiver is unstyled (i.e., does not have any
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 * style attributes specified).
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 *
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 * @return true if the receiver is unstyled, false otherwise.
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 */
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 public bool isUnstyled() {
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 if (font !is null) return false;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 if (rise !is 0) return false;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 if (metrics !is null) return false;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 if (foreground !is null) return false;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 if (background !is null) return false;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 if (fontStyle !is DWT.NORMAL) return false;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 if (underline) return false;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 if (strikeout) return false;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 return true;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 }
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151 /**
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 * Compares the specified object to this StyleRange and answer if the two
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 * are similar. The object must be an instance of StyleRange and have the
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 * same field values for except for start and length.
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 *
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 * @param style the object to compare with this object
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 * @return true if the objects are similar, false otherwise
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 */
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 public bool similarTo(StyleRange style) {
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 if (!super.opEquals(style)) return false;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 if (fontStyle !is style.fontStyle) return false;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162 return true;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 }
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 /**
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166 * Returns a new StyleRange with the same values as this StyleRange.
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 *
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168 * @return a shallow copy of this StyleRange
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 */
152
17f8449522fd overloads second walkthrough
Frank Benoit <benoit@tionex.de>
parents: 115
diff changeset
170 public /+override+/ Object clone() {
187
cd8dc3f19679 Fix: missing styles in StyleRange
Frank Benoit <benoit@tionex.de>
parents: 152
diff changeset
171 return new StyleRange( this );
95
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172 }
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174 /**
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 * Returns a string containing a concise, human-readable
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176 * description of the receiver.
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177 *
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178 * @return a string representation of the StyleRange
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 */
238
380bad9f6852 reverted char[] to String
Frank Benoit <benoit@tionex.de>
parents: 187
diff changeset
180 public override String toString() {
95
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181 StringBuffer buffer = new StringBuffer();
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182 buffer.append("StyleRange {");
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 buffer.append(start);
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184 buffer.append(", ");
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185 buffer.append(length);
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186 buffer.append(", fontStyle=");
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
187 switch (fontStyle) {
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
188 case DWT.BOLD:
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
189 buffer.append("bold");
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
190 break;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191 case DWT.ITALIC:
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
192 buffer.append("italic");
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
193 break;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
194 case DWT.BOLD | DWT.ITALIC:
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
195 buffer.append("bold-italic");
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
196 break;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
197 default:
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
198 buffer.append("normal");
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
199 }
238
380bad9f6852 reverted char[] to String
Frank Benoit <benoit@tionex.de>
parents: 187
diff changeset
200 String str = super.toString();
95
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
201 int index = tango.text.Util.locate( str, '{');
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
202 if( index is str.length ) index = -1;
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
203 str = str[ index + 1 .. $ ];
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
204 if (str.length > 1) buffer.append(", ");
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
205 buffer.append(str);
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
206 return buffer.toString();
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
207 }
d9e5954ee27d StyleRange
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
208 }