## ExoTreeView

ExoTreeView — An improved version of GtkTreeView

## Stability Level

Stable, unless otherwise indicated

## Synopsis

    #include <exo/exo.h>

                        ExoTreeView;
    GtkWidget*          exo_tree_view_new                   (void);
    gboolean            exo_tree_view_get_single_click      (const ExoTreeView *tree_view);
    void                exo_tree_view_set_single_click      (ExoTreeView *tree_view,
                                                             gboolean single_click);
    guint               exo_tree_view_get_single_click_timeout
                                                            (const ExoTreeView *tree_view);
    void                exo_tree_view_set_single_click_timeout
                                                            (ExoTreeView *tree_view,
                                                             guint single_click_timeout);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkObject
                   +----GtkWidget
                         +----GtkContainer
                               +----GtkTreeView
                                     +----ExoTreeView

## Implemented Interfaces

ExoTreeView implements AtkImplementorIface and GtkBuildable.

## Properties

      "single-click"             gboolean              : Read / Write
      "single-click-timeout"     guint                 : Read / Write

## Description

The ExoTreeView class derives from GtkTreeView and extends it with the ability to activate rows using single button clicks instead of the default double button clicks. It also works around a few shortcomings of GtkTreeView, i.e. ExoTreeView allows the user to drag around multiple selected rows.

## Details

### ExoTreeView

    typedef struct _ExoTreeView ExoTreeView;

The ExoIconView struct contains only private fields and should not be directly accessed.

### exo_tree_view_new ()

    GtkWidget*          exo_tree_view_new                   (void);

Allocates a new ExoTreeView instance.

Returns : | the newly allocated ExoTreeView.

Since 0.3.1.3

### exo_tree_view_get_single_click ()

    gboolean            exo_tree_view_get_single_click      (const ExoTreeView *tree_view);

Returns `TRUE` if `tree_view` is in single-click mode, else `FALSE`.

`tree_view` : | an ExoTreeView.
Returns : | whether `tree_view` is in single-click mode.

Since 0.3.1.3

### exo_tree_view_set_single_click ()

    void                exo_tree_view_set_single_click      (ExoTreeView *tree_view,
                                                             gboolean single_click);

If `single_click` is `TRUE`, `tree_view` will use single-click mode, else the default double-click mode will be used.

`tree_view` : | an ExoTreeView.
`single_click` : | `TRUE` to use single-click for `tree_view`, `FALSE` otherwise.

Since 0.3.1.3

### exo_tree_view_get_single_click_timeout ()

    guint               exo_tree_view_get_single_click_timeout
                                                            (const ExoTreeView *tree_view);

Returns the amount of time in milliseconds after which the item under the mouse cursor will be selected automatically in single click mode. A value of `0` means that the behavior is disabled and the user must alter the selection manually.

`tree_view` : | a ExoTreeView.
Returns : | the single click autoselect timeout or `0` if the behavior is disabled.

Since 0.3.1.5

### exo_tree_view_set_single_click_timeout ()

    void                exo_tree_view_set_single_click_timeout
                                                            (ExoTreeView *tree_view,
                                                             guint single_click_timeout);

If `single_click_timeout` is a value greater than zero, it specifies the amount of time in milliseconds after which the item under the mouse cursor will be selected automatically in single click mode. A value of `0` for `single_click_timeout` disables the autoselection for `tree_view`.

This setting does not have any effect unless the `tree_view` is in single-click mode, see `exo_tree_view_set_single_click()`.

`tree_view` : | a ExoTreeView.
`single_click_timeout` : | the new timeout or `0` to disable.

Since 0.3.1.5

## Property Details

### The `"single-click"` property

      "single-click"             gboolean              : Read / Write

`TRUE` to activate items using a single click instead of a double click.

Default value: FALSE

Since 0.3.1.3

### The `"single-click-timeout"` property

      "single-click-timeout"     guint                 : Read / Write

The amount of time in milliseconds after which the hover row (the row which is hovered by the mouse cursor) will be selected automatically in single-click mode. A value of `0` disables the automatic selection.

Default value: 0

Since 0.3.1.5