diff options
| author | fitzsim <fitzsim@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-07-07 19:56:04 +0000 |
|---|---|---|
| committer | fitzsim <fitzsim@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-07-07 19:56:04 +0000 |
| commit | 6b43349247a03c2f49ef190f3384715289064647 (patch) | |
| tree | bdfd6dd308f68b299b088d16dcb5e0de8da7b995 /libjava/gnu | |
| parent | 299dd221df10425af8bdb382b49ce7ff00cfd0ea (diff) | |
| download | ppe42-gcc-6b43349247a03c2f49ef190f3384715289064647.tar.gz ppe42-gcc-6b43349247a03c2f49ef190f3384715289064647.zip | |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69054 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/gnu')
| -rw-r--r-- | libjava/gnu/java/awt/peer/gtk/GtkTextComponentPeer.java | 42 | ||||
| -rw-r--r-- | libjava/gnu/java/awt/peer/gtk/GtkTextFieldPeer.java | 15 |
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 d9ebd40aa72..102e43973a1 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 628cdd627ae..05112d16b8b 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); + } } |

