home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VCafe / WDESAMPL.BIN / TickerArea.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-11-19  |  2.4 KB  |  89 lines

  1. import java.awt.Color;
  2. import java.awt.Font;
  3. import java.awt.FontMetrics;
  4. import java.awt.Graphics;
  5. import java.util.StringTokenizer;
  6.  
  7. class TickerArea extends ImageMapArea {
  8.    String tickertext;
  9.    Color tickercolor;
  10.    Font tickerfont;
  11.    int speed;
  12.    int tickerx;
  13.    int tickery;
  14.    int tickerlen;
  15.    long lasttick;
  16.  
  17.    public void handleArg(String var1) {
  18.       StringTokenizer var2 = new StringTokenizer(var1, ",");
  19.       this.tickertext = var2.nextToken();
  20.       this.tickercolor = Color.black;
  21.       this.speed = 100;
  22.       String var3 = "TimesRoman";
  23.       if (var2.hasMoreTokens()) {
  24.          var3 = var2.nextToken();
  25.          if (var2.hasMoreTokens()) {
  26.             String var4 = var2.nextToken();
  27.             if (var4.startsWith("#")) {
  28.                var4 = var4.substring(1);
  29.             }
  30.  
  31.             try {
  32.                int var5 = Integer.parseInt(var4, 16);
  33.                this.tickercolor = new Color(var5 >> 16 & 255, var5 >> 8 & 255, var5 & 255);
  34.             } catch (Exception var8) {
  35.                this.tickercolor = Color.black;
  36.             }
  37.  
  38.             if (var2.hasMoreTokens()) {
  39.                var4 = var2.nextToken();
  40.  
  41.                try {
  42.                   this.speed = Integer.parseInt(var4);
  43.                } catch (Exception var7) {
  44.                   this.speed = 100;
  45.                }
  46.             }
  47.          }
  48.       }
  49.  
  50.       int var6 = super.H;
  51.  
  52.       FontMetrics var10;
  53.       int var11;
  54.       do {
  55.          var11 = var6;
  56.          this.tickerfont = new Font(var3, 0, var6);
  57.          var10 = super.parent.getFontMetrics(this.tickerfont);
  58.          var6 = var6 * 9 / 10;
  59.       } while(var10.getHeight() > super.H && var11 > 0);
  60.  
  61.       this.tickerlen = var10.stringWidth(this.tickertext);
  62.       this.tickery = var10.getAscent();
  63.    }
  64.  
  65.    public void getMedia() {
  66.       this.tickerx = 0;
  67.       ((ImageMapArea)this).repaint();
  68.       this.lasttick = System.currentTimeMillis();
  69.    }
  70.  
  71.    public boolean animate() {
  72.       long var1 = System.currentTimeMillis();
  73.       this.tickerx = (int)((long)this.tickerx - (long)this.speed * (var1 - this.lasttick) / 1000L);
  74.       if (this.tickerx > super.W || this.tickerx + this.tickerlen < 0) {
  75.          this.tickerx = super.W;
  76.       }
  77.  
  78.       ((ImageMapArea)this).repaint();
  79.       this.lasttick = var1;
  80.       return true;
  81.    }
  82.  
  83.    public void highlight(Graphics var1) {
  84.       var1.setColor(this.tickercolor);
  85.       var1.setFont(this.tickerfont);
  86.       var1.drawString(this.tickertext, super.X + this.tickerx, super.Y + this.tickery);
  87.    }
  88. }
  89.