home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 June / CHIPHEFT062001.ISO / browser / nc32lyc / comm.z / java40.jar / sun / awt / motif / MCheckboxPeer.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-08-15  |  2.8 KB  |  98 lines

  1. package sun.awt.motif;
  2.  
  3. import java.awt.Checkbox;
  4. import java.awt.CheckboxGroup;
  5. import java.awt.Color;
  6. import java.awt.Component;
  7. import java.awt.Dimension;
  8. import java.awt.FontMetrics;
  9. import java.awt.Graphics;
  10. import java.awt.event.ItemEvent;
  11. import java.awt.peer.CheckboxPeer;
  12.  
  13. public class MCheckboxPeer extends MComponentPeer implements CheckboxPeer {
  14.    static final int SIZE = 19;
  15.    static final int BORDER = 4;
  16.    static final int SIZ = 10;
  17.  
  18.    native void create(MComponentPeer var1);
  19.  
  20.    public native void setLabel(String var1);
  21.  
  22.    void initialize() {
  23.       Checkbox var1 = (Checkbox)super.target;
  24.       this.setState(var1.getState());
  25.       this.setCheckboxGroup(var1.getCheckboxGroup());
  26.       super.initialize();
  27.    }
  28.  
  29.    public MCheckboxPeer(Checkbox var1) {
  30.       super(var1);
  31.    }
  32.  
  33.    public boolean isFocusTraversable() {
  34.       return true;
  35.    }
  36.  
  37.    public native void setState(boolean var1);
  38.  
  39.    public native void setCheckboxGroup(CheckboxGroup var1);
  40.  
  41.    public Dimension getMinimumSize() {
  42.       String var1 = ((Checkbox)super.target).getLabel();
  43.       if (var1 != null) {
  44.          FontMetrics var2 = ((MComponentPeer)this).getFontMetrics(super.target.getFont());
  45.          return new Dimension(30 + var2.stringWidth(var1), Math.max(var2.getHeight() + 8, 15));
  46.       } else {
  47.          return new Dimension(20, 15);
  48.       }
  49.    }
  50.  
  51.    void action(boolean var1) {
  52.       Checkbox var2 = (Checkbox)super.target;
  53.       var2.setState(var1);
  54.       ((MComponentPeer)this).postEvent(new ItemEvent(var2, 701, var2.getLabel(), var1 ? 1 : 2));
  55.    }
  56.  
  57.    public void print(Graphics var1) {
  58.       Checkbox var2 = (Checkbox)super.target;
  59.       Dimension var3 = ((Component)var2).size();
  60.       Color var4 = ((Component)var2).getBackground();
  61.       Color var5 = ((Component)var2).getForeground();
  62.       Color var6 = var4.darker();
  63.       byte var7 = 4;
  64.       int var8 = (var3.height - 19) / 2 + 4;
  65.       var1.setColor(var2.getState() ? var6 : var4);
  66.       if (var2.getCheckboxGroup() != null) {
  67.          var1.fillOval(var7, var8, 10, 10);
  68.          ((MComponentPeer)this).draw3DOval(var1, var4, var7, var8, 10, 10, !var2.getState());
  69.          if (var2.getState()) {
  70.             var1.setColor(var5);
  71.             var1.fillOval(var7 + 3, var8 + 3, 4, 4);
  72.          }
  73.       } else {
  74.          var1.fillRect(var7, var8, 10, 10);
  75.          ((MComponentPeer)this).draw3DRect(var1, var4, var7, var8, 10, 10, !var2.getState());
  76.          if (var2.getState()) {
  77.             var1.setColor(var5);
  78.             var1.drawLine(var7 + 1, var8 + 1, var7 + 10 - 1, var8 + 10 - 1);
  79.             var1.drawLine(var7 + 1, var8 + 10 - 1, var7 + 10 - 1, var8 + 1);
  80.          }
  81.       }
  82.  
  83.       var1.setColor(var5);
  84.       String var9 = var2.getLabel();
  85.       if (var9 != null) {
  86.          var1.setFont(((Component)var2).getFont());
  87.          FontMetrics var10 = var1.getFontMetrics();
  88.          var1.drawString(var9, 19, (var3.height + var10.getMaxAscent() - var10.getMaxDescent()) / 2);
  89.       }
  90.  
  91.       super.target.print(var1);
  92.    }
  93.  
  94.    public Dimension minimumSize() {
  95.       return this.getMinimumSize();
  96.    }
  97. }
  98.