## EShellView

EShellView — views within the main window

## Functions

#define | E_SHELL_VIEW_ACTION()
const gchar * | e_shell_view_get_name ()
EUIManager * | e_shell_view_get_ui_manager ()
EUIAction * | e_shell_view_get_action ()
EUIAction * | e_shell_view_get_switcher_action ()
const gchar * | e_shell_view_get_title ()
void | e_shell_view_set_title ()
gboolean | e_shell_view_get_menubar_visible ()
void | e_shell_view_set_menubar_visible ()
gboolean | e_shell_view_get_sidebar_visible ()
void | e_shell_view_set_sidebar_visible ()
gboolean | e_shell_view_get_switcher_visible ()
void | e_shell_view_set_switcher_visible ()
gboolean | e_shell_view_get_taskbar_visible ()
void | e_shell_view_set_taskbar_visible ()
gboolean | e_shell_view_get_toolbar_visible ()
void | e_shell_view_set_toolbar_visible ()
gint | e_shell_view_get_sidebar_width ()
void | e_shell_view_set_sidebar_width ()
const gchar * | e_shell_view_get_view_id ()
void | e_shell_view_set_view_id ()
GalViewInstance * | e_shell_view_new_view_instance ()
GalViewInstance * | e_shell_view_get_view_instance ()
void | e_shell_view_set_view_instance ()
gboolean | e_shell_view_is_active ()
gint | e_shell_view_get_page_num ()
void | e_shell_view_set_page_num ()
GtkWidget * | e_shell_view_get_searchbar ()
gchar * | e_shell_view_get_search_name ()
EFilterRule * | e_shell_view_get_search_rule ()
void | e_shell_view_set_search_rule ()
gchar * | e_shell_view_get_search_query ()
GtkSizeGroup * | e_shell_view_get_size_group ()
EShellBackend * | e_shell_view_get_shell_backend ()
EShellContent * | e_shell_view_get_shell_content ()
EShellSidebar * | e_shell_view_get_shell_sidebar ()
EShellTaskbar * | e_shell_view_get_shell_taskbar ()
EShellWindow * | e_shell_view_get_shell_window ()
GtkWidget * | e_shell_view_get_headerbar ()
GKeyFile * | e_shell_view_get_state_key_file ()
void | e_shell_view_set_state_dirty ()
void | e_shell_view_save_state_immediately ()
void | e_shell_view_clear_search ()
void | e_shell_view_custom_search ()
void | e_shell_view_execute_search ()
void | e_shell_view_block_execute_search ()
void | e_shell_view_unblock_execute_search ()
gboolean | e_shell_view_is_execute_search_blocked ()
void | e_shell_view_update_actions ()
void | e_shell_view_update_actions_in_idle ()
GtkWidget * | e_shell_view_show_popup_menu ()
void | e_shell_view_write_source ()
void | e_shell_view_remove_source ()
void | e_shell_view_remote_delete_source ()
EActivity * | e_shell_view_submit_thread_job ()
void | e_shell_view_run_ui_customize_dialog ()
gboolean | e_shell_view_util_layout_to_state_cb ()
GVariant * | e_shell_view_util_state_to_layout_cb ()

## Properties

gboolean | menubar-visible | Read / Write
int | page-num | Read / Write
EFilterRule * | search-rule | Read / Write
EShellBackend * | shell-backend | Read
EShellContent * | shell-content | Read
EShellSidebar * | shell-sidebar | Read
EShellTaskbar * | shell-taskbar | Read
EShellWindow * | shell-window | Read / Write / Construct Only
gboolean | sidebar-visible | Read / Write
int | sidebar-width | Read / Write / Construct
gpointer | state-key-file | Read
EUIAction * | switcher-action | Read / Write / Construct Only
gboolean | switcher-visible | Read / Write
gboolean | taskbar-visible | Read / Write
char * | title | Read / Write
gboolean | toolbar-visible | Read / Write
char * | view-id | Read / Write
GalViewInstance * | view-instance | Read / Write

## Signals

void | clear-search | Run Last
void | custom-search | Run Last
void | execute-search | Run Last
void | init-ui-data | Action
void | update-actions | Run First

## Types and Values

struct | EShellView
struct | EShellViewClass

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── GtkWidget
                ╰── GtkContainer
                    ╰── GtkBox
                        ╰── EShellView

## Implemented Interfaces

EShellView implements AtkImplementorIface, GtkBuildable, GtkOrientable and EExtensible.

## Includes

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

## Description

## Functions

