home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1998 January / PCO0198.ISO / browser / net_linx / java40.jar / sun / awt / motif / MChoiceMenu.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  2.0 KB  |  72 lines

  1. package sun.awt.motif;
  2.  
  3. import java.awt.Choice;
  4. import java.awt.Component;
  5. import java.awt.Dimension;
  6. import java.awt.Event;
  7. import java.awt.FontMetrics;
  8. import java.awt.Frame;
  9. import java.awt.Graphics;
  10. import java.awt.Window;
  11.  
  12. class MChoiceMenu extends Window {
  13.    MTinyChoicePeer peer;
  14.    String[] items;
  15.    int selected;
  16.    // $FF: renamed from: h int
  17.    int field_0;
  18.  
  19.    MChoiceMenu(Frame var1, MTinyChoicePeer var2, int var3, int var4, int var5, int var6, int var7, String[] var8) {
  20.       super(var1);
  21.       this.field_0 = var6;
  22.       this.peer = var2;
  23.       this.items = var8;
  24.       this.selected = var7;
  25.       ((Component)this).setBackground(((Component)var1).getBackground());
  26.       ((Component)this).reshape(var3 - 2, var4 - 2 - var7 * var6, var5 + 4, var8.length * var6 + 4);
  27.    }
  28.  
  29.    public void paint(Graphics var1) {
  30.       Dimension var2 = ((Component)this).size();
  31.       var1.setColor(((Component)this).getBackground());
  32.       var1.draw3DRect(0, 0, var2.width - 1, var2.height - 1, true);
  33.       var1.draw3DRect(1, 1, var2.width - 3, var2.height - 3, true);
  34.       var1.draw3DRect(2, 2 + this.selected * this.field_0, var2.width - 5, var2.height - 1, false);
  35.       var1.setFont(((Component)this).getFont());
  36.       FontMetrics var3 = var1.getFontMetrics();
  37.       var1.setColor(((Component)this).getForeground());
  38.       int var4 = 2 + (this.field_0 + var3.getAscent()) / 2;
  39.  
  40.       for(int var5 = 0; var5 < this.items.length; var4 += this.field_0) {
  41.          var1.drawString(this.items[var5], 7, var4);
  42.          ++var5;
  43.       }
  44.  
  45.    }
  46.  
  47.    boolean handleWindowEvent(Event var1) {
  48.       int var2 = this.selected;
  49.       Dimension var3 = ((Component)this).size();
  50.       if (var1.x >= 0 && var1.x <= var3.width && var1.y >= 0 && var1.y <= var3.height) {
  51.          var2 = Math.max(0, Math.min(this.items.length - 1, (var1.y - 2) / this.field_0));
  52.       } else {
  53.          var2 = ((Choice)this.peer.target).getSelectedIndex();
  54.       }
  55.  
  56.       if (this.selected != var2) {
  57.          Graphics var4 = ((Component)this).getGraphics();
  58.  
  59.          try {
  60.             var4.setColor(((Component)this).getBackground());
  61.             var4.drawRect(2, 2 + this.selected * this.field_0, var3.width - 5, this.field_0 - 1);
  62.             this.selected = var2;
  63.             var4.draw3DRect(2, 2 + this.selected * this.field_0, var3.width - 5, this.field_0 - 1, true);
  64.          } finally {
  65.             var4.dispose();
  66.          }
  67.       }
  68.  
  69.       return false;
  70.    }
  71. }
  72.