## GtkDataEntry GtkDataEntry — a data entry widget, based on GtkEntry |

## Synopsis

    #include <gtkextra.h>

                        GtkDataEntry;
    GtkDataEntry *      gtk_data_entry_new                  (void);
    const gchar *       gtk_data_entry_get_description      (GtkDataEntry *data_entry);
    void                gtk_data_entry_set_description      (GtkDataEntry *data_entry,
                                                             const gchar *description);
    const gchar *       gtk_data_entry_get_data_type        (GtkDataEntry *data_entry);
    void                gtk_data_entry_set_data_type        (GtkDataEntry *data_entry,
                                                             const gchar *data_type);
    const gchar *       gtk_data_entry_get_data_format      (GtkDataEntry *data_entry);
    void                gtk_data_entry_set_data_format      (GtkDataEntry *data_entry,
                                                             const gchar *data_format);
    const gchar *       gtk_data_entry_get_text             (GtkDataEntry *data_entry);
    void                gtk_data_entry_set_text             (GtkDataEntry *data_entry,
                                                             const gchar *text);
    gint                gtk_data_entry_get_max_length_bytes (GtkDataEntry *data_entry);
    void                gtk_data_entry_set_max_length_bytes (GtkDataEntry *data_entry,
                                                             gint max_length_bytes);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkObject
                   +----GtkWidget
                         +----GtkEntry
                               +----GtkDataEntry

## Implemented Interfaces

GtkDataEntry implements AtkImplementorIface, GtkBuildable, GtkEditable and GtkCellEditable.

## Properties

      "dataformat"               gchar*                : Read / Write
      "datatype"                 gchar*                : Read / Write
      "description"              gchar*                : Read / Write
      "max-length-bytes"         gint                  : Read / Write
      "text"                     gchar*                : Read / Write

## Description

GtkDataEntry provides additional properties:

- "description" - no functionality, a place for private information that cannot be put anywhere else

- "datatype" - no functionality, a datatype hint for the application because any widget content is text

- "dataformat" - a formatting instruction that controls what you see when the widget doesn't have input focus

- "text" - set the contents of the widget. if the widget doesn't have input focus text will be formatted according to the data_format

- "max-length-bytes" - set the maximum byte length for the contents of the widget.

