classpath
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] text layout implementation


From: Sascha Brawer
Subject: Re: [PATCH] text layout implementation
Date: Thu, 20 Nov 2003 17:31:35 +0100

graydon hoare <address@hidden> wrote on Wed, 19 Nov 2003 15:38:19 -0500:

>Sascha Brawer <address@hidden> writes:
>
>> Also, does the proposed implementation work if there are changes in any
>> attributes other than font, such as TextAttribute.UNDERLINE? It seems
>> that all these attributes are lost by passing Strings.
>
>well, the CharacterIteratorProxy I've implemented (modified patch
>below) doesn't do the whole AttributedCharacterIterator interface, but
>there's no method on Font to create a glyph vector with an
>AttributedCharacterIterator anyways. I think we'd have to interpret
>extra attributes as calls to deriveFont or something, no?

Hm, it's really tricky... AttributedCharacterIterator is actually a
subinterface of CharacterIterator, so Font.createGlyphVector could handle
some of the attributes. But presumably only those which manifest in glyph
selection and placement -- probably BIDI_EMBEDDING, CHAR_REPLACEMENT,
JUSTIFICATION, NUMERIC_SHAPING, RUN_DIRECTION, SUPERSCRIPT. I guess one
would want to pass them to Font.createGlyphVector, but I'm not really sure.

FAMILY, FONT, POSTURE, SIZE, TRANSFORM, WEIGHT, WIDTH: Because all
elements of a GlyphVector belong to the same Font, these probably cannot
be handled by Font.creteGlyphVector. Handle them in TextLayout?

BACKGROUND, FOREGROUND, SWAP_COLORS; INPUT_METHOD_UNDERLINE,
STRIKETHROUGH, UNDERLINE: These are tricky. Should this information be
part of the GlyphVector?

INPUT_METHOD_HIGHLIGHT: There's a method
java.awt.Toolkit.mapInputMethodHighlight for mapping the value to a
visual TextAttribute.

Well, here's an observation that is easier to discuss: The first part of

  (fnt != null && fnt instanceof Font)

is redundant.

Best,

-- Sascha

Sascha Brawer, address@hidden, http://www.dandelis.ch/people/brawer/ 






reply via email to

[Prev in Thread] Current Thread [Next in Thread]