## ETreeViewFrame

ETreeViewFrame — A frame for GtkTreeView

## Synopsis

    #include <e-util/e-util.h>

    struct              ETreeViewFrame;
    GtkWidget *         e_tree_view_frame_new               (void);
    GtkTreeView *       e_tree_view_frame_get_tree_view     (ETreeViewFrame *tree_view_frame);
    void                e_tree_view_frame_set_tree_view     (ETreeViewFrame *tree_view_frame,
                                                             GtkTreeView *tree_view);
    gboolean            e_tree_view_frame_get_toolbar_visible
                                                            (ETreeViewFrame *tree_view_frame);
    void                e_tree_view_frame_set_toolbar_visible
                                                            (ETreeViewFrame *tree_view_frame,
                                                             gboolean toolbar_visible);
    GtkPolicyType       e_tree_view_frame_get_hscrollbar_policy
                                                            (ETreeViewFrame *tree_view_frame);
    void                e_tree_view_frame_set_hscrollbar_policy
                                                            (ETreeViewFrame *tree_view_frame,
                                                             GtkPolicyType hscrollbar_policy);
    GtkPolicyType       e_tree_view_frame_get_vscrollbar_policy
                                                            (ETreeViewFrame *tree_view_frame);
    void                e_tree_view_frame_set_vscrollbar_policy
                                                            (ETreeViewFrame *tree_view_frame,
                                                             GtkPolicyType vscrollbar_policy);
    void                e_tree_view_frame_insert_toolbar_action
                                                            (ETreeViewFrame *tree_view_frame,
                                                             GtkAction *action,
                                                             gint position);
    #define             E_TREE_VIEW_FRAME_ACTION_ADD
    #define             E_TREE_VIEW_FRAME_ACTION_REMOVE
    #define             E_TREE_VIEW_FRAME_ACTION_MOVE_TOP
    #define             E_TREE_VIEW_FRAME_ACTION_MOVE_UP
    #define             E_TREE_VIEW_FRAME_ACTION_MOVE_DOWN
    #define             E_TREE_VIEW_FRAME_ACTION_MOVE_BOTTOM
    #define             E_TREE_VIEW_FRAME_ACTION_SELECT_ALL
    GtkAction *         e_tree_view_frame_lookup_toolbar_action
                                                            (ETreeViewFrame *tree_view_frame,
                                                             const gchar *action_name);
    void                e_tree_view_frame_update_toolbar_actions
                                                            (ETreeViewFrame *tree_view_frame);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkWidget
                   +----GtkContainer
                         +----GtkBox
                               +----ETreeViewFrame
                                     +----ETableColumnSelector

## Implemented Interfaces

ETreeViewFrame implements AtkImplementorIface, GtkBuildable, GtkOrientable and EExtensible.

## Properties

      "hscrollbar-policy"        GtkPolicyType         : Read / Write / Construct
      "toolbar-visible"          gboolean              : Read / Write / Construct
      "tree-view"                GtkTreeView*          : Read / Write
      "vscrollbar-policy"        GtkPolicyType         : Read / Write / Construct

## Signals

      "toolbar-action-activate"                        : Has Details
      "update-toolbar-actions"                         : Run Last

## Description

ETreeViewFrame embeds a GtkTreeView in a scrolled window and adds an inline-style toolbar beneath the scrolled window which can be hidden.

The inline-style toolbar supports "add" and "remove" actions, as well as move actions if the tree view is reorderable and selection actions if the tree view supports multiple selections. The action set can be extended through `e_tree_view_frame_insert_toolbar_action()`.

## Details

### struct ETreeViewFrame

    struct ETreeViewFrame;

Contains only private data that should be read and manipulated using the functions below.

### e_tree_view_frame_new ()

    GtkWidget *         e_tree_view_frame_new               (void);

Creates a new ETreeViewFrame.

Returns : | an ETreeViewFrame

### e_tree_view_frame_get_tree_view ()

    GtkTreeView *       e_tree_view_frame_get_tree_view     (ETreeViewFrame *tree_view_frame);

Returns the "tree-view" for `tree_view_frame`.

The `tree_view_frame` creates its own GtkTreeView by default, but that instance can be replaced with `e_tree_view_frame_set_tree_view()`.

