diff --git a/jode/jode/decompiler/Applet.java b/jode/jode/decompiler/Applet.java index c758b3d..083d09a 100644 --- a/jode/jode/decompiler/Applet.java +++ b/jode/jode/decompiler/Applet.java @@ -18,18 +18,102 @@ */ package jode.decompiler; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Graphics; +import java.awt.Insets; public class Applet extends java.applet.Applet { - Window jodeWin = new Window(this); + private final int BORDER = 10; + private final int BEVEL = 2; + private Window jodeWin = new Window(this); + private Insets myInsets; + private Color pageColor; ///#ifdef AWT10 /// public boolean action(Event e, Object arg) { /// jodeWin.action(e, arg); /// return true; /// } +/// +/// public Insets insets() { +/// if (myInsets == null) { +/// Insets appInsets = super.insets(); +///#else + public Insets getInsets() { + if (myInsets == null) { + Insets appInsets = super.getInsets(); ///#endif + myInsets = new Insets + (appInsets.top+BORDER, appInsets.left+BORDER, + appInsets.bottom+BORDER, appInsets.right+BORDER); + } + return myInsets; + } + + public void paint(Graphics g) { + super.paint(g); + Color back = getBackground(); + Color bright = back.brighter(); + Color dark = back.darker(); +///#ifdef AWT10 +/// Dimension size = size(); +///#else + Dimension size = getSize(); +///#endif + + // Fill corners with page color: + g.setColor(pageColor); + g.fillRect(0 , 0 , BORDER, BORDER); + g.fillRect(size.width - BORDER, 0 , BORDER, BORDER); + g.fillRect(size.width - BORDER, size.height - BORDER, BORDER, BORDER); + g.fillRect(0 , size.height - BORDER, BORDER, BORDER); + + // put filled arcs into corners with highlight color + g.setColor(bright); + g.fillArc(0, 0, + 2*BORDER, 2*BORDER, 90, 90); + g.fillArc(size.width - 2*BORDER, 0, + 2*BORDER, 2*BORDER, 45, 45); + g.fillArc(0, size.height - 2*BORDER, + 2*BORDER, 2*BORDER, 180, 45); + + // draw highlighted edges + g.fillRect(BORDER, 0, size.width - 2*BORDER, BEVEL); + g.fillRect(0, BORDER, BEVEL, size.height - 2*BORDER); + + // The same as above on the other side with dark color. + g.setColor(dark); + g.fillArc(size.width - 2*BORDER, 0, + 2*BORDER, 2*BORDER, 0, 45); + g.fillArc(0, size.height - 2*BORDER, + 2*BORDER, 2*BORDER, 225, 45); + g.fillArc(size.width - 2*BORDER, size.height - 2*BORDER, + 2*BORDER, 2*BORDER, -90, 90); + g.fillRect(BORDER, size.height - BEVEL, size.width - 2*BORDER, BEVEL); + g.fillRect(size.width - BEVEL, BORDER, BEVEL, size.height - 2*BORDER); + + // Finally fill the corners with background color again. + g.setColor(back); + g.fillArc(BEVEL, BEVEL, + 2*(BORDER-BEVEL), 2*(BORDER-BEVEL), 90, 90); + g.fillArc(size.width - (2*BORDER-BEVEL), BEVEL, + 2*(BORDER-BEVEL), 2*(BORDER-BEVEL), 0, 90); + g.fillArc(BEVEL, size.height - 2*BORDER + BEVEL, + 2*(BORDER-BEVEL), 2*(BORDER-BEVEL), 180, 90); + g.fillArc(size.width - (2*BORDER-BEVEL), + size.height - (2*BORDER-BEVEL), + 2*(BORDER-BEVEL), 2*(BORDER-BEVEL), -90, 90); + } - public void init() { + public void init() { + String colorstr = getParameter("pagecolor"); + if (colorstr == null) + colorstr = "ffffff"; + this.pageColor = new Color(Integer.parseInt(colorstr, 16)); + colorstr = getParameter("bgcolor"); + if (colorstr != null) + setBackground(new Color(Integer.parseInt(colorstr, 16))); String cp = getParameter("classpath"); if (cp != null) jodeWin.setClassPath(cp);