home *** CD-ROM | disk | FTP | other *** search
/ MACD 4 / MACD4.iso / Internet / Java / ui / drawing / example / SelectionArea.class (.txt) < prev    next >
Encoding:
Java Class File  |  1978-03-06  |  1.5 KB  |  78 lines

  1. import java.awt.Canvas;
  2. import java.awt.Component;
  3. import java.awt.Dimension;
  4. import java.awt.Event;
  5. import java.awt.Graphics;
  6. import java.awt.Rectangle;
  7.  
  8. class SelectionArea extends Canvas {
  9.    Rectangle currentRect;
  10.    RectangleDemo controller;
  11.  
  12.    public SelectionArea(RectangleDemo var1) {
  13.       this.controller = var1;
  14.    }
  15.  
  16.    public boolean mouseDown(Event var1, int var2, int var3) {
  17.       this.currentRect = new Rectangle(var2, var3, 0, 0);
  18.       ((Component)this).repaint();
  19.       return false;
  20.    }
  21.  
  22.    public boolean mouseDrag(Event var1, int var2, int var3) {
  23.       this.currentRect.resize(var2 - this.currentRect.x, var3 - this.currentRect.y);
  24.       ((Component)this).repaint();
  25.       return false;
  26.    }
  27.  
  28.    public boolean mouseUp(Event var1, int var2, int var3) {
  29.       this.currentRect.resize(var2 - this.currentRect.x, var3 - this.currentRect.y);
  30.       ((Component)this).repaint();
  31.       return false;
  32.    }
  33.  
  34.    public void paint(Graphics var1) {
  35.       Dimension var2 = ((Component)this).size();
  36.       if (this.currentRect != null) {
  37.          Rectangle var3 = this.getDrawableRect(this.currentRect, var2);
  38.          this.controller.rectChanged(var3);
  39.          var1.drawRect(var3.x, var3.y, var3.width - 1, var3.height - 1);
  40.       }
  41.  
  42.    }
  43.  
  44.    Rectangle getDrawableRect(Rectangle var1, Dimension var2) {
  45.       int var3 = var1.x;
  46.       int var4 = var1.y;
  47.       int var5 = var1.width;
  48.       int var6 = var1.height;
  49.       if (var5 < 0) {
  50.          var5 = -var5;
  51.          var3 = var3 - var5 + 1;
  52.          if (var3 < 0) {
  53.             var5 += var3;
  54.             var3 = 0;
  55.          }
  56.       }
  57.  
  58.       if (var6 < 0) {
  59.          var6 = -var6;
  60.          var4 = var4 - var6 + 1;
  61.          if (var4 < 0) {
  62.             var6 += var4;
  63.             var4 = 0;
  64.          }
  65.       }
  66.  
  67.       if (var3 + var5 > var2.width) {
  68.          var5 = var2.width - var3;
  69.       }
  70.  
  71.       if (var4 + var6 > var2.height) {
  72.          var6 = var2.height - var4;
  73.       }
  74.  
  75.       return new Rectangle(var3, var4, var5, var6);
  76.    }
  77. }
  78.