home *** CD-ROM | disk | FTP | other *** search
- package sun.awt.motif;
-
- import java.awt.Checkbox;
- import java.awt.CheckboxGroup;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.event.ItemEvent;
- import java.awt.peer.CheckboxPeer;
-
- public class MCheckboxPeer extends MComponentPeer implements CheckboxPeer {
- static final int SIZE = 19;
- static final int BORDER = 4;
- static final int SIZ = 10;
-
- native void create(MComponentPeer var1);
-
- public native void setLabel(String var1);
-
- void initialize() {
- Checkbox var1 = (Checkbox)super.target;
- this.setState(var1.getState());
- this.setCheckboxGroup(var1.getCheckboxGroup());
- super.initialize();
- }
-
- public MCheckboxPeer(Checkbox var1) {
- super(var1);
- }
-
- public boolean isFocusTraversable() {
- return true;
- }
-
- public native void setState(boolean var1);
-
- public native void setCheckboxGroup(CheckboxGroup var1);
-
- public Dimension getMinimumSize() {
- String var1 = ((Checkbox)super.target).getLabel();
- if (var1 != null) {
- FontMetrics var2 = ((MComponentPeer)this).getFontMetrics(super.target.getFont());
- return new Dimension(30 + var2.stringWidth(var1), Math.max(var2.getHeight() + 8, 15));
- } else {
- return new Dimension(20, 15);
- }
- }
-
- void action(boolean var1) {
- Checkbox var2 = (Checkbox)super.target;
- var2.setState(var1);
- ((MComponentPeer)this).postEvent(new ItemEvent(var2, 701, var2.getLabel(), var1 ? 1 : 2));
- }
-
- public void print(Graphics var1) {
- Checkbox var2 = (Checkbox)super.target;
- Dimension var3 = ((Component)var2).size();
- Color var4 = ((Component)var2).getBackground();
- Color var5 = ((Component)var2).getForeground();
- Color var6 = var4.darker();
- byte var7 = 4;
- int var8 = (var3.height - 19) / 2 + 4;
- var1.setColor(var2.getState() ? var6 : var4);
- if (var2.getCheckboxGroup() != null) {
- var1.fillOval(var7, var8, 10, 10);
- ((MComponentPeer)this).draw3DOval(var1, var4, var7, var8, 10, 10, !var2.getState());
- if (var2.getState()) {
- var1.setColor(var5);
- var1.fillOval(var7 + 3, var8 + 3, 4, 4);
- }
- } else {
- var1.fillRect(var7, var8, 10, 10);
- ((MComponentPeer)this).draw3DRect(var1, var4, var7, var8, 10, 10, !var2.getState());
- if (var2.getState()) {
- var1.setColor(var5);
- var1.drawLine(var7 + 1, var8 + 1, var7 + 10 - 1, var8 + 10 - 1);
- var1.drawLine(var7 + 1, var8 + 10 - 1, var7 + 10 - 1, var8 + 1);
- }
- }
-
- var1.setColor(var5);
- String var9 = var2.getLabel();
- if (var9 != null) {
- var1.setFont(((Component)var2).getFont());
- FontMetrics var10 = var1.getFontMetrics();
- var1.drawString(var9, 19, (var3.height + var10.getMaxAscent() - var10.getMaxDescent()) / 2);
- }
-
- super.target.print(var1);
- }
-
- public Dimension minimumSize() {
- return this.getMinimumSize();
- }
- }
-