### E_SHELL_VIEW_ACTION()

    #define             E_SHELL_VIEW_ACTION(view, name)

### e_shell_view_get_name ()

    const gchar *
    e_shell_view_get_name (EShellView *shell_view);

Returns the view name for `shell_view` , which is also the name of the corresponding EShellBackend (see the `name` field in EShellBackendInfo).

#### Parameters

shell_view | an EShellView |

#### Returns

the view name for `shell_view`

### e_shell_view_get_ui_manager ()

    EUIManager *
    e_shell_view_get_ui_manager (EShellView *shell_view);

Returns the view's EUIManager. It can be used to add UI elemenrs related to the `shell_view` itself.

#### Parameters

shell_view | an EShellView |

#### Returns

the view's UI manager.

[transfer none]

Since: 3.56

### e_shell_view_get_action ()

    EUIAction *
    e_shell_view_get_action (EShellView *shell_view,
                             const gchar *name);

Returns an `EUIAction` named `name` .

#### Parameters

shell_view | an EShellView |
name | action name to get |

#### Returns

an `EUIAction` named `name` , or `NULL`, when no such exists.

[transfer none][nullable]

Since: 3.56

### e_shell_view_get_switcher_action ()

    EUIAction *
    e_shell_view_get_switcher_action (EShellView *shell_view);

Returns the switcher action for `shell_view` .

An EShellWindow creates an EUIAction for each registered subclass of EShellView. This action gets passed to the EShellSwitcher, which displays a button that proxies the action. The icon at the top of the sidebar also proxies the action. When `shell_view` is active, the action's icon becomes the EShellWindow icon.

#### Parameters

shell_view | an EShellView |

#### Returns

the switcher action for `shell_view` .

[transfer none]

Since: 3.56

### e_shell_view_get_title ()

    const gchar *
    e_shell_view_get_title (EShellView *shell_view);

Returns the title for `shell_view` . When `shell_view` is active, the shell view's title becomes the EShellWindow title.

#### Parameters

shell_view | an EShellView |

#### Returns

the title for `shell_view`

### e_shell_view_set_title ()

    void
    e_shell_view_set_title (EShellView *shell_view,
                            const gchar *title);

Sets the title for `shell_view` . When `shell_view` is active, the shell view's title becomes the EShellWindow title.

#### Parameters

shell_view | an EShellView |
title | a title for `shell_view` |

### e_shell_view_get_menubar_visible ()

    gboolean
    e_shell_view_get_menubar_visible (EShellView *shell_view);

Returns `TRUE` if `shell_view` 's menu bar is visible.

#### Parameters

shell_view | an EShellView |

#### Returns

`TRUE` is the menu bar is visible

Since: 3.56

### e_shell_view_set_menubar_visible ()

    void
    e_shell_view_set_menubar_visible (EShellView *shell_view,
                                      gboolean menubar_visible);

Makes `shell_view` 's menu bar visible or invisible.

#### Parameters

shell_view | an EShellView |
menubar_visible | whether the menu bar should be visible |

Since: 3.56

### e_shell_view_get_sidebar_visible ()

    gboolean
    e_shell_view_get_sidebar_visible (EShellView *shell_view);

Returns `TRUE` if `shell_view` 's sidebar is visible.

#### Parameters

shell_view | an EShellView |

#### Returns

`TRUE` is the sidebar is visible

Since: 3.56

### e_shell_view_set_sidebar_visible ()

    void
    e_shell_view_set_sidebar_visible (EShellView *shell_view,
                                      gboolean sidebar_visible);

Makes `shell_view` 's sidebar visible or invisible.

#### Parameters

shell_view | an EShellView |
sidebar_visible | whether the sidebar should be visible |

Since: 3.56

### e_shell_view_get_switcher_visible ()

    gboolean
    e_shell_view_get_switcher_visible (EShellView *shell_view);

Returns `TRUE` if `shell_view` 's switcher buttons are visible.

#### Parameters

shell_view | an EShellView |

#### Returns

`TRUE` is the switcher buttons are visible

Since: 3.56

### e_shell_view_set_switcher_visible ()

    void
    e_shell_view_set_switcher_visible (EShellView *shell_view,
                                       gboolean switcher_visible);

Makes `shell_view` 's switcher buttons visible or invisible.

#### Parameters

shell_view | an EShellView |
switcher_visible | whether the switcher buttons should be visible |

Since: 3.56

### e_shell_view_get_taskbar_visible ()

    gboolean
    e_shell_view_get_taskbar_visible (EShellView *shell_view);

