This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
[gui] [PATCH] PR AWT/17156 Implement MenuItemPeer.setEnabled()
- From: David Jee <djee at redhat dot com>
- To: java-patches at gcc dot gnu dot org
- Date: Tue, 24 Aug 2004 13:56:57 -0400
- Subject: [gui] [PATCH] PR AWT/17156 Implement MenuItemPeer.setEnabled()
Hello,
I committed the following patch to the java-gui-branch. It fixes PR
AWT/17156 by natively implementing MenuItem peer's setEnabled() method.
-David Jee
2004-08-24 David Jee <djee@redhat.com>
PR AWT/17156
* gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
(setEnabled): Make it a native method.
* java/awt/DefaultKeyboardFocusManager.java
(postProcessKeyEvent): Only post event if the menu item
is active.
* java/awt/MenuItem.java:
Private field 'enabled' should be true by default.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
(setEnabled): New function.
Index: gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java,v
retrieving revision 1.3.16.2
diff -u -r1.3.16.2 GtkMenuItemPeer.java
--- gnu/java/awt/peer/gtk/GtkMenuItemPeer.java 2 Apr 2004 15:52:53 -0000 1.3.16.2
+++ gnu/java/awt/peer/gtk/GtkMenuItemPeer.java 24 Aug 2004 17:44:51 -0000
@@ -89,10 +89,8 @@
setEnabled (true);
}
- public void setEnabled (boolean b)
- {
- // do nothing, for now.
- }
+ native public void setEnabled (boolean b);
+
native public void setLabel (String label);
protected void postMenuActionEvent ()
Index: java/awt/DefaultKeyboardFocusManager.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/awt/DefaultKeyboardFocusManager.java,v
retrieving revision 1.1.54.8
diff -u -r1.1.54.8 DefaultKeyboardFocusManager.java
--- java/awt/DefaultKeyboardFocusManager.java 30 Jul 2004 19:48:33 -0000 1.1.54.8
+++ java/awt/DefaultKeyboardFocusManager.java 24 Aug 2004 17:44:51 -0000
@@ -311,7 +311,7 @@
MenuItem item = menu.getItem (j);
MenuShortcut shortcut = item.getShortcut ();
- if (shortcut != null)
+ if (item.isEnabled() && shortcut != null)
{
// Dispatch a new ActionEvent if:
//
Index: java/awt/MenuItem.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/awt/MenuItem.java,v
retrieving revision 1.16.2.2
diff -u -r1.16.2.2 MenuItem.java
--- java/awt/MenuItem.java 12 Jun 2004 00:21:07 -0000 1.16.2.2
+++ java/awt/MenuItem.java 24 Aug 2004 17:44:51 -0000
@@ -77,7 +77,7 @@
/**
* @serial Indicates whether or not this menu item is enabled.
*/
-private boolean enabled;
+private boolean enabled = true;
/**
* @serial The mask of events that are enabled for this menu item.
Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c,v
retrieving revision 1.4.8.1
diff -u -r1.4.8.1 gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c 26 Mar 2004 17:06:35 -0000 1.4.8.1
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c 24 Aug 2004 17:44:52 -0000
@@ -86,6 +86,18 @@
gdk_threads_leave ();
}
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_setEnabled
+ (JNIEnv *env, jobject obj, jboolean enabled)
+{
+ void *ptr;
+
+ ptr = NSA_GET_PTR (env, obj);
+
+ gdk_threads_enter ();
+ gtk_widget_set_sensitive (GTK_WIDGET (ptr), enabled);
+ gdk_threads_leave ();
+}
+
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_setLabel
(JNIEnv *env, jobject obj, jstring label)
{