37 |
|
|
38 |
|
|
39 |
package gnu.java.awt.peer.gtk; |
package gnu.java.awt.peer.gtk; |
40 |
import java.awt.peer.FontPeer; |
|
41 |
import java.awt.*; |
import gnu.classpath.Configuration; |
42 |
import java.awt.geom.*; |
import gnu.java.awt.peer.ClasspathFontPeer; |
43 |
import java.awt.font.*; |
|
44 |
|
import java.awt.Font; |
45 |
|
import java.awt.FontMetrics; |
46 |
|
import java.awt.font.FontRenderContext; |
47 |
|
import java.awt.font.GlyphVector; |
48 |
|
import java.awt.font.LineMetrics; |
49 |
|
import java.awt.geom.Rectangle2D; |
50 |
import java.util.Locale; |
import java.util.Locale; |
51 |
import java.util.Map; |
import java.util.Map; |
52 |
import java.util.ResourceBundle; |
import java.util.ResourceBundle; |
|
import java.util.MissingResourceException; |
|
53 |
import java.text.CharacterIterator; |
import java.text.CharacterIterator; |
|
import java.text.AttributedCharacterIterator; |
|
54 |
import java.text.StringCharacterIterator; |
import java.text.StringCharacterIterator; |
|
import gnu.classpath.Configuration; |
|
|
import gnu.java.awt.peer.ClasspathFontPeer; |
|
55 |
|
|
56 |
public class GdkFontPeer extends ClasspathFontPeer |
public class GdkFontPeer extends ClasspathFontPeer |
57 |
{ |
{ |
83 |
private native void dispose (); |
private native void dispose (); |
84 |
private native void setFont (String family, int style, int size, boolean useGraphics2D); |
private native void setFont (String family, int style, int size, boolean useGraphics2D); |
85 |
|
|
86 |
|
native void getFontMetrics(double [] metrics); |
87 |
|
native void getTextMetrics(String str, double [] metrics); |
88 |
|
|
89 |
protected void finalize () |
protected void finalize () |
90 |
{ |
{ |
91 |
if (GtkToolkit.useGraphics2D ()) |
if (GtkToolkit.useGraphics2D ()) |
163 |
|
|
164 |
public boolean canDisplay (Font font, char c) |
public boolean canDisplay (Font font, char c) |
165 |
{ |
{ |
166 |
throw new UnsupportedOperationException (); |
// FIXME: inquire with pango |
167 |
|
return true; |
168 |
} |
} |
169 |
|
|
170 |
public int canDisplayUpTo (Font font, CharacterIterator i, int start, int limit) |
public int canDisplayUpTo (Font font, CharacterIterator i, int start, int limit) |
171 |
{ |
{ |
172 |
throw new UnsupportedOperationException (); |
// FIXME: inquire with pango |
173 |
|
return -1; |
174 |
} |
} |
175 |
|
|
176 |
|
private native GdkGlyphVector getGlyphVector(String txt, |
177 |
|
Font f, |
178 |
|
FontRenderContext ctx); |
179 |
|
|
180 |
public GlyphVector createGlyphVector (Font font, |
public GlyphVector createGlyphVector (Font font, |
181 |
FontRenderContext ctx, |
FontRenderContext ctx, |
182 |
CharacterIterator i) |
CharacterIterator i) |
183 |
{ |
{ |
184 |
return new GdkGlyphVector(font, this, ctx, buildString (i)); |
return getGlyphVector(buildString (i), font, ctx); |
185 |
} |
} |
186 |
|
|
187 |
public GlyphVector createGlyphVector (Font font, |
public GlyphVector createGlyphVector (Font font, |
188 |
FontRenderContext ctx, |
FontRenderContext ctx, |
189 |
int[] glyphCodes) |
int[] glyphCodes) |
190 |
{ |
{ |
191 |
return new GdkGlyphVector (font, this, ctx, glyphCodes); |
return null; |
192 |
|
// return new GdkGlyphVector (font, this, ctx, glyphCodes); |
193 |
} |
} |
194 |
|
|
195 |
public byte getBaselineFor (Font font, char c) |
public byte getBaselineFor (Font font, char c) |
271 |
public Rectangle2D getStringBounds (Font font, CharacterIterator ci, |
public Rectangle2D getStringBounds (Font font, CharacterIterator ci, |
272 |
int begin, int limit, FontRenderContext frc) |
int begin, int limit, FontRenderContext frc) |
273 |
{ |
{ |
274 |
throw new UnsupportedOperationException (); |
GdkGlyphVector gv = getGlyphVector(buildString (ci, begin, limit), font, frc); |
275 |
|
return gv.getVisualBounds(); |
276 |
} |
} |
277 |
|
|
278 |
public boolean hasUniformLineMetrics (Font font) |
public boolean hasUniformLineMetrics (Font font) |