Returns `TRUE` if `shell_view` 's task bar is visible.

#### Parameters

shell_view | an EShellView |

#### Returns

`TRUE` is the task bar is visible

Since: 3.56

### e_shell_view_set_taskbar_visible ()

    void
    e_shell_view_set_taskbar_visible (EShellView *shell_view,
                                      gboolean taskbar_visible);

Makes `shell_view` 's task bar visible or invisible.

#### Parameters

shell_view | an EShellView |
taskbar_visible | whether the task bar should be visible |

Since: 3.56

### e_shell_view_get_toolbar_visible ()

    gboolean
    e_shell_view_get_toolbar_visible (EShellView *shell_view);

Returns `TRUE` if `shell_view` 's tool bar is visible.

#### Parameters

shell_view | an EShellView |

#### Returns

`TRUE` if the tool bar is visible

Since: 3.56

### e_shell_view_set_toolbar_visible ()

    void
    e_shell_view_set_toolbar_visible (EShellView *shell_view,
                                      gboolean toolbar_visible);

Makes `shell_view` 's tool bar visible or invisible.

#### Parameters

shell_view | an EShellView |
toolbar_visible | whether the tool bar should be visible |

Since: 3.56

### e_shell_view_get_sidebar_width ()

    gint
    e_shell_view_get_sidebar_width (EShellView *shell_view);

Gets width of the sidebar, in pixels.

#### Parameters

shell_view | an EShellView |

#### Returns

width of the sidebar, in pixels

Since: 3.56

### e_shell_view_set_sidebar_width ()

    void
    e_shell_view_set_sidebar_width (EShellView *shell_view,
                                    gint width);

Sets width of the sidebar, in pixels.

#### Parameters

shell_view | an EShellView |
width | width in pixels |

Since: 3.56

### e_shell_view_get_view_id ()

    const gchar *
    e_shell_view_get_view_id (EShellView *shell_view);

Returns the ID of the currently selected GalView.

EShellView subclasses are responsible for keeping this property in sync with their GalViewInstance. EShellView itself just provides a place to store the view ID, and emits a “notify” signal when the property changes.

#### Parameters

shell_view | an EShellView |

#### Returns

the ID of the current GalView

### e_shell_view_set_view_id ()

    void
    e_shell_view_set_view_id (EShellView *shell_view,
                              const gchar *view_id);

Selects the GalView whose ID is equal to `view_id` .

EShellView subclasses are responsible for keeping this property in sync with their GalViewInstance. EShellView itself just provides a place to store the view ID, and emits a “notify” signal when the property changes.

#### Parameters

shell_view | an EShellView |
view_id | a GalView ID |

### e_shell_view_new_view_instance ()

    GalViewInstance *
    e_shell_view_new_view_instance (EShellView *shell_view,
                                    const gchar *instance_id);

Convenience function creates a new GalViewInstance from the GalViewCollection in `shell_view` 's EShellViewClass.

#### Parameters

shell_view | an EShellView |
instance_id | a name for the GalViewInstance |

#### Returns

a new GalViewInstance

### e_shell_view_get_view_instance ()

    GalViewInstance *
    e_shell_view_get_view_instance (EShellView *shell_view);

Returns the current GalViewInstance for `shell_view` .

EShellView subclasses are responsible for creating and configuring a GalViewInstance and handing it off so the `shell_view` can monitor it and perform common actions on it.

#### Parameters

shell_view | an EShellView |

#### Returns

a GalViewInstance, or `NULL`

### e_shell_view_set_view_instance ()

    void
    e_shell_view_set_view_instance (EShellView *shell_view,
                                    GalViewInstance *view_instance);

Sets the current GalViewInstance for `shell_view` .

EShellView subclasses are responsible for creating and configuring a GalViewInstance and handing it off so the `shell_view` can monitor it and perform common actions on it.

#### Parameters

shell_view | an EShellView |
view_instance | a GalViewInstance, or `NULL` |

### e_shell_view_is_active ()

    gboolean
    e_shell_view_is_active (EShellView *shell_view);

Returns `TRUE` if `shell_view` is active. That is, if it's currently visible in its EShellWindow. An EShellWindow can only display one shell view at a time.

Technically this just checks the shell view's switcher action "active" property. See `e_shell_view_get_switcher_action()`.

#### Parameters

shell_view | an EShellView |

#### Returns

`TRUE` if `shell_view` is active

### e_shell_view_get_page_num ()

    gint
    e_shell_view_get_page_num (EShellView *shell_view);

