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

## Synopsis

    #include <gtk/gtk.h>

                GtkCellEditable;
                GtkCellEditableIface;
    void        gtk_cell_editable_start_editing (GtkCellEditable *cell_editable,
                                                 GdkEvent *event);
    void        gtk_cell_editable_editing_done  (GtkCellEditable *cell_editable);
    void        gtk_cell_editable_remove_widget (GtkCellEditable *cell_editable);

## Object Hierarchy

      GInterface
       +----GtkCellEditable

## Prerequisites

GtkCellEditable requires GtkWidget.

## Known Implementations

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

## Signal Prototypes

    "editing-done"
                void        user_function      (GtkCellEditable *celleditable,
                                                gpointer user_data);
    "remove-widget"
                void        user_function      (GtkCellEditable *celleditable,
                                                gpointer user_data);

## Description

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

## Details

### GtkCellEditable

    typedef struct _GtkCellEditable GtkCellEditable;

### GtkCellEditableIface

    typedef struct {
      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);
    } GtkCellEditableIface;

### 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.

`cell_editable` : | A GtkCellEditable
`event` : | A GdkEvent, or `NULL`

### gtk_cell_editable_editing_done ()

    void        gtk_cell_editable_editing_done  (GtkCellEditable *cell_editable);

Emits the "editing_done" signal. This signal is a sign for the cell renderer to update its value from the cell.

`cell_editable` : | A GtkTreeEditable

### gtk_cell_editable_remove_widget ()

    void        gtk_cell_editable_remove_widget (GtkCellEditable *cell_editable);

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

`cell_editable` : | A GtkTreeEditable

## Signals

### The "editing-done" signal

    void        user_function                  (GtkCellEditable *celleditable,
                                                gpointer user_data);

`celleditable` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.

### The "remove-widget" signal

    void        user_function                  (GtkCellEditable *celleditable,
                                                gpointer user_data);

`celleditable` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.