## ETableGroup

ETableGroup

## Synopsis

    struct              ETableGroup;
    ETableGroup *       e_table_group_new                   (GnomeCanvasGroup *parent,
                                                             ETableHeader *full_header,
                                                             ETableHeader *header,
                                                             ETableModel *model,
                                                             ETableSortInfo *sort_info,
                                                             gint n);
    void                e_table_group_construct             (GnomeCanvasGroup *parent,
                                                             ETableGroup *table_group,
                                                             ETableHeader *full_header,
                                                             ETableHeader *header,
                                                             ETableModel *model);
    void                e_table_group_add                   (ETableGroup *table_group,
                                                             gint row);
    void                e_table_group_add_array             (ETableGroup *table_group,
                                                             const gint *array,
                                                             gint count);
    void                e_table_group_add_all               (ETableGroup *table_group);
    gboolean            e_table_group_remove                (ETableGroup *table_group,
                                                             gint row);
    void                e_table_group_increment             (ETableGroup *table_group,
                                                             gint position,
                                                             gint amount);
    void                e_table_group_decrement             (ETableGroup *table_group,
                                                             gint position,
                                                             gint amount);
    gint                e_table_group_row_count             (ETableGroup *table_group);
    enum                EFocus;
    void                e_table_group_set_focus             (ETableGroup *table_group,
                                                             EFocus direction,
                                                             gint view_col);
    gboolean            e_table_group_get_focus             (ETableGroup *table_group);
    gint                e_table_group_get_focus_column      (ETableGroup *table_group);
    ETableHeader *      e_table_group_get_header            (ETableGroup *table_group);
    EPrintable *        e_table_group_get_printable         (ETableGroup *table_group);
    void                e_table_group_compute_location      (ETableGroup *table_group,
                                                             gint *x,
                                                             gint *y,
                                                             gint *row,
                                                             gint *col);
    void                e_table_group_get_mouse_over        (ETableGroup *table_group,
                                                             gint *row,
                                                             gint *col);
    void                e_table_group_get_cell_geometry     (ETableGroup *table_group,
                                                             gint *row,
                                                             gint *col,
                                                             gint *x,
                                                             gint *y,
                                                             gint *width,
                                                             gint *height);
    void                e_table_group_cursor_change         (ETableGroup *table_group,
                                                             gint row);
    void                e_table_group_cursor_activated      (ETableGroup *table_group,
                                                             gint row);
    void                e_table_group_double_click          (ETableGroup *table_group,
                                                             gint row,
                                                             gint col,
                                                             GdkEvent *event);
    gboolean            e_table_group_right_click           (ETableGroup *table_group,
                                                             gint row,
                                                             gint col,
                                                             GdkEvent *event);
    gboolean            e_table_group_click                 (ETableGroup *table_group,
                                                             gint row,
                                                             gint col,
                                                             GdkEvent *event);
    gboolean            e_table_group_key_press             (ETableGroup *table_group,
                                                             gint row,
                                                             gint col,
                                                             GdkEvent *event);
    gint                e_table_group_start_drag            (ETableGroup *table_group,
                                                             gint row,
                                                             gint col,
                                                             GdkEvent *event);
    void                (*ETableGroupLeafFn)                (gpointer e_table_item,
                                                             gpointer closure);
    void                e_table_group_apply_to_leafs        (ETableGroup *table_group,
                                                             ETableGroupLeafFn fn,
                                                             gpointer closure);
    gboolean            e_table_group_is_editing            (ETableGroup *table_group);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GnomeCanvasItem
                   +----GnomeCanvasGroup
                         +----ETableGroup
                               +----ETableGroupLeaf

## Properties

      "is-editing"               gboolean              : Read

## Signals

      "click"                                          : Run Last
      "cursor-activated"                               : Run Last
      "cursor-change"                                  : Run Last
      "double-click"                                   : Run Last
      "key-press"                                      : Run Last
      "right-click"                                    : Run Last
      "start-drag"                                     : Run Last

## Description

## Details

### struct ETableGroup

    struct ETableGroup;

### e_table_group_new ()

    ETableGroup *       e_table_group_new                   (GnomeCanvasGroup *parent,
                                                             ETableHeader *full_header,
                                                             ETableHeader *header,
                                                             ETableModel *model,
                                                             ETableSortInfo *sort_info,
                                                             gint n);

ETableGroup is a collection of rows of an ETable. It's a `GnomeCanvasItem`. There are two different forms. If n < the number of groupings in the given ETableSortInfo, then the ETableGroup will need to contain other ETableGroups, thus it creates an ETableGroupContainer. Otherwise, it will just contain an ETableItem, and thus it creates an ETableGroupLeaf.

`parent` : | The `GnomeCanvasGroup` to create a child of.
`full_header` : | The full header of the ETable.
`header` : | The current header of the ETable.
`model` : | The ETableModel of the ETable.
`sort_info` : | The ETableSortInfo of the ETable.
`n` : | The grouping information object to group by.
Returns : | The new ETableGroup.

