Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.trolltech.qt.gui
Class QInputMethodEvent

    java.lang.Object
      com.trolltech.qt.internal.QSignalEmitterInternal
          com.trolltech.qt.QSignalEmitter
              com.trolltech.qt.QtJambiObject
                  com.trolltech.qt.core.QEvent
                      com.trolltech.qt.gui.QInputMethodEvent

All Implemented Interfaces:
  QtJambiInterface

    public class QInputMethodEvent

extends QEvent

The QInputMethodEvent class provides parameters for input method events. Input method events are sent to widgets when an input method is used to enter text into a widget. Input methods are widely used to enter text for languages with non-Latin alphabets.

Note that when creating custom text editing widgets, the `Qt::WA_InputMethodEnabled` window attribute must be set explicitly (using the `QWidget::setAttribute()` function) in order to receive input method events.

The events are of interest to authors of keyboard entry widgets who want to be able to correctly handle languages with complex character input. Text input in such languages is usually a three step process:

1. Starting to Compose

   When the user presses the first key on a keyboard, an input context is created. This input context will contain a string of the typed characters.

2. Composing

   With every new key pressed, the input method will try to create a matching string for the text typed so far called preedit string. While the input context is active, the user can only move the cursor inside the string belonging to this input context.

3. Completing

   At some point, the user will activate a user interface component (perhaps using a particular key) where they can choose from a number of strings matching the text they have typed so far. The user can either confirm their choice cancel the input; in either case the input context will be closed.

QInputMethodEvent models these three stages, and transfers the information needed to correctly render the intermediate result. A QInputMethodEvent has two main parameters: `preeditString()` and `commitString()`. The `preeditString()` parameter gives the currently active preedit string. The `commitString()` parameter gives a text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.

If the `commitString()` should replace parts of the of the text in the editor, `replacementLength()` will contain the number of characters to be replaced. `replacementStart()` contains the position at which characters are to be replaced relative from the start of the preedit string.

A number of attributes control the visual appearance of the preedit string (the visual appearance of text outside the preedit string is controlled by the widget only). The `AttributeType` enum describes the different attributes that can be set.

A class implementing `QWidget::inputMethodEvent()` should at least understand and honor the `TextFormat` and `Cursor` attributes.

Since input methods need to be able to query certain properties from the widget, the widget must also implement `QWidget::inputMethodQuery()`.

When receiving an input method event, the text widget has to performs the following steps:

1. If the widget has selected text, the selected text should get removed.
2. Remove the text starting at `replacementStart()` with length `replacementLength()` and replace it by the `commitString()`. If `replacementLength()` is 0, `replacementStart()` gives the insertion position for the `commitString()`.

   When doing replacement the area of the preedit string is ignored, thus a replacement starting at -1 with a length of 2 will remove the last character before the preedit string and the first character afterwards, and insert the commit string directly before the preedit string.

   If the widget implements undo/redo, this operation gets added to the undo stack.

3. If there is no current preedit string, insert the `preeditString()` at the current cursor position; otherwise replace the previous preeditString with the one received from this event.

   If the widget implements undo/redo, the `preeditString()` should not influence the undo/redo stack in any way.

   The widget should examine the list of attributes to apply to the preedit string. It has to understand at least the `TextFormat` and Cursor attributes and render them as specified.

See also:
  `QInputContext`.

Nested Class Summary
`static class` | `QInputMethodEvent.AttributeType` See also. Attribute.

Nested classes/interfaces inherited from class com.trolltech.qt.core.QEvent
`QEvent.Type`

Nested classes/interfaces inherited from class com.trolltech.qt.QSignalEmitter
`QSignalEmitter.AbstractSignal, QSignalEmitter.Signal0, QSignalEmitter.Signal1, QSignalEmitter.Signal2, QSignalEmitter.Signal3, QSignalEmitter.Signal4, QSignalEmitter.Signal5, QSignalEmitter.Signal6, QSignalEmitter.Signal7, QSignalEmitter.Signal8, QSignalEmitter.Signal9`

Nested classes/interfaces inherited from class com.trolltech.qt.internal.QSignalEmitterInternal
`com.trolltech.qt.internal.QSignalEmitterInternal.AbstractSignalInternal`

Field Summary

Fields inherited from class com.trolltech.qt.internal.QSignalEmitterInternal
`currentSender`

Constructor Summary
`QInputMethodEvent()` Constructs an event of type `QEvent::InputMethod` .
`QInputMethodEvent(QInputMethodEvent other)` Constructs a copy of `other`.
`QInputMethodEvent(java.lang.String preeditText, java.util.List attributes)` Construcs an event of type `QEvent::InputMethod` .

