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

  1. package sun.awt.motif;
  2.  
  3. import java.awt.Choice;
  4. import java.awt.Color;
  5. import java.awt.Component;
  6. import java.awt.Dimension;
  7. import java.awt.Event;
  8. import java.awt.Font;
  9. import java.awt.FontMetrics;
  10. import java.awt.Frame;
  11. import java.awt.Graphics;
  12. import java.awt.Point;
  13. import java.awt.Rectangle;
  14. import java.awt.peer.ChoicePeer;
  15.  
  16. class MTinyChoicePeer extends MCanvasPeer implements ChoicePeer {
  17.    MChoiceMenu menu;
  18.  
  19.    public MTinyChoicePeer(Choice var1) {
  20.       super(var1);
  21.    }
  22.  
  23.    public Dimension minimumSize() {
  24.       int var1 = 0;
  25.       int var2 = 0;
  26.       FontMetrics var3 = ((MComponentPeer)this).getFontMetrics(super.target.getFont());
  27.       Choice var4 = (Choice)super.target;
  28.       int var5 = 0;
  29.  
  30.       for(int var6 = var4.countItems(); var6-- > 0; var5 = Math.max(var1, var5)) {
  31.          var1 = var3.stringWidth(var4.getItem(var6));
  32.       }
  33.  
  34.       var2 = var3.getHeight();
  35.       return new Dimension(var5 + 10 + 18, var2 + 10);
  36.    }
  37.  
  38.    public void update(Graphics var1) {
  39.       var1.setColor(super.target.getForeground());
  40.       var1.setFont(super.target.getFont());
  41.       this.paint(var1);
  42.    }
  43.  
  44.    public void setFont(Font var1) {
  45.       super.setFont(var1);
  46.       super.target.repaint();
  47.    }
  48.  
  49.    public void paint(Graphics var1) {
  50.       Choice var2 = (Choice)super.target;
  51.       Dimension var3 = super.target.size();
  52.       var1.setColor(Color.lightGray);
  53.       var1.fillRect(1, 1, var3.width - 2, var3.height - 2);
  54.       var1.draw3DRect(0, 0, var3.width - 1, var3.height - 1, true);
  55.       var1.draw3DRect(var3.width - 18, var3.height / 2 - 3, 12, 6, true);
  56.       var1.setColor(Color.black);
  57.       var1.setFont(((Component)var2).getFont());
  58.       FontMetrics var4 = var1.getFontMetrics();
  59.       String var5 = var2.getSelectedItem();
  60.       var1.drawString(var5, 5, (var3.height + var4.getAscent()) / 2);
  61.       super.target.paint(var1);
  62.    }
  63.  
  64.    protected void handleMouseDown(long var1, int var3, int var4, int var5, int var6, int var7, int var8, int var9) {
  65.       if (super.target.isEnabled()) {
  66.          Dimension var10 = super.target.size();
  67.          Choice var11 = (Choice)super.target;
  68.          String[] var12 = new String[var11.countItems()];
  69.  
  70.          for(int var13 = 0; var13 < var12.length; ++var13) {
  71.             var12[var13] = var11.getItem(var13);
  72.          }
  73.  
  74.          Object var14;
  75.          for(var14 = super.target; var14 != null && !(var14 instanceof Frame); var14 = ((Component)var14).getParent()) {
  76.          }
  77.  
  78.          SecurityManager.enablePrivilege("UniversalTopLevelWindow");
  79.          this.menu = new MChoiceMenu((Frame)var14, this, var6, var7, var10.width - 20, var10.height, var11.getSelectedIndex(), var12);
  80.          this.menu.show();
  81.       }
  82.    }
  83.  
  84.    protected void handleMouseUp(long var1, int var3, int var4, int var5, int var6, int var7, int var8) {
  85.       if (super.target.isEnabled()) {
  86.          Choice var9 = (Choice)super.target;
  87.          var9.select(this.menu.selected);
  88.          this.menu.hide();
  89.          this.menu.dispose();
  90.          this.menu = null;
  91.          if (super.applet != null) {
  92.             XEvent var10 = new XEvent(new Event(super.target, 1001, var9.getSelectedItem()), this);
  93.             super.applet.sendEvent(var10);
  94.          } else {
  95.             super.target.postEvent(new Event(super.target, 1001, var9.getSelectedItem()));
  96.          }
  97.       }
  98.    }
  99.  
  100.    protected void handleMouseDrag(long var1, int var3, int var4, int var5, int var6, int var7, int var8) {
  101.       if (super.target.isEnabled()) {
  102.          Rectangle var9 = this.menu.bounds();
  103.          Point var10 = new Point(var6 - var9.x, var7 - var9.y);
  104.          this.menu.handleWindowEvent(new Event(super.target, var1, 506, var10.x, var10.y, 0, var8, (Object)null));
  105.       }
  106.    }
  107.  
  108.    public void select(int var1) {
  109.       super.target.repaint();
  110.    }
  111.  
  112.    public void addItem(String var1, int var2) {
  113.       super.target.repaint();
  114.    }
  115. }
  116.