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

## Signals

      editing-done                                   : Run Last
      remove-widget                                  : Run Last

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

## Signal Details

### The `::editing-done` signal

    void                user_function                      (GtkCellEditable *celleditable,
                                                            gpointer         user_data)         : Run Last

`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)         : Run Last

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