home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 October / PCO1097.ISO / FilesBBS / WIN95 / IAVAZIP.EXE / DATA.Z / rt.jar / java / awt / MenuBar.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-05-20  |  4.0 KB  |  202 lines

  1. package java.awt;
  2.  
  3. import java.awt.event.InputEvent;
  4. import java.awt.event.KeyEvent;
  5. import java.awt.peer.MenuBarPeer;
  6. import java.io.IOException;
  7. import java.io.ObjectInputStream;
  8. import java.io.ObjectOutputStream;
  9. import java.util.Enumeration;
  10. import java.util.Vector;
  11.  
  12. public class MenuBar extends MenuComponent implements MenuContainer {
  13.    Vector menus = new Vector();
  14.    Menu helpMenu;
  15.    private static final String base = "menubar";
  16.    private static int nameCounter;
  17.    private static final long serialVersionUID = -4930327919388951260L;
  18.    private int menuBarSerializedDataVersion = 1;
  19.  
  20.    public MenuBar() {
  21.       super.name = "menubar" + nameCounter++;
  22.    }
  23.  
  24.    public void addNotify() {
  25.       super.peer = Toolkit.getDefaultToolkit().createMenuBar(this);
  26.       int var1 = this.getMenuCount();
  27.  
  28.       for(int var2 = 0; var2 < var1; ++var2) {
  29.          this.getMenu(var2).addNotify();
  30.       }
  31.  
  32.    }
  33.  
  34.    public void removeNotify() {
  35.       int var1 = this.getMenuCount();
  36.  
  37.       for(int var2 = 0; var2 < var1; ++var2) {
  38.          this.getMenu(var2).removeNotify();
  39.       }
  40.  
  41.       super.removeNotify();
  42.    }
  43.  
  44.    public Menu getHelpMenu() {
  45.       return this.helpMenu;
  46.    }
  47.  
  48.    public synchronized void setHelpMenu(Menu var1) {
  49.       if (this.helpMenu != var1) {
  50.          if (this.helpMenu != null) {
  51.             this.helpMenu.removeNotify();
  52.             this.helpMenu.parent = null;
  53.          }
  54.  
  55.          if (var1.parent != this) {
  56.             this.add(var1);
  57.          }
  58.  
  59.          this.helpMenu = var1;
  60.          if (var1 != null) {
  61.             var1.isHelpMenu = true;
  62.             var1.parent = this;
  63.             MenuBarPeer var2 = (MenuBarPeer)super.peer;
  64.             if (var2 != null) {
  65.                if (var1.peer == null) {
  66.                   var1.addNotify();
  67.                }
  68.  
  69.                var2.addHelpMenu(var1);
  70.             }
  71.          }
  72.  
  73.       }
  74.    }
  75.  
  76.    public synchronized Menu add(Menu var1) {
  77.       if (var1.parent != null) {
  78.          var1.parent.remove(var1);
  79.       }
  80.  
  81.       this.menus.addElement(var1);
  82.       var1.parent = this;
  83.       MenuBarPeer var2 = (MenuBarPeer)super.peer;
  84.       if (var2 != null) {
  85.          if (var1.peer == null) {
  86.             var1.addNotify();
  87.          }
  88.  
  89.          var2.addMenu(var1);
  90.       }
  91.  
  92.       return var1;
  93.    }
  94.  
  95.    public synchronized void remove(int var1) {
  96.       MenuBarPeer var2 = (MenuBarPeer)super.peer;
  97.       if (var2 != null) {
  98.          Menu var3 = this.getMenu(var1);
  99.          var3.removeNotify();
  100.          var3.parent = null;
  101.          var2.delMenu(var1);
  102.       }
  103.  
  104.       this.menus.removeElementAt(var1);
  105.    }
  106.  
  107.    public synchronized void remove(MenuComponent var1) {
  108.       int var2 = this.menus.indexOf(var1);
  109.       if (var2 >= 0) {
  110.          this.remove(var2);
  111.       }
  112.  
  113.    }
  114.  
  115.    public int getMenuCount() {
  116.       return this.countMenus();
  117.    }
  118.  
  119.    /** @deprecated */
  120.    public int countMenus() {
  121.       return this.menus.size();
  122.    }
  123.  
  124.    public Menu getMenu(int var1) {
  125.       return (Menu)this.menus.elementAt(var1);
  126.    }
  127.  
  128.    public synchronized Enumeration shortcuts() {
  129.       Vector var1 = new Vector();
  130.       int var2 = this.getMenuCount();
  131.  
  132.       for(int var3 = 0; var3 < var2; ++var3) {
  133.          Enumeration var4 = this.getMenu(var3).shortcuts();
  134.  
  135.          while(var4.hasMoreElements()) {
  136.             var1.addElement(var4.nextElement());
  137.          }
  138.       }
  139.  
  140.       return var1.elements();
  141.    }
  142.  
  143.    public MenuItem getShortcutMenuItem(MenuShortcut var1) {
  144.       int var2 = this.getMenuCount();
  145.  
  146.       for(int var3 = 0; var3 < var2; ++var3) {
  147.          MenuItem var4 = this.getMenu(var3).getShortcutMenuItem(var1);
  148.          if (var4 != null) {
  149.             return var4;
  150.          }
  151.       }
  152.  
  153.       return null;
  154.    }
  155.  
  156.    boolean handleShortcut(KeyEvent var1) {
  157.       int var2 = ((AWTEvent)var1).getID();
  158.       if (var2 != 401 && var2 != 402) {
  159.          return false;
  160.       } else {
  161.          int var3 = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
  162.          if ((((InputEvent)var1).getModifiers() & var3) == 0) {
  163.             return false;
  164.          } else {
  165.             int var4 = this.getMenuCount();
  166.  
  167.             for(int var5 = 0; var5 < var4; ++var5) {
  168.                Menu var6 = this.getMenu(var5);
  169.                if (var6.handleShortcut(var1)) {
  170.                   return true;
  171.                }
  172.             }
  173.  
  174.             return false;
  175.          }
  176.       }
  177.    }
  178.  
  179.    public void deleteShortcut(MenuShortcut var1) {
  180.       int var2 = this.getMenuCount();
  181.  
  182.       for(int var3 = 0; var3 < var2; ++var3) {
  183.          this.getMenu(var3).deleteShortcut(var1);
  184.       }
  185.  
  186.    }
  187.  
  188.    private void writeObject(ObjectOutputStream var1) throws ClassNotFoundException, IOException {
  189.       var1.defaultWriteObject();
  190.    }
  191.  
  192.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
  193.       var1.defaultReadObject();
  194.  
  195.       for(int var2 = 0; var2 < this.menus.size(); ++var2) {
  196.          Menu var3 = (Menu)this.menus.elementAt(var2);
  197.          var3.parent = this;
  198.       }
  199.  
  200.    }
  201. }
  202.