home *** CD-ROM | disk | FTP | other *** search
- package netscape.application;
-
- import netscape.util.ClassInfo;
- import netscape.util.CodingException;
- import netscape.util.Decoder;
- import netscape.util.Encoder;
- import netscape.util.Vector;
-
- public class ImageSequence extends DrawingSequence {
- Vector imageVector;
- Image imageStrip;
- int frameWidth;
- int frameHeight;
- static final String VECTOR_KEY = "imageVector";
- static final String IMAGESTRIP_KEY = "imageStrip";
- static final String FRAMEWIDTH_KEY = "frameWidth";
- static final String FRAMEHEIGHT_KEY = "frameHeight";
-
- public ImageSequence() {
- }
-
- public ImageSequence(DrawingSequenceOwner var1) {
- super(var1);
- }
-
- public Vector images() {
- return this.imageVector;
- }
-
- public void addImage(Image var1) {
- if (this.imageVector == null) {
- this.imageVector = new Vector();
- }
-
- this.imageVector.addElement(var1);
- super.frameCount = this.imageVector.count();
- }
-
- public void addImagesFromName(String var1, int var2) {
- if (var1 != null && var2 >= 0) {
- Application var3 = Application.application();
- int var6 = var1.lastIndexOf(46);
- if (var6 == -1) {
- this.addImage(Bitmap.bitmapNamed(var1));
- } else {
- String var5 = var1.substring(var6);
- int var8 = var6 - 1;
- int var9 = 0;
-
- for(int var10 = 1; var8 > 0 && Character.isDigit(var1.charAt(var8)); --var8) {
- var9 += var10 * Character.digit(var1.charAt(var8), 10);
- var10 *= 10;
- }
-
- String var4 = var1.substring(0, var8 + 1);
- if (this.imageVector == null) {
- this.imageVector = new Vector();
- }
-
- var2 += var9;
-
- for(int var7 = var9; var7 < var2; ++var7) {
- this.imageVector.addElement(Bitmap.bitmapNamed(var4 + var7 + var5));
- }
-
- super.frameCount = this.imageVector.count();
- }
- }
- }
-
- public void removeImage(Image var1) {
- if (this.imageVector != null) {
- this.imageVector.removeElement(var1);
- super.frameCount = this.imageVector.count();
- }
-
- }
-
- public void removeAllImages() {
- if (this.imageVector != null) {
- this.imageVector.removeAllElements();
- }
-
- this.imageStrip = null;
- super.currentFrameNumber = super.frameCount = 0;
- }
-
- public void setImageStrip(Image var1) {
- this.imageStrip = var1;
- super.currentFrameNumber = super.frameCount = 0;
- }
-
- public Image imageStrip() {
- return this.imageStrip;
- }
-
- public void setFrameWidth(int var1) {
- if (var1 < 0) {
- var1 = 0;
- }
-
- this.frameWidth = var1;
- if (this.frameWidth > 0 && this.imageStrip != null) {
- super.frameCount = this.imageStrip.width() / this.frameWidth;
- } else {
- super.currentFrameNumber = super.frameCount = 0;
- }
- }
-
- public int frameWidth() {
- return this.frameWidth;
- }
-
- public void setFrameHeight(int var1) {
- if (var1 < 0) {
- var1 = 0;
- }
-
- this.frameHeight = var1;
- if (this.frameHeight > 0 && this.imageStrip != null) {
- super.frameCount = this.imageStrip.height() / this.frameHeight;
- } else {
- super.currentFrameNumber = super.frameCount = 0;
- }
- }
-
- public int frameHeight() {
- return this.frameHeight;
- }
-
- public int imageCount() {
- return ((DrawingSequence)this).frameCount();
- }
-
- public void setCurrentImageNumber(int var1) {
- if (var1 < 0) {
- var1 = 0;
- } else if (var1 >= super.frameCount) {
- var1 = super.frameCount - 1;
- }
-
- super.currentFrameNumber = var1;
- }
-
- public Image currentImage() {
- return this.imageVector != null ? (Image)this.imageVector.elementAt(super.currentFrameNumber) : this.imageStrip;
- }
-
- public Size maxSize() {
- if (this.imageStrip != null) {
- if (this.frameWidth > 0) {
- return new Size(this.frameWidth, this.imageStrip.height());
- }
-
- if (this.frameHeight > 0) {
- return new Size(this.imageStrip.width(), this.frameHeight);
- }
- } else if (this.imageVector != null && !this.imageVector.isEmpty()) {
- int var4 = 0;
- int var3 = 0;
- int var2 = this.imageVector.count();
-
- while(var2-- > 0) {
- Image var1 = (Image)this.imageVector.elementAt(var2);
- if (var1.width() > var3) {
- var3 = var1.width();
- }
-
- if (var1.height() > var4) {
- var4 = var1.height();
- }
- }
-
- return new Size(var3, var4);
- }
-
- return new Size(0, 0);
- }
-
- public int width() {
- int var3 = 0;
- if (this.imageStrip != null) {
- return this.frameWidth > 0 ? this.frameWidth : this.imageStrip.width();
- } else if (this.imageVector == null) {
- return 0;
- } else {
- int var2 = this.imageVector.count();
-
- while(var2-- > 0) {
- Image var1 = (Image)this.imageVector.elementAt(var2);
- if (var1.width() > var3) {
- var3 = var1.width();
- }
- }
-
- return var3;
- }
- }
-
- public int height() {
- int var3 = 0;
- if (this.imageStrip != null) {
- return this.frameHeight > 0 ? this.frameHeight : this.imageStrip.height();
- } else if (this.imageVector == null) {
- return 0;
- } else {
- int var2 = this.imageVector.count();
-
- while(var2-- > 0) {
- Image var1 = (Image)this.imageVector.elementAt(var2);
- if (var1.height() > var3) {
- var3 = var1.height();
- }
- }
-
- return var3;
- }
- }
-
- public void drawAt(Graphics var1, int var2, int var3) {
- if (this.imageVector != null) {
- Image var4 = (Image)this.imageVector.elementAt(super.currentFrameNumber);
- if (var4 != null) {
- var4.drawAt(var1, var2, var3);
- return;
- }
- } else {
- if (this.frameWidth > 0) {
- Rect var6 = Rect.newRect(var2, var3, this.frameWidth, this.imageStrip.height());
- var1.pushState();
- var1.setClipRect(var6);
- this.imageStrip.drawAt(var1, var2 - this.frameWidth * super.currentFrameNumber, var3);
- var1.popState();
- Rect.returnRect(var6);
- return;
- }
-
- if (this.frameHeight > 0) {
- Rect var5 = Rect.newRect(var2, var3, this.imageStrip.width(), this.frameHeight);
- var1.pushState();
- var1.setClipRect(var5);
- this.imageStrip.drawAt(var1, var2, var3 - this.frameHeight * super.currentFrameNumber);
- var1.popState();
- Rect.returnRect(var5);
- }
- }
-
- }
-
- public void drawScaled(Graphics var1, int var2, int var3, int var4, int var5) {
- if (this.imageVector != null) {
- Image var6 = (Image)this.imageVector.elementAt(super.currentFrameNumber);
- if (var6 != null) {
- var6.drawCentered(var1, var2, var3, var4, var5);
- return;
- }
- } else {
- if (this.frameWidth > 0) {
- var2 += (var4 - this.frameWidth) / 2;
- var3 += (var5 - this.imageStrip.height()) / 2;
- Rect var12 = Rect.newRect(var2, var3, this.frameWidth, this.imageStrip.height());
- var1.pushState();
- var1.setClipRect(var12);
- this.imageStrip.drawAt(var1, var2 - this.frameWidth * super.currentFrameNumber, var3);
- var1.popState();
- Rect.returnRect(var12);
- return;
- }
-
- if (this.frameHeight > 0) {
- var2 += (var4 - this.imageStrip.width()) / 2;
- var3 += (var5 - this.frameHeight) / 2;
- Rect var7 = Rect.newRect(var2, var3, this.imageStrip.width(), this.frameHeight);
- var1.pushState();
- var1.setClipRect(var7);
- this.imageStrip.drawAt(var1, var2, var3 - this.frameHeight * super.currentFrameNumber);
- var1.popState();
- Rect.returnRect(var7);
- }
- }
-
- }
-
- public void describeClassInfo(ClassInfo var1) {
- super.describeClassInfo(var1);
- var1.addClass("netscape.application.ImageSequence", 1);
- var1.addField("imageVector", (byte)18);
- var1.addField("imageStrip", (byte)18);
- var1.addField("frameWidth", (byte)8);
- var1.addField("frameHeight", (byte)8);
- }
-
- public void encode(Encoder var1) throws CodingException {
- super.encode(var1);
- var1.encodeObject("imageVector", this.imageVector);
- var1.encodeObject("imageStrip", this.imageStrip);
- var1.encodeInt("frameWidth", this.frameWidth);
- var1.encodeInt("frameHeight", this.frameHeight);
- }
-
- public void decode(Decoder var1) throws CodingException {
- super.decode(var1);
- this.imageVector = (Vector)var1.decodeObject("imageVector");
- this.imageStrip = (Image)var1.decodeObject("imageStrip");
- this.frameWidth = var1.decodeInt("frameWidth");
- this.frameHeight = var1.decodeInt("frameHeight");
- }
- }
-