Method Summary
`java.util.List` | `attributes()` Returns the list of attributes passed to the QInputMethodEvent constructor.
`java.lang.String` | `commitString()` Returns the text that should get added to (or replace parts of) the text of the editor widget.
`java.lang.String` | `preeditString()` Returns the preedit text, i.
`int` | `replacementLength()` Returns the number of characters to be replaced in the preedit string.
`int` | `replacementStart()` Returns the position at which characters are to be replaced relative from the start of the preedit string.
`void` | `setCommitString(java.lang.String commitString)` Sets the commit string to `commitString`.
`void` | `setCommitString(java.lang.String commitString, int replaceFrom)` Sets the commit string to `commitString`.
`void` | `setCommitString(java.lang.String commitString, int replaceFrom, int replaceLength)` Sets the commit string to `commitString`.
`java.lang.String` | `toString()` Returns a string representation of the `this QInputMethodEvent`.

Methods inherited from class com.trolltech.qt.core.QEvent
`accept, ignore, isAccepted, registerEventType, registerEventType, setAccepted, setT, spontaneous, t, type`

Methods inherited from class com.trolltech.qt.QtJambiObject
`dispose, disposed, equals, finalize, reassignNativeResources, tr, tr, tr`

Methods inherited from class com.trolltech.qt.QSignalEmitter
`blockSignals, disconnect, disconnect, signalsBlocked, signalSender, thread`

Methods inherited from class com.trolltech.qt.internal.QSignalEmitterInternal
`__qt_signalInitialization`

Methods inherited from class java.lang.Object
`clone, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface com.trolltech.qt.QtJambiInterface
`disableGarbageCollection, nativeId, nativePointer, reenableGarbageCollection, setJavaOwnership`

Constructor Detail

### QInputMethodEvent

    public QInputMethodEvent()

  Constructs an event of type `QEvent::InputMethod` . The `attributes()`, `preeditString()`, `commitString()`, `replacementStart()`, and `replacementLength()` are initialized to default values.

See also:
  `setCommitString()`.

### QInputMethodEvent

    public QInputMethodEvent(QInputMethodEvent other)

  Constructs a copy of `other`.

### QInputMethodEvent

    public QInputMethodEvent(java.lang.String preeditText,
                             java.util.List attributes)

  Construcs an event of type `QEvent::InputMethod` . The preedit text is set to `preeditText`, the attributes to `attributes`.

  The `commitString()`, `replacementStart()`, and `replacementLength()` values can be set using `setCommitString()`.

See also:
  `preeditString()`, and `attributes()`.

Method Detail

### attributes

    public final java.util.List attributes()

  Returns the list of attributes passed to the QInputMethodEvent constructor. The attributes control the visual appearance of the preedit string (the visual appearance of text outside the preedit string is controlled by the widget only).

See also:
  `preeditString()`, and Attribute.

### commitString

    public final java.lang.String commitString()

  Returns the text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.

See also:
  `setCommitString()`, `preeditString()`, `replacementStart()`, and `replacementLength()`.

### preeditString

    public final java.lang.String preeditString()

  Returns the preedit text, i. . the text before the user started editing it.

See also:
  `commitString()`, and `attributes()`.

### replacementLength

    public final int replacementLength()

  Returns the number of characters to be replaced in the preedit string.

See also:
  `replacementStart()`, and `setCommitString()`.

### replacementStart

    public final int replacementStart()

  Returns the position at which characters are to be replaced relative from the start of the preedit string.

See also:
  `replacementLength()`, and `setCommitString()`.

### setCommitString

    public final void setCommitString(java.lang.String commitString,
                                      int replaceFrom)

  Sets the commit string to `commitString`.

  The commit string is the text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.

  If the commit string should replace parts of the of the text in the editor, `replaceLength` specifies the number of characters to be replaced. `replaceFrom` specifies the position at which characters are to be replaced relative from the start of the preedit string.

See also:
  `commitString()`, `replacementStart()`, and `replacementLength()`.

### setCommitString

    public final void setCommitString(java.lang.String commitString)

  Sets the commit string to `commitString`.

  The commit string is the text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.

  If the commit string should replace parts of the of the text in the editor, `replaceLength` specifies the number of characters to be replaced. `replaceFrom` specifies the position at which characters are to be replaced relative from the start of the preedit string.

See also:
  `commitString()`, `replacementStart()`, and `replacementLength()`.

### setCommitString

    public final void setCommitString(java.lang.String commitString,
                                      int replaceFrom,
                                      int replaceLength)

  Sets the commit string to `commitString`.

  The commit string is the text that should get added to (or replace parts of) the text of the editor widget. It usually is a result of the input operations and has to be inserted to the widgets text directly before the preedit string.

  If the commit string should replace parts of the of the text in the editor, `replaceLength` specifies the number of characters to be replaced. `replaceFrom` specifies the position at which characters are to be replaced relative from the start of the preedit string.

See also:
  `commitString()`, `replacementStart()`, and `replacementLength()`.

### toString

    public java.lang.String toString()

  Returns a string representation of the `this QInputMethodEvent`.

  Overrides:
    `toString` in class `QEvent`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD