diff options
| author | Roman Kennke <roman@kennke.org> | 2006-11-21 14:14:25 +0000 |
|---|---|---|
| committer | Roman Kennke <roman@kennke.org> | 2006-11-21 14:14:25 +0000 |
| commit | c768f6ecd4c053662755ce4f402c8a03edcfce28 (patch) | |
| tree | e713ddc7bf2b0bae9b33932bdd13c915c8015bb5 /gnu/java/awt/peer/gtk/GtkToolkit.java | |
| parent | afa8741b4c8ea8cc833faffad70aca7b67bd9bb5 (diff) | |
| download | classpath-c768f6ecd4c053662755ce4f402c8a03edcfce28.tar.gz | |
2006-11-21 Roman Kennke <kennke@aicas.com>
* gnu/java/awt/peer/gtk/GdkFontMetrics.java:
Removed. This is now an inner class in GdkFontPeer.
* gnu/java/awt/peer/gtk/CairoGraphics2D.java
(drawString(float,float)): Use text layout cache from
GdkFontPeer.
(getFontMetrics): Delegate to GdkFontPeer.
* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
(getGlyphCodes): Also check array size.
(getGlyphPositions): Also check array size.
* gnu/java/awt/peer/gtk/GdkFontPeer.java
(GdkFontLineMetrics.fm): Removed.
(GdkFontLineMetrics.strikeThroughOffset): Removed.
(GdkFontLineMetrics.strikeThroughThickness): Removed.
(GdkFontLineMetrics.underlineOffset): Removed.
(GdkFontLineMetrics.underlineThickness): Removed.
(GdkFontLineMetrics.GdkFontLineMetrics): Don't take
FontMetrics argument. Don't init removed fields.
(GdkFontLineMetrics.getAscent): Return font peer's field.
(GdkFontLineMetrics.getDescent): Return font peer's field.
(GdkFontLineMetrics.getHeight): Return font peer's field.
(GdkFontLineMetrics.getLeading): Return font peer's field.
(GdkFontLineMetrics.getNumChars): Reformat.
(GdkFontLineMetrics.getStrikeThroughOffset): Return half ascent.
(GdkFontLineMetrics.getStrikeThroughThickness): Return 1.
(GdkFontLineMetrics.getUnderlineOffset): Return font peer's field.
(GdkFontLineMetrics.getUnderlineThickness): Return font peer's field.
(GdkFontMetrics): Moved class in here as inner class.
Make it use the font peer's fields and for the char(s) width
and string width method, use TextLayout to measure the actual widths.
(ascent): New field.
(bundle): Removed.
(DEFAULT_CTX): New constant field.
(descent): New field.
(FONT_METRICS_ASCENT): New constant.
(FONT_METRICS_DESCENT): New constant.
(FONT_METRICS_HEIGHT): New constant.
(FONT_METRICS_MAX_ADVANCE): New constant.
(FONT_METRICS_MAX_ASCENT): New constant.
(FONT_METRICS_MAX_DESCENT): New constant.
(FONT_METRICS_UNDERLINE_OFFSET): New constant.
(FONT_METRICS_UNDERLINE_THICKNESS): New constant.
(height): New field.
(maxAdvance): New field.
(maxAscent): New field.
(maxDescent): New field.
(metrics): New field. Stores a FontMetrics for this font.
(textLayoutCache): New field. Caches TextLayout instances.
(underlineOffset): New field.
(underlineThickness): New field.
(cinit): Don't initialize resource bundle.
(GdkFontPeer): Setup the metrics.
(getFontMetrics): Return stored metrics if possible.
(getLineMetrics): Adapt to new constructor.
(initFont): New helper method.
(setupMetrics): New helper method.
* gnu/java/awt/peer/gtk/GtkToolkit.java
(LRUCache): Made class a static class.
(getFontMetrics): Delegate to GdkFontPeer.
* native/jni/gtk-peer/gdkfont.h
Added new constant defines.
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
(getFontMetrics): Rewritten to fetch the font metrics from
FreeType.
Diffstat (limited to 'gnu/java/awt/peer/gtk/GtkToolkit.java')
| -rw-r--r-- | gnu/java/awt/peer/gtk/GtkToolkit.java | 17 |
1 files changed, 2 insertions, 15 deletions
diff --git a/gnu/java/awt/peer/gtk/GtkToolkit.java b/gnu/java/awt/peer/gtk/GtkToolkit.java index d2721b43f..81367d6b0 100644 --- a/gnu/java/awt/peer/gtk/GtkToolkit.java +++ b/gnu/java/awt/peer/gtk/GtkToolkit.java @@ -115,7 +115,6 @@ import java.awt.peer.WindowPeer; import java.io.InputStream; import java.net.URL; import java.util.HashMap; -import java.util.Hashtable; import java.util.LinkedHashMap; import java.util.Map; import java.util.Properties; @@ -295,7 +294,7 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit "SansSerif" }); } - private class LRUCache extends LinkedHashMap + static class LRUCache extends LinkedHashMap { int max_entries; public LRUCache(int max) @@ -310,23 +309,11 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit } private LRUCache fontCache = new LRUCache(50); - private LRUCache metricsCache = new LRUCache(50); private LRUCache imageCache = new LRUCache(50); public FontMetrics getFontMetrics (Font font) { - synchronized (metricsCache) - { - if (metricsCache.containsKey(font)) - return (FontMetrics) metricsCache.get(font); - } - - FontMetrics m = new GdkFontMetrics (font); - synchronized (metricsCache) - { - metricsCache.put(font, m); - } - return m; + return ((GdkFontPeer) font.getPeer()).getFontMetrics(font); } public Image getImage (String filename) |