This function is only interesting to EShellWindow. It returns the GtkNotebook page number for `shell_view` . The rest of the application should have no need for this.

#### Parameters

shell_view | an EShellView |

#### Returns

the notebook page number for `shell_view`

### e_shell_view_set_page_num ()

    void
    e_shell_view_set_page_num (EShellView *shell_view,
                               gint page_num);

This function is only interesting to EShellWindow. It sets the GtkNotebook page number for `shell_view` . The rest of the application must never call this because it could mess up shell view switching.

#### Parameters

shell_view | an EShellView |
page_num | a notebook page number |

### e_shell_view_get_searchbar ()

    GtkWidget *
    e_shell_view_get_searchbar (EShellView *shell_view);

Returns the searchbar widget for `shell_view` .

#### Parameters

shell_view | an EShellView |

#### Returns

the searchbar widget for `shell_view`

### e_shell_view_get_search_name ()

    gchar *
    e_shell_view_get_search_name (EShellView *shell_view);

Returns a newly-allocated string containing a suitable name for the current search criteria. This is used as the suggested name in the Save Search dialog. Free the returned string with `g_free()`.

#### Parameters

shell_view | an EShellView |

#### Returns

a name for the current search criteria

### e_shell_view_get_search_rule ()

    EFilterRule *
    e_shell_view_get_search_rule (EShellView *shell_view);

Returns the search criteria used to generate the current search results.

#### Parameters

shell_view | an EShellView |

#### Returns

the current search criteria

### e_shell_view_set_search_rule ()

    void
    e_shell_view_set_search_rule (EShellView *shell_view,
                                  EFilterRule *search_rule);

Sets the search criteria used to generate the current search results. Note that this will not trigger a search. `e_shell_view_execute_search()` must be called explicitly.

#### Parameters

shell_view | an EShellView |
search_rule | an EFilterRule |

### e_shell_view_get_search_query ()

    gchar *
    e_shell_view_get_search_query (EShellView *shell_view);

Converts the “search-rule” property to a newly-allocated S-expression string. If the “search-rule” property is `NULL` the function returns `NULL`.

#### Parameters

shell_view | an EShellView |

#### Returns

an S-expression string, or `NULL`

### e_shell_view_get_size_group ()

    GtkSizeGroup *
    e_shell_view_get_size_group (EShellView *shell_view);

Returns a GtkSizeGroup that EShellContent and EShellSidebar use to keep the search bar and sidebar banner vertically aligned. The rest of the application should have no need for this.

Note, this is only available during EShellView construction.

#### Parameters

shell_view | an EShellView |

#### Returns

a GtkSizeGroup for internal use

### e_shell_view_get_shell_backend ()

    EShellBackend *
    e_shell_view_get_shell_backend (EShellView *shell_view);

Returns the corresponding EShellBackend for `shell_view` .

#### Parameters

shell_view | an EShellView |

#### Returns

the corresponding EShellBackend for `shell_view`

### e_shell_view_get_shell_content ()

    EShellContent *
    e_shell_view_get_shell_content (EShellView *shell_view);

Returns the EShellContent instance for `shell_view` .

By default, EShellView creates a plain EShellContent during initialization. But EShellView subclasses can override the `new_shell_content` factory method in EShellViewClass to create a custom EShellContent.

#### Parameters

shell_view | an EShellView |

#### Returns

the EShellContent instance for `shell_view`

### e_shell_view_get_shell_sidebar ()

    EShellSidebar *
    e_shell_view_get_shell_sidebar (EShellView *shell_view);

Returns the EShellSidebar instance for `shell_view` .

By default, EShellView creates a plain EShellSidebar during initialization. But EShellView subclasses can override the `new_shell_sidebar` factory method in EShellViewClass to create a custom EShellSidebar.

#### Parameters

shell_view | an EShellView |

#### Returns

the EShellSidebar instance for `shell_view`

### e_shell_view_get_shell_taskbar ()

    EShellTaskbar *
    e_shell_view_get_shell_taskbar (EShellView *shell_view);

Returns the EShellTaskbar instance for `shell_view` .

By default, EShellView creates a plain EShellTaskbar during initialization. But EShellView subclasses can override the `new_shell_taskbar` factory method in EShellViewClass to create a custom EShellTaskbar.

#### Parameters

shell_view | an EShellView |

#### Returns

the EShellTaskbar instance for `shell_view`

### e_shell_view_get_shell_window ()

    EShellWindow *
    e_shell_view_get_shell_window (EShellView *shell_view);

