In this thread I will start quick examples of custom widgets for a blackberry 6/7. F
For a good starting point for component development bb developers may also use AdvancedUIExample project provided by RIM.
Following example presents simple check-box with description text below this field.
Widget was inspired by android platform.
public class CheckboxWithDescription extends CheckboxField { // Factor for extending field height private static final double factor = 1.7; // Additional description private String description; // Style for placement of checkbox in right. private final static long LEFT_LABEL_STYLE = 134217728; public CheckboxWithDescription(String label, String description, boolean checked, long style) { super(label, checked, style | LEFT_LABEL |USE_ALL_WIDTH); this.description = description; } protected void layout(int width, int height) { super.layout(width, height); setExtent(width, (int)(getHeight() * factor)); } protected void paint(Graphics graphics) { super.paint(graphics); int heightAnchor = (int) (getHeight() / 1.8); Font font = graphics.getFont(); graphics.setFont(font.derive(Font.BOLD, font.getHeight(Ui.UNITS_pt) - 1, Ui.UNITS_pt)); graphics.drawText(description, font.getBounds(getLabel()), heightAnchor); } }
This example draws standard check-box field and extend it's height to make place for description. A paint method can be extended to provide different colour of description etc. Any comments are appreciated. Example tested with blackberry 7.0