fbbuttonitem.java

来自「Sony Ericsson手机上的Facebook客户端全套代码」· Java 代码 · 共 111 行

JAVA
111
字号
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   FbButtonItem.java

package com.sonyericsson.fb.ui.fbComponents.listItems;

import com.sonyericsson.fb.ui.fbComponents.ListItem;
import com.sonyericsson.fb.utils.Properties;
import javax.microedition.lcdui.Image;
import se.southend.drops.gui.*;
import se.southend.drops.scene.Group;
import se.southend.drops.scene.Node;
import se.southend.drops.screen.KeyHandler;
import se.southend.drops.tools.Tools;

public abstract class FbButtonItem extends ListItem
{

    public FbButtonItem(String text)
    {
        mState = 1;
        mText = new TextSprite(text, Properties.FONT_BOLD, 0xffffff);
        mImgBackground = new StretchBitmapSprite();
        StretchTemplate stretch = new StretchTemplate();
        stretch.addColumn(9, 0);
        stretch.addColumn(8, 1);
        stretch.addColumn(9, 0);
        stretch.addRow(28, 0);
        mImgBackground.setImage(buttonUpImage);
        mImgBackground.setStretchTemplate(stretch);
        int buttonWidth = mText.getWidth() + 16;
        if(buttonWidth < 89)
            buttonWidth = 89;
        mImgBackground.setSize(buttonWidth, 28);
        setDimensions(mImgBackground.getWidth() + 40, mImgBackground.getHeight() - 2);
        mGraphics = new Group();
        mGraphics.add(mImgBackground);
        mGraphics.add(mText);
        add(mGraphics);
    }

    private void setState(int state)
    {
        if(state != mState)
        {
            switch(state)
            {
            case 1: // '\001'
                mImgBackground.setImage(buttonUpImage);
                mText.setLocalPosition(0, 0);
                break;

            case 2: // '\002'
                mImgBackground.setImage(buttonFocusedImage);
                mText.setLocalPosition(0, 0);
                break;

            case 0: // '\0'
                mImgBackground.setImage(buttonDownImage);
                mText.setLocalPosition(0, 256);
                break;
            }
            mState = state;
        }
    }

    public void setFocused(boolean focused)
    {
        super.setFocused(focused);
        if(focused)
            setState(2);
        else
            setState(1);
    }

    public boolean isFocusable()
    {
        return true;
    }

    public boolean input(KeyHandler keyHandler)
    {
        if(keyHandler.wasPressed(16))
            setState(0);
        else
        if(!keyHandler.isHeld(16) && mState == 0)
        {
            setState(2);
            OnButtonReleased();
            return true;
        }
        return false;
    }

    public abstract void OnButtonReleased();

    private static final int MIN_BUTTON_WIDTH = 89;
    private static final int STATE_BUTTON_DOWN = 0;
    private static final int STATE_BUTTON_UP = 1;
    private static final int STATE_FOCUSED = 2;
    private int mState;
    private TextSprite mText;
    private StretchBitmapSprite mImgBackground;
    private Group mGraphics;
    private static final Image buttonUpImage = Tools.loadImage("/button.png");
    private static final Image buttonFocusedImage = Tools.loadImage("/button_selected.png");
    private static final Image buttonDownImage = Tools.loadImage("/button_pressed.png");

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?