home *** CD-ROM | disk | FTP | other *** search
- package java.awt;
-
- import java.awt.peer.MenuBarPeer;
- import java.util.Vector;
-
- public class MenuBar extends MenuComponent implements MenuContainer {
- Vector menus = new Vector();
- Menu helpMenu;
-
- public synchronized void addNotify() {
- super.peer = Toolkit.getDefaultToolkit().createMenuBar(this);
- int nmenus = this.countMenus();
-
- for(int i = 0; i < nmenus; ++i) {
- this.getMenu(i).addNotify();
- }
-
- }
-
- public void removeNotify() {
- int nmenus = this.countMenus();
-
- for(int i = 0; i < nmenus; ++i) {
- this.getMenu(i).removeNotify();
- }
-
- super.removeNotify();
- }
-
- public Menu getHelpMenu() {
- return this.helpMenu;
- }
-
- public synchronized void setHelpMenu(Menu m) {
- if (this.helpMenu != null) {
- this.helpMenu.removeNotify();
- this.helpMenu.parent = null;
- }
-
- this.helpMenu = m;
- if (m != null) {
- m.isHelpMenu = true;
- MenuBarPeer peer = (MenuBarPeer)super.peer;
- if (peer != null) {
- if (m.peer == null) {
- m.addNotify();
- }
-
- peer.addHelpMenu(m);
- }
- }
-
- }
-
- public synchronized Menu add(Menu m) {
- if (m.parent != null) {
- m.parent.remove(m);
- }
-
- this.menus.addElement(m);
- m.parent = this;
- MenuBarPeer peer = (MenuBarPeer)super.peer;
- if (peer != null) {
- if (m.peer == null) {
- m.addNotify();
- }
-
- peer.addMenu(m);
- }
-
- return m;
- }
-
- public synchronized void remove(int index) {
- MenuBarPeer peer = (MenuBarPeer)super.peer;
- if (peer != null) {
- Menu m = this.getMenu(index);
- m.removeNotify();
- m.parent = null;
- peer.delMenu(index);
- }
-
- this.menus.removeElementAt(index);
- }
-
- public synchronized void remove(MenuComponent m) {
- int index = this.menus.indexOf(m);
- if (index >= 0) {
- this.remove(index);
- }
-
- }
-
- public int countMenus() {
- return this.menus.size();
- }
-
- public Menu getMenu(int i) {
- return (Menu)this.menus.elementAt(i);
- }
- }
-