home *** CD-ROM | disk | FTP | other *** search
- package actual;
-
- import java.awt.AWTEvent;
- import java.awt.AWTEventMulticaster;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.MouseEvent;
-
- public class RoundButton extends Component {
- ActionListener actionListener;
- String label;
- protected boolean pressed;
-
- public RoundButton() {
- this("");
- }
-
- public RoundButton(String var1) {
- this.pressed = false;
- this.label = var1;
- ((Component)this).enableEvents(16L);
- }
-
- public String getLabel() {
- return this.label;
- }
-
- public void setLabel(String var1) {
- this.label = var1;
- ((Component)this).invalidate();
- ((Component)this).repaint();
- }
-
- public void paint(Graphics var1) {
- int var2 = Math.min(((Component)this).getSize().width - 1, ((Component)this).getSize().height - 1);
- if (this.pressed) {
- var1.setColor(((Component)this).getBackground().darker().darker());
- } else {
- var1.setColor(((Component)this).getBackground());
- }
-
- var1.fillArc(0, 0, var2, var2, 0, 360);
- var1.setColor(((Component)this).getBackground().darker().darker().darker());
- var1.drawArc(0, 0, var2, var2, 0, 360);
- Font var3 = ((Component)this).getFont();
- if (var3 != null) {
- FontMetrics var4 = ((Component)this).getFontMetrics(((Component)this).getFont());
- var1.setColor(((Component)this).getForeground());
- var1.drawString(this.label, var2 / 2 - var4.stringWidth(this.label) / 2, var2 / 2 + var4.getMaxDescent());
- }
-
- }
-
- public Dimension getPreferredSize() {
- Font var1 = ((Component)this).getFont();
- if (var1 != null) {
- FontMetrics var2 = ((Component)this).getFontMetrics(((Component)this).getFont());
- int var3 = Math.max(var2.stringWidth(this.label) + 40, var2.getHeight() + 40);
- return new Dimension(var3, var3);
- } else {
- return new Dimension(100, 100);
- }
- }
-
- public Dimension getMinimumSize() {
- return new Dimension(100, 100);
- }
-
- public void addActionListener(ActionListener var1) {
- this.actionListener = AWTEventMulticaster.add(this.actionListener, var1);
- ((Component)this).enableEvents(16L);
- }
-
- public void removeActionListener(ActionListener var1) {
- this.actionListener = AWTEventMulticaster.remove(this.actionListener, var1);
- }
-
- public boolean contains(int var1, int var2) {
- int var3 = ((Component)this).getSize().width / 2;
- int var4 = ((Component)this).getSize().height / 2;
- return (var3 - var1) * (var3 - var1) + (var4 - var2) * (var4 - var2) <= var3 * var3;
- }
-
- public void processMouseEvent(MouseEvent var1) {
- switch (((AWTEvent)var1).getID()) {
- case 501:
- this.pressed = true;
- ((Component)this).repaint();
- break;
- case 502:
- if (this.actionListener != null) {
- this.actionListener.actionPerformed(new ActionEvent(this, 1001, this.label));
- }
-
- if (this.pressed) {
- this.pressed = false;
- ((Component)this).repaint();
- }
- case 503:
- case 504:
- default:
- break;
- case 505:
- if (this.pressed) {
- this.pressed = false;
- ((Component)this).repaint();
- }
- }
-
- super.processMouseEvent(var1);
- }
- }
-