package org.albite.book.view; import javax.microedition.lcdui.Graphics; import org.albite.albite.ColorScheme; import org.albite.font.AlbiteFont; //#if !(TinyMode || TinyModeExport || LightMode || LightModeExport) import org.albite.lang.TextTools; //#endif public class TextRegion extends Region { protected final short length; protected final byte color; protected final byte style; public TextRegion ( final short x, final short y, final short width, final short height, final int position, final int length, final byte style, final byte color) { super(x, y, width, height, position); this.length = (short) length; this.style = style; this.color = color; } public void draw( final Graphics g, final ColorScheme cp, final AlbiteFont fontPlain, final AlbiteFont fontItalic, final char[] chapterBuffer) { AlbiteFont font = TextPage.chooseFont(fontPlain, fontItalic, style); font.drawChars(g, cp.colors[color], chapterBuffer, x, y, position, length); } public void drawSelected( final Graphics g, final ColorScheme cp, final AlbiteFont fontPlain, final AlbiteFont fontItalic, final char[] chapterBuffer) { AlbiteFont font = TextPage.chooseFont(fontPlain, fontItalic, style); g.setColor(cp.colors[color]); g.fillRect(x, y, width, height); font.drawChars(g, cp.colors[ColorScheme.COLOR_BACKGROUND], chapterBuffer, x, y, position, length); } public final String getText(final char[] chapterBuffer) { //#if !(TinyMode || TinyModeExport || LightMode || LightModeExport) return TextTools.prepareForDict(chapterBuffer, position, length); //#else //# return new String(chapterBuffer, position, length); //#endif } public void addTextChunk( final char[] chapterBuffer, final StringBuffer buf) { buf.append(chapterBuffer, position, length); buf.append(' '); } }