## GtkCellEditable GtkCellEditable — Interface for widgets which can are used for editing cells |

## Functions

void | gtk_cell_editable_start_editing ()
void | gtk_cell_editable_editing_done ()
void | gtk_cell_editable_remove_widget ()

## Properties

gboolean | editing-canceled | Read / Write

## Signals

void | editing-done | Run Last
void | remove-widget | Run Last

## Types and Values

| GtkCellEditable
struct | GtkCellEditableIface

## Object Hierarchy

        GInterface
        ╰── GtkCellEditable

## Prerequisites

GtkCellEditable requires GtkWidget.

## Known Implementations

GtkCellEditable is implemented by GtkComboBox, GtkComboBoxEntry, GtkComboBoxText, GtkEntry and GtkSpinButton.

## Includes

    #include <gtk/gtk.h>

## Description

The GtkCellEditable interface must be implemented for widgets to be usable when editing the contents of a GtkTreeView cell.

## Functions

### gtk_cell_editable_start_editing ()

    void
    gtk_cell_editable_start_editing (GtkCellEditable *cell_editable,
                                     GdkEvent *event);

Begins editing on a `cell_editable` . `event` is the GdkEvent that began the editing process. It may be `NULL`, in the instance that editing was initiated through programatic means.

#### Parameters

cell_editable | A GtkCellEditable |
event | A GdkEvent, or `NULL`. | [allow-none]

### gtk_cell_editable_editing_done ()

    void
    gtk_cell_editable_editing_done (GtkCellEditable *cell_editable);

Emits the “editing-done” signal.

#### Parameters

cell_editable | A GtkTreeEditable |

### gtk_cell_editable_remove_widget ()

    void
    gtk_cell_editable_remove_widget (GtkCellEditable *cell_editable);

Emits the “remove-widget” signal.

#### Parameters

cell_editable | A GtkTreeEditable |

## Types and Values

### GtkCellEditable

    typedef struct _GtkCellEditable GtkCellEditable;

### struct GtkCellEditableIface

    struct GtkCellEditableIface {
      GTypeInterface g_iface;

      /* signals */
      void (* editing_done)  (GtkCellEditable *cell_editable);
      void (* remove_widget) (GtkCellEditable *cell_editable);

      /* virtual table */
      void (* start_editing) (GtkCellEditable *cell_editable,
    			  GdkEvent        *event);
    };

## Property Details

### The `“editing-canceled”` property

      “editing-canceled”         gboolean

Indicates whether editing on the cell has been canceled.

Flags: Read / Write

Default value: FALSE

Since: 2.20

## Signal Details

### The `“editing-done”` signal

    void
    user_function (GtkCellEditable *cell_editable,
                   gpointer         user_data)

This signal is a sign for the cell renderer to update its value from the `cell_editable` .

Implementations of GtkCellEditable are responsible for emitting this signal when they are done editing, e.g. GtkEntry is emitting it when the user presses Enter.

gtk_cell_editable_editing_done() is a convenience method for emitting GtkCellEditable::editing-done.

#### Parameters

cell_editable | the object on which the signal was emitted |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“remove-widget”` signal

    void
    user_function (GtkCellEditable *cell_editable,
                   gpointer         user_data)

This signal is meant to indicate that the cell is finished editing, and the widget may now be destroyed.

Implementations of GtkCellEditable are responsible for emitting this signal when they are done editing. It must be emitted after the “editing-done” signal, to give the cell renderer a chance to update the cell's value before the widget is removed.

gtk_cell_editable_remove_widget() is a convenience method for emitting GtkCellEditable::remove-widget.

#### Parameters

cell_editable | the object on which the signal was emitted |
user_data | user data set when the signal handler was connected. |

Flags: Run Last