---
name: "Gtk2::Editable"
section: "3pm"
platform: "linux"
package: "libgtk2-perl-doc"
version: "2:1.24992-1"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/Gtk2::Editable"
---

# Gtk2::Editable(3pm)

wrapper for GtkEditable

## NAME

Gtk2::Editable - wrapper for GtkEditable

## HIERARCHY

```
  Glib::Interface
  +----Gtk2::Editable
```

## METHODS

### string = $editable-\>get\_chars ($start\_pos, $end\_pos)

- •

  `$start_pos` (integer)

- •

  `$end_pos` (integer)

### $editable-\>copy\_clipboard

### $editable-\>cut\_clipboard

### $editable-\>delete\_selection

### $editable-\>delete\_text ($start\_pos, $end\_pos)

- •

  `$start_pos` (integer)

- •

  `$end_pos` (integer)

### boolean = $editable-\>get\_editable

### $editable-\>set\_editable ($is\_editable)

- •

  `$is_editable` (boolean)

### new\_position = $editable-\>insert\_text (new\_text, position)

- •

  `$new_text` (string)

- •

  ... (list)

### $editable-\>paste\_clipboard

### integer = $editable-\>get\_position

### $editable-\>set\_position ($position)

- •

  `$position` (integer)

### $editable-\>select\_region ($start, $end)

- •

  `$start` (integer)

- •

  `$end` (integer)

### (start, end) = $editable-\>get\_selection\_bounds

Returns integers, start and end.

## SIGNALS

- **changed** (Gtk2::Editable)

  - **delete-text** (Gtk2::Editable, integer, integer)

  - **insert-text** (Gtk2::Editable, string, integer, gpointer)

  The `"insert-text"` signal handler can optionally alter the text to be inserted.  It may

- •

  Return no values for no change.  Be sure to end with an empty `"return"`.

  ```
      sub my_insert_text_handler {
        my ($widget, $text, $len, $pos, $userdata) = @_;
        print "inserting '$text' at char position '$pos'\n";
        return;  # no values
      }
  ```

- •

  Return two values `"($text, $pos)"` which are the new text and character position.

  ```
      sub my_insert_text_handler {
        my ($widget, $text, $len, $pos, $userdata) = @_;
        return (uc($text), $pos);  # force to upper case
      }
  ```

- •

  Return no values and modify the text in `$_[1]` and/or position in `$_[3]`.  For example,

  ```
      sub my_insert_text_handler {
        $_[1] = uc($_[1]);   # force to upper case
        $_[3] = 0;           # force position to the start
        return;  # no values
      }
  ```

Note that currently in a Perl subclass of a `"Gtk2::Editable"` widget, a class closure (ie. class default signal handler) for `"insert-text"` does not work this way.  It instead sees the C level `"($text, $len,` `$pos_pointer)"`, where `$pos_pointer` is a machine address and cannot be used easily.  Hopefully this will change in the future. A `"signal_chain_from_overridden"` with the args as passed works, but for anything else the suggestion is to use a `"signal_connect"` instead.

## SEE ALSO

Gtk2, Glib::Interface

## COPYRIGHT

Copyright (C) 2003-2011 by the gtk2-perl team.

This software is licensed under the LGPL.  See Gtk2 for a full notice.
