EditableProtocol

public protocol EditableProtocol

The GtkEditable interface is an interface which should be implemented by text editing widgets, such as GtkEntry and GtkSpinButton. It contains functions for generically manipulating an editable widget, a large number of action signals used for key bindings, and several signals that an application can connect to to modify the behavior of a widget.

As an example of the latter usage, by connecting the following handler to GtkEditable::insert-text, an application can convert all entry into a widget into uppercase.

Forcing entry to uppercase.

(C Language Example):

#include <ctype.h>;

void
insert_text_handler (GtkEditable *editable,
                     const gchar *text,
                     gint         length,
                     gint        *position,
                     gpointer     data)
{
  gchar *result = g_utf8_strup (text, length);

  g_signal_handlers_block_by_func (editable,
                               (gpointer) insert_text_handler, data);
  gtk_editable_insert_text (editable, result, length, position);
  g_signal_handlers_unblock_by_func (editable,
                                     (gpointer) insert_text_handler, data);

  g_signal_stop_emission_by_name (editable, "insert_text");

  g_free (result);
}

The EditableProtocol protocol exposes the methods and properties of an underlying GtkEditable instance. The default implementation of these can be found in the protocol extension below. For a concrete class that implements these methods and properties, see Editable. Alternatively, use EditableRef as a lighweight, unowned reference if you already have an instance you just want to use.

  • ptr

    Untyped pointer to the underlying GtkEditable instance.

    Declaration

    Swift

    var ptr: UnsafeMutableRawPointer! { get }
  • editable_ptr Default implementation

    Typed pointer to the underlying GtkEditable instance.

    Default Implementation

    Return the stored, untyped pointer as a typed pointer to the GtkEditable instance.

    Declaration

    Swift

    var editable_ptr: UnsafeMutablePointer<GtkEditable>! { get }
  • Required Initialiser for types conforming to EditableProtocol

    Declaration

    Swift

    init(raw: UnsafeMutableRawPointer)

Editable signals

  • Connect a Swift signal handler to the given, typed EditableSignalName signal

    Declaration

    Swift

    @discardableResult
    @inlinable
    func connect(signal s: EditableSignalName, flags f: ConnectFlags = ConnectFlags(0), handler h: @escaping SignalHandler) -> Int

    Parameters

    signal

    The signal to connect

    flags

    The connection flags to use

    data

    A pointer to user data to provide to the callback

    destroyData

    A GClosureNotify C function to destroy the data pointed to by userData

    handler

    The Swift signal handler (function or callback) to invoke on the given signal

    Return Value

    The signal handler ID (always greater than 0 for successful connections)

  • Connect a C signal handler to the given, typed EditableSignalName signal

    Declaration

    Swift

    @discardableResult
    @inlinable
    func connect(signal s: EditableSignalName, flags f: ConnectFlags = ConnectFlags(0), data userData: gpointer!, destroyData destructor: GClosureNotify? = nil, signalHandler h: @escaping GCallback) -> Int

    Parameters

    signal

    The signal to connect

    flags

    The connection flags to use

    data

    A pointer to user data to provide to the callback

    destroyData

    A GClosureNotify C function to destroy the data pointed to by userData

    signalHandler

    The C function to be called on the given signal

    Return Value

    The signal handler ID (always greater than 0 for successful connections)

  • insertTextSignal Extension method

    This signal is emitted when text is inserted into the widget by the user. The default handler for this signal will normally be responsible for inserting the text, so by connecting to this signal and then stopping the signal with g_signal_stop_emission(), it is possible to modify the inserted text, or prevent it from being inserted entirely.

    Note

    This represents the underlying insert-text signal

    Warning

    a onInsertText wrapper for this signal could not be generated because it contains unimplemented features: { (1) argument with ownership transfer is not allowed, (2) out or inout argument direction is not allowed }

    Note

    Instead, you can connect insertTextSignal using the connect(signal:) methods

    Declaration

    Swift

    static var insertTextSignal: EditableSignalName { get }

    Parameters

    flags

    Flags

    unownedSelf

    Reference to instance of self

    newText

    the new text to insert

    newTextLength

    the length of the new text, in bytes, or -1 if new_text is nul-terminated

    position

    the position, in characters, at which to insert the new text. this is an in-out parameter. After the signal emission is finished, it should point after the newly inserted text.

    handler

    The signal handler to call

  • onChanged(flags:handler:) Extension method

    The changed signal is emitted at the end of a single user-visible operation on the contents of the GtkEditable.

    E.g., a paste operation that replaces the contents of the selection will cause only one signal emission (even though it is implemented by first deleting the selection, then inserting the new content, and may cause multiple notify::text signals to be emitted).

    Note

    This represents the underlying changed signal

    Declaration

    Swift

    @discardableResult
    @inlinable
    func onChanged(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: EditableRef) -> Void) -> Int

    Parameters

    flags

    Flags

    unownedSelf

    Reference to instance of self

    handler

    The signal handler to call Run the given callback whenever the changed signal is emitted

  • changedSignal Extension method

    Typed changed signal for using the connect(signal:) methods

    Declaration

    Swift

    static var changedSignal: EditableSignalName { get }
  • onDeleteText(flags:handler:) Extension method

    This signal is emitted when text is deleted from the widget by the user. The default handler for this signal will normally be responsible for deleting the text, so by connecting to this signal and then stopping the signal with g_signal_stop_emission(), it is possible to modify the range of deleted text, or prevent it from being deleted entirely. The start_pos and end_pos parameters are interpreted as for gtk_editable_delete_text().

    Note

    This represents the underlying delete-text signal

    Declaration

    Swift

    @discardableResult
    @inlinable
    func onDeleteText(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: EditableRef, _ startPos: Int, _ endPos: Int) -> Void) -> Int

    Parameters

    flags

    Flags

    unownedSelf

    Reference to instance of self

    startPos

    the starting position

    endPos

    the end position

    handler

    The signal handler to call Run the given callback whenever the deleteText signal is emitted

  • deleteTextSignal Extension method

    Typed delete-text signal for using the connect(signal:) methods

    Declaration

    Swift

    static var deleteTextSignal: EditableSignalName { get }

