## UiFormgrid UiFormgrid — Widget embedding both a form and a grid to display a GdaDataModel's contents |

## Stability Level

Stable, unless otherwise indicated

## Synopsis

    struct              UiFormGrid;
    GtkWidget *         ui_formgrid_new                     (GdaDataModel *model,
                                                             gboolean scroll_form,
                                                             GdauiDataProxyInfoFlag flags);
    void                ui_formgrid_handle_user_prefs       (UiFormGrid *formgrid,
                                                             BrowserConnection *bcnc,
                                                             GdaStatement *stmt);
    GArray *            ui_formgrid_get_selection           (UiFormGrid *formgrid);
    GdaDataModelIter *  ui_formgrid_get_form_data_set       (UiFormGrid *formgrid);
    GdaDataModelIter *  ui_formgrid_get_grid_data_set       (UiFormGrid *formgrid);
    void                ui_formgrid_set_sample_size         (UiFormGrid *formgrid,
                                                             gint sample_size);
    GdauiRawGrid *      ui_formgrid_get_grid_widget         (UiFormGrid *formgrid);
    void                ui_formgrid_set_connection          (UiFormGrid *formgrid,
                                                             BrowserConnection *bcnc);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkWidget
                   +----GtkContainer
                         +----GtkBox
                               +----UiFormGrid

## Implemented Interfaces

UiFormGrid implements AtkImplementorIface, GtkBuildable and GtkOrientable.

## Properties

      "compute-mod-statements"   gboolean              : Write / Construct
      "raw-form"                 GdauiRawGrid*         : Read
      "raw-grid"                 GdauiRawGrid*         : Read
      "scroll-form"              gboolean              : Write / Construct Only
      "widget-info"              GdauiDataProxyInfo*   : Read

## Signals

      "data-set-changed"                               : Run First

## Description

## Details

### struct UiFormGrid

    struct UiFormGrid;

### ui_formgrid_new ()

    GtkWidget *         ui_formgrid_new                     (GdaDataModel *model,
                                                             gboolean scroll_form,
                                                             GdauiDataProxyInfoFlag flags);

Creates a new UiFormGrid widget suitable to display the data in `model`

`model` : | a GdaDataModel
`scroll_form` : | set to `TRUE` to wrap the embedded form in a scrolled window
`flags` : | the GdauiDataProxyInfoFlag, specifying what to display in the new widget
Returns : | the new widget

### ui_formgrid_handle_user_prefs ()

    void                ui_formgrid_handle_user_prefs       (UiFormGrid *formgrid,
                                                             BrowserConnection *bcnc,
                                                             GdaStatement *stmt);

Takes into account the UI preferences of the user

`formgrid` : | a UiFormGrid widget
`bcnc` : | a BrowserConnection, or `NULL` to let `formgrid` determine it itself. [allow-none]
`stmt` : | the GdaStatement which has been executed to produce the GdaDataModel displayed in `formgrid`

### ui_formgrid_get_selection ()

    GArray *            ui_formgrid_get_selection           (UiFormGrid *formgrid);

Returns the list of the currently selected rows in a UiFormGrid widget. The returned value is a list of integers, which represent each of the selected rows.

If new rows have been inserted, then those new rows will have a row number equal to -1. This function is a wrapper around the `gdaui_raw_grid_get_selection()` function.

`formgrid` : | a UiFormGrid widget
Returns : | a new array, should be freed (by calling `g_array_free()` and passing `TRUE` as last argument) when no longer needed.

### ui_formgrid_get_form_data_set ()

    GdaDataModelIter *  ui_formgrid_get_form_data_set       (UiFormGrid *formgrid);

### ui_formgrid_get_grid_data_set ()

    GdaDataModelIter *  ui_formgrid_get_grid_data_set       (UiFormGrid *formgrid);

### ui_formgrid_set_sample_size ()

    void                ui_formgrid_set_sample_size         (UiFormGrid *formgrid,
                                                             gint sample_size);

Set the size of the sample displayed in `formgrid`, see `gdaui_raw_grid_set_sample_size()`

`formgrid` : | a UiFormGrid widget
`sample_size` : | the sample size

### ui_formgrid_get_grid_widget ()

    GdauiRawGrid *      ui_formgrid_get_grid_widget         (UiFormGrid *formgrid);

`formgrid` : | a UiFormGrid widget
Returns : | the GdauiRawGrid embedded in `formgrid`

### ui_formgrid_set_connection ()

    void                ui_formgrid_set_connection          (UiFormGrid *formgrid,
                                                             BrowserConnection *bcnc);

Tells `formgrid` to use `bcnc` as connection when actions have to be executed

`formgrid` : | a UiFormGrid widget
`bcnc` : | a BrowserConnection, or `NULL`. [allow-none]

## Property Details

### The `"compute-mod-statements"` property

      "compute-mod-statements"   gboolean              : Write / Construct

Default value: FALSE

### The `"raw-form"` property

      "raw-form"                 GdauiRawGrid*         : Read

### The `"raw-grid"` property

      "raw-grid"                 GdauiRawGrid*         : Read

### The `"scroll-form"` property

      "scroll-form"              gboolean              : Write / Construct Only

Default value: FALSE

### The `"widget-info"` property

      "widget-info"              GdauiDataProxyInfo*   : Read

## Signal Details

### The `"data-set-changed"` signal

    void                user_function                      (UiFormGrid *uiformgrid,
                                                            gpointer    user_data)       : Run First