## GnomeDbFormatEntry GnomeDbFormatEntry — A GtkEntry with formatting options |

## Synopsis

                        GnomeDbFormatEntry;
                        GnomeDbFormatEntryClass;
                        GnomeDbFormatEntryPrivate;
    GtkWidget *         gnome_db_format_entry_new           (void);
    void                gnome_db_format_entry_set_max_length
                                                            (GnomeDbFormatEntry *entry,
                                                             gint max);
    void                gnome_db_format_entry_set_format    (GnomeDbFormatEntry *entry,
                                                             const gchar *format,
                                                             const gchar *mask,
                                                             const gchar *completion);
    void                gnome_db_format_entry_set_decimal_places
                                                            (GnomeDbFormatEntry *entry,
                                                             gint nb_decimals);
    void                gnome_db_format_entry_set_separators
                                                            (GnomeDbFormatEntry *entry,
                                                             guchar decimal,
                                                             guchar thousands);
    void                gnome_db_format_entry_set_edited_type
                                                            (GnomeDbFormatEntry *entry,
                                                             GType type);
    void                gnome_db_format_entry_set_prefix    (GnomeDbFormatEntry *entry,
                                                             const gchar *prefix);
    void                gnome_db_format_entry_set_suffix    (GnomeDbFormatEntry *entry,
                                                             const gchar *suffix);
    void                gnome_db_format_entry_set_text      (GnomeDbFormatEntry *entry,
                                                             const gchar *text);
    gchar *             gnome_db_format_entry_get_text      (GnomeDbFormatEntry *entry);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkObject
                   +----GtkWidget
                         +----GtkEntry
                               +----GnomeDbFormatEntry

## Implemented Interfaces

GnomeDbFormatEntry implements GtkBuildable, AtkImplementorIface, GtkCellEditable and GtkEditable.

## Properties

      "completion"               gchar*                : Read / Write
      "decimal-sep"              guchar                : Read / Write
      "edited-type"              guint                 : Read / Write
      "format"                   gchar*                : Read / Write
      "mask"                     gchar*                : Read / Write
      "max-length"               gint                  : Read / Write
      "n-decimals"               gint                  : Read / Write
      "prefix"                   gchar*                : Read / Write
      "suffix"                   gchar*                : Read / Write
      "thousands-sep"            guchar                : Read / Write

## Description

The GnomeDbFormatEntry widget is a GtkEntry widget with the following additional features:

- supports specifying a specific expected data type (such as G_TYPE_INT for example) and the widget will only allow the user to enter a text which can be converted to the expected data type

- supports specifying a string format when the user has to enter a string with a specific format, see `gnome_db_format_entry_set_format()` for more information

- supports specifying the number of decimals any non integer number can have

- supports specifying prefix and/or a suffix strings which will always be displayed and not modifyable

## Details

### GnomeDbFormatEntry

    typedef struct _GnomeDbFormatEntry GnomeDbFormatEntry;

### GnomeDbFormatEntryClass

    typedef struct {
    	GtkEntryClass              parent_class;
    } GnomeDbFormatEntryClass;

### GnomeDbFormatEntryPrivate

    typedef struct _GnomeDbFormatEntryPrivate GnomeDbFormatEntryPrivate;

### gnome_db_format_entry_new ()

    GtkWidget *         gnome_db_format_entry_new           (void);

Creates a new GnomeDbFormatEntry widget.

Returns : | the newly created GnomeDbFormatEntry widget.

### gnome_db_format_entry_set_max_length ()

    void                gnome_db_format_entry_set_max_length
                                                            (GnomeDbFormatEntry *entry,
                                                             gint max);

Sets the maximum allowed length of the contents of the widget. If the current contents are longer than the given length, then they will be truncated to fit.

The difference with `gtk_entry_set_max_length()` is that the max length does not take into account the prefix and/or suffix parts which may have been set.

`entry` : | a GnomeDbFormatEntry.
`max` : | the maximum length of the entry, or 0 for no maximum.

### gnome_db_format_entry_set_format ()

    void                gnome_db_format_entry_set_format    (GnomeDbFormatEntry *entry,
                                                             const gchar *format,
                                                             const gchar *mask,
                                                             const gchar *completion);

Set the edited string's format. Characters in the format are of two types: writeable: writeable characters are characters that will be replaced with and underscore and where you can enter text. fixed: every other characters are fixed characters, where text cant' be edited Possible values for writeable characters are:

- '0': digits

- '9': digits excluded 0

- '@': alpha

- '^': alpha converted to upper case

- '#': alphanumeric

- '*': any char

if `mask` is not `NULL`, then it must contain the exact same number of characters as `format`; it is then interpreted in the following way: for a character C in `format`, if the character at the same position in `mask` is the space character (' '), then C will not interpreted as a writable format character as defined above.

