home *** CD-ROM | disk | FTP | other *** search
/ Popular Software (Premium Edition) / mycd.iso / INTERNET / NETSCAP4.06 / CP32E406.EXE / nav40.z / java40.jar / sun / awt / motif / MTinyChoicePeer.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-08-13  |  3.8 KB  |  111 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.FontMetrics;
  9. import java.awt.Frame;
  10. import java.awt.Graphics;
  11. import java.awt.Point;
  12. import java.awt.Rectangle;
  13. import java.awt.event.ItemEvent;
  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 getMinimumSize() {
  24.       FontMetrics var1 = ((MComponentPeer)this).getFontMetrics(super.target.getFont());
  25.       Choice var2 = (Choice)super.target;
  26.       int var3 = 0;
  27.  
  28.       for(int var4 = var2.countItems(); var4-- > 0; var3 = Math.max(var1.stringWidth(var2.getItem(var4)), var3)) {
  29.       }
  30.  
  31.       return new Dimension(var3 + 10 + 18, var1.getHeight() + 10);
  32.    }
  33.  
  34.    public void paint(Graphics var1) {
  35.       Choice var2 = (Choice)super.target;
  36.       Dimension var3 = super.target.size();
  37.       var1.setColor(Color.lightGray);
  38.       var1.fillRect(1, 1, var3.width - 2, var3.height - 2);
  39.       var1.draw3DRect(0, 0, var3.width - 1, var3.height - 1, true);
  40.       var1.draw3DRect(var3.width - 18, var3.height / 2 - 3, 12, 6, true);
  41.       var1.setColor(Color.black);
  42.       var1.setFont(((Component)var2).getFont());
  43.       FontMetrics var4 = var1.getFontMetrics();
  44.       String var5 = var2.getSelectedItem();
  45.       var1.drawString(var5, 5, (var3.height + var4.getAscent()) / 2);
  46.       super.target.paint(var1);
  47.    }
  48.  
  49.    protected void handleMouseDown(long var1, int var3, int var4, int var5, int var6, int var7, int var8, int var9) {
  50.       if (super.target.isEnabled()) {
  51.          Dimension var10 = super.target.size();
  52.          Choice var11 = (Choice)super.target;
  53.          String[] var12 = new String[var11.countItems()];
  54.  
  55.          for(int var13 = 0; var13 < var12.length; ++var13) {
  56.             var12[var13] = var11.getItem(var13);
  57.          }
  58.  
  59.          Object var14;
  60.          for(var14 = super.target; var14 != null && !(var14 instanceof Frame); var14 = ((Component)var14).getParent()) {
  61.          }
  62.  
  63.          this.menu = new MChoiceMenu((Frame)var14, this, var6, var7, var10.width - 20, var10.height, var11.getSelectedIndex(), var12);
  64.          this.menu.show();
  65.       }
  66.    }
  67.  
  68.    protected void handleMouseUp(long var1, int var3, int var4, int var5, int var6, int var7, int var8) {
  69.       if (super.target.isEnabled()) {
  70.          Choice var9 = (Choice)super.target;
  71.          var9.select(this.menu.selected);
  72.          this.menu.hide();
  73.          this.menu.dispose();
  74.          this.menu = null;
  75.          ((MComponentPeer)this).postEvent(new ItemEvent(var9, 701, var9.getSelectedItem(), 1));
  76.       }
  77.    }
  78.  
  79.    protected void handleMouseDrag(long var1, int var3, int var4, int var5, int var6, int var7, int var8) {
  80.       if (super.target.isEnabled()) {
  81.          Rectangle var9 = this.menu.bounds();
  82.          Point var10 = new Point(var6 - var9.x, var7 - var9.y);
  83.          this.menu.handleWindowEvent(new Event(super.target, var1, 506, var10.x, var10.y, 0, var8, (Object)null));
  84.       }
  85.    }
  86.  
  87.    public void select(int var1) {
  88.       super.target.repaint();
  89.    }
  90.  
  91.    public void add(String var1, int var2) {
  92.       super.target.repaint();
  93.    }
  94.  
  95.    public void remove(int var1) {
  96.       System.out.println("Method remove(int) not implemented yet.");
  97.    }
  98.  
  99.    public void removeAll() {
  100.       System.out.println("Method removeAll() not implemented yet.");
  101.    }
  102.  
  103.    public Dimension minimumSize() {
  104.       return this.getMinimumSize();
  105.    }
  106.  
  107.    public void addItem(String var1, int var2) {
  108.       this.add(var1, var2);
  109.    }
  110. }
  111.