package pt.tumba.parser.swf; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * Description of the Class * *@author unknown *@created 15 de Setembro de 2002 */ public class ButtonRecord { public final static int BUTTON_HITTEST = 0x08; public final static int BUTTON_DOWN = 0x04; public final static int BUTTON_OVER = 0x02; public final static int BUTTON_UP = 0x01; protected int flags; protected int id; protected int layer; protected Matrix matrix; /** * Gets the charId attribute of the ButtonRecord object * *@return The charId value */ public int getCharId() { return id; } /** * Gets the layer attribute of the ButtonRecord object * *@return The layer value */ public int getLayer() { return layer; } /** * Gets the matrix attribute of the ButtonRecord object * *@return The matrix value */ public Matrix getMatrix() { return matrix; } /** * Gets the flags attribute of the ButtonRecord object * *@return The flags value */ public int getFlags() { return flags; } /** * Gets the hitTest attribute of the ButtonRecord object * *@return The hitTest value */ public boolean isHitTest() { return ((flags & BUTTON_HITTEST) != 0); } /** * Gets the down attribute of the ButtonRecord object * *@return The down value */ public boolean isDown() { return ((flags & BUTTON_DOWN) != 0); } /** * Gets the over attribute of the ButtonRecord object * *@return The over value */ public boolean isOver() { return ((flags & BUTTON_OVER) != 0); } /** * Gets the up attribute of the ButtonRecord object * *@return The up value */ public boolean isUp() { return ((flags & BUTTON_UP) != 0); } /** * Sets the charId attribute of the ButtonRecord object * *@param id The new charId value */ public void setCharId(int id) { this.id = id; } /** * Sets the layer attribute of the ButtonRecord object * *@param layer The new layer value */ public void setLayer(int layer) { this.layer = layer; } /** * Sets the matrix attribute of the ButtonRecord object * *@param matrix The new matrix value */ public void setMatrix(Matrix matrix) { this.matrix = matrix; } /** * Sets the flags attribute of the ButtonRecord object * *@param flags The new flags value */ public void setFlags(int flags) { this.flags = flags; } /** * Read a button record array * *@param in Description of the Parameter *@return Description of the Return Value *@exception IOException Description of the Exception */ public static List read(InStream in) throws IOException { List records = new ArrayList(); int firstByte = 0; while ((firstByte = in.readUI8()) != 0) { records.add(new ButtonRecord(in, firstByte)); } return records; } /** * Write a button record array * *@param out Description of the Parameter *@param records Description of the Parameter *@exception IOException Description of the Exception */ public static void write(OutStream out, List records) throws IOException { for (Iterator enumerator = records.iterator(); enumerator.hasNext(); ) { ButtonRecord rec = (ButtonRecord) enumerator.next(); rec.write(out); } out.writeUI8(0); } /** * Constructor for the ButtonRecord object * *@param id Description of the Parameter *@param layer Description of the Parameter *@param matrix Description of the Parameter *@param flags Description of the Parameter */ public ButtonRecord(int id, int layer, Matrix matrix, int flags) { this.id = id; this.layer = layer; this.matrix = matrix; this.flags = flags; } /** * Constructor for the ButtonRecord object * *@param in Description of the Parameter *@param firstByte Description of the Parameter *@exception IOException Description of the Exception */ protected ButtonRecord(InStream in, int firstByte) throws IOException { flags = firstByte; id = in.readUI16(); layer = in.readUI16(); matrix = new Matrix(in); } /** * Description of the Method * *@param out Description of the Parameter *@exception IOException Description of the Exception */ protected void write(OutStream out) throws IOException { out.writeUI8(flags); out.writeUI16(id); out.writeUI16(layer); matrix.write(out); } /** * Description of the Method * *@return Description of the Return Value */ public String toString() { return "layer=" + layer + " id=" + id + " flags=" + Integer.toBinaryString(flags) + " " + matrix; } }