`tree_view_frame` : | an ETreeViewFrame
Returns : | a GtkTreeView

### e_tree_view_frame_set_tree_view ()

    void                e_tree_view_frame_set_tree_view     (ETreeViewFrame *tree_view_frame,
                                                             GtkTreeView *tree_view);

Replaces the previous "tree-view" with the given `tree_view`. If `tree_view` is `NULL`, the `tree_view_frame` creates a new GtkTreeView.

`tree_view_frame` : | an ETreeViewFrame
`tree_view` : | a GtkTreeView, or `NULL`

### e_tree_view_frame_get_toolbar_visible ()

    gboolean            e_tree_view_frame_get_toolbar_visible
                                                            (ETreeViewFrame *tree_view_frame);

Returns whether the inline toolbar in `tree_view_frame` is visible.

`tree_view_frame` : | an ETreeViewFrame
Returns : | `TRUE` if the toolbar is visible, `FALSE` if invisible

### e_tree_view_frame_set_toolbar_visible ()

    void                e_tree_view_frame_set_toolbar_visible
                                                            (ETreeViewFrame *tree_view_frame,
                                                             gboolean toolbar_visible);

Shows or hides the inline toolbar in `tree_view_frame`.

`tree_view_frame` : | an ETreeViewFrame
`toolbar_visible` : | whether to make the toolbar visible

### e_tree_view_frame_get_hscrollbar_policy ()

    GtkPolicyType       e_tree_view_frame_get_hscrollbar_policy
                                                            (ETreeViewFrame *tree_view_frame);

Returns the policy for the horizontal scrollbar in `tree_view_frame`.

`tree_view_frame` : | an ETreeViewFrame
Returns : | the policy for the horizontal scrollbar

### e_tree_view_frame_set_hscrollbar_policy ()

    void                e_tree_view_frame_set_hscrollbar_policy
                                                            (ETreeViewFrame *tree_view_frame,
                                                             GtkPolicyType hscrollbar_policy);

Sets the policy for the horizontal scrollbar in `tree_view_frame`.

`tree_view_frame` : | an ETreeViewFrame
`hscrollbar_policy` : | the policy for the horizontal scrollbar

### e_tree_view_frame_get_vscrollbar_policy ()

    GtkPolicyType       e_tree_view_frame_get_vscrollbar_policy
                                                            (ETreeViewFrame *tree_view_frame);

Returns the policy for the vertical scrollbar in `tree_view_frame`.

`tree_view_frame` : | an ETreeViewFrame
Returns : | the policy for the vertical scrollbar

### e_tree_view_frame_set_vscrollbar_policy ()

    void                e_tree_view_frame_set_vscrollbar_policy
                                                            (ETreeViewFrame *tree_view_frame,
                                                             GtkPolicyType vscrollbar_policy);

Sets the policy for the vertical scrollbar in `tree_view_frame`.

`tree_view_frame` : | an ETreeViewFrame
`vscrollbar_policy` : | the policy for the vertical scrollbar

### e_tree_view_frame_insert_toolbar_action ()

    void                e_tree_view_frame_insert_toolbar_action
                                                            (ETreeViewFrame *tree_view_frame,
                                                             GtkAction *action,
                                                             gint position);

Generates a GtkToolItem from `action` and inserts it into the inline toolbar at the given `position`. If `position` is zero, the item is prepended to the start of the toolbar. If `position` is negative, the item is appended to the end of the toolbar.

`tree_view_frame` : | an ETreeViewFrame
`action` : | a GtkAction
`position` : | the position of the new action

### E_TREE_VIEW_FRAME_ACTION_ADD

    #define E_TREE_VIEW_FRAME_ACTION_ADD		"e-tree-view-frame-add"

The GtkAction name for the "add" toolbar button.

Use `e_tree_view_frame_lookup_toolbar_action()` to obtain the GtkAction.

### E_TREE_VIEW_FRAME_ACTION_REMOVE

    #define E_TREE_VIEW_FRAME_ACTION_REMOVE		"e-tree-view-frame-remove"

The GtkAction name for the "remove" toolbar button.

Use `e_tree_view_frame_lookup_toolbar_action()` to obtain the GtkAction.

