## EShellSwitcher EShellSwitcher — buttons for switching views |

## Synopsis

    #include <shell/e-shell-switcher.h>

    struct              EShellSwitcher;
    GtkWidget *         e_shell_switcher_new                (void);
    void                e_shell_switcher_add_action         (EShellSwitcher *switcher,
                                                             GtkAction *switch_action,
                                                             GtkAction *new_window_action);
    GtkToolbarStyle     e_shell_switcher_get_style          (EShellSwitcher *switcher);
    void                e_shell_switcher_set_style          (EShellSwitcher *switcher,
                                                             GtkToolbarStyle style);
    void                e_shell_switcher_unset_style        (EShellSwitcher *switcher);
    gboolean            e_shell_switcher_get_visible        (EShellSwitcher *switcher);
    void                e_shell_switcher_set_visible        (EShellSwitcher *switcher,
                                                             gboolean visible);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkWidget
                   +----GtkContainer
                         +----GtkBin
                               +----EShellSwitcher

## Implemented Interfaces

EShellSwitcher implements AtkImplementorIface, GtkBuildable, EExtensible and GtkToolShell.

## Properties

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

## Signals

      "style-changed"                                  : Run First

## Description

## Details

### struct EShellSwitcher

    struct EShellSwitcher;

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

### e_shell_switcher_new ()

    GtkWidget *         e_shell_switcher_new                (void);

Creates a new EShellSwitcher instance.

Returns : | a new EShellSwitcher instance

### e_shell_switcher_add_action ()

    void                e_shell_switcher_add_action         (EShellSwitcher *switcher,
                                                             GtkAction *switch_action,
                                                             GtkAction *new_window_action);

Adds a button to `switcher` that proxies for `switcher_action`. Switcher buttons appear in the order they were added. A middle click opens a new window of this type.

EShellWindow adds switcher actions in the order given by the <structfield>sort_order</structfield> field in EShellBackendClass.

`switcher` : | an EShellSwitcher
`switch_action` : | a GtkAction
`new_window_action` : | a GtkAction

### e_shell_switcher_get_style ()

    GtkToolbarStyle     e_shell_switcher_get_style          (EShellSwitcher *switcher);

Returns whether `switcher` has text, icons or both.

`switcher` : | an EShellSwitcher
Returns : | the current style of `shell`

### e_shell_switcher_set_style ()

    void                e_shell_switcher_set_style          (EShellSwitcher *switcher,
                                                             GtkToolbarStyle style);

Alters the view of `switcher` to display either icons only, text only, or both.

`switcher` : | an EShellSwitcher
`style` : | the new style for `switcher`

### e_shell_switcher_unset_style ()

    void                e_shell_switcher_unset_style        (EShellSwitcher *switcher);

Unsets a switcher style set with `e_shell_switcher_set_style()`, so that user preferences will be used to determine the switcher style.

`switcher` : | an EShellSwitcher

### e_shell_switcher_get_visible ()

    gboolean            e_shell_switcher_get_visible        (EShellSwitcher *switcher);

Returns `TRUE` if the switcher buttons are visible.

Note that switcher button visibility is different than `switcher`<!-- -->'s GTK_VISIBLE flag, since EShellSwitcher is actually a container widget for EShellSidebar.

`switcher` : | an EShellSwitcher
Returns : | `TRUE` if the switcher buttons are visible

### e_shell_switcher_set_visible ()

    void                e_shell_switcher_set_visible        (EShellSwitcher *switcher,
                                                             gboolean visible);

Sets the switcher button visiblity to `visible`.

Note that switcher button visibility is different than `switcher`<!-- -->'s GTK_VISIBLE flag, since EShellSwitcher is actually a container widget for EShellSidebar.

`switcher` : | an EShellSwitcher
`visible` : | whether the switcher buttons should be visible

## Property Details

### The `"toolbar-style"` property

      "toolbar-style"            GtkToolbarStyle       : Read / Write / Construct

The switcher's toolbar style.

Default value: GTK_TOOLBAR_BOTH_HORIZ

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

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

Whether the switcher is visible.

Default value: TRUE

## Signal Details

### The `"style-changed"` signal

    void                user_function                      (EShellSwitcher *switcher,
                                                            GtkToolbarStyle style,
                                                            gpointer        user_data)      : Run First

Emitted when the style of the switcher changes.

`switcher` : | the EShellSwitcher which emitted the signal
`style` : | the new GtkToolbarStyle of the switcher
`user_data` : | user data set when the signal handler was connected.