home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 139 / dpcs0999.iso / Web / CFserver / data1.cab / Java / CFJava.cab / CFJavaRuntime.cab / netscape / application / InternalWindowBorder.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-10-01  |  5.5 KB  |  202 lines

  1. package netscape.application;
  2.  
  3. import netscape.util.ClassInfo;
  4. import netscape.util.CodingException;
  5. import netscape.util.Decoder;
  6. import netscape.util.Encoder;
  7.  
  8. public class InternalWindowBorder extends Border {
  9.    static Image indentLeftImage;
  10.    static Image indentRightImage;
  11.    static Image leftResizeImage;
  12.    static Image rightResizeImage;
  13.    InternalWindow window;
  14.    static final int TITLE_BAR_INDENT_OFFSET = 1;
  15.    static final String WINDOW_KEY = "window";
  16.  
  17.    public InternalWindowBorder() {
  18.       this((InternalWindow)null);
  19.    }
  20.  
  21.    public InternalWindowBorder(InternalWindow var1) {
  22.       this.window = var1;
  23.       indentLeftImage = Bitmap.bitmapNamed("netscape/application/TitleBarLeft.gif");
  24.       indentRightImage = Bitmap.bitmapNamed("netscape/application/TitleBarRight.gif");
  25.       leftResizeImage = Bitmap.bitmapNamed("netscape/application/ResizeLeft.gif");
  26.       rightResizeImage = Bitmap.bitmapNamed("netscape/application/ResizeRight.gif");
  27.    }
  28.  
  29.    public void setWindow(InternalWindow var1) {
  30.       this.window = var1;
  31.    }
  32.  
  33.    public InternalWindow window() {
  34.       return this.window;
  35.    }
  36.  
  37.    public int leftMargin() {
  38.       return 3;
  39.    }
  40.  
  41.    public int rightMargin() {
  42.       return 2;
  43.    }
  44.  
  45.    public int topMargin() {
  46.       return 22;
  47.    }
  48.  
  49.    public int bottomMargin() {
  50.       return this.window.isResizable() ? 11 : 2;
  51.    }
  52.  
  53.    public int resizePartWidth() {
  54.       return !this.window.isResizable() ? 0 : leftResizeImage.width();
  55.    }
  56.  
  57.    public void drawTitleBar(Graphics var1, int var2, int var3, int var4, int var5) {
  58.       int var10 = this.topMargin();
  59.       Rect var7 = Rect.newRect(var2, var3, var4, var10);
  60.       if (!var1.clipRect().intersects(var7)) {
  61.          Rect.returnRect(var7);
  62.       } else {
  63.          Rect.returnRect(var7);
  64.          int var8 = var4 - 1;
  65.          int var9 = var10 - 1;
  66.          var1.setColor(Color.lightGray);
  67.          var1.fillRect(var2 + 1, var3 + 1, var8 - 1, var9 - 1);
  68.          var1.setColor(Color.gray153);
  69.          var1.drawPoint(var2, var3);
  70.          var1.drawLine(var2 + 1, var3, var8, var3);
  71.          var1.drawPoint(var2 + 1, var9);
  72.          var1.drawLine(var2, var3 + 1, var2, var9);
  73.          var1.setColor(Color.white);
  74.          var1.drawLine(var2 + 2, var3 + 1, var8 - 2, var3 + 1);
  75.          var1.drawPoint(var2 + 2, var3 + 2);
  76.          var1.drawLine(var2 + 1, var3 + 2, var2 + 1, var9 - 2);
  77.          var1.setColor(Color.gray153);
  78.          var1.drawLine(var2 + 2, var9 - 1, var8 - 2, var9 - 1);
  79.          var1.drawPoint(var8 - 2, var9 - 2);
  80.          var1.drawLine(var8 - 1, var3 + 2, var8 - 1, var9 - 2);
  81.          var1.setColor(Color.gray102);
  82.          var1.drawLine(var2 + 2, var9, var8, var9);
  83.          var1.drawLine(var8, var3 + 1, var8, var9);
  84.          var1.drawPoint(var8 - 1, var9 - 1);
  85.          int var11 = 25 + indentLeftImage.width();
  86.          int var12 = var4 - 25 - indentRightImage.width() - var11;
  87.          boolean var13 = this.window.isMain();
  88.          if (var13) {
  89.             indentLeftImage.drawAt(var1, 25, 1);
  90.             indentRightImage.drawAt(var1, var4 - indentRightImage.width() - 24, 1);
  91.             Rect var6 = Rect.newRect(var11, 3, var12, indentLeftImage.height() - 4);
  92.             var1.setColor(Color.gray153);
  93.             var1.drawLine(var6.x, var6.y + 1, var6.maxX(), var6.y + 1);
  94.             var1.setColor(Color.white);
  95.             var1.drawLine(var6.x + 1, var6.maxY() - 2, var6.maxX(), var6.maxY() - 2);
  96.             Rect.returnRect(var6);
  97.          }
  98.  
  99.          Rect var14 = Rect.newRect(var11, 0, var12, indentLeftImage.height() - 2);
  100.          var1.pushState();
  101.          var1.setClipRect(var14);
  102.          var1.setColor(Color.darkGray);
  103.          var1.setFont(this.window.font());
  104.          var1.drawStringInRect(this.window.title(), var14, 1);
  105.          var1.popState();
  106.          Rect.returnRect(var14);
  107.       }
  108.    }
  109.  
  110.    public void drawLeftBorder(Graphics var1, int var2, int var3, int var4, int var5) {
  111.       Rect var6 = Rect.newRect(0, 0, this.leftMargin(), var5);
  112.       if (!var1.clipRect().intersects(var6)) {
  113.          Rect.returnRect(var6);
  114.       } else {
  115.          Rect.returnRect(var6);
  116.          int var7 = this.topMargin();
  117.          var1.setColor(Color.gray153);
  118.          var1.drawLine(0, var7, 0, var5 - 1);
  119.          var1.setColor(Color.white);
  120.          var1.drawLine(1, var7, 1, var5 - 2);
  121.          var1.setColor(Color.lightGray);
  122.          var1.drawLine(2, var7, 2, var5 - 3);
  123.          MenuView var8 = this.window.menuView();
  124.          if (var8 != null) {
  125.             var1.setColor(Color.gray102);
  126.             var1.drawLine(1, var7 + ((View)var8).height() - 1, 2, var7 + ((View)var8).height() - 1);
  127.          }
  128.  
  129.       }
  130.    }
  131.  
  132.    public void drawRightBorder(Graphics var1, int var2, int var3, int var4, int var5) {
  133.       Rect var6 = Rect.newRect(var4 - this.rightMargin(), 0, this.rightMargin(), var5);
  134.       if (!var1.clipRect().intersects(var6)) {
  135.          Rect.returnRect(var6);
  136.       } else {
  137.          Rect.returnRect(var6);
  138.          int var7 = this.topMargin();
  139.          int var8 = var5 - this.bottomMargin();
  140.          var1.setColor(Color.gray102);
  141.          var1.drawLine(var4 - 1, var7, var4 - 1, var8);
  142.          var1.setColor(Color.gray153);
  143.          var1.drawLine(var4 - 2, var7, var4 - 2, var8 - 1);
  144.          MenuView var9 = this.window.menuView();
  145.          if (var9 != null) {
  146.             var1.setColor(Color.gray102);
  147.             var1.drawPoint(var2 + var4 - 2, var7 + ((View)var9).height() - 1);
  148.          }
  149.  
  150.       }
  151.    }
  152.  
  153.    public void drawBottomBorder(Graphics var1, int var2, int var3, int var4, int var5) {
  154.       Rect var6 = Rect.newRect(0, var5 - this.bottomMargin(), var4, this.bottomMargin());
  155.       if (!var1.clipRect().intersects(var6)) {
  156.          Rect.returnRect(var6);
  157.       } else {
  158.          Rect.returnRect(var6);
  159.          int var7 = this.bottomMargin();
  160.          int var8 = var5 - var7;
  161.          var1.setColor(Color.gray102);
  162.          var1.drawLine(1, var5 - 1, var4 - 1, var5 - 1);
  163.          var1.setColor(Color.gray153);
  164.          var1.drawLine(2, var5 - 2, var4 - 2, var5 - 2);
  165.          var1.setColor(Color.lightGray);
  166.          var1.fillRect(2, var8, var4 - 3, var7 - 2);
  167.          var1.setColor(Color.gray102);
  168.          var1.drawLine(var4 - 1, var8, var4 - 1, var5 - 1);
  169.          var1.setColor(Color.gray153);
  170.          var1.drawLine(var4 - 2, var8, var4 - 2, var5 - 2);
  171.          if (this.window.isResizable() && leftResizeImage != null && rightResizeImage != null) {
  172.             leftResizeImage.drawAt(var1, 0, var5 - leftResizeImage.height());
  173.             rightResizeImage.drawAt(var1, var4 - rightResizeImage.width(), var5 - rightResizeImage.height());
  174.          }
  175.  
  176.       }
  177.    }
  178.  
  179.    public void drawInRect(Graphics var1, int var2, int var3, int var4, int var5) {
  180.       this.drawTitleBar(var1, var2, var3, var4, var5);
  181.       this.drawLeftBorder(var1, var2, var3, var4, var5);
  182.       this.drawRightBorder(var1, var2, var3, var4, var5);
  183.       this.drawBottomBorder(var1, var2, var3, var4, var5);
  184.    }
  185.  
  186.    public void describeClassInfo(ClassInfo var1) {
  187.       super.describeClassInfo(var1);
  188.       var1.addClass("netscape.application.InternalWindowBorder", 1);
  189.       var1.addField("window", (byte)18);
  190.    }
  191.  
  192.    public void encode(Encoder var1) throws CodingException {
  193.       super.encode(var1);
  194.       var1.encodeObject("window", this.window);
  195.    }
  196.  
  197.    public void decode(Decoder var1) throws CodingException {
  198.       super.decode(var1);
  199.       this.window = (InternalWindow)var1.decodeObject("window");
  200.    }
  201. }
  202.