Returns the EShellWindow to which `shell_view` belongs.

#### Parameters

shell_view | an EShellView |

#### Returns

the EShellWindow to which `shell_view` belongs

### e_shell_view_get_headerbar ()

    GtkWidget *
    e_shell_view_get_headerbar (EShellView *shell_view);

Returns a header bar widget for the `shell_view` .

#### Parameters

shell_view | an EShellView |

#### Returns

a header bar widget for the `shell_view` , or NULL, when none is needed for it.

[transfer none][nullable]

Since: 3.56

### e_shell_view_get_state_key_file ()

    GKeyFile *
    e_shell_view_get_state_key_file (EShellView *shell_view);

Returns the GKeyFile holding widget state data for `shell_view` .

#### Parameters

shell_view | an EShellView |

#### Returns

the GKeyFile for `shell_view`

### e_shell_view_set_state_dirty ()

    void
    e_shell_view_set_state_dirty (EShellView *shell_view);

Marks the widget state data as modified (or "dirty") and schedules it to be saved to disk after a short delay. The delay caps the frequency of saving to disk.

#### Parameters

shell_view | an EShellView |

### e_shell_view_save_state_immediately ()

    void
    e_shell_view_save_state_immediately (EShellView *shell_view);

### e_shell_view_clear_search ()

    void
    e_shell_view_clear_search (EShellView *shell_view);

Emits the “clear-search” signal.

The default method sets the “search-rule” property to `NULL` and then emits the “execute-search” signal.

#### Parameters

shell_view | an EShellView |

### e_shell_view_custom_search ()

    void
    e_shell_view_custom_search (EShellView *shell_view,
                                EFilterRule *custom_rule);

Emits the “custom-search” signal to indicate an advanced or saved search is about to be executed.

The default method sets the “search-rule” property to `custom_rule` and then emits the “execute-search” signal.

#### Parameters

shell_view | an EShellView |
custom_rule | an EFilterRule |

### e_shell_view_execute_search ()

    void
    e_shell_view_execute_search (EShellView *shell_view);

Emits the “execute-search” signal.

EShellView subclasses should implement the `execute_search` method in EShellViewClass to execute a search based on the current search conditions.

#### Parameters

shell_view | an EShellView |

### e_shell_view_block_execute_search ()

    void
    e_shell_view_block_execute_search (EShellView *shell_view);

Blocks `e_shell_view_execute_search()` in a way it does nothing. Pair function for this is `e_shell_view_unblock_execute_search()`.

#### Parameters

shell_view | an EShellView |

### e_shell_view_unblock_execute_search ()

    void
    e_shell_view_unblock_execute_search (EShellView *shell_view);

Unblocks previously blocked `e_shell_view_execute_search()` with function `e_shell_view_block_execute_search()`.

#### Parameters

shell_view | an EShellView |

### e_shell_view_is_execute_search_blocked ()

    gboolean
    e_shell_view_is_execute_search_blocked
                                   (EShellView *shell_view);

Returns whether `e_shell_view_execute_search()` is blocked as a result of previous `e_shell_view_block_execute_search()` calls.

#### Parameters

shell_view | an EShellView |

#### Returns

`TRUE` if `e_shell_view_execute_search()` is blocked

### e_shell_view_update_actions ()

    void
    e_shell_view_update_actions (EShellView *shell_view);

Emits the “update-actions” signal.

EShellView subclasses should implement the `update_actions` method in EShellViewClass to update the various actions based on the current EShellSidebar and EShellContent selections. The “update-actions” signal is typically emitted just before showing a popup menu or just after the user selects an item in the shell view.

#### Parameters

shell_view | an EShellView |

### e_shell_view_update_actions_in_idle ()

    void
    e_shell_view_update_actions_in_idle (EShellView *shell_view);

Schedules `e_shell_view_update_actions()` call on idle.

#### Parameters

shell_view | an EShellView |

Since: 3.10

### e_shell_view_show_popup_menu ()

    GtkWidget *
    e_shell_view_show_popup_menu (EShellView *shell_view,
                                  const gchar *menu_name,
                                  GdkEvent *button_event);

Displays a context-sensitive (or "popup") menu that is described in the UI definition loaded into `shell_view` 's user interface manager. The menu will be shown at the current mouse cursor position.

The “update-actions” signal is emitted just prior to showing the menu to give `shell_view` and any plugins that extend `shell_view` a chance to update the menu's actions.

The returned GtkMenu is automatically destroyed once the user either selects an item from it or when it's dismissed.