Editable Interface: EditableProtocol extension (methods and fields)

  • copyClipboard() Extension method

    Copies the contents of the currently selected content in the editable and puts it on the clipboard.

    Declaration

    Swift

    @inlinable
    func copyClipboard()
  • cutClipboard() Extension method

    Removes the contents of the currently selected content in the editable and puts it on the clipboard.

    Declaration

    Swift

    @inlinable
    func cutClipboard()
  • deleteSelection() Extension method

    Deletes the currently selected text of the editable. This call doesn’t do anything if there is no selected text.

    Declaration

    Swift

    @inlinable
    func deleteSelection()
  • deleteText(startPos:endPos:) Extension method

    Deletes a sequence of characters. The characters that are deleted are those characters at positions from start_pos up to, but not including end_pos. If end_pos is negative, then the characters deleted are those from start_pos to the end of the text.

    Note that the positions are specified in characters, not bytes.

    Declaration

    Swift

    @inlinable
    func deleteText(startPos: Int, endPos: Int)
  • getChars(startPos:endPos:) Extension method

    Retrieves a sequence of characters. The characters that are retrieved are those characters at positions from start_pos up to, but not including end_pos. If end_pos is negative, then the characters retrieved are those characters from start_pos to the end of the text.

    Note that positions are specified in characters, not bytes.

    Declaration

    Swift

    @inlinable
    func getChars(startPos: Int, endPos: Int) -> String!
  • getEditable() Extension method

    Retrieves whether editable is editable. See gtk_editable_set_editable().

    Declaration

    Swift

    @inlinable
    func getEditable() -> Bool
  • getPosition() Extension method

    Retrieves the current position of the cursor relative to the start of the content of the editable.

    Note that this position is in characters, not in bytes.

    Declaration

    Swift

    @inlinable
    func getPosition() -> Int
  • Retrieves the selection bound of the editable. start_pos will be filled with the start of the selection and end_pos with end. If no text was selected both will be identical and false will be returned.

    Note that positions are specified in characters, not bytes.

    Declaration

    Swift

    @inlinable
    func getSelectionBounds(startPos: UnsafeMutablePointer<gint>! = nil, endPos: UnsafeMutablePointer<gint>! = nil) -> Bool
  • Inserts new_text_length bytes of new_text into the contents of the widget, at position position.

    Note that the position is in characters, not in bytes. The function updates position to point after the newly inserted text.

    Declaration

    Swift

    @inlinable
    func insertText(newText: UnsafePointer<gchar>!, newTextLength: Int, position: UnsafeMutablePointer<gint>!)
  • pasteClipboard() Extension method

    Pastes the content of the clipboard to the current position of the cursor in the editable.

    Declaration

    Swift

    @inlinable
    func pasteClipboard()
  • Selects a region of text. The characters that are selected are those characters at positions from start_pos up to, but not including end_pos. If end_pos is negative, then the characters selected are those characters from start_pos to the end of the text.

    Note that positions are specified in characters, not bytes.

    Declaration

    Swift

    @inlinable
    func selectRegion(startPos: Int, endPos: Int)
  • setEditable(isEditable:) Extension method

    Determines if the user can edit the text in the editable widget or not.

    Declaration

    Swift

    @inlinable
    func setEditable(isEditable: Bool)
  • set(position:) Extension method

    Sets the cursor position in the editable to the given value.

    The cursor is displayed before the character with the given (base 0) index in the contents of the editable. The value must be less than or equal to the number of characters in the editable. A value of -1 indicates that the position should be set after the last character of the editable. Note that position is in characters, not in bytes.

    Declaration

    Swift

    @inlinable
    func set(position: Int)
  • editable Extension method

    Retrieves whether editable is editable. See gtk_editable_set_editable().

    Declaration

    Swift

    @inlinable
    var editable: Bool { get nonmutating set }
  • position Extension method

    Retrieves the current position of the cursor relative to the start of the content of the editable.

    Note that this position is in characters, not in bytes.

    Declaration

    Swift

    @inlinable
    var position: Int { get nonmutating set }