if `completion` is not `NULL`, then it must contain the exact same number of characters as `format`. A When the entry has a cursor at a position P and the character to enter is not what's expected at position P in the `format` string, then the character at a position P in this string is used.

`entry` : | a GnomeDbFormatEntry.
`format` : | the format specification of the data to edit
`mask` : | a 'mask' string helping understand `format`, or `NULL`
`completion` : | a 'completions' string, or `NULL`

### gnome_db_format_entry_set_decimal_places ()

    void                gnome_db_format_entry_set_decimal_places
                                                            (GnomeDbFormatEntry *entry,
                                                             gint nb_decimals);

Sets the number of decimals which must be displayed in `entry` when entering a non integer numerical value

`entry` : | a GnomeDbFormatEntry widget
`nb_decimals` : | the number of decimals which must be displayed in `entry`

### gnome_db_format_entry_set_separators ()

    void                gnome_db_format_entry_set_separators
                                                            (GnomeDbFormatEntry *entry,
                                                             guchar decimal,
                                                             guchar thousands);

Sets the decimal and thousands separators to use within `entry` when it contains a numerical value

`entry` : | a GnomeDbFormatEntry widget
`decimal` : | the character to use as a decimal separator, or 0 for default (locale specific) separator
`thousands` : | the character to use as a thousands separator, or 0 for no separator at all

### gnome_db_format_entry_set_edited_type ()

    void                gnome_db_format_entry_set_edited_type
                                                            (GnomeDbFormatEntry *entry,
                                                             GType type);

Specifies what type of data is edited in `entry`

`entry` : | a GnomeDbFormatEntry widget
`type` : | the type of data expected to be edited `entry` itself returns a string, `type` specifies into what type that string will be converted)

### gnome_db_format_entry_set_prefix ()

    void                gnome_db_format_entry_set_prefix    (GnomeDbFormatEntry *entry,
                                                             const gchar *prefix);

Sets `prefix` as a prefix string of `entry`: that string will always be displayed in the text entry, will not be modifiable, and won't be part of the returned text

`entry` : | a GnomeDbFormatEntry widget
`prefix` : | a prefix string

### gnome_db_format_entry_set_suffix ()

    void                gnome_db_format_entry_set_suffix    (GnomeDbFormatEntry *entry,
                                                             const gchar *suffix);

Sets `suffix` as a suffix string of `entry`: that string will always be displayed in the text entry, will not be modifiable, and won't be part of the returned text

`entry` : | a GnomeDbFormatEntry widget
`suffix` : | a suffix string

### gnome_db_format_entry_set_text ()

    void                gnome_db_format_entry_set_text      (GnomeDbFormatEntry *entry,
                                                             const gchar *text);

Sets `text` into `entry`.

As a side effect, if `text` is `NULL`, then the entry will be completely empty, whereas if `text` is the empty string (""), then `entry` will display the prefix and/or suffix and/or format string if they have been set. Except this case, calling this method is similar to calling `gtk_entry_set_text()`

`entry` : | a GnomeDbFormatEntry widget
`text` : | the text to set into `entry`, or `NULL`

### gnome_db_format_entry_get_text ()

    gchar *             gnome_db_format_entry_get_text      (GnomeDbFormatEntry *entry);

Get a new string containing the contents of the widget as a string without the prefix and/or suffix and/or format if they have been specified. This method differs from calling `gtk_entry_get_text()` since the latest will return the complete text in `entry` including prefix and/or suffix and/or format.

Note: `NULL` may be returned if this method is called while the widget is working on some internal modifications, or if `gnome_db_format_entry_set_text()` was called with a `NULL` as its `text` argument.

`entry` : | a GnomeDbFormatEntry.
Returns : | a new string, or `NULL`

## Property Details

### The `"completion"` property

      "completion"               gchar*                : Read / Write

Default value: NULL

### The `"decimal-sep"` property

      "decimal-sep"              guchar                : Read / Write

Default value: 46

### The `"edited-type"` property

      "edited-type"              guint                 : Read / Write

Default value: 64

### The `"format"` property

      "format"                   gchar*                : Read / Write

Default value: NULL

### The `"mask"` property

      "mask"                     gchar*                : Read / Write

Default value: NULL

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

      "max-length"               gint                  : Read / Write

Allowed values: >= 0

Default value: 0

### The `"n-decimals"` property

      "n-decimals"               gint                  : Read / Write

Allowed values: >= -1

Default value: -1

### The `"prefix"` property

      "prefix"                   gchar*                : Read / Write

Default value: NULL

### The `"suffix"` property

      "suffix"                   gchar*                : Read / Write

Default value: NULL

### The `"thousands-sep"` property

      "thousands-sep"            guchar                : Read / Write

Default value: 44