The main reason for this widget is to provide a formatting entry widget for numeric data like integer, float, money which also supports NULL values (GtkSpinButton is nice but doesn't support empty field values). Handling of Null values is supported by all SQL database systems. The Null values are represented by empty field contents.

When editing field contents, all data formatting is removed before the focus enters the widget. As soon as the focus leaves the widget, data will be nicely formatted again.

As an additional feature, the minus sign (negative numbers) can be entered at the end of the data. As soon as you leave the field it will be placed properly in front of the number.

See also: `gtk_data_format()`

## Details

### GtkDataEntry

    typedef struct _GtkDataEntry GtkDataEntry;

The GtkDataEntry struct contains only private data. It should only be accessed through the functions described below.

### gtk_data_entry_new ()

    GtkDataEntry *      gtk_data_entry_new                  (void);

Creates a new GtkDataEntry Widget.

Returns : | the new GtkDataEntry Widget

### gtk_data_entry_get_description ()

    const gchar *       gtk_data_entry_get_description      (GtkDataEntry *data_entry);

Retrieves the GtkDataEntry description.

`data_entry` : | a GtkDataEntry
Returns : | a pointer to the contents of the widget as a string. This string points to internally allocated storage in the widget and must not be freed, modified or stored.

### gtk_data_entry_set_description ()

    void                gtk_data_entry_set_description      (GtkDataEntry *data_entry,
                                                             const gchar *description);

Sets the GtkDataEntry description.

`data_entry` : | a GtkDataEntry
`description` : | the description or NULL

### gtk_data_entry_get_data_type ()

    const gchar *       gtk_data_entry_get_data_type        (GtkDataEntry *data_entry);

Retrieves the GtkDataEntry data_type.

`data_entry` : | a GtkDataEntry
Returns : | a pointer to the contents of the widget as a string. This string points to internally allocated storage in the widget and must not be freed, modified or stored.

### gtk_data_entry_set_data_type ()

    void                gtk_data_entry_set_data_type        (GtkDataEntry *data_entry,
                                                             const gchar *data_type);

Sets the GtkDataEntry data type for application use.

`data_entry` : | a GtkDataEntry
`data_type` : | the data type or NULL

### gtk_data_entry_get_data_format ()

    const gchar *       gtk_data_entry_get_data_format      (GtkDataEntry *data_entry);

Retrieves the GtkDataEntry data_format.

See `gtk_data_format()` for details.

`data_entry` : | a GtkDataEntry
Returns : | a pointer to the contents of the widget as a string. This string points to internally allocated storage in the widget and must not be freed, modified or stored.

### gtk_data_entry_set_data_format ()

    void                gtk_data_entry_set_data_format      (GtkDataEntry *data_entry,
                                                             const gchar *data_format);

Sets the GtkDataEntry data type for application use. The display will not be refreshed upon change.

See `gtk_data_format()` for details.

`data_entry` : | a GtkDataEntry
`data_format` : | the data type or NULL

### gtk_data_entry_get_text ()

    const gchar *       gtk_data_entry_get_text             (GtkDataEntry *data_entry);

Retrieves the GtkDataEntry contents. All formatting will be removed.

`data_entry` : | a GtkDataEntry
Returns : | a pointer to the contents of the widget as a string. This string points to internally allocated storage in the widget and must not be freed, modified or stored.

### gtk_data_entry_set_text ()

    void                gtk_data_entry_set_text             (GtkDataEntry *data_entry,
                                                             const gchar *text);

Sets the GtkDataEntry contents. The contents will be formatted due to the current data_format.

`data_entry` : | a GtkDataEntry
`text` : | the contents to be set

### gtk_data_entry_get_max_length_bytes ()

    gint                gtk_data_entry_get_max_length_bytes (GtkDataEntry *data_entry);

Retrieves the maximum byte length for the contents of GtkDataEntry.

`data_entry` : | a GtkDataEntry
Returns : | maximum byte length or 0.

Since 3.0.6

### gtk_data_entry_set_max_length_bytes ()

    void                gtk_data_entry_set_max_length_bytes (GtkDataEntry *data_entry,
                                                             gint max_length_bytes);

Sets the maximum byte length for the contents of the GtkDataEntry. Existing content will not be truncted.

`data_entry` : | a GtkDataEntry
`max_length_bytes` : | maximum byte length or 0

Since 3.0.6

## Property Details

### The `"dataformat"` property

      "dataformat"               gchar*                : Read / Write

a formatting string that controls what you see when the widget doesn't contain input focus.

See `gtk_data_format()` for details.

Default value: ""

### The `"datatype"` property

      "datatype"                 gchar*                : Read / Write

no functionality, a datatype hint for the application because any widget content is text.

Default value: ""

### The `"description"` property

      "description"              gchar*                : Read / Write

Description of the GtkDataEntry, no functionality, a place for private information that cannot be put anywhere else.

Default value: ""

### The `"max-length-bytes"` property

      "max-length-bytes"         gint                  : Read / Write

Set the maximum length in bytes for the GtkDataEntry. For details see gtk_data_entry_set_max_length_bytes.

Sometimes, systems cannot handle UTF-8 string length correctly, to overcome this problem, you can use the maximum string length in bytes. When setting both limits, max-length and max-length-bytes, both must be fulfilled.

Allowed values: [0,65535]

Default value: 0

Since 3.0.6

### The `"text"` property

      "text"                     gchar*                : Read / Write

Set the contents of the GtkDataEntry. For details see gtk_data_entry_set_text.

Default value: ""