aboutsummaryrefslogtreecommitdiff
path: root/libjava/gnu/java
diff options
context:
space:
mode:
authorThomas Fitzsimmons <fitzsim@redhat.com>2003-07-07 19:56:04 +0000
committerThomas Fitzsimmons <fitzsim@gcc.gnu.org>2003-07-07 19:56:04 +0000
commitb6fa901bc961f54ec9b24c77538f159ad6736d20 (patch)
treebdfd6dd308f68b299b088d16dcb5e0de8da7b995 /libjava/gnu/java
parent0fcd5ddaa80596940cb2accd8a74f4ceae75fea5 (diff)
downloadgcc-b6fa901bc961f54ec9b24c77538f159ad6736d20.zip
gcc-b6fa901bc961f54ec9b24c77538f159ad6736d20.tar.gz
gcc-b6fa901bc961f54ec9b24c77538f159ad6736d20.tar.bz2
* gnu/java/awt/peer/gtk/GtkTextComponentPeer.java
(setCaretPosition, setEditable): Rely entirely on native implementation. (getArgs): Remove. (postTextEvent): New method. (handleEvent): New method. * gnu/java/awt/peer/gtk/GtkTextFieldPeer.java (handleEvent): New method. * java/awt/event/ActionEvent.java (paramString): Fix formatting. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c (keysym_to_awt_keycode): Fix range checks. (generates_key_typed_event): New function. (awt_event_handler): Post AWT_KEY_RELEASED events to event queue. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c (gtkInit): Store TextComponent's postTextEvent method ID. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c (setText): Post TEXT_VALUE_CHANGED event to event queue. From-SVN: r69054
Diffstat (limited to 'libjava/gnu/java')
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkTextComponentPeer.java42
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkTextFieldPeer.java15
2 files changed, 36 insertions, 21 deletions
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkTextComponentPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkTextComponentPeer.java
index d9ebd40..102e439 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkTextComponentPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkTextComponentPeer.java
@@ -39,6 +39,7 @@ exception statement from your version. */
package gnu.java.awt.peer.gtk;
import java.awt.peer.*;
import java.awt.*;
+import java.awt.event.*;
public class GtkTextComponentPeer extends GtkComponentPeer
implements TextComponentPeer
@@ -51,32 +52,14 @@ public class GtkTextComponentPeer extends GtkComponentPeer
}
public native int getCaretPosition ();
- public void setCaretPosition (int pos)
- {
- set ("text_position", pos);
- }
+ public native void setCaretPosition (int pos);
public native int getSelectionStart ();
public native int getSelectionEnd ();
public native String getText ();
public native void select (int start, int end);
-
- public void setEditable (boolean state)
- {
- set ("editable", state);
- }
-
+ public native void setEditable (boolean state);
public native void setText (String text);
-
- public void getArgs (Component component, GtkArgList args)
- {
- super.getArgs (component, args);
-
- TextComponent tc = (TextComponent) component;
-
- args.add ("text_position", tc.getCaretPosition ());
- args.add ("editable", tc.isEditable ());
- }
-
+
public int getIndexAtPoint(int x, int y)
{
return 0; // FIXME
@@ -91,4 +74,21 @@ public class GtkTextComponentPeer extends GtkComponentPeer
{
return filter; // FIXME
}
+
+ protected void postTextEvent ()
+ {
+ q.postEvent (new TextEvent (awtComponent, TextEvent.TEXT_VALUE_CHANGED));
+ }
+
+ public void handleEvent (AWTEvent e)
+ {
+ if (e.getID () == KeyEvent.KEY_TYPED
+ && ((TextComponent)e.getSource()).isEditable())
+ {
+ KeyEvent ke = (KeyEvent)e;
+
+ if (!ke.isConsumed())
+ postTextEvent ();
+ }
+ }
}
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkTextFieldPeer.java b/libjava/gnu/java/awt/peer/gtk/GtkTextFieldPeer.java
index 628cdd6..05112d1 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkTextFieldPeer.java
+++ b/libjava/gnu/java/awt/peer/gtk/GtkTextFieldPeer.java
@@ -37,6 +37,7 @@ exception statement from your version. */
package gnu.java.awt.peer.gtk;
+import java.awt.event.KeyEvent;
import java.awt.peer.*;
import java.awt.*;
@@ -102,4 +103,18 @@ public class GtkTextFieldPeer extends GtkTextComponentPeer
{
gtkSetFont(((GtkFontPeer)f.getPeer()).getXLFD(), f.getSize());
}
+
+ public void handleEvent (AWTEvent e)
+ {
+ if (e.getID () == KeyEvent.KEY_PRESSED)
+ {
+ KeyEvent ke = (KeyEvent)e;
+
+ if (!ke.isConsumed()
+ && ke.getKeyCode() == KeyEvent.VK_ENTER)
+ postActionEvent (getText(), ke.getModifiers ());
+ }
+
+ super.handleEvent (e);
+ }
}