From 2c20a17152d3af1ab0788857e6439f1799111183 Mon Sep 17 00:00:00 2001 From: Kim Ho Date: Mon, 19 Jan 2004 14:27:45 +0000 Subject: GtkFramePeer.java (getMenuBarHeight): Added MenuBarPeer parameter. 2004-01-19 Kim Ho * gnu/java/awt/peer/gtk/GtkFramePeer.java (getMenuBarHeight): Added MenuBarPeer parameter. (removeMenuBarPeer): New native method. (setMenuBar): Call remove if menu bar is null. Adjust insets appropriately. (postSizeAllocateEvent): New method. Called when menu bar size is allocated. Adjust insets and redo layout. (GtkFramePeer): Set menu bar during frame creation. (postConfigureEvent): Adjust position and size to accomodate menu bar. * java/awt/Frame.java (setMenuBar): addNotify to create menu bar. * java/awt/Menu.java (addSeparator): Use peer's addSeparator. (addNotify): Create the peer if it doesn't exist and call addNotify for the menu's items. * java/awt/MenuBar.java (addNotify): Create this menu bar's menus. * java/awt/MenuItem.java (addNotify): Create the peer if it doesn't exist. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c (removeMenuBarPeer): New method. Remove menu bar on the current frame. (setMenuBarPeer): Add the menu bar to the current frame and the callback for size-allocate events on the menu bar. (getMenuBarHeight): Add menu bar parameter. (menubar_resize_cb): New callback method for postSizeAllocate events. Also: Fix indentation on last ChangeLog entry. From-SVN: r76149 --- libjava/java/awt/Frame.java | 4 +++- libjava/java/awt/Menu.java | 13 ++++++++++--- libjava/java/awt/MenuBar.java | 8 +++++++- libjava/java/awt/MenuItem.java | 4 ++-- 4 files changed, 22 insertions(+), 7 deletions(-) (limited to 'libjava/java') diff --git a/libjava/java/awt/Frame.java b/libjava/java/awt/Frame.java index b6a3427..7a5c9d9 100644 --- a/libjava/java/awt/Frame.java +++ b/libjava/java/awt/Frame.java @@ -1,5 +1,5 @@ /* Frame.java -- AWT toplevel window - Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -342,6 +342,8 @@ public synchronized void setMenuBar(MenuBar menuBar) { this.menuBar = menuBar; + if (menuBar != null) + menuBar.addNotify(); if (peer != null) ((FramePeer) peer).setMenuBar(menuBar); } diff --git a/libjava/java/awt/Menu.java b/libjava/java/awt/Menu.java index 52244b9..6fdc22c 100644 --- a/libjava/java/awt/Menu.java +++ b/libjava/java/awt/Menu.java @@ -1,5 +1,5 @@ /* Menu.java -- A Java AWT Menu - Copyright (C) 1999, 2002 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -294,7 +294,8 @@ insert(String label, int index) public void addSeparator() { - add(separator); + if (peer != null) + ((MenuPeer) peer).addSeparator(); } /*************************************************************************/ @@ -376,8 +377,14 @@ removeAll() public void addNotify() { - if (peer != null) + if (peer == null) peer = getToolkit().createMenu(this); + java.util.Enumeration e = items.elements(); + while (e.hasMoreElements()) + { + MenuItem mi = (MenuItem)e.nextElement(); + mi.addNotify(); + } super.addNotify (); } diff --git a/libjava/java/awt/MenuBar.java b/libjava/java/awt/MenuBar.java index b9ddef9..af5c912 100644 --- a/libjava/java/awt/MenuBar.java +++ b/libjava/java/awt/MenuBar.java @@ -1,5 +1,5 @@ /* MenuBar.java -- An AWT menu bar class - Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -263,6 +263,12 @@ addNotify() { if (getPeer() == null) setPeer((MenuComponentPeer)getToolkit().createMenuBar(this)); + Enumeration e = menus.elements(); + while (e.hasMoreElements()) + { + Menu mi = (Menu)e.nextElement(); + mi.addNotify(); + } } /*************************************************************************/ diff --git a/libjava/java/awt/MenuItem.java b/libjava/java/awt/MenuItem.java index 02c4d0d..bea3b4f 100644 --- a/libjava/java/awt/MenuItem.java +++ b/libjava/java/awt/MenuItem.java @@ -1,5 +1,5 @@ /* MenuItem.java -- An item in a menu - Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -361,7 +361,7 @@ disableEvents(long events) public void addNotify() { - if (peer != null) + if (peer == null) peer = getToolkit ().createMenuItem (this); } -- cgit v1.1