## EShellBackend

EShellBackend — dynamically loaded capabilities

## Functions

gint | e_shell_backend_compare ()
const gchar * | e_shell_backend_get_config_dir ()
const gchar * | e_shell_backend_get_data_dir ()
struct _EShell * | e_shell_backend_get_shell ()
void | e_shell_backend_add_activity ()
void | e_shell_backend_cancel_all ()
gboolean | e_shell_backend_is_busy ()
const gchar * | e_shell_backend_get_prefer_new_item ()
void | e_shell_backend_set_prefer_new_item ()
void | e_shell_backend_start ()
gboolean | e_shell_backend_is_started ()
gboolean | e_shell_backend_migrate ()

## Properties

gboolean | busy | Read
gchar * | prefer-new-item | Read / Write

## Signals

void | activity-added | Run Last

## Types and Values

struct | EShellBackend

## Object Hierarchy

        GObject
        ╰── EExtension
            ╰── EShellBackend

## Includes

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

## Description

## Functions

### e_shell_backend_compare ()

    gint
    e_shell_backend_compare (EShellBackend *shell_backend_a,
                             EShellBackend *shell_backend_b);

Using the <structfield>sort_order</structfield> field from both backends' EShellBackendClass, compares `shell_backend_a` with `shell_mobule_b` and returns -1, 0 or +1 if `shell_backend_a` is found to be less than, equal to or greater than `shell_backend_b` , respectively.

#### Parameters

shell_backend_a | an EShellBackend |
shell_backend_b | an EShellBackend |

#### Returns

-1, 0 or +1, for a less than, equal to or greater than result

### e_shell_backend_get_config_dir ()

    const gchar *
    e_shell_backend_get_config_dir (EShellBackend *shell_backend);

Returns the absolute path to the configuration directory for `shell_backend` . The string is owned by `shell_backend` and should not be modified or freed.

#### Parameters

shell_backend | an EShellBackend |

#### Returns

the backend's configuration directory

### e_shell_backend_get_data_dir ()

    const gchar *
    e_shell_backend_get_data_dir (EShellBackend *shell_backend);

Returns the absolute path to the data directory for `shell_backend` . The string is owned by `shell_backend` and should not be modified or freed.

#### Parameters

shell_backend | an EShellBackend |

#### Returns

the backend's data directory

### e_shell_backend_get_shell ()

    struct _EShell *
    e_shell_backend_get_shell (EShellBackend *shell_backend);

Returns the EShell singleton.

#### Parameters

shell_backend | an EShellBackend |

#### Returns

the EShell

### e_shell_backend_add_activity ()

    void
    e_shell_backend_add_activity (EShellBackend *shell_backend,
                                  EActivity *activity);

Emits an “activity-added” signal and tracks the `activity` until it is finalized.

#### Parameters

shell_backend | an EShellBackend |
activity | an EActivity |

### e_shell_backend_cancel_all ()

    void
    e_shell_backend_cancel_all (EShellBackend *shell_backend);

Cancels all activities passed to `e_shell_backend_add_activity()` that have not already been finalized. Note that an EActivity can only be cancelled if it was given a GCancellable object.

Also, assuming all activities are cancellable, there may still be a delay before `e_shell_backend_is_busy()` returns `FALSE`, because some activities may not be able to respond to the cancellation request immediately. Connect to the "notify::busy" signal if you need notification of `shell_backend` becoming idle.

#### Parameters

shell_backend | an EShellBackend |

### e_shell_backend_is_busy ()

    gboolean
    e_shell_backend_is_busy (EShellBackend *shell_backend);

Returns `TRUE` if any activities passed to `e_shell_backend_add_activity()` are still in progress, `FALSE` if the `shell_backend` is currently idle.

#### Parameters

shell_backend | an EShellBackend |

#### Returns

`TRUE` if activities are still in progress

### e_shell_backend_get_prefer_new_item ()

    const gchar *
    e_shell_backend_get_prefer_new_item (EShellBackend *shell_backend);

#### Parameters

shell_backend | an EShellBackend |

#### Returns

Name of a preferred item in New toolbar button, `NULL` or an empty string for no preference.

Since 3.4

### e_shell_backend_set_prefer_new_item ()

    void
    e_shell_backend_set_prefer_new_item (EShellBackend *shell_backend,
                                         const gchar *prefer_new_item);

Sets name of a preferred item in New toolbar button. Use `NULL` or an empty string for no preference.

#### Parameters

shell_backend | an EShellBackend |
prefer_new_item | name of an item |

Since 3.4

### e_shell_backend_start ()

    void
    e_shell_backend_start (EShellBackend *shell_backend);

Tells the `shell_backend` to begin loading data or running background tasks which may consume significant resources. This gets called in reponse to the user switching to the corresponding EShellView for the first time. The function is idempotent for each `shell_backend` .

#### Parameters

shell_backend | an EShellBackend |

### e_shell_backend_is_started ()

    gboolean
    e_shell_backend_is_started (EShellBackend *shell_backend);

Returns whether `e_shell_backend_start()` was called for `shell_backend` .

#### Parameters

shell_backend | an EShellBackend |

#### Returns

whether `shell_backend` is started

### e_shell_backend_migrate ()

    gboolean
    e_shell_backend_migrate (EShellBackend *shell_backend,
                             gint major,
                             gint minor,
                             gint micro,
                             GError **error);

Attempts to migrate data and settings from version `major`.`minor`.`micro`. Returns `TRUE` if the migration was successful or if no action was necessary. Returns `FALSE` and sets `error` if the migration failed.

#### Parameters

shell_backend | an EShellBackend |
major | major part of version to migrate from |
minor | minor part of version to migrate from |
micro | micro part of version to migrate from |
error | return location for a GError, or `NULL` |

#### Returns

`TRUE` if successful, `FALSE` otherwise

## Types and Values

### struct EShellBackend

    struct EShellBackend;

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

## Property Details

### The `“busy”` property

      “busy”                     gboolean

Whether any activities are still in progress.

Flags: Read

Default value: FALSE

### The `“prefer-new-item”` property

      “prefer-new-item”          gchar *

Name of an item to prefer in New toolbar button; can be NULL

Flags: Read / Write

Default value: NULL

## Signal Details

### The `“activity-added”` signal

    void
    user_function (EShellBackend *shell_backend,
                   EActivity     *activity,
                   gpointer       user_data)

Broadcasts a newly added activity.

#### Parameters

shell_backend | the EShellBackend that emitted the signal |
activity | an EActivity |
user_data | user data set when the signal handler was connected. |

Flags: Run Last