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

  1. package sun.awt.motif;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.Event;
  6. import java.awt.Menu;
  7. import java.awt.MenuItem;
  8. import java.awt.Point;
  9. import java.awt.PopupMenu;
  10. import java.awt.peer.PopupMenuPeer;
  11.  
  12. public class MPopupMenuPeer extends MMenuPeer implements PopupMenuPeer {
  13.    native void createMenu(MComponentPeer var1);
  14.  
  15.    void createPopupMenu() {
  16.       if (super.target.getParent() instanceof Component) {
  17.          Component var1 = (Component)super.target.getParent();
  18.          MComponentPeer var2 = (MComponentPeer)MToolkit.targetToPeer(var1);
  19.          if (var2 == null) {
  20.             Container var3 = MToolkit.getNativeContainer(var1);
  21.             var2 = (MComponentPeer)MToolkit.targetToPeer(var3);
  22.          }
  23.  
  24.          this.createMenu(var2);
  25.          super.nativeCreated = true;
  26.          this.createItems((Menu)super.target);
  27.       } else {
  28.          throw new IllegalArgumentException("illegal popup menu container class");
  29.       }
  30.    }
  31.  
  32.    void createItems(Menu var1) {
  33.       int var2 = var1.getItemCount();
  34.       MMenuPeer var3 = (MMenuPeer)MToolkit.targetToPeer(var1);
  35.  
  36.       for(int var4 = 0; var4 < var2; ++var4) {
  37.          MenuItem var5 = var1.getItem(var4);
  38.          MMenuItemPeer var6 = (MMenuItemPeer)MToolkit.targetToPeer(var5);
  39.          var6.create(var3);
  40.          if (var5 instanceof Menu) {
  41.             this.createItems((Menu)var5);
  42.          }
  43.       }
  44.  
  45.    }
  46.  
  47.    public MPopupMenuPeer(PopupMenu var1) {
  48.       super.target = var1;
  49.    }
  50.  
  51.    native void pShow(Event var1, int var2, int var3, MComponentPeer var4);
  52.  
  53.    public void show(Event var1) {
  54.       this.createPopupMenu();
  55.       Component var2 = (Component)var1.target;
  56.       MComponentPeer var3 = (MComponentPeer)MToolkit.targetToPeer(var2);
  57.       int var4 = var1.x;
  58.       int var5 = var1.y;
  59.       if (var3 == null) {
  60.          Container var6 = MToolkit.getNativeContainer(var2);
  61.          var3 = (MComponentPeer)MToolkit.targetToPeer(var6);
  62.  
  63.          for(Object var7 = var2; var7 != var6; var7 = ((Component)var7).getParent()) {
  64.             Point var8 = ((Component)var7).getLocation();
  65.             var4 += var8.x;
  66.             var5 += var8.y;
  67.          }
  68.       }
  69.  
  70.       this.pShow(var1, var4, var5, var3);
  71.    }
  72.  
  73.    private void disposeItems(Menu var1) {
  74.       int var2 = var1.getItemCount();
  75.  
  76.       for(int var3 = 0; var3 < var2; ++var3) {
  77.          MenuItem var4 = var1.getItem(var3);
  78.          if (var4 instanceof Menu) {
  79.             this.disposeItems((Menu)var4);
  80.          }
  81.  
  82.          MMenuItemPeer var5 = (MMenuItemPeer)MToolkit.targetToPeer(var1.getItem(var3));
  83.          var5.dispose();
  84.       }
  85.  
  86.    }
  87.  
  88.    public void dispose() {
  89.       if (super.nativeCreated) {
  90.          PopupMenu var1 = (PopupMenu)super.target;
  91.          this.disposeItems(var1);
  92.          this.pDispose();
  93.          super.nativeCreated = false;
  94.       }
  95.    }
  96.  
  97.    native void pDispose();
  98. }
  99.