### E_TREE_VIEW_FRAME_ACTION_MOVE_TOP

    #define E_TREE_VIEW_FRAME_ACTION_MOVE_TOP "e-tree-view-frame-move-top"

The GtkAction name for the "move selected items to top" button.

Use `e_tree_view_frame_lookup_toolbar_action()` to obtain the GtkAction.

### E_TREE_VIEW_FRAME_ACTION_MOVE_UP

    #define E_TREE_VIEW_FRAME_ACTION_MOVE_UP "e-tree-view-frame-move-up"

The GtkAction name for the "move selected items up" button.

Use `e_tree_view_frame_lookup_toolbar_action()` to obtain the GtkAction.

### E_TREE_VIEW_FRAME_ACTION_MOVE_DOWN

    #define E_TREE_VIEW_FRAME_ACTION_MOVE_DOWN "e-tree-view-frame-move-down"

The GtkAction name for the "move selected items down" button.

Use `e_tree_view_frame_lookup_toolbar_action()` to obtain the GtkAction.

### E_TREE_VIEW_FRAME_ACTION_MOVE_BOTTOM

    #define E_TREE_VIEW_FRAME_ACTION_MOVE_BOTTOM "e-tree-view-frame-move-bottom"

The GtkAction name for the "move selected items to bottom" button.

Use `e_tree_view_frame_lookup_toolbar_action()` to obtain the GtkAction.

### E_TREE_VIEW_FRAME_ACTION_SELECT_ALL

    #define E_TREE_VIEW_FRAME_ACTION_SELECT_ALL "e-tree-view-frame-select-all"

The GtkAction name for the "select all" button.

Use `e_tree_view_frame_lookup_toolbar_action()` to obtain the GtkAction.

### e_tree_view_frame_lookup_toolbar_action ()

    GtkAction *         e_tree_view_frame_lookup_toolbar_action
                                                            (ETreeViewFrame *tree_view_frame,
                                                             const gchar *action_name);

Returns the toolbar action named `action_name`, or `NULL` if no such toolbar action exists.

`tree_view_frame` : | an ETreeViewFrame
`action_name` : | a GtkAction name
Returns : | a GtkAction, or `NULL`

### e_tree_view_frame_update_toolbar_actions ()

    void                e_tree_view_frame_update_toolbar_actions
                                                            (ETreeViewFrame *tree_view_frame);

Emits the "update-toolbar-actions" signal.

See the signal description for more details.

`tree_view_frame` : | an ETreeViewFrame

## Property Details

### The `"hscrollbar-policy"` property

      "hscrollbar-policy"        GtkPolicyType         : Read / Write / Construct

When the horizontal scrollbar is displayed.

Default value: GTK_POLICY_AUTOMATIC

### The `"toolbar-visible"` property

      "toolbar-visible"          gboolean              : Read / Write / Construct

Whether to show the inline toolbar.

Default value: TRUE

### The `"tree-view"` property

      "tree-view"                GtkTreeView*          : Read / Write

The tree view widget.

### The `"vscrollbar-policy"` property

      "vscrollbar-policy"        GtkPolicyType         : Read / Write / Construct

When the vertical scrollbar is displayed.

Default value: GTK_POLICY_AUTOMATIC

## Signal Details

### The `"toolbar-action-activate"` signal

    gboolean            user_function                      (ETreeViewFrame *tree_view_frame,
                                                            GtkAction      *action,
                                                            gpointer        user_data)            : Has Details

Emitted when a toolbar action is activated.

This signal supports "::detail" appendices to the signal name, where the "detail" part is the GtkAction "name". So you can connect a signal handler to a particular action.

`tree_view_frame` : | the ETreeViewFrame that received the signal
`action` : | the GtkAction that was activated
`user_data` : | user data set when the signal handler was connected.

### The `"update-toolbar-actions"` signal

    void                user_function                      (ETreeViewFrame *tree_view_frame,
                                                            gpointer        user_data)            : Run Last

Requests toolbar actions be updated, usually in response to a GtkTreeSelection change. Handlers should update GtkAction properties like "visible" and "sensitive" based on the current "tree-view" state.

`tree_view_frame` : | the ETreeViewFrame that received the signal
`user_data` : | user data set when the signal handler was connected.