FileDocCategorySizeDatePackage
InputModeLayer.javaAPI DocphoneME MR2 API (J2ME)3840Wed May 02 18:00:20 BST 2007com.sun.midp.chameleon.layers

InputModeLayer

public class InputModeLayer extends PopupLayer
The InputModeLayer is a very simple overlay that displays to the user the notion of the "current" input mode. The layer is not interactive and is only visible when a text component is currently selected.

Fields Summary
protected String
mode
A variable holding the current display mode label
protected int
stringWidth
The width in pixels (using the default font) of the mode name
protected int
stringHeight
protected int[]
anchor
Constructors Summary
public InputModeLayer()

        super();
        setBackground(InputModeSkin.IMAGE_BG, InputModeSkin.COLOR_BG);
        this.supportsInput = false;
        anchor = new int[2];
        stringHeight = InputModeSkin.FONT.getHeight();        
    
Methods Summary
public java.lang.StringgetDisplayMode()
Get the text to be displayed which represents the display name of the currently selected input mode

return
mode the display name of the currently selected input mode

        return mode;
    
public voidpaintBody(Graphics g)

        if (mode != null) {
            g.setFont(InputModeSkin.FONT);
            g.setColor(InputModeSkin.COLOR_FG);
            g.drawString(mode, InputModeSkin.MARGIN, 0, Graphics.LEFT | Graphics.TOP);
        }
        g.setColor(InputModeSkin.COLOR_BDR);
        g.drawRect(0, 0, bounds[W] - 1, bounds[H] - 1);
        g.setColor(InputModeSkin.COLOR_FG);
    
public voidsetAnchor(int anchorX, int anchorY, int itemH, int spaceBelow)

       
        anchor[X] = anchorX;
        anchor[Y] = anchorY;
        if (spaceBelow < stringHeight) {
            anchor[Y] -= stringHeight;
        } else {
            anchor[Y] += itemH;
        }
        updateLocation();
    
public voidsetDisplayMode(java.lang.String mode)
Set the text to be displayed which represents the display name of the currently selected input mode

param
mode the display name of the currently selected input mode

        if (this.mode != mode) {
            this.mode = mode;
            stringWidth = InputModeSkin.FONT.stringWidth(mode);
            updateLocation();
        }
    
protected voidupdateLocation()

        if (owner != null) {
            owner.relocateLayer(this,                 
                            anchor[X] - stringWidth - InputModeSkin.MARGIN * 2,
                            anchor[Y], 
                            stringWidth + InputModeSkin.MARGIN * 2, 
                            stringHeight);
        }