home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1998 October / DPPCPRO1098.ISO / Hotdog / files / snagpack.exe / SCROLLER.CLASS (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-21  |  5.3 KB  |  255 lines

  1. import java.applet.Applet;
  2. import java.awt.Color;
  3. import java.awt.Component;
  4. import java.awt.Event;
  5. import java.awt.FontMetrics;
  6. import java.awt.Graphics;
  7. import java.awt.Image;
  8. import java.util.Vector;
  9.  
  10. public class scroller extends Applet implements Runnable {
  11.    private Thread engineThread;
  12.    private Graphics offGraphics;
  13.    private Image offImage;
  14.    private boolean userPause;
  15.    private boolean readyToPaint;
  16.    private String lbl;
  17.    private myFont font;
  18.    private int speed;
  19.    private int oldx = -5000;
  20.    // $FF: renamed from: x2 int
  21.    private int field_0;
  22.    // $FF: renamed from: y int
  23.    private int field_1;
  24.    private int restart;
  25.    private int number = -1;
  26.    private int sleepTime;
  27.    private int fred = 255;
  28.    private int fblue;
  29.    private int fgreen;
  30.    private int bred;
  31.    private int bblue;
  32.    private int bgreen;
  33.    private int downstart;
  34.    private int downy = -10000;
  35.    private int extrax = 10000;
  36.    private Vector lines = new Vector();
  37.    private int elemN;
  38.    private int n_lines = -1;
  39.    private boolean debug;
  40.    private boolean firstTime = true;
  41.    private String attr = new String();
  42.    private boolean matched;
  43.    private boolean unreg = true;
  44.  
  45.    public void stop() {
  46.       if (this.engineThread != null && this.engineThread.isAlive()) {
  47.          this.engineThread.stop();
  48.       }
  49.  
  50.       this.engineThread = null;
  51.    }
  52.  
  53.    private synchronized int stringUpdate(int var1) {
  54.       this.dbg("oldx: " + var1 + " " + (0 - this.restart));
  55.       if (var1 <= 0 - this.restart) {
  56.          this.restart = 0;
  57.       }
  58.  
  59.       return var1;
  60.    }
  61.  
  62.    private synchronized void prePaint(Graphics var1) {
  63.       var1.setColor(new Color(this.bred, this.bgreen, this.bblue));
  64.       var1.fillRect(0, 0, ((Component)this).size().width, ((Component)this).size().height);
  65.       var1.setFont(this.font);
  66.       FontMetrics var2 = var1.getFontMetrics();
  67.       int var3 = var2.stringWidth((String)this.lines.elementAt(this.elemN));
  68.       this.restart = this.restart <= 0 - var3 ? var3 : this.restart;
  69.       this.field_1 = ((Component)this).size().height / 2 + var2.getHeight() / 2;
  70.       var1.setColor(new Color(this.fred, this.fgreen, this.fblue));
  71.       if (this.number >= 0) {
  72.          var1.drawString((String)this.lines.elementAt(this.number), this.field_0, this.field_1);
  73.          this.field_0 -= this.speed;
  74.          this.field_0 = this.stringUpdate(this.field_0);
  75.       }
  76.  
  77.       var1.drawString((String)this.lines.elementAt(this.elemN), this.oldx, this.field_1);
  78.       this.oldx -= this.speed;
  79.       if (this.oldx + var3 < ((Component)this).size().width / 2) {
  80.          this.field_0 = this.oldx;
  81.          this.oldx = ((Component)this).size().width;
  82.          this.number = this.elemN++;
  83.          if (this.elemN > this.n_lines) {
  84.             this.elemN = 0;
  85.          }
  86.  
  87.          this.dbg("Element: " + this.elemN);
  88.       }
  89.  
  90.    }
  91.  
  92.    public void paint(Graphics var1) {
  93.       if (this.engineThread != null) {
  94.          if (this.offGraphics != null) {
  95.             this.prePaint(this.offGraphics);
  96.             var1.drawImage(this.offImage, 0, 0, this);
  97.          } else {
  98.             this.prePaint(var1);
  99.          }
  100.       }
  101.  
  102.    }
  103.  
  104.    private void dbg(String var1) {
  105.       if (this.debug) {
  106.          System.out.println(var1);
  107.       }
  108.  
  109.    }
  110.  
  111.    public void update(Graphics var1) {
  112.       if (this.readyToPaint) {
  113.          this.paint(var1);
  114.       }
  115.  
  116.    }
  117.  
  118.    public void start() {
  119.       if (this.engineThread == null) {
  120.          this.engineThread = new Thread(this);
  121.       }
  122.  
  123.       this.engineThread.start();
  124.    }
  125.  
  126.    public String getAppletInfo() {
  127.       return "Swami - scroller.class v1.0 Copyright Sausage SoftWare 1996";
  128.    }
  129.  
  130.    public void run() {
  131.       Thread.currentThread().setPriority(1);
  132.       this.readyToPaint = true;
  133.  
  134.       while(true) {
  135.          if (this.unreg) {
  136.             ((Applet)this).getAppletContext().showStatus("Unregistered version. Copyright (c) Sausage Software 1996");
  137.          }
  138.  
  139.          ((Component)this).repaint();
  140.  
  141.          try {
  142.             Thread.sleep((long)this.sleepTime);
  143.          } catch (Exception var1) {
  144.          }
  145.       }
  146.    }
  147.  
  148.    public void init() {
  149.       String var1 = ((Applet)this).getParameter("font");
  150.       Object var2 = null;
  151.       String var18 = myFont.getFontName(var1);
  152.       this.dbg(var18);
  153.       int var3 = 12;
  154.       int var4 = 0;
  155.       var1 = ((Applet)this).getParameter("fontsize");
  156.       if (var1 != null) {
  157.          var3 = Integer.parseInt(var1);
  158.       }
  159.  
  160.       var1 = ((Applet)this).getParameter("style");
  161.       var4 = myFont.getFontStyle(var1);
  162.       this.font = new myFont(var18, var4, var3);
  163.       int var5 = 1;
  164.  
  165.       while(true) {
  166.          var1 = ((Applet)this).getParameter("line" + var5);
  167.          if (var1 == null) {
  168.             if (var5 == 1) {
  169.                this.lines.addElement("No text specified");
  170.                ++this.n_lines;
  171.             }
  172.  
  173.             String var6 = ((Applet)this).getParameter("reguser");
  174.             if (var6 == null) {
  175.                ver.NotRegistered();
  176.             }
  177.  
  178.             if (var6.toLowerCase().equals("unregistered")) {
  179.                this.unreg = true;
  180.             } else {
  181.                this.unreg = false;
  182.             }
  183.  
  184.             String var7 = ((Applet)this).getParameter("serialid");
  185.             if (var7 == null) {
  186.                ver.NotRegistered();
  187.             }
  188.  
  189.             ver var8 = new ver(var6, var7);
  190.             this.matched = var8.verifyUser(this.attr);
  191.             if (!this.matched) {
  192.                ver.NotRegistered();
  193.             }
  194.  
  195.             var1 = ((Applet)this).getParameter("horizontal");
  196.             this.speed = var1 == null ? 5 : Integer.valueOf(var1);
  197.             var1 = ((Applet)this).getParameter("speed");
  198.             if (var1 != null) {
  199.                this.sleepTime = Integer.parseInt(var1);
  200.             }
  201.  
  202.             var1 = ((Applet)this).getParameter("color");
  203.             if (var1 != null) {
  204.                createColor var9 = new createColor(var1, ",");
  205.                var9.getColor();
  206.                this.fred = var9.getRed();
  207.                this.fgreen = var9.getGreen();
  208.                this.fblue = var9.getBlue();
  209.             }
  210.  
  211.             var1 = ((Applet)this).getParameter("background");
  212.             if (var1 != null) {
  213.                createColor var20 = new createColor(var1, ",");
  214.                var20.getColor();
  215.                this.bred = var20.getRed();
  216.                this.bgreen = var20.getGreen();
  217.                this.bblue = var20.getBlue();
  218.             }
  219.  
  220.             try {
  221.                this.offImage = ((Component)this).createImage(((Component)this).size().width, ((Component)this).size().height);
  222.                this.offGraphics = this.offImage.getGraphics();
  223.             } catch (Exception var10) {
  224.                this.offGraphics = null;
  225.             }
  226.  
  227.             this.oldx = ((Component)this).size().width;
  228.             return;
  229.          }
  230.  
  231.          this.lines.addElement(var1);
  232.          ++var5;
  233.          ++this.n_lines;
  234.          this.attr = this.attr.concat(var1);
  235.       }
  236.    }
  237.  
  238.    public boolean handleEvent(Event var1) {
  239.       if (var1.id == 501) {
  240.          if (this.userPause) {
  241.             this.engineThread.resume();
  242.          } else {
  243.             this.engineThread.suspend();
  244.          }
  245.  
  246.          this.userPause = !this.userPause;
  247.       } else if (var1.id == 201) {
  248.          this.stop();
  249.          System.exit(0);
  250.       }
  251.  
  252.       return true;
  253.    }
  254. }
  255.