#### Parameters

shell_view | an EShellView |
menu_name | name of the menu in the UI definition |
button_event | a GdkEvent, or `NULL` |

#### Returns

the popup menu being displayed.

[transfer none]

Since: 3.56

### e_shell_view_write_source ()

    void
    e_shell_view_write_source (EShellView *shell_view,
                               ESource *source);

Submits the current contents of `source` to the D-Bus service to be written to disk and broadcast to other clients.

This function does not block: `shell_view` will dispatch the operation asynchronously and handle any errors.

#### Parameters

shell_view | an EShellView |
source | an ESource |

### e_shell_view_remove_source ()

    void
    e_shell_view_remove_source (EShellView *shell_view,
                                ESource *source);

Requests the D-Bus service to delete the key files for `source` and all of its descendants and broadcast their removal to all clients.

This function does not block: `shell_view` will dispatch the operation asynchronously and handle any errors.

#### Parameters

shell_view | an EShellView |
source | the ESource to be removed |

### e_shell_view_remote_delete_source ()

    void
    e_shell_view_remote_delete_source (EShellView *shell_view,
                                       ESource *source);

Deletes the resource represented by `source` from a remote server. The `source` must be “remote-deletable”. This will also delete the key file for `source` and broadcast its removal to all clients, similar to `e_shell_view_remove_source()`.

This function does not block; `shell_view` will dispatch the operation asynchronously and handle any errors.

#### Parameters

shell_view | an EShellView |
source | an ESource |

### e_shell_view_submit_thread_job ()

    EActivity *
    e_shell_view_submit_thread_job (EShellView *shell_view,
                                    const gchar *description,
                                    const gchar *alert_ident,
                                    const gchar *alert_arg_0,
                                    EAlertSinkThreadJobFunc func,
                                    gpointer user_data,
                                    GDestroyNotify free_user_data);

Runs the `func` in a dedicated thread. Any error is propagated to UI. The cancellable passed into the `func` is a CamelOperation, thus the caller can overwrite progress and description message on it.

#### Parameters

shell_view | an EShellView instance |
description | user-friendly description of the job, to be shown in UI |
alert_ident | in case of an error, this alert identificator is used for EAlert construction |
alert_arg_0 | in case of an error, use this string as the first argument to the EAlert construction; the second argument is the actual error message; can be NULL, in which case only the error message is passed to the EAlert construction. | [allow-none]
func | function to be run in a dedicated thread |
user_data | custom data passed into `func` ; can be NULL. | [allow-none]
free_user_data | function to be called on `user_data` , when the job is over; can be NULL. | [allow-none]

#### Returns

Newly created EActivity on success. The caller is responsible to `g_object_unref()` it when done with it.

Note: The `free_user_data` , if set, is called in the main thread.

Note: This function can be called only from the main thread.

[transfer full]

### e_shell_view_run_ui_customize_dialog ()

    void
    e_shell_view_run_ui_customize_dialog (EShellView *self,
                                          const gchar *id);

Runs an EUICustomizeDialog with optionally preselected part `id` .

#### Parameters

self | an EShellView |
id | optional ID of the part to be preselected, or `NULL`. | [nullable]

Since: 3.56

### e_shell_view_util_layout_to_state_cb ()

    gboolean
    e_shell_view_util_layout_to_state_cb (GValue *value,
                                          GVariant *variant,
                                          gpointer user_data);

### e_shell_view_util_state_to_layout_cb ()

    GVariant *
    e_shell_view_util_state_to_layout_cb (const GValue *value,
                                          const GVariantType *expected_type,
                                          gpointer user_data);

## Types and Values

### struct EShellView

    struct EShellView;

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

