Class RMFont

  • All Implemented Interfaces:
    Archivable

    public class RMFont
    extends java.lang.Object
    implements Archivable
    This class represents a font for use in rich text. Currently this is necessary because Java fonts are missing so much basic typographic information.
    • Constructor Summary

      Constructors 
      Constructor Description
      RMFont()
      Creates an empty font (really only used for unarchival).
      RMFont​(java.awt.Font aFont)  
      RMFont​(java.lang.String aName, double aSize)
      Deprecated.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      java.awt.Font awt()
      Returns the AWT font for this font.
      boolean canDisplay​(char aChar)
      Returns if this font can display the given char.
      double charAdvance​(char aChar)
      Returns the char advance for the given char.
      RMRect charBounds​(char aChar)
      Returns the bounds for a given character.
      double charKern​(char aChar1, char aChar2)
      Returns the kerning for the given pair of characters (no way to do this in Java!).
      RMPath charPath​(char c)
      Returns the path for a given character.
      RMFont deriveFont​(double aPointSize)
      Returns a font with the same family as the receiver but with the given size.
      boolean equals​(java.lang.Object anObj)
      Standard equals implementation.
      java.lang.Object fromXML​(RXArchiver anArchiver, RXElement anElement)
      XML unarchival.
      RMFont getBold()
      Returns the bold version of this font.
      static RMFont getDefaultFont()
      Returns the user's default font.
      java.lang.String getFamily()
      Returns the family name of this font.
      java.lang.String getFamilyEnglish()
      Returns the family name of this font in English.
      static RMFont getFont​(java.awt.Font aFont)
      Returns the font for the given name and size (substitutes Arial if not found).
      static RMFont getFont​(java.lang.String aName, double aSize)
      Deprecated.
      RMFontFile getFontFile()
      Returns the font file for this font.
      java.lang.String getFontName()
      Returns the name of this font.
      java.lang.String getFontNameEnglish()
      Returns the name of this font in English.
      int getFontStyle()  
      double getHeight()
      Returns the height of this font.
      RMFont getItalic()
      Returns the italic version of this font.
      double getLeading()
      Returns the default distance between lines for this font.
      double getLineAdvance()
      Returns the distance from the top of a line of text to the to top of a successive line of text.
      double getLineHeight()
      Returns the height for a line of text in this font.
      java.lang.String getLogicalName()  
      double getMaxAscent()
      Returns the max distance above the baseline that this font goes.
      double getMaxDescent()
      Returns the max distance below the baseline that this font goes.
      java.lang.String getPSName()
      Returns the PostScript name of this font.
      double getSize()
      Returns the font size of this font.
      double getStrikethroughOffset()
      Returns the distance above the baseline that a strikethrough should be drawn.
      double getUnderlineOffset()
      Returns the distance below the baseline that an underline should be drawn.
      double getUnderlineThickness()
      Returns the default thickness that an underline should be drawn.
      boolean isBold()
      Returns whether this font is considered bold.
      boolean isItalic()
      Returns whether this font is considered italic.
      boolean isSubstitute()
      Returns whether font had to substitute because name wasn't found.
      RMFont scaleFont​(double aScale)
      Returns a font with the same family as the receiver but with size adjusted by given scale factor.
      double stringAdvance​(java.lang.String aString)
      Returns the horizontal distance spanned by the given string when rendered in this font.
      RMFont toggleStyle​(int style)
      Returns a new RMFont with style toggled.
      java.lang.String toString()
      Returns the font name, size and family for this font.
      RXElement toXML​(RXArchiver anArchiver)
      XML archival.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • Helvetica10

        public static RMFont Helvetica10
      • Helvetica12

        public static RMFont Helvetica12
      • Helvetica14

        public static RMFont Helvetica14
    • Constructor Detail

      • RMFont

        public RMFont()
        Creates an empty font (really only used for unarchival).
      • RMFont

        @Deprecated
        public RMFont​(java.lang.String aName,
                      double aSize)
        Deprecated.
        Returns the font for the given name and size.
      • RMFont

        public RMFont​(@Nonnull
                      java.awt.Font aFont)
    • Method Detail

      • getFont

        @Deprecated
        public static RMFont getFont​(java.lang.String aName,
                                     double aSize)
        Deprecated.
        Returns the font for the given name and size (substitutes Arial if not found).
      • getFont

        public static RMFont getFont​(java.awt.Font aFont)
        Returns the font for the given name and size (substitutes Arial if not found).
      • getDefaultFont

        public static RMFont getDefaultFont()
        Returns the user's default font.
      • getFontName

        public java.lang.String getFontName()
        Returns the name of this font.
      • getFontNameEnglish

        public java.lang.String getFontNameEnglish()
        Returns the name of this font in English.
      • getLogicalName

        public java.lang.String getLogicalName()
      • getFontStyle

        public int getFontStyle()
      • getSize

        public double getSize()
        Returns the font size of this font.
      • getFamily

        public java.lang.String getFamily()
        Returns the family name of this font.
      • getFamilyEnglish

        public java.lang.String getFamilyEnglish()
        Returns the family name of this font in English.
      • getPSName

        public java.lang.String getPSName()
        Returns the PostScript name of this font.
      • getFontFile

        public RMFontFile getFontFile()
        Returns the font file for this font.
      • charAdvance

        public double charAdvance​(char aChar)
        Returns the char advance for the given char.
      • charKern

        public double charKern​(char aChar1,
                               char aChar2)
        Returns the kerning for the given pair of characters (no way to do this in Java!).
      • charPath

        public RMPath charPath​(char c)
        Returns the path for a given character.
      • charBounds

        public RMRect charBounds​(char aChar)
        Returns the bounds for a given character.
      • stringAdvance

        public double stringAdvance​(@Nonnull
                                    java.lang.String aString)
        Returns the horizontal distance spanned by the given string when rendered in this font.
      • getMaxAscent

        public double getMaxAscent()
        Returns the max distance above the baseline that this font goes.
      • getMaxDescent

        public double getMaxDescent()
        Returns the max distance below the baseline that this font goes.
      • getLeading

        public double getLeading()
        Returns the default distance between lines for this font.
      • getHeight

        public double getHeight()
        Returns the height of this font.
      • getLineHeight

        public double getLineHeight()
        Returns the height for a line of text in this font.
      • getLineAdvance

        public double getLineAdvance()
        Returns the distance from the top of a line of text to the to top of a successive line of text.
      • getUnderlineOffset

        public double getUnderlineOffset()
        Returns the distance below the baseline that an underline should be drawn.
      • getUnderlineThickness

        public double getUnderlineThickness()
        Returns the default thickness that an underline should be drawn.
      • getStrikethroughOffset

        public double getStrikethroughOffset()
        Returns the distance above the baseline that a strikethrough should be drawn.
      • isBold

        public boolean isBold()
        Returns whether this font is considered bold.
      • isItalic

        public boolean isItalic()
        Returns whether this font is considered italic.
      • isSubstitute

        public boolean isSubstitute()
        Returns whether font had to substitute because name wasn't found.
      • canDisplay

        public boolean canDisplay​(char aChar)
        Returns if this font can display the given char.
      • getBold

        @Nonnull
        public RMFont getBold()
        Returns the bold version of this font.
      • getItalic

        @Nonnull
        public RMFont getItalic()
        Returns the italic version of this font.
      • toggleStyle

        @Nonnull
        public RMFont toggleStyle​(int style)
        Returns a new RMFont with style toggled.
      • deriveFont

        public RMFont deriveFont​(double aPointSize)
        Returns a font with the same family as the receiver but with the given size.
      • scaleFont

        public RMFont scaleFont​(double aScale)
        Returns a font with the same family as the receiver but with size adjusted by given scale factor.
      • equals

        public boolean equals​(java.lang.Object anObj)
        Standard equals implementation.
        Overrides:
        equals in class java.lang.Object
      • toString

        public java.lang.String toString()
        Returns the font name, size and family for this font.
        Overrides:
        toString in class java.lang.Object
      • awt

        public java.awt.Font awt()
        Returns the AWT font for this font.