Initial revision
From-SVN: r102074
This commit is contained in:
@@ -0,0 +1,126 @@
|
||||
/* FontRenderContext.java
|
||||
Copyright (C) 2002, 2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 USA.
|
||||
|
||||
Linking this library statically or dynamically with other modules is
|
||||
making a combined work based on this library. Thus, the terms and
|
||||
conditions of the GNU General Public License cover the whole
|
||||
combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent
|
||||
modules, and to copy and distribute the resulting executable under
|
||||
terms of your choice, provided that you also meet, for each linked
|
||||
independent module, the terms and conditions of the license of that
|
||||
module. An independent module is a module which is not derived from
|
||||
or based on this library. If you modify this library, you may extend
|
||||
this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.awt.font;
|
||||
|
||||
import java.awt.geom.AffineTransform;
|
||||
|
||||
/**
|
||||
* @author Michael Koch
|
||||
*/
|
||||
public class FontRenderContext
|
||||
{
|
||||
private AffineTransform affineTransform;
|
||||
private boolean isAntiAliased;
|
||||
private boolean usesFractionalMetrics;
|
||||
|
||||
/**
|
||||
* Construct a new <code>FontRenderContext</code>.
|
||||
*/
|
||||
protected FontRenderContext()
|
||||
{
|
||||
// Do nothing here.
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new <code>FontRenderContext</code>.
|
||||
*/
|
||||
public FontRenderContext (AffineTransform tx, boolean isAntiAliased,
|
||||
boolean usesFractionalMetrics)
|
||||
{
|
||||
if (tx != null
|
||||
&& !tx.isIdentity ())
|
||||
{
|
||||
this.affineTransform = new AffineTransform (tx);
|
||||
}
|
||||
|
||||
this.isAntiAliased = isAntiAliased;
|
||||
this.usesFractionalMetrics = usesFractionalMetrics;
|
||||
}
|
||||
|
||||
public boolean equals (Object obj)
|
||||
{
|
||||
if (! (obj instanceof FontRenderContext))
|
||||
return false;
|
||||
|
||||
return equals ((FontRenderContext) obj);
|
||||
}
|
||||
|
||||
public boolean equals (FontRenderContext rhs)
|
||||
{
|
||||
return (affineTransform.equals (rhs.getTransform ())
|
||||
&& isAntiAliased == rhs.isAntiAliased ()
|
||||
&& usesFractionalMetrics == rhs.usesFractionalMetrics ());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Retrieves the affine transform for scaling typographical points
|
||||
* to raster pixels.
|
||||
*
|
||||
* @return a clone of the transform object.
|
||||
*/
|
||||
public AffineTransform getTransform ()
|
||||
{
|
||||
if (affineTransform == null)
|
||||
return new AffineTransform ();
|
||||
else
|
||||
return new AffineTransform (affineTransform);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the hash code of the font render context.
|
||||
*/
|
||||
public int hashCode ()
|
||||
{
|
||||
// FIXME: check what SUN does here.
|
||||
return affineTransform == null ? 0 : affineTransform.hashCode ();
|
||||
}
|
||||
|
||||
public boolean isAntiAliased ()
|
||||
{
|
||||
return isAntiAliased;
|
||||
}
|
||||
|
||||
public boolean usesFractionalMetrics ()
|
||||
{
|
||||
return usesFractionalMetrics;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
/* GlyphJustificationInfo.java
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 USA.
|
||||
|
||||
Linking this library statically or dynamically with other modules is
|
||||
making a combined work based on this library. Thus, the terms and
|
||||
conditions of the GNU General Public License cover the whole
|
||||
combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent
|
||||
modules, and to copy and distribute the resulting executable under
|
||||
terms of your choice, provided that you also meet, for each linked
|
||||
independent module, the terms and conditions of the license of that
|
||||
module. An independent module is a module which is not derived from
|
||||
or based on this library. If you modify this library, you may extend
|
||||
this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.awt.font;
|
||||
|
||||
/**
|
||||
* @author Michael Koch
|
||||
*/
|
||||
public final class GlyphJustificationInfo
|
||||
{
|
||||
public static final int PRIORITY_KASHIDA = 0;
|
||||
public static final int PRIORITY_WHITESPACE = 1;
|
||||
public static final int PRIORITY_INTERCHAR = 2;
|
||||
public static final int PRIORITY_NONE = 3;
|
||||
|
||||
public final float weight;
|
||||
public final int growPriority;
|
||||
public final boolean growAbsorb;
|
||||
public final float growLeftLimit;
|
||||
public final float growRightLimit;
|
||||
public final int shrinkPriority;
|
||||
public final boolean shrinkAbsorb;
|
||||
public final float shrinkLeftLimit;
|
||||
public final float shrinkRightLimit;
|
||||
|
||||
public GlyphJustificationInfo (float weight, boolean growAbsorb,
|
||||
int growPriority, float growLeftLimit,
|
||||
float growRightLimit, boolean shrinkAbsorb,
|
||||
int shrinkPriority, float shrinkLeftLimit,
|
||||
float shrinkRightLimit)
|
||||
{
|
||||
this.weight = weight;
|
||||
this.growAbsorb = growAbsorb;
|
||||
this.growPriority = growPriority;
|
||||
this.growLeftLimit = growLeftLimit;
|
||||
this.growRightLimit = growRightLimit;
|
||||
this.shrinkAbsorb = shrinkAbsorb;
|
||||
this.shrinkPriority = shrinkPriority;
|
||||
this.shrinkLeftLimit = shrinkLeftLimit;
|
||||
this.shrinkRightLimit = shrinkRightLimit;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,134 @@
|
||||
/* GlyphMetrics.java
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 USA.
|
||||
|
||||
Linking this library statically or dynamically with other modules is
|
||||
making a combined work based on this library. Thus, the terms and
|
||||
conditions of the GNU General Public License cover the whole
|
||||
combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent
|
||||
modules, and to copy and distribute the resulting executable under
|
||||
terms of your choice, provided that you also meet, for each linked
|
||||
independent module, the terms and conditions of the license of that
|
||||
module. An independent module is a module which is not derived from
|
||||
or based on this library. If you modify this library, you may extend
|
||||
this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.awt.font;
|
||||
|
||||
import java.awt.geom.Rectangle2D;
|
||||
|
||||
/**
|
||||
* @author Michael Koch
|
||||
*/
|
||||
public final class GlyphMetrics
|
||||
{
|
||||
public static final byte COMBINING = 2;
|
||||
public static final byte COMPONENT = 3;
|
||||
public static final byte LIGATURE = 1;
|
||||
public static final byte STANDARD = 0;
|
||||
public static final byte WHITESPACE = 4;
|
||||
|
||||
private boolean horizontal;
|
||||
private float advanceX;
|
||||
private float advanceY;
|
||||
private Rectangle2D bounds;
|
||||
private byte glyphType;
|
||||
|
||||
public GlyphMetrics (boolean horizontal, float advanceX, float advanceY,
|
||||
Rectangle2D bounds, byte glyphType)
|
||||
{
|
||||
this.horizontal = horizontal;
|
||||
this.advanceX = advanceX;
|
||||
this.advanceY = advanceY;
|
||||
this.bounds = bounds;
|
||||
this.glyphType = glyphType;
|
||||
}
|
||||
|
||||
public GlyphMetrics (float advance, Rectangle2D bounds, byte glyphType)
|
||||
{
|
||||
this (true, advance, advance, bounds, glyphType);
|
||||
}
|
||||
|
||||
public float getAdvance ()
|
||||
{
|
||||
return horizontal ? advanceX : advanceY;
|
||||
}
|
||||
|
||||
public float getAdvanceX ()
|
||||
{
|
||||
return advanceX;
|
||||
}
|
||||
|
||||
public float getAdvanceY ()
|
||||
{
|
||||
return advanceY;
|
||||
}
|
||||
|
||||
public Rectangle2D getBounds2D ()
|
||||
{
|
||||
return bounds;
|
||||
}
|
||||
|
||||
public float getLSB ()
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public float getRSB ()
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public int getType ()
|
||||
{
|
||||
return glyphType;
|
||||
}
|
||||
|
||||
public boolean isCombining ()
|
||||
{
|
||||
return (glyphType == COMBINING);
|
||||
}
|
||||
|
||||
public boolean isComponent ()
|
||||
{
|
||||
return (glyphType == COMPONENT);
|
||||
}
|
||||
|
||||
public boolean isLigature()
|
||||
{
|
||||
return (glyphType == LIGATURE);
|
||||
}
|
||||
|
||||
public boolean isStandard()
|
||||
{
|
||||
return (glyphType == STANDARD);
|
||||
}
|
||||
|
||||
public boolean isWhitespace()
|
||||
{
|
||||
return (glyphType == WHITESPACE);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,145 @@
|
||||
/* GlyphVector.java
|
||||
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 USA.
|
||||
|
||||
Linking this library statically or dynamically with other modules is
|
||||
making a combined work based on this library. Thus, the terms and
|
||||
conditions of the GNU General Public License cover the whole
|
||||
combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent
|
||||
modules, and to copy and distribute the resulting executable under
|
||||
terms of your choice, provided that you also meet, for each linked
|
||||
independent module, the terms and conditions of the license of that
|
||||
module. An independent module is a module which is not derived from
|
||||
or based on this library. If you modify this library, you may extend
|
||||
this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.awt.font;
|
||||
|
||||
import java.awt.Font;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.Shape;
|
||||
import java.awt.geom.AffineTransform;
|
||||
import java.awt.geom.Point2D;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
|
||||
/**
|
||||
* @author Michael Koch
|
||||
*/
|
||||
public abstract class GlyphVector implements Cloneable
|
||||
{
|
||||
public static final int FLAG_COMPLEX_GLYPHS = 8;
|
||||
public static final int FLAG_HAS_POSITION_ADJUSTMENTS = 2;
|
||||
public static final int FLAG_HAS_TRANSFORMS = 1;
|
||||
public static final int FLAG_MASK = 15;
|
||||
public static final int FLAG_RUN_RTL = 4;
|
||||
|
||||
/**
|
||||
* Constructs a <code>GlyphVector</code> object.
|
||||
*/
|
||||
public GlyphVector ()
|
||||
{
|
||||
}
|
||||
|
||||
public abstract boolean equals (GlyphVector set);
|
||||
|
||||
public abstract Font getFont ();
|
||||
|
||||
public abstract FontRenderContext getFontRenderContext ();
|
||||
|
||||
public int getGlyphCharIndex (int glyphIndex)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public int[] getGlyphCharIndices (int beginGlyphIndex, int numEntries,
|
||||
int[] codeReturn)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public abstract int getGlyphCode (int glyphIndex);
|
||||
|
||||
public abstract int[] getGlyphCodes (int beginGlyphIndex, int numEntries,
|
||||
int[] codeReturn);
|
||||
|
||||
public abstract GlyphJustificationInfo getGlyphJustificationInfo
|
||||
(int glyphIndex);
|
||||
|
||||
public abstract Shape getGlyphLogicalBounds (int glyphIndex);
|
||||
|
||||
public abstract GlyphMetrics getGlyphMetrics (int glyphIndex);
|
||||
|
||||
public abstract Shape getGlyphOutline (int glyphIndex);
|
||||
|
||||
public Shape getGlyphOutline (int glyphIndex, float x, float y)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public Rectangle getGlyphPixelBounds (int index, FontRenderContext renderFRC,
|
||||
float x, float y)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public abstract Point2D getGlyphPosition (int glyphIndex);
|
||||
|
||||
public abstract float[] getGlyphPositions (int beginGlyphIndex,
|
||||
int numEntries,
|
||||
float[] positionReturn);
|
||||
|
||||
public abstract AffineTransform getGlyphTransform (int glyphIndex);
|
||||
|
||||
public abstract Shape getGlyphVisualBounds (int glyphIndex);
|
||||
|
||||
public int getLayoutFlags ()
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public abstract Rectangle2D getLogicalBounds ();
|
||||
|
||||
public abstract int getNumGlyphs ();
|
||||
|
||||
public abstract Shape getOutline ();
|
||||
|
||||
public abstract Shape getOutline (float x, float y);
|
||||
|
||||
public Rectangle getPixelBounds (FontRenderContext renderFRC,
|
||||
float x, float y)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public abstract Rectangle2D getVisualBounds ();
|
||||
|
||||
public abstract void performDefaultLayout ();
|
||||
|
||||
public abstract void setGlyphPosition (int glyphIndex, Point2D newPos);
|
||||
|
||||
public abstract void setGlyphTransform (int glyphIndex,
|
||||
AffineTransform newTX);
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
/* GraphicAttribute.java
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 USA.
|
||||
|
||||
Linking this library statically or dynamically with other modules is
|
||||
making a combined work based on this library. Thus, the terms and
|
||||
conditions of the GNU General Public License cover the whole
|
||||
combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent
|
||||
modules, and to copy and distribute the resulting executable under
|
||||
terms of your choice, provided that you also meet, for each linked
|
||||
independent module, the terms and conditions of the license of that
|
||||
module. An independent module is a module which is not derived from
|
||||
or based on this library. If you modify this library, you may extend
|
||||
this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.awt.font;
|
||||
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
|
||||
/**
|
||||
* @author Michael Koch
|
||||
*/
|
||||
public abstract class GraphicAttribute
|
||||
{
|
||||
public static final int BOTTOM_ALIGNMENT = -2;
|
||||
public static final int CENTER_BASELINE = 1;
|
||||
public static final int HANGING_BASELINE = 2;
|
||||
public static final int ROMAN_BASELINE = 0;
|
||||
public static final int TOP_ALIGNMENT = -1;
|
||||
|
||||
private int alignment;
|
||||
|
||||
protected GraphicAttribute (int alignment)
|
||||
{
|
||||
this.alignment = alignment;
|
||||
}
|
||||
|
||||
public abstract void draw (Graphics2D graphics, float x, float y);
|
||||
|
||||
public abstract float getAdvance ();
|
||||
|
||||
public final int getAlignment ()
|
||||
{
|
||||
return alignment;
|
||||
}
|
||||
|
||||
public abstract float getAscent ();
|
||||
|
||||
public Rectangle2D getBounds ()
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public abstract float getDescent ();
|
||||
|
||||
public GlyphJustificationInfo getJustificationInfo ()
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
/* ImageGraphicAttribute.java
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 USA.
|
||||
|
||||
Linking this library statically or dynamically with other modules is
|
||||
making a combined work based on this library. Thus, the terms and
|
||||
conditions of the GNU General Public License cover the whole
|
||||
combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent
|
||||
modules, and to copy and distribute the resulting executable under
|
||||
terms of your choice, provided that you also meet, for each linked
|
||||
independent module, the terms and conditions of the license of that
|
||||
module. An independent module is a module which is not derived from
|
||||
or based on this library. If you modify this library, you may extend
|
||||
this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.awt.font;
|
||||
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Image;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
|
||||
/**
|
||||
* @author Michael Koch
|
||||
*/
|
||||
public final class ImageGraphicAttribute extends GraphicAttribute
|
||||
{
|
||||
private Image image;
|
||||
|
||||
public ImageGraphicAttribute (Image image, int alignment)
|
||||
{
|
||||
super (alignment);
|
||||
this.image = image;
|
||||
}
|
||||
|
||||
public ImageGraphicAttribute (Image image, int alignment, float originX,
|
||||
float originY)
|
||||
{
|
||||
super (alignment);
|
||||
this.image = image;
|
||||
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public void draw (Graphics2D graphics, float x, float y)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public boolean equals (Object obj)
|
||||
{
|
||||
if (! (obj instanceof ImageGraphicAttribute))
|
||||
return false;
|
||||
|
||||
return equals ((ImageGraphicAttribute) obj);
|
||||
}
|
||||
|
||||
public boolean equals (ImageGraphicAttribute rhs)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public float getAdvance ()
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public float getAscent ()
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public Rectangle2D getBounds ()
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public float getDescent ()
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public int hashCode ()
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
/* LineBreakMeasurer.java
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 USA.
|
||||
|
||||
Linking this library statically or dynamically with other modules is
|
||||
making a combined work based on this library. Thus, the terms and
|
||||
conditions of the GNU General Public License cover the whole
|
||||
combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent
|
||||
modules, and to copy and distribute the resulting executable under
|
||||
terms of your choice, provided that you also meet, for each linked
|
||||
independent module, the terms and conditions of the license of that
|
||||
module. An independent module is a module which is not derived from
|
||||
or based on this library. If you modify this library, you may extend
|
||||
this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.awt.font;
|
||||
|
||||
import java.text.AttributedCharacterIterator;
|
||||
import java.text.BreakIterator;
|
||||
|
||||
public final class LineBreakMeasurer
|
||||
{
|
||||
private AttributedCharacterIterator ci;
|
||||
private FontRenderContext frc;
|
||||
private BreakIterator bi;
|
||||
|
||||
/**
|
||||
* Constructs a <code>LineBreakMeasurer</code> object.
|
||||
*/
|
||||
public LineBreakMeasurer (AttributedCharacterIterator text,
|
||||
FontRenderContext frc)
|
||||
{
|
||||
this (text, null, frc);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a <code>LineBreakMeasurer</code> object.
|
||||
*/
|
||||
public LineBreakMeasurer (AttributedCharacterIterator text,
|
||||
BreakIterator breakIter, FontRenderContext frc)
|
||||
{
|
||||
this.ci = text;
|
||||
this.bi = breakIter;
|
||||
this.frc = frc;
|
||||
}
|
||||
|
||||
public void deleteChar (AttributedCharacterIterator newParagraph,
|
||||
int deletePos)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public int getPosition ()
|
||||
{
|
||||
return ci.getIndex ();
|
||||
}
|
||||
|
||||
public void insertChar (AttributedCharacterIterator newParagraph,
|
||||
int insertPos)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public TextLayout nextLayout (float wrappingWidth)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public TextLayout nextLayout (float wrappingWidth, int offsetLimit,
|
||||
boolean requireNextWord)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public int nextOffset (float wrappingWidth)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public int nextOffset (float wrappingWidth, int offsetLimit,
|
||||
boolean requireNextWord)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public void setPosition (int newPosition)
|
||||
{
|
||||
ci.setIndex (newPosition);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
/* LineMetrics.java -- Information about about a line display characteristics
|
||||
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 USA.
|
||||
|
||||
Linking this library statically or dynamically with other modules is
|
||||
making a combined work based on this library. Thus, the terms and
|
||||
conditions of the GNU General Public License cover the whole
|
||||
combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent
|
||||
modules, and to copy and distribute the resulting executable under
|
||||
terms of your choice, provided that you also meet, for each linked
|
||||
independent module, the terms and conditions of the license of that
|
||||
module. An independent module is a module which is not derived from
|
||||
or based on this library. If you modify this library, you may extend
|
||||
this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.awt.font;
|
||||
|
||||
/**
|
||||
* @author Michael Koch
|
||||
*/
|
||||
public abstract class LineMetrics
|
||||
{
|
||||
public abstract float getAscent();
|
||||
|
||||
public abstract int getBaselineIndex();
|
||||
|
||||
public abstract float[] getBaselineOffsets();
|
||||
|
||||
public abstract float getDescent();
|
||||
|
||||
public abstract float getHeight();
|
||||
|
||||
public abstract float getLeading();
|
||||
|
||||
public abstract int getNumChars();
|
||||
|
||||
public abstract float getStrikethroughOffset();
|
||||
|
||||
public abstract float getStrikethroughThickness();
|
||||
|
||||
public abstract float getUnderlineOffset();
|
||||
|
||||
public abstract float getUnderlineThickness();
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
/* MultipleMaster.java
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 USA.
|
||||
|
||||
Linking this library statically or dynamically with other modules is
|
||||
making a combined work based on this library. Thus, the terms and
|
||||
conditions of the GNU General Public License cover the whole
|
||||
combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent
|
||||
modules, and to copy and distribute the resulting executable under
|
||||
terms of your choice, provided that you also meet, for each linked
|
||||
independent module, the terms and conditions of the license of that
|
||||
module. An independent module is a module which is not derived from
|
||||
or based on this library. If you modify this library, you may extend
|
||||
this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.awt.font;
|
||||
|
||||
import java.awt.Font;
|
||||
|
||||
/**
|
||||
* @author Michael Koch
|
||||
*/
|
||||
public interface MultipleMaster
|
||||
{
|
||||
Font deriveMMFont (float[] axes);
|
||||
|
||||
Font deriveMMFont (float[] glyphWidths, float avgStemWidth,
|
||||
float typicalCapHeight, float typicalXHeight,
|
||||
float italicAngle);
|
||||
|
||||
float[] getDesignAxisDefaults();
|
||||
|
||||
String[] getDesignAxisNames();
|
||||
|
||||
float[] getDesignAxisRanges();
|
||||
|
||||
int getNumDesignAxes();
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
/* NumericShaper.java
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 USA.
|
||||
|
||||
Linking this library statically or dynamically with other modules is
|
||||
making a combined work based on this library. Thus, the terms and
|
||||
conditions of the GNU General Public License cover the whole
|
||||
combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent
|
||||
modules, and to copy and distribute the resulting executable under
|
||||
terms of your choice, provided that you also meet, for each linked
|
||||
independent module, the terms and conditions of the license of that
|
||||
module. An independent module is a module which is not derived from
|
||||
or based on this library. If you modify this library, you may extend
|
||||
this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.awt.font;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author Michael Koch
|
||||
* @since 1.4
|
||||
*/
|
||||
public final class NumericShaper implements Serializable
|
||||
{
|
||||
private static final long serialVersionUID = -8022764705923730308L;
|
||||
|
||||
public static final int ALL_RANGES = 524287;
|
||||
public static final int ARABIC = 2;
|
||||
public static final int BENGALI = 16;
|
||||
public static final int DEVANAGARI = 8;
|
||||
public static final int EASTERN_ARABIC = 4;
|
||||
public static final int ETHIOPIC = 65536;
|
||||
public static final int EUROPEAN = 1;
|
||||
public static final int GUJARATI = 64;
|
||||
public static final int GURMUKHI = 32;
|
||||
public static final int KANNADA = 1024;
|
||||
public static final int KHMER = 131072;
|
||||
public static final int LAO = 8192;
|
||||
public static final int MALAYALAM = 2048;
|
||||
public static final int MONGOLIAN = 262144;
|
||||
public static final int MYANMAR = 32768;
|
||||
public static final int ORIYA = 128;
|
||||
public static final int TAMIL = 256;
|
||||
public static final int TELUGU = 512;
|
||||
public static final int THAI = 4096;
|
||||
public static final int TIBETAN = 16384;
|
||||
|
||||
private int ranges;
|
||||
private int context;
|
||||
|
||||
private NumericShaper (int ranges, int context)
|
||||
{
|
||||
this.ranges = ranges;
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
public boolean equals (Object obj)
|
||||
{
|
||||
if (! (obj instanceof NumericShaper))
|
||||
return false;
|
||||
|
||||
NumericShaper tmp = (NumericShaper) obj;
|
||||
|
||||
return (ranges == tmp.ranges
|
||||
&& context == tmp.context);
|
||||
}
|
||||
|
||||
public static NumericShaper getContextualShaper (int ranges)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public static NumericShaper getContextualShaper (int ranges,
|
||||
int defaultContext)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public int getRanges ()
|
||||
{
|
||||
return ranges;
|
||||
}
|
||||
|
||||
public static NumericShaper getShaper (int singleRange)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public int hashCode ()
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public boolean isContextual ()
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public void shape (char[] text, int start, int count)
|
||||
{
|
||||
shape (text, start, count, context);
|
||||
}
|
||||
|
||||
public void shape (char[] text, int start, int count, int context)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public String toString ()
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
/* OpenType.java
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 USA.
|
||||
|
||||
Linking this library statically or dynamically with other modules is
|
||||
making a combined work based on this library. Thus, the terms and
|
||||
conditions of the GNU General Public License cover the whole
|
||||
combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent
|
||||
modules, and to copy and distribute the resulting executable under
|
||||
terms of your choice, provided that you also meet, for each linked
|
||||
independent module, the terms and conditions of the license of that
|
||||
module. An independent module is a module which is not derived from
|
||||
or based on this library. If you modify this library, you may extend
|
||||
this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.awt.font;
|
||||
|
||||
/**
|
||||
* @author Michael Koch
|
||||
*/
|
||||
public interface OpenType
|
||||
{
|
||||
int TAG_ACNT = 1633906292;
|
||||
int TAG_AVAR = 1635148146;
|
||||
int TAG_BASE = 1111577413;
|
||||
int TAG_BDAT = 1650745716;
|
||||
int TAG_BLOC = 1651273571;
|
||||
int TAG_BSLN = 1651731566;
|
||||
int TAG_CFF = 1128678944;
|
||||
int TAG_CMAP = 1668112752;
|
||||
int TAG_CVAR = 1668702578;
|
||||
int TAG_CVT = 1668707360;
|
||||
int TAG_DSIG = 1146308935;
|
||||
int TAG_EBDT = 1161970772;
|
||||
int TAG_EBLC = 1161972803;
|
||||
int TAG_EBSC = 1161974595;
|
||||
int TAG_FDSC = 1717859171;
|
||||
int TAG_FEAT = 1717920116;
|
||||
int TAG_FMTX = 1718449272;
|
||||
int TAG_FPGM = 1718642541;
|
||||
int TAG_FVAR = 1719034226;
|
||||
int TAG_GASP = 1734439792;
|
||||
int TAG_GDEF = 1195656518;
|
||||
int TAG_GLYF = 1735162214;
|
||||
int TAG_GPOS = 1196445523;
|
||||
int TAG_GSUB = 1196643650;
|
||||
int TAG_GVAR = 1735811442;
|
||||
int TAG_HDMX = 1751412088;
|
||||
int TAG_HEAD = 1751474532;
|
||||
int TAG_HHEA = 1751672161;
|
||||
int TAG_HMTX = 1752003704;
|
||||
int TAG_JSTF = 1246975046;
|
||||
int TAG_JUST = 1786082164;
|
||||
int TAG_KERN = 1801810542;
|
||||
int TAG_LCAR = 1818452338;
|
||||
int TAG_LOCA = 1819239265;
|
||||
int TAG_LTSH = 1280594760;
|
||||
int TAG_MAXP = 1835104368;
|
||||
int TAG_MMFX = 1296909912;
|
||||
int TAG_MMSD = 1296913220;
|
||||
int TAG_MORT = 1836020340;
|
||||
int TAG_NAME = 1851878757;
|
||||
int TAG_OPBD = 1836020340;
|
||||
int TAG_OS2 = 1330851634;
|
||||
int TAG_PCLT = 1346587732;
|
||||
int TAG_POST = 1886352244;
|
||||
int TAG_PREP = 1886545264;
|
||||
int TAG_PROP = 1886547824;
|
||||
int TAG_TRAK = 1953653099;
|
||||
int TAG_TYP1 = 1954115633;
|
||||
int TAG_VDMX = 1447316824;
|
||||
int TAG_VHEA = 1986553185;
|
||||
int TAG_VMTX = 1986884728;
|
||||
|
||||
byte[] getFontTable (int sfntTag);
|
||||
|
||||
byte[] getFontTable (int sfntTag, int offset, int count);
|
||||
|
||||
byte[] getFontTable (String strSfntTag);
|
||||
|
||||
byte[] getFontTable (String strSfntTag, int offset, int count);
|
||||
|
||||
int getFontTableSize (int sfntTag);
|
||||
|
||||
int getFontTableSize (String strSfntTag);
|
||||
|
||||
int getVersion ();
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
/* ShapeGraphicAttribute.java
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 USA.
|
||||
|
||||
Linking this library statically or dynamically with other modules is
|
||||
making a combined work based on this library. Thus, the terms and
|
||||
conditions of the GNU General Public License cover the whole
|
||||
combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent
|
||||
modules, and to copy and distribute the resulting executable under
|
||||
terms of your choice, provided that you also meet, for each linked
|
||||
independent module, the terms and conditions of the license of that
|
||||
module. An independent module is a module which is not derived from
|
||||
or based on this library. If you modify this library, you may extend
|
||||
this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.awt.font;
|
||||
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Shape;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
|
||||
public final class ShapeGraphicAttribute extends GraphicAttribute
|
||||
{
|
||||
public static final boolean FILL = false;
|
||||
public static final boolean STROKE = true;
|
||||
|
||||
private Shape shape;
|
||||
private boolean stroke;
|
||||
|
||||
public ShapeGraphicAttribute (Shape shape, int alignment, boolean stroke)
|
||||
{
|
||||
super (alignment);
|
||||
this.shape = shape;
|
||||
this.stroke = stroke;
|
||||
}
|
||||
|
||||
public void draw (Graphics2D graphics, float x, float y)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public boolean equals (Object obj)
|
||||
{
|
||||
if (! (obj instanceof ShapeGraphicAttribute))
|
||||
return false;
|
||||
|
||||
return equals ((ShapeGraphicAttribute) obj);
|
||||
}
|
||||
|
||||
public boolean equals (ShapeGraphicAttribute rhs)
|
||||
{
|
||||
return (shape.equals (rhs.shape)
|
||||
&& getAlignment () == rhs.getAlignment ()
|
||||
&& stroke == rhs.stroke);
|
||||
}
|
||||
|
||||
public float getAdvance ()
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public float getAscent ()
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public Rectangle2D getBounds ()
|
||||
{
|
||||
return shape.getBounds2D ();
|
||||
}
|
||||
|
||||
public float getDescent ()
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public int hashCode ()
|
||||
{
|
||||
// FIXME: Check what SUN does here
|
||||
return shape.hashCode ();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,309 @@
|
||||
/* TextAttribute.java --
|
||||
Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 USA.
|
||||
|
||||
Linking this library statically or dynamically with other modules is
|
||||
making a combined work based on this library. Thus, the terms and
|
||||
conditions of the GNU General Public License cover the whole
|
||||
combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent
|
||||
modules, and to copy and distribute the resulting executable under
|
||||
terms of your choice, provided that you also meet, for each linked
|
||||
independent module, the terms and conditions of the license of that
|
||||
module. An independent module is a module which is not derived from
|
||||
or based on this library. If you modify this library, you may extend
|
||||
this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.awt.font;
|
||||
|
||||
import java.io.InvalidObjectException;
|
||||
import java.text.AttributedCharacterIterator;
|
||||
|
||||
/**
|
||||
* Attributes (and associated values) that can be used to define an
|
||||
* {@link java.text.AttributedString}.
|
||||
*/
|
||||
public final class TextAttribute extends AttributedCharacterIterator.Attribute
|
||||
{
|
||||
private static final long serialVersionUID = 7744112784117861702L;
|
||||
|
||||
/** A key for the background paint attribute. */
|
||||
public static final TextAttribute BACKGROUND =
|
||||
new TextAttribute("background");
|
||||
|
||||
/** A key for the BIDI_EMBEDDING attribute. */
|
||||
public static final TextAttribute BIDI_EMBEDDING =
|
||||
new TextAttribute("bidi_embedding");
|
||||
|
||||
/** A key for the CHAR_REPLACEMENT attribute. */
|
||||
public static final TextAttribute CHAR_REPLACEMENT =
|
||||
new TextAttribute("char_replacement");
|
||||
|
||||
/** A key for the FAMILY attribute. */
|
||||
public static final TextAttribute FAMILY = new TextAttribute("family");
|
||||
|
||||
/** A key for the font attribute. */
|
||||
public static final TextAttribute FONT = new TextAttribute("font");
|
||||
|
||||
/** A key for the foreground paint attribute. */
|
||||
public static final TextAttribute FOREGROUND =
|
||||
new TextAttribute("foreground");
|
||||
|
||||
/** A key for the INPUT_METHOD_HIGHLIGHT attribute. */
|
||||
public static final TextAttribute INPUT_METHOD_HIGHLIGHT =
|
||||
new TextAttribute("input method highlight");
|
||||
|
||||
/** A key for the INPUT_METHOD_UNDERLINE attribute. */
|
||||
public static final TextAttribute INPUT_METHOD_UNDERLINE =
|
||||
new TextAttribute("input method underline");
|
||||
|
||||
/** A key for the text justification attribute. */
|
||||
public static final TextAttribute JUSTIFICATION =
|
||||
new TextAttribute("justification");
|
||||
|
||||
/**
|
||||
* A value that can be used with the {@link #JUSTIFICATION} attribute to
|
||||
* indicate full justification of the text.
|
||||
*/
|
||||
public static final Float JUSTIFICATION_FULL = new Float(1.0);
|
||||
|
||||
/**
|
||||
* A value that can be used with the {@link #JUSTIFICATION} attribute to
|
||||
* indicate no justification of the text.
|
||||
*/
|
||||
public static final Float JUSTIFICATION_NONE = new Float(0.0);
|
||||
|
||||
/** A key for the NUMERIC_SHAPING attribute. */
|
||||
public static final TextAttribute NUMERIC_SHAPING =
|
||||
new TextAttribute("numeric_shaping");
|
||||
|
||||
/** A key for the POSTURE attribute. */
|
||||
public static final TextAttribute POSTURE = new TextAttribute("posture");
|
||||
|
||||
/** A value that can be used with the {@link #POSTURE} attribute. */
|
||||
public static final Float POSTURE_OBLIQUE = new Float(0.2);
|
||||
|
||||
/** A value that can be used with the {@link #POSTURE} attribute. */
|
||||
public static final Float POSTURE_REGULAR = new Float(0.0);
|
||||
|
||||
/** A key for the RUN_DIRECTION attribute. */
|
||||
public static final TextAttribute RUN_DIRECTION =
|
||||
new TextAttribute("run_direction");
|
||||
|
||||
/** A value that can be used with the {@link #RUN_DIRECTION} attribute. */
|
||||
public static final Boolean RUN_DIRECTION_LTR = Boolean.FALSE;
|
||||
|
||||
/** A value that can be used with the {@link #RUN_DIRECTION} attribute. */
|
||||
public static final Boolean RUN_DIRECTION_RTL = Boolean.TRUE;
|
||||
|
||||
/** A key for the text size attribute. */
|
||||
public static final TextAttribute SIZE = new TextAttribute("size");
|
||||
|
||||
/** A key for the STRIKETHROUGH attribute. */
|
||||
public static final TextAttribute STRIKETHROUGH =
|
||||
new TextAttribute("strikethrough");
|
||||
|
||||
/** A value that can be used with the {@link #STRIKETHROUGH} attribute. */
|
||||
public static final Boolean STRIKETHROUGH_ON = Boolean.TRUE;
|
||||
|
||||
/** A key for the SUPERSCRIPT attribute. */
|
||||
public static final TextAttribute SUPERSCRIPT =
|
||||
new TextAttribute("superscript");
|
||||
|
||||
/** A value that can be used with the {@link #SUPERSCRIPT} attribute. */
|
||||
public static final Integer SUPERSCRIPT_SUB = new Integer(-1);
|
||||
|
||||
/** A value that can be used with the {@link #SUPERSCRIPT} attribute. */
|
||||
public static final Integer SUPERSCRIPT_SUPER = new Integer(1);
|
||||
|
||||
/** A key for the SWAP_COLORS attribute. */
|
||||
public static final TextAttribute SWAP_COLORS =
|
||||
new TextAttribute("swap_colors");
|
||||
|
||||
/** A value that can be used with the {@link #SWAP_COLORS} attribute. */
|
||||
public static final Boolean SWAP_COLORS_ON = Boolean.TRUE;
|
||||
|
||||
/** A key for the TRANFORM attribute. */
|
||||
public static final TextAttribute TRANSFORM = new TextAttribute("transform");
|
||||
|
||||
/** A key for the UNDERLINE attribute. */
|
||||
public static final TextAttribute UNDERLINE = new TextAttribute("underline");
|
||||
|
||||
/** A value that can be used with the {@link #UNDERLINE} attribute. */
|
||||
public static final Integer UNDERLINE_LOW_DASHED = new Integer(5);
|
||||
|
||||
/** A value that can be used with the {@link #UNDERLINE} attribute. */
|
||||
public static final Integer UNDERLINE_LOW_DOTTED = new Integer(3);
|
||||
|
||||
/** A value that can be used with the {@link #UNDERLINE} attribute. */
|
||||
public static final Integer UNDERLINE_LOW_GRAY = new Integer(4);
|
||||
|
||||
/** A value that can be used with the {@link #UNDERLINE} attribute. */
|
||||
public static final Integer UNDERLINE_LOW_ONE_PIXEL = new Integer(1);
|
||||
|
||||
/** A value that can be used with the {@link #UNDERLINE} attribute. */
|
||||
public static final Integer UNDERLINE_LOW_TWO_PIXEL = new Integer(2);
|
||||
|
||||
/** A value that can be used with the {@link #UNDERLINE} attribute. */
|
||||
public static final Integer UNDERLINE_ON = new Integer(0);
|
||||
|
||||
/** A key for the WEIGHT attribute. */
|
||||
public static final TextAttribute WEIGHT = new TextAttribute("weight");
|
||||
|
||||
/** A value that can be used with the {@link #WEIGHT} attribute. */
|
||||
public static final Float WEIGHT_BOLD = new Float(2.0);
|
||||
|
||||
/** A value that can be used with the {@link #WEIGHT} attribute. */
|
||||
public static final Float WEIGHT_DEMIBOLD = new Float(1.75);
|
||||
|
||||
/** A value that can be used with the {@link #WEIGHT} attribute. */
|
||||
public static final Float WEIGHT_DEMILIGHT = new Float(0.875);
|
||||
|
||||
/** A value that can be used with the {@link #WEIGHT} attribute. */
|
||||
public static final Float WEIGHT_EXTRA_LIGHT = new Float(0.5);
|
||||
|
||||
/** A value that can be used with the {@link #WEIGHT} attribute. */
|
||||
public static final Float WEIGHT_EXTRABOLD = new Float(2.5);
|
||||
|
||||
/** A value that can be used with the {@link #WEIGHT} attribute. */
|
||||
public static final Float WEIGHT_HEAVY = new Float(2.25);
|
||||
|
||||
/** A value that can be used with the {@link #WEIGHT} attribute. */
|
||||
public static final Float WEIGHT_LIGHT = new Float(0.75);
|
||||
|
||||
/** A value that can be used with the {@link #WEIGHT} attribute. */
|
||||
public static final Float WEIGHT_MEDIUM = new Float(1.5);
|
||||
|
||||
/** A value that can be used with the {@link #WEIGHT} attribute. */
|
||||
public static final Float WEIGHT_REGULAR = new Float(1.0);
|
||||
|
||||
/** A value that can be used with the {@link #WEIGHT} attribute. */
|
||||
public static final Float WEIGHT_SEMIBOLD = new Float(1.25);
|
||||
|
||||
/** A value that can be used with the {@link #WEIGHT} attribute. */
|
||||
public static final Float WEIGHT_ULTRABOLD = new Float(2.75);
|
||||
|
||||
/** A key for the WIDTH attribute. */
|
||||
public static final TextAttribute WIDTH = new TextAttribute("width");
|
||||
|
||||
/** A value that can be used with the {@link #WIDTH} attribute. */
|
||||
public static final Float WIDTH_CONDENSED = new Float(0.75);
|
||||
|
||||
/** A value that can be used with the {@link #WIDTH} attribute. */
|
||||
public static final Float WIDTH_EXTENDED = new Float(1.5);
|
||||
|
||||
/** A value that can be used with the {@link #WIDTH} attribute. */
|
||||
public static final Float WIDTH_REGULAR = new Float(1.0);
|
||||
|
||||
/** A value that can be used with the {@link #WIDTH} attribute. */
|
||||
public static final Float WIDTH_SEMI_CONDENSED = new Float(0.875);
|
||||
|
||||
/** A value that can be used with the {@link #WIDTH} attribute. */
|
||||
public static final Float WIDTH_SEMI_EXTENDED = new Float(1.25);
|
||||
|
||||
/**
|
||||
* Creates a new attribute.
|
||||
*
|
||||
* @param name the name.
|
||||
*/
|
||||
protected TextAttribute(String name)
|
||||
{
|
||||
super(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* After deserialization, this method ensures that only one instance of
|
||||
* each attribute is used.
|
||||
*
|
||||
* @return The (single) attribute instance.
|
||||
*
|
||||
* @throws InvalidObjectException if the attribute is not recognised.
|
||||
*/
|
||||
protected Object readResolve()
|
||||
throws InvalidObjectException
|
||||
{
|
||||
if (this.getName().equals("background"))
|
||||
return BACKGROUND;
|
||||
|
||||
if (this.getName().equals("bidi_embedding"))
|
||||
return BIDI_EMBEDDING;
|
||||
|
||||
if (this.getName().equals("char_replacement"))
|
||||
return CHAR_REPLACEMENT;
|
||||
|
||||
if (this.getName().equals("family"))
|
||||
return FAMILY;
|
||||
|
||||
if (this.getName().equals("font"))
|
||||
return FONT;
|
||||
|
||||
if (this.getName().equals("foreground"))
|
||||
return FOREGROUND;
|
||||
|
||||
if (this.getName().equals("input method highlight"))
|
||||
return INPUT_METHOD_HIGHLIGHT;
|
||||
|
||||
if (this.getName().equals("input method underline"))
|
||||
return INPUT_METHOD_UNDERLINE;
|
||||
|
||||
if (this.getName().equals("justification"))
|
||||
return JUSTIFICATION;
|
||||
|
||||
if (this.getName().equals("numeric_shaping"))
|
||||
return NUMERIC_SHAPING;
|
||||
|
||||
if (this.getName().equals("posture"))
|
||||
return POSTURE;
|
||||
|
||||
if (this.getName().equals("run_direction"))
|
||||
return RUN_DIRECTION;
|
||||
|
||||
if (this.getName().equals("size"))
|
||||
return SIZE;
|
||||
|
||||
if (this.getName().equals("strikethrough"))
|
||||
return STRIKETHROUGH;
|
||||
|
||||
if (this.getName().equals("superscript"))
|
||||
return SUPERSCRIPT;
|
||||
|
||||
if (this.getName().equals("swap_colors"))
|
||||
return SWAP_COLORS;
|
||||
|
||||
if (this.getName().equals("transform"))
|
||||
return TRANSFORM;
|
||||
|
||||
if (this.getName().equals("underline"))
|
||||
return UNDERLINE;
|
||||
|
||||
if (this.getName().equals("weight"))
|
||||
return WEIGHT;
|
||||
|
||||
if (this.getName().equals("width"))
|
||||
return WIDTH;
|
||||
|
||||
throw new InvalidObjectException("Can't resolve Attribute: " + getName());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
/* TextHitInfo.java --
|
||||
Copyright (C) 2002, 2005 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 USA.
|
||||
|
||||
Linking this library statically or dynamically with other modules is
|
||||
making a combined work based on this library. Thus, the terms and
|
||||
conditions of the GNU General Public License cover the whole
|
||||
combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent
|
||||
modules, and to copy and distribute the resulting executable under
|
||||
terms of your choice, provided that you also meet, for each linked
|
||||
independent module, the terms and conditions of the license of that
|
||||
module. An independent module is a module which is not derived from
|
||||
or based on this library. If you modify this library, you may extend
|
||||
this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
package java.awt.font;
|
||||
|
||||
/**
|
||||
* @author John Leuner (jewel@debian.org)
|
||||
*/
|
||||
public final class TextHitInfo
|
||||
{
|
||||
private int charIndex;
|
||||
private boolean leadingEdge;
|
||||
|
||||
TextHitInfo (int charIndex, boolean leadingEdge)
|
||||
{
|
||||
this.charIndex = charIndex;
|
||||
this.leadingEdge = leadingEdge;
|
||||
}
|
||||
|
||||
public int getCharIndex()
|
||||
{
|
||||
return charIndex;
|
||||
}
|
||||
|
||||
public boolean isLeadingEdge()
|
||||
{
|
||||
return leadingEdge;
|
||||
}
|
||||
|
||||
public int getInsertionIndex()
|
||||
{
|
||||
return (leadingEdge ? charIndex : charIndex + 1);
|
||||
}
|
||||
|
||||
public int hashCode()
|
||||
{
|
||||
return charIndex;
|
||||
}
|
||||
|
||||
public boolean equals(Object obj)
|
||||
{
|
||||
if(obj instanceof TextHitInfo)
|
||||
return this.equals((TextHitInfo) obj);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean equals(TextHitInfo hitInfo)
|
||||
{
|
||||
return (charIndex == hitInfo.getCharIndex ())
|
||||
&& (leadingEdge == hitInfo.isLeadingEdge ());
|
||||
}
|
||||
|
||||
public static TextHitInfo leading(int charIndex)
|
||||
{
|
||||
return new TextHitInfo (charIndex, true);
|
||||
}
|
||||
|
||||
public static TextHitInfo trailing(int charIndex)
|
||||
{
|
||||
return new TextHitInfo (charIndex, false);
|
||||
}
|
||||
|
||||
public static TextHitInfo beforeOffset(int offset)
|
||||
{
|
||||
return new TextHitInfo (offset, false);
|
||||
}
|
||||
|
||||
public static TextHitInfo afterOffset(int offset)
|
||||
{
|
||||
return new TextHitInfo (offset, true);
|
||||
}
|
||||
|
||||
public TextHitInfo getOtherHit()
|
||||
{
|
||||
return (leadingEdge ? trailing (charIndex - 1) : leading (charIndex + 1));
|
||||
}
|
||||
|
||||
public TextHitInfo getOffsetHit(int offset)
|
||||
{
|
||||
return new TextHitInfo (charIndex + offset, leadingEdge);
|
||||
}
|
||||
|
||||
public String toString()
|
||||
{
|
||||
return "TextHitInfo["
|
||||
+ charIndex
|
||||
+ (leadingEdge ? "L" : "T" )
|
||||
+ "]";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,332 @@
|
||||
/* TextLayout.java --
|
||||
Copyright (C) 2003, 2004 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 USA.
|
||||
|
||||
Linking this library statically or dynamically with other modules is
|
||||
making a combined work based on this library. Thus, the terms and
|
||||
conditions of the GNU General Public License cover the whole
|
||||
combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent
|
||||
modules, and to copy and distribute the resulting executable under
|
||||
terms of your choice, provided that you also meet, for each linked
|
||||
independent module, the terms and conditions of the license of that
|
||||
module. An independent module is a module which is not derived from
|
||||
or based on this library. If you modify this library, you may extend
|
||||
this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.awt.font;
|
||||
|
||||
import gnu.java.awt.ClasspathToolkit;
|
||||
import gnu.java.awt.peer.ClasspathTextLayoutPeer;
|
||||
|
||||
import java.awt.Font;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Shape;
|
||||
import java.awt.Toolkit;
|
||||
import java.awt.geom.AffineTransform;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
import java.text.AttributedCharacterIterator;
|
||||
import java.text.AttributedString;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author Michael Koch
|
||||
*/
|
||||
public final class TextLayout implements Cloneable
|
||||
{
|
||||
public static final CaretPolicy DEFAULT_CARET_POLICY = new CaretPolicy ();
|
||||
ClasspathTextLayoutPeer peer;
|
||||
|
||||
public static class CaretPolicy
|
||||
{
|
||||
public CaretPolicy ()
|
||||
{
|
||||
// Do nothing here.
|
||||
}
|
||||
|
||||
public TextHitInfo getStrongCaret (TextHitInfo hit1, TextHitInfo hit2,
|
||||
TextLayout layout)
|
||||
{
|
||||
return layout.peer.getStrongCaret(hit1, hit2);
|
||||
}
|
||||
}
|
||||
|
||||
public TextLayout (AttributedCharacterIterator text, FontRenderContext frc)
|
||||
{
|
||||
AttributedString as = new AttributedString (text);
|
||||
ClasspathToolkit tk = (ClasspathToolkit)(Toolkit.getDefaultToolkit ());
|
||||
peer = tk.getClasspathTextLayoutPeer(as, frc);
|
||||
}
|
||||
|
||||
public TextLayout (String string, Font font, FontRenderContext frc)
|
||||
{
|
||||
AttributedString as = new AttributedString (string);
|
||||
as.addAttribute (TextAttribute.FONT, font);
|
||||
ClasspathToolkit tk = (ClasspathToolkit)(Toolkit.getDefaultToolkit ());
|
||||
peer = tk.getClasspathTextLayoutPeer(as, frc);
|
||||
}
|
||||
|
||||
public TextLayout (String string, Map attributes, FontRenderContext frc)
|
||||
{
|
||||
AttributedString as = new AttributedString (string, attributes);
|
||||
ClasspathToolkit tk = (ClasspathToolkit)(Toolkit.getDefaultToolkit ());
|
||||
peer = tk.getClasspathTextLayoutPeer(as, frc);
|
||||
}
|
||||
|
||||
protected Object clone ()
|
||||
{
|
||||
try
|
||||
{
|
||||
TextLayout tl = (TextLayout) super.clone ();
|
||||
tl.peer = (ClasspathTextLayoutPeer) this.peer.clone();
|
||||
return tl;
|
||||
}
|
||||
catch (CloneNotSupportedException e)
|
||||
{
|
||||
// This should never occur
|
||||
throw new InternalError ();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void draw (Graphics2D g2, float x, float y)
|
||||
{
|
||||
peer.draw(g2, x, y);
|
||||
}
|
||||
|
||||
public boolean equals (Object obj)
|
||||
{
|
||||
if (! (obj instanceof TextLayout))
|
||||
return false;
|
||||
|
||||
return equals ((TextLayout) obj);
|
||||
}
|
||||
|
||||
public boolean equals (TextLayout tl)
|
||||
{
|
||||
return this.peer.equals(tl.peer);
|
||||
}
|
||||
|
||||
public float getAdvance ()
|
||||
{
|
||||
return peer.getAdvance();
|
||||
}
|
||||
|
||||
public float getAscent ()
|
||||
{
|
||||
return peer.getAscent();
|
||||
}
|
||||
|
||||
public byte getBaseline ()
|
||||
{
|
||||
return peer.getBaseline();
|
||||
}
|
||||
|
||||
public float[] getBaselineOffsets ()
|
||||
{
|
||||
return peer.getBaselineOffsets();
|
||||
}
|
||||
|
||||
public Shape getBlackBoxBounds (int firstEndpoint, int secondEndpoint)
|
||||
{
|
||||
return peer.getBlackBoxBounds(firstEndpoint, secondEndpoint);
|
||||
}
|
||||
|
||||
public Rectangle2D getBounds()
|
||||
{
|
||||
return peer.getBounds();
|
||||
}
|
||||
|
||||
public float[] getCaretInfo (TextHitInfo hit)
|
||||
{
|
||||
return getCaretInfo(hit, getBounds());
|
||||
}
|
||||
|
||||
public float[] getCaretInfo (TextHitInfo hit, Rectangle2D bounds)
|
||||
{
|
||||
return peer.getCaretInfo(hit, bounds);
|
||||
}
|
||||
|
||||
public Shape getCaretShape (TextHitInfo hit)
|
||||
{
|
||||
return getCaretShape(hit, getBounds());
|
||||
}
|
||||
|
||||
public Shape getCaretShape (TextHitInfo hit, Rectangle2D bounds)
|
||||
{
|
||||
return peer.getCaretShape(hit, bounds);
|
||||
}
|
||||
|
||||
public Shape[] getCaretShapes (int offset)
|
||||
{
|
||||
return getCaretShapes(offset, getBounds());
|
||||
}
|
||||
|
||||
public Shape[] getCaretShapes (int offset, Rectangle2D bounds)
|
||||
{
|
||||
return getCaretShapes(offset, getBounds(), DEFAULT_CARET_POLICY);
|
||||
}
|
||||
|
||||
public Shape[] getCaretShapes (int offset, Rectangle2D bounds,
|
||||
TextLayout.CaretPolicy policy)
|
||||
{
|
||||
return peer.getCaretShapes(offset, bounds, policy);
|
||||
}
|
||||
|
||||
public int getCharacterCount ()
|
||||
{
|
||||
return peer.getCharacterCount();
|
||||
}
|
||||
|
||||
public byte getCharacterLevel (int index)
|
||||
{
|
||||
return peer.getCharacterLevel(index);
|
||||
}
|
||||
|
||||
public float getDescent ()
|
||||
{
|
||||
return peer.getDescent();
|
||||
}
|
||||
|
||||
public TextLayout getJustifiedLayout (float justificationWidth)
|
||||
{
|
||||
return peer.getJustifiedLayout(justificationWidth);
|
||||
}
|
||||
|
||||
public float getLeading ()
|
||||
{
|
||||
return peer.getLeading();
|
||||
}
|
||||
|
||||
public Shape getLogicalHighlightShape (int firstEndpoint, int secondEndpoint)
|
||||
{
|
||||
return getLogicalHighlightShape (firstEndpoint, secondEndpoint, getBounds());
|
||||
}
|
||||
|
||||
public Shape getLogicalHighlightShape (int firstEndpoint, int secondEndpoint,
|
||||
Rectangle2D bounds)
|
||||
{
|
||||
return peer.getLogicalHighlightShape(firstEndpoint, secondEndpoint, bounds);
|
||||
}
|
||||
|
||||
public int[] getLogicalRangesForVisualSelection (TextHitInfo firstEndpoint,
|
||||
TextHitInfo secondEndpoint)
|
||||
{
|
||||
return peer.getLogicalRangesForVisualSelection(firstEndpoint, secondEndpoint);
|
||||
}
|
||||
|
||||
public TextHitInfo getNextLeftHit (int offset)
|
||||
{
|
||||
return getNextLeftHit(offset, DEFAULT_CARET_POLICY);
|
||||
}
|
||||
|
||||
public TextHitInfo getNextLeftHit (int offset, TextLayout.CaretPolicy policy)
|
||||
{
|
||||
return peer.getNextLeftHit(offset, policy);
|
||||
}
|
||||
|
||||
public TextHitInfo getNextLeftHit (TextHitInfo hit)
|
||||
{
|
||||
return getNextLeftHit(hit.getCharIndex());
|
||||
}
|
||||
|
||||
public TextHitInfo getNextRightHit (int offset)
|
||||
{
|
||||
return getNextRightHit(offset, DEFAULT_CARET_POLICY);
|
||||
}
|
||||
|
||||
public TextHitInfo getNextRightHit (int offset, TextLayout.CaretPolicy policy)
|
||||
{
|
||||
return peer.getNextRightHit(offset, policy);
|
||||
}
|
||||
|
||||
public TextHitInfo getNextRightHit (TextHitInfo hit)
|
||||
{
|
||||
return getNextRightHit(hit.getCharIndex());
|
||||
}
|
||||
|
||||
public Shape getOutline (AffineTransform tx)
|
||||
{
|
||||
return peer.getOutline(tx);
|
||||
}
|
||||
|
||||
public float getVisibleAdvance ()
|
||||
{
|
||||
return peer.getVisibleAdvance();
|
||||
}
|
||||
|
||||
public Shape getVisualHighlightShape (TextHitInfo firstEndpoint,
|
||||
TextHitInfo secondEndpoint)
|
||||
{
|
||||
return getVisualHighlightShape(firstEndpoint, secondEndpoint, getBounds());
|
||||
}
|
||||
|
||||
public Shape getVisualHighlightShape (TextHitInfo firstEndpoint,
|
||||
TextHitInfo secondEndpoint,
|
||||
Rectangle2D bounds)
|
||||
{
|
||||
return peer.getVisualHighlightShape(firstEndpoint, secondEndpoint, bounds);
|
||||
}
|
||||
|
||||
public TextHitInfo getVisualOtherHit (TextHitInfo hit)
|
||||
{
|
||||
return peer.getVisualOtherHit(hit);
|
||||
}
|
||||
|
||||
protected void handleJustify (float justificationWidth)
|
||||
{
|
||||
peer.handleJustify(justificationWidth);
|
||||
}
|
||||
|
||||
public int hashCode ()
|
||||
{
|
||||
return peer.hashCode();
|
||||
}
|
||||
|
||||
public TextHitInfo hitTestChar (float x, float y)
|
||||
{
|
||||
return hitTestChar(x, y, getBounds());
|
||||
}
|
||||
|
||||
public TextHitInfo hitTestChar (float x, float y, Rectangle2D bounds)
|
||||
{
|
||||
return peer.hitTestChar(x, y, bounds);
|
||||
}
|
||||
|
||||
public boolean isLeftToRight ()
|
||||
{
|
||||
return peer.isLeftToRight();
|
||||
}
|
||||
|
||||
public boolean isVertical ()
|
||||
{
|
||||
return peer.isVertical();
|
||||
}
|
||||
|
||||
public String toString ()
|
||||
{
|
||||
return peer.toString();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
/* TextMeasurer.java
|
||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 USA.
|
||||
|
||||
Linking this library statically or dynamically with other modules is
|
||||
making a combined work based on this library. Thus, the terms and
|
||||
conditions of the GNU General Public License cover the whole
|
||||
combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent
|
||||
modules, and to copy and distribute the resulting executable under
|
||||
terms of your choice, provided that you also meet, for each linked
|
||||
independent module, the terms and conditions of the license of that
|
||||
module. An independent module is a module which is not derived from
|
||||
or based on this library. If you modify this library, you may extend
|
||||
this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.awt.font;
|
||||
|
||||
import java.text.AttributedCharacterIterator;
|
||||
|
||||
/**
|
||||
* @author Michael Koch
|
||||
* @since 1.3
|
||||
*/
|
||||
public final class TextMeasurer implements Cloneable
|
||||
{
|
||||
private AttributedCharacterIterator ci;
|
||||
private FontRenderContext frc;
|
||||
|
||||
public TextMeasurer (AttributedCharacterIterator text, FontRenderContext frc)
|
||||
{
|
||||
this.ci = text;
|
||||
this.frc = frc;
|
||||
}
|
||||
|
||||
protected Object clone ()
|
||||
{
|
||||
try
|
||||
{
|
||||
return super.clone ();
|
||||
}
|
||||
catch (CloneNotSupportedException e)
|
||||
{
|
||||
// This may never occur
|
||||
throw new InternalError ();
|
||||
}
|
||||
}
|
||||
|
||||
public void deleteChar (AttributedCharacterIterator newParagraph,
|
||||
int deletePos)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public float getAdvanceBetween (int start, int limit)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public TextLayout getLayout (int start, int limit)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public int getLineBreakIndex (int start, float maxAdvance)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
|
||||
public void insertChar (AttributedCharacterIterator newParagraph,
|
||||
int insertPos)
|
||||
{
|
||||
throw new Error ("not implemented");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
/* TransformAttribute.java --
|
||||
Copyright (C) 2003, 2005 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 USA.
|
||||
|
||||
Linking this library statically or dynamically with other modules is
|
||||
making a combined work based on this library. Thus, the terms and
|
||||
conditions of the GNU General Public License cover the whole
|
||||
combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent
|
||||
modules, and to copy and distribute the resulting executable under
|
||||
terms of your choice, provided that you also meet, for each linked
|
||||
independent module, the terms and conditions of the license of that
|
||||
module. An independent module is a module which is not derived from
|
||||
or based on this library. If you modify this library, you may extend
|
||||
this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
package java.awt.font;
|
||||
|
||||
import java.awt.geom.AffineTransform;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* This class provides a mechanism for using an {@link AffineTransform} as
|
||||
* an <i>immutable</i> attribute (for example, in the
|
||||
* {@link java.text.AttributedString} class). Any transform passed to
|
||||
* this class is copied before being stored, and any transform handed out
|
||||
* by this class is a copy of the stored transform. In this way, it is
|
||||
* not possible to modify the stored transform.
|
||||
*
|
||||
* @author Michael Koch
|
||||
*/
|
||||
public final class TransformAttribute implements Serializable
|
||||
{
|
||||
private static final long serialVersionUID = 3356247357827709530L;
|
||||
|
||||
private AffineTransform affineTransform;
|
||||
|
||||
/**
|
||||
* Creates a new attribute that contains a copy of the given transform.
|
||||
*
|
||||
* @param transform the transform (<code>null</code> not permitted).
|
||||
*
|
||||
* @throws IllegalArgumentException if <code>transform</code> is
|
||||
* <code>null</code>.
|
||||
*/
|
||||
public TransformAttribute (AffineTransform transform)
|
||||
{
|
||||
if (transform == null)
|
||||
{
|
||||
throw new IllegalArgumentException("Null 'transform' not permitted.");
|
||||
}
|
||||
this.affineTransform = new AffineTransform (transform);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copy of the transform contained by this attribute.
|
||||
*
|
||||
* @return A copy of the transform.
|
||||
*/
|
||||
public AffineTransform getTransform ()
|
||||
{
|
||||
return (AffineTransform) affineTransform.clone();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns <code>true</code> if the transform contained by this attribute is
|
||||
* an identity transform, and <code>false</code> otherwise.
|
||||
*
|
||||
* @return <code>true</code> if the transform contained by this attribute is
|
||||
* an identity transform, and <code>false</code> otherwise.
|
||||
*
|
||||
* @since 1.4
|
||||
*/
|
||||
public boolean isIdentity ()
|
||||
{
|
||||
return (affineTransform == null ? false : affineTransform.isIdentity ());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<!-- package.html - describes classes in java.awt.font package.
|
||||
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
GNU Classpath is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Classpath is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 USA.
|
||||
|
||||
Linking this library statically or dynamically with other modules is
|
||||
making a combined work based on this library. Thus, the terms and
|
||||
conditions of the GNU General Public License cover the whole
|
||||
combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent
|
||||
modules, and to copy and distribute the resulting executable under
|
||||
terms of your choice, provided that you also meet, for each linked
|
||||
independent module, the terms and conditions of the license of that
|
||||
module. An independent module is a module which is not derived from
|
||||
or based on this library. If you modify this library, you may extend
|
||||
this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. -->
|
||||
|
||||
<html>
|
||||
<head><title>GNU Classpath - java.awt.font</title></head>
|
||||
|
||||
<body>
|
||||
<p>Representations of different kind of characters and fonts.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user