### struct EShellViewClass

    struct EShellViewClass {
    	GtkBoxClass parent_class;

    	/* Initial switcher action values. */
    	const gchar *label;
    	const gchar *icon_name;

    	/* Base name of the UI definition file. */
    	const gchar *ui_definition;

    	/* EUIManager identifier for use with EPluginUI.
    	 * Usually "org.gnome.evolution.$(VIEW_NAME)". */
    	const gchar *ui_manager_id;

    	/* Search context.  Subclasses may override the type.
    	 * A unique instance is created for each subclass. */
    	GType search_context_type;
    	ERuleContext *search_context;

    	/* Base name of the search rule definition file. */
    	const gchar *search_rules;

    	/* A unique instance is created for each subclass. */
    	GalViewCollection *view_collection;

    	/* This is set by the corresponding EShellBackend. */
    	EShellBackend *shell_backend;

    	/* Factory Methods */
    	GtkWidget * (*new_shell_content) (EShellView *shell_view);
    	GtkWidget * (*new_shell_sidebar) (EShellView *shell_view);
    	GtkWidget * (*new_shell_taskbar) (EShellView *shell_view);
    	GtkWidget * (*new_shell_searchbar) (EShellView *shell_view);

    	/* Create, configure and pack a search bar widget. */
    	GtkWidget * (*construct_searchbar) (EShellView *shell_view);
    	gchar *		(*get_search_name) (EShellView *shell_view);

    	/* Signals */
    	void		(*clear_search)		(EShellView *shell_view);
    	void		(*custom_search) (EShellView *shell_view,
    						 EFilterRule *custom_rule);
    	void		(*execute_search) (EShellView *shell_view);
    	void		(*update_actions) (EShellView *shell_view);
    	void		(*init_ui_data)		(EShellView *shell_view);
    	void		(*add_ui_customizers) (EShellView *shell_view,
    						 EUICustomizeDialog *dialog);
    };

EShellViewClass contains a number of important settings for subclasses.

#### Members

const gchar *`label`; | The initial value for the switcher action's “label” property. See `e_shell_view_get_view_action()`. |
const gchar *`icon_name`; | The initial value for the switcher action's “icon-name” property. See `e_shell_view_get_view_action()`. |
const gchar *`ui_definition`; | Base name of the UI definition file to add when the shell view is activated. |
const gchar *`ui_manager_id`; | The EUIManager ID for EPluginUI. Plugins should use to this ID in their "eplug" files to add menu and toolbar items to the shell view. |
GType `search_context_type`; | GType of the search context, which should be an instance of ERuleContextClass or a custom subclass. |
ERuleContext *`search_context`; | A unique `search_context_type` instance is created automatically for each subclass and shared across all instances of that subclass. |
const gchar *`search_rules`; | Base name of the XML file containing predefined search rules for this shell view. The XML files are usually named something like `viewtypes.xml`. |
GalViewCollection *`view_collection`; | A unique GalViewCollection instance is created for each subclass and shared across all instances of that subclass. That much is done automatically for subclasses, but subclasses are still responsible for adding the appropriate GalView factories to the view collection. |
EShellBackend *`shell_backend`; | The corresponding EShellBackend for the shell view. |
`new_shell_content` () | Factory method for the shell view's EShellContent. See `e_shell_view_get_shell_content()`. |
`new_shell_sidebar` () | Factory method for the shell view's EShellSidebar. See `e_shell_view_get_shell_sidebar()`. |
`new_shell_taskbar` () | Factory method for the shell view's EShellTaskbar. See `e_shell_view_get_shell_taskbar()`. |
`new_shell_searchbar` () | Factory method for the shell view's EShellSearchbar. See `e_shell_view_get_searchbar()`. |
`construct_searchbar` () | Class method to create, configure and pack a search bar widget. The search bar differs in normal shell mode versus "express" mode. |
`get_search_name` () | Class method to obtain a suitable name for the current search criteria. Subclasses should rarely need to override the default behavior. |
`clear_search` () | Class method for the “clear-search” signal. The default method sets the “search-rule” to `NULL` and then emits the “execute-search” signal. |
`custom_search` () | Class method for the “custom-search” signal. This is emitted prior to executing an advanced or saved search. The default method sets the “search-rule” property and then emits the “execute-search” signal. |
`execute_search` () | Class method for the “execute-search” signal. There is no default behavior; subclasses should override this. |
`update_actions` () | Class method for the “update-actions” signal. There is no default behavior; subclasses should override this. |
`init_ui_data` () | Class method for the “init-ui-data” signal. The subclasses can override it to add actions into the view's UI manager. |
`add_ui_customizers` () | Class method to add any additional EUICustomizer-s into the EUICustomizeDialog within `e_shell_view_run_ui_customize_dialog()`. It can be NULL. |

## Property Details

### The `“menubar-visible”` property

      “menubar-visible”          gboolean

Whether the menu bar is visible.

Owner: EShellView

Flags: Read / Write

Default value: TRUE

Since: 3.56

### The `“page-num”` property

      “page-num”                 int

The GtkNotebook page number of the shell view.

Owner: EShellView

Flags: Read / Write

Allowed values: >= -1

Default value: -1

### The `“search-rule”` property

      “search-rule”              EFilterRule *

Criteria for the current search results.

Owner: EShellView