### e_table_group_construct ()

    void                e_table_group_construct             (GnomeCanvasGroup *parent,
                                                             ETableGroup *table_group,
                                                             ETableHeader *full_header,
                                                             ETableHeader *header,
                                                             ETableModel *model);

This routine does the base construction of the ETableGroup.

`parent` : | The `GnomeCanvasGroup` to create a child of.
`table_group` : | The ETableGroup to construct.
`full_header` : | The full header of the ETable.
`header` : | The current header of the ETable.
`model` : | The ETableModel of the ETable.

### e_table_group_add ()

    void                e_table_group_add                   (ETableGroup *table_group,
                                                             gint row);

This routine adds the given row from the ETableModel to this set of rows.

`table_group` : | The ETableGroup to add a row to
`row` : | The row to add.

### e_table_group_add_array ()

    void                e_table_group_add_array             (ETableGroup *table_group,
                                                             const gint *array,
                                                             gint count);

This routine adds all the rows in the array to this set of rows. It assumes that the array is already sorted properly.

`table_group` : | The ETableGroup to add to
`array` : | The array to add.
`count` : | The number of times to add

### e_table_group_add_all ()

    void                e_table_group_add_all               (ETableGroup *table_group);

This routine adds all the rows from the ETableModel to this set of rows.

`table_group` : | The ETableGroup to add to

### e_table_group_remove ()

    gboolean            e_table_group_remove                (ETableGroup *table_group,
                                                             gint row);

This routine removes the given row from the ETableModel from this set of rows.

`table_group` : | The ETableGroup to remove a row from
`row` : | The row to remove.
Returns : | TRUE if the row was deleted and FALSE if the row was not found.

### e_table_group_increment ()

    void                e_table_group_increment             (ETableGroup *table_group,
                                                             gint position,
                                                             gint amount);

This routine calculates the number of rows shown in this group.

`table_group` : | The ETableGroup to count
Returns : | The number of rows.

### e_table_group_decrement ()

    void                e_table_group_decrement             (ETableGroup *table_group,
                                                             gint position,
                                                             gint amount);

### e_table_group_row_count ()

    gint                e_table_group_row_count             (ETableGroup *table_group);

### enum EFocus

    typedef enum {
    	E_FOCUS_NONE,
    	E_FOCUS_CURRENT,
    	E_FOCUS_START,
    	E_FOCUS_END
    } EFocus;

`E_FOCUS_NONE` |
`E_FOCUS_CURRENT` |
`E_FOCUS_START` |
`E_FOCUS_END` |

### e_table_group_set_focus ()

    void                e_table_group_set_focus             (ETableGroup *table_group,
                                                             EFocus direction,
                                                             gint view_col);

Sets the focus to this widget. Places the focus in the view column coming from direction direction.

`table_group` : | The ETableGroup to set
`direction` : | The direction the focus is coming from.
`view_col` : | The column to set the focus in.

### e_table_group_get_focus ()

    gboolean            e_table_group_get_focus             (ETableGroup *table_group);

Calculates if this group has the focus.

`table_group` : | The ETableGroup to check
Returns : | TRUE if this group has the focus.

### e_table_group_get_focus_column ()

    gint                e_table_group_get_focus_column      (ETableGroup *table_group);

Calculates which column in this group has the focus.

`table_group` : | The ETableGroup to check
Returns : | The column index (view column).

### e_table_group_get_header ()

    ETableHeader *      e_table_group_get_header            (ETableGroup *table_group);

This routine returns the ETableGroup's header.

`table_group` : | ETableGroup to check
Returns : | The ETableHeader.

### e_table_group_get_printable ()

    EPrintable *        e_table_group_get_printable         (ETableGroup *table_group);

This routine creates and returns an `EPrintable` that can be used to print the given ETableGroup.

`table_group` : | ETableGroup which will be printed
Returns : | The `EPrintable`.

### e_table_group_compute_location ()

    void                e_table_group_compute_location      (ETableGroup *table_group,
                                                             gint *x,
                                                             gint *y,
                                                             gint *row,
                                                             gint *col);

This routine locates the pixel location (*x, *y) in the ETableGroup. If that location is in the ETableGroup, *row and *col are set to the view row and column where it was found. If that location is not in the ETableGroup, the height of the ETableGroup is removed from the value y points to.

`table_group` : | ETableGroup to look in.
`x` : | A pointer to the x location to find in the ETableGroup.
`y` : | A pointer to the y location to find in the ETableGroup.
`row` : | A pointer to the location to store the found row in.
`col` : | A pointer to the location to store the found col in.

### e_table_group_get_mouse_over ()

    void                e_table_group_get_mouse_over        (ETableGroup *table_group,
                                                             gint *row,
                                                             gint *col);

