package org.bbssh.ui.components; import net.rim.device.api.system.Bitmap; import net.rim.device.api.ui.Graphics; import org.bbssh.util.Tools; public class BitmapButtonField extends ClickableButtonField { private Bitmap normal; private Bitmap focused; private Bitmap disabled; private int width; private int height; public BitmapButtonField(String normal) { this(Tools.loadBitmap(normal + ".png"), Tools.loadBitmap(normal + "_f.png"), Tools.loadBitmap(normal + "_d.png")); } public BitmapButtonField(String normal, String focused, String disabled) { this(Tools.loadBitmap(normal), Tools.loadBitmap(focused), Tools.loadBitmap(disabled)); } public BitmapButtonField(Bitmap normal, Bitmap focused, Bitmap disabled) { super(); this.normal = normal; this.focused = focused; this.disabled = disabled; width = normal.getWidth(); height = normal.getHeight(); // setMargin(0, 0, 0, 0); // setPadding(0, 0, 0, 0); // setBorder(BorderFactory.createSimpleBorder(new XYEdges(0, 0, 0, 0))); // setBorder(VISUAL_STATE_ACTIVE, BorderFactory.createSimpleBorder(new XYEdges(0, 0, 0, 0))); } protected void paint(Graphics graphics) { Bitmap bitmap = null; if (isEditable()) { if (isFocus()) { bitmap = focused; } else { bitmap = normal; } } else { bitmap = disabled; } graphics.drawBitmap(0, 0, bitmap.getWidth(), bitmap.getHeight(), bitmap, 0, 0); } public int getPreferredWidth() { return width; } public int getPreferredHeight() { return height; } protected void layout(int width, int height) { setExtent(this.width, this.height); } }