Flags: Read / Write

### The `“shell-backend”` property

      “shell-backend”            EShellBackend *

The EShellBackend for this shell view.

Owner: EShellView

Flags: Read

### The `“shell-content”` property

      “shell-content”            EShellContent *

The content widget appears in an EShellWindow's right pane.

Owner: EShellView

Flags: Read

### The `“shell-sidebar”` property

      “shell-sidebar”            EShellSidebar *

The sidebar widget appears in an EShellWindow's left pane.

Owner: EShellView

Flags: Read

### The `“shell-taskbar”` property

      “shell-taskbar”            EShellTaskbar *

The taskbar widget appears at the bottom of an EShellWindow.

Owner: EShellView

Flags: Read

### The `“shell-window”` property

      “shell-window”             EShellWindow *

The EShellWindow to which the shell view belongs.

Owner: EShellView

Flags: Read / Write / Construct Only

### The `“sidebar-visible”` property

      “sidebar-visible”          gboolean

Whether the sidebar is visible.

Owner: EShellView

Flags: Read / Write

Default value: TRUE

Since: 3.56

### The `“sidebar-width”` property

      “sidebar-width”            int

Width of the sidebar, in pixels.

Owner: EShellView

Flags: Read / Write / Construct

Allowed values: >= 0

Default value: 128

Since: 3.56

### The `“state-key-file”` property

      “state-key-file”           gpointer

The GKeyFile holding widget state data.

Owner: EShellView

Flags: Read

### The `“switcher-action”` property

      “switcher-action”          EUIAction *

The EUIAction registered with EShellSwitcher.

Owner: EShellView

Flags: Read / Write / Construct Only

Since: 3.56

### The `“switcher-visible”` property

      “switcher-visible”         gboolean

Whether the switcher buttons are visible.

Owner: EShellView

Flags: Read / Write

Default value: TRUE

Since: 3.56

### The `“taskbar-visible”` property

      “taskbar-visible”          gboolean

Whether the task bar is visible.

Owner: EShellView

Flags: Read / Write

Default value: TRUE

Since: 3.56

### The `“title”` property

      “title”                    char *

The title of the shell view. Also serves as the EShellWindow title when the shell view is active.

Owner: EShellView

Flags: Read / Write

Default value: NULL

### The `“toolbar-visible”` property

      “toolbar-visible”          gboolean

Whether the tool bar is visible.

Owner: EShellView

Flags: Read / Write

Default value: TRUE

Since: 3.56

### The `“view-id”` property

      “view-id”                  char *

The current GalView ID.

Owner: EShellView

Flags: Read / Write

Default value: NULL

### The `“view-instance”` property

      “view-instance”            GalViewInstance *

The current GalViewInstance.

Owner: EShellView

Flags: Read / Write

## Signal Details

### The `“clear-search”` signal

    void
    user_function (EShellView *shell_view,
                   gpointer    user_data)

Clears the current search. See `e_shell_view_clear_search()` for details.

#### Parameters

shell_view | the EShellView which emitted the signal |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“custom-search”` signal

    void
    user_function (EShellView  *shell_view,
                   EFilterRule *custom_rule,
                   gpointer     user_data)

Emitted when an advanced or saved search is about to be executed. See `e_shell_view_custom_search()` for details.

#### Parameters

shell_view | the EShellView which emitted the signal |
custom_rule | criteria for the custom search |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“execute-search”` signal

    void
    user_function (EShellView *shell_view,
                   gpointer    user_data)

EShellView subclasses should override the `execute_search` method in EShellViewClass to execute the current search conditions.

#### Parameters

shell_view | the EShellView which emitted the signal |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“init-ui-data”` signal

    void
    user_function (EShellView *shell_view,
                   gpointer    user_data)

EShellView subclasses should override the `init_ui_data` method in EShellViewClass to add any actions and UI definitions. The `shell_view` automatically adds UI definition from `ui_definition` class property after this signal is emitted.

#### Parameters

shell_view | the EShellView which emitted the signal |
user_data | user data set when the signal handler was connected. |

Flags: Action

Since: 3.56

### The `“update-actions”` signal

    void
    user_function (EShellView *shell_view,
                   gpointer    user_data)

EShellView subclasses should override the `update_actions` method in EShellViewClass to update sensitivities, labels, or any other aspect of the actions they have registered.

Plugins can also connect to this signal to be notified when to update their own actions.

#### Parameters

shell_view | the EShellView which emitted the signal |
user_data | user data set when the signal handler was connected. |

Flags: Run First