home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VPage / Java.bin / CLASSES.ZIP / java / awt / MenuBar.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-07-08  |  4.0 KB  |  201 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.    public int countMenus() {
  120.       return this.menus.size();
  121.    }
  122.  
  123.    public Menu getMenu(int var1) {
  124.       return (Menu)this.menus.elementAt(var1);
  125.    }
  126.  
  127.    public synchronized Enumeration shortcuts() {
  128.       Vector var1 = new Vector();
  129.       int var2 = this.getMenuCount();
  130.  
  131.       for(int var3 = 0; var3 < var2; ++var3) {
  132.          Enumeration var4 = this.getMenu(var3).shortcuts();
  133.  
  134.          while(var4.hasMoreElements()) {
  135.             var1.addElement(var4.nextElement());
  136.          }
  137.       }
  138.  
  139.       return var1.elements();
  140.    }
  141.  
  142.    public MenuItem getShortcutMenuItem(MenuShortcut var1) {
  143.       int var2 = this.getMenuCount();
  144.  
  145.       for(int var3 = 0; var3 < var2; ++var3) {
  146.          MenuItem var4 = this.getMenu(var3).getShortcutMenuItem(var1);
  147.          if (var4 != null) {
  148.             return var4;
  149.          }
  150.       }
  151.  
  152.       return null;
  153.    }
  154.  
  155.    boolean handleShortcut(KeyEvent var1) {
  156.       int var2 = ((AWTEvent)var1).getID();
  157.       if (var2 != 401 && var2 != 402) {
  158.          return false;
  159.       } else {
  160.          int var3 = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
  161.          if ((((InputEvent)var1).getModifiers() & var3) == 0) {
  162.             return false;
  163.          } else {
  164.             int var4 = this.getMenuCount();
  165.  
  166.             for(int var5 = 0; var5 < var4; ++var5) {
  167.                Menu var6 = this.getMenu(var5);
  168.                if (var6.handleShortcut(var1)) {
  169.                   return true;
  170.                }
  171.             }
  172.  
  173.             return false;
  174.          }
  175.       }
  176.    }
  177.  
  178.    public void deleteShortcut(MenuShortcut var1) {
  179.       int var2 = this.getMenuCount();
  180.  
  181.       for(int var3 = 0; var3 < var2; ++var3) {
  182.          this.getMenu(var3).deleteShortcut(var1);
  183.       }
  184.  
  185.    }
  186.  
  187.    private void writeObject(ObjectOutputStream var1) throws ClassNotFoundException, IOException {
  188.       var1.defaultWriteObject();
  189.    }
  190.  
  191.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
  192.       var1.defaultReadObject();
  193.  
  194.       for(int var2 = 0; var2 < this.menus.size(); ++var2) {
  195.          Menu var3 = (Menu)this.menus.elementAt(var2);
  196.          var3.parent = this;
  197.       }
  198.  
  199.    }
  200. }
  201.