### e_table_group_get_cell_geometry ()

    void                e_table_group_get_cell_geometry     (ETableGroup *table_group,
                                                             gint *row,
                                                             gint *col,
                                                             gint *x,
                                                             gint *y,
                                                             gint *width,
                                                             gint *height);

### e_table_group_cursor_change ()

    void                e_table_group_cursor_change         (ETableGroup *table_group,
                                                             gint row);

This routine emits the "cursor_change" signal.

`table_group` : | ETableGroup to emit the signal on
`row` : | The new cursor row (model row)

### e_table_group_cursor_activated ()

    void                e_table_group_cursor_activated      (ETableGroup *table_group,
                                                             gint row);

This routine emits the "cursor_activated" signal.

`table_group` : | ETableGroup to emit the signal on
`row` : | The cursor row (model row)

### e_table_group_double_click ()

    void                e_table_group_double_click          (ETableGroup *table_group,
                                                             gint row,
                                                             gint col,
                                                             GdkEvent *event);

This routine emits the "double_click" signal.

`table_group` : | ETableGroup to emit the signal on
`row` : | The row clicked on (model row)
`col` : | The col clicked on (model col)
`event` : | The event that caused this signal

### e_table_group_right_click ()

    gboolean            e_table_group_right_click           (ETableGroup *table_group,
                                                             gint row,
                                                             gint col,
                                                             GdkEvent *event);

This routine emits the "right_click" signal.

`table_group` : | ETableGroup to emit the signal on
`row` : | The row clicked on (model row)
`col` : | The col clicked on (model col)
`event` : | The event that caused this signal

### e_table_group_click ()

    gboolean            e_table_group_click                 (ETableGroup *table_group,
                                                             gint row,
                                                             gint col,
                                                             GdkEvent *event);

This routine emits the "click" signal.

`table_group` : | ETableGroup to emit the signal on
`row` : | The row clicked on (model row)
`col` : | The col clicked on (model col)
`event` : | The event that caused this signal

### e_table_group_key_press ()

    gboolean            e_table_group_key_press             (ETableGroup *table_group,
                                                             gint row,
                                                             gint col,
                                                             GdkEvent *event);

This routine emits the "key_press" signal.

`table_group` : | ETableGroup to emit the signal on
`row` : | The cursor row (model row)
`col` : | The cursor col (model col)
`event` : | The event that caused this signal

### e_table_group_start_drag ()

    gint                e_table_group_start_drag            (ETableGroup *table_group,
                                                             gint row,
                                                             gint col,
                                                             GdkEvent *event);

This routine emits the "start_drag" signal.

`table_group` : | ETableGroup to emit the signal on
`row` : | The cursor row (model row)
`col` : | The cursor col (model col)
`event` : | The event that caused this signal

### ETableGroupLeafFn ()

    void                (*ETableGroupLeafFn)                (gpointer e_table_item,
                                                             gpointer closure);

### e_table_group_apply_to_leafs ()

    void                e_table_group_apply_to_leafs        (ETableGroup *table_group,
                                                             ETableGroupLeafFn fn,
                                                             gpointer closure);

### e_table_group_is_editing ()

    gboolean            e_table_group_is_editing            (ETableGroup *table_group);

## Property Details

### The `"is-editing"` property

      "is-editing"               gboolean              : Read

Whether is in an editing mode.

Default value: FALSE

## Signal Details

### The `"click"` signal

    gboolean            user_function                      (ETableGroup *etablegroup,
                                                            gint         arg1,
                                                            gint         arg2,
                                                            GdkEvent    *arg3,
                                                            gpointer     user_data)        : Run Last

### The `"cursor-activated"` signal

    void                user_function                      (ETableGroup *etablegroup,
                                                            gint         arg1,
                                                            gpointer     user_data)        : Run Last

### The `"cursor-change"` signal

    void                user_function                      (ETableGroup *etablegroup,
                                                            gint         arg1,
                                                            gpointer     user_data)        : Run Last

### The `"double-click"` signal

    void                user_function                      (ETableGroup *etablegroup,
                                                            gint         arg1,
                                                            gint         arg2,
                                                            GdkEvent    *arg3,
                                                            gpointer     user_data)        : Run Last

### The `"key-press"` signal

    gboolean            user_function                      (ETableGroup *etablegroup,
                                                            gint         arg1,
                                                            gint         arg2,
                                                            GdkEvent    *arg3,
                                                            gpointer     user_data)        : Run Last

### The `"right-click"` signal

    gboolean            user_function                      (ETableGroup *etablegroup,
                                                            gint         arg1,
                                                            gint         arg2,
                                                            GdkEvent    *arg3,
                                                            gpointer     user_data)        : Run Last

### The `"start-drag"` signal

    gboolean            user_function                      (ETableGroup *etablegroup,
                                                            gint         arg1,
                                                            gint         arg2,
                                                            GdkEvent    *arg3,
                                                            gpointer     user_data)        : Run Last