01: /*
02: * Copyright 1996-2005 Sun Microsystems, Inc. All Rights Reserved.
03: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
04: *
05: * This code is free software; you can redistribute it and/or modify it
06: * under the terms of the GNU General Public License version 2 only, as
07: * published by the Free Software Foundation. Sun designates this
08: * particular file as subject to the "Classpath" exception as provided
09: * by Sun in the LICENSE file that accompanied this code.
10: *
11: * This code is distributed in the hope that it will be useful, but WITHOUT
12: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13: * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14: * version 2 for more details (a copy is included in the LICENSE file that
15: * accompanied this code).
16: *
17: * You should have received a copy of the GNU General Public License version
18: * 2 along with this work; if not, write to the Free Software Foundation,
19: * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20: *
21: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22: * CA 95054 USA or visit www.sun.com if you need additional information or
23: * have any questions.
24: */
25: package sun.awt.windows;
26:
27: import java.awt.*;
28: import java.awt.peer.*;
29:
30: class WMenuPeer extends WMenuItemPeer implements MenuPeer {
31:
32: // MenuPeer implementation
33:
34: public native void addSeparator();
35:
36: public void addItem(MenuItem item) {
37: WMenuItemPeer itemPeer = (WMenuItemPeer) WToolkit
38: .targetToPeer(item);
39: }
40:
41: public native void delItem(int index);
42:
43: // Toolkit & peer internals
44:
45: WMenuPeer() {
46: } // used by subclasses.
47:
48: WMenuPeer(Menu target) {
49: this .target = target;
50: MenuContainer parent = target.getParent();
51:
52: if (parent instanceof MenuBar) {
53: WMenuBarPeer mbPeer = (WMenuBarPeer) WToolkit
54: .targetToPeer(parent);
55: this .parent = mbPeer;
56: createMenu(mbPeer);
57: } else if (parent instanceof Menu) {
58: this .parent = (WMenuPeer) WToolkit.targetToPeer(parent);
59: createSubMenu(this .parent);
60: } else {
61: throw new IllegalArgumentException(
62: "unknown menu container class");
63: }
64: // fix for 5088782: check if menu object is created successfully
65: checkMenuCreation();
66: }
67:
68: native void createMenu(WMenuBarPeer parent);
69:
70: native void createSubMenu(WMenuPeer parent);
71: }
|