### Interface

# Ide WorkbenchAddin

#### Description

    interface Ide.WorkbenchAddin : GObject.Object

No description available.

#### Prerequisite

In order to implement WorkbenchAddin, your type must inherit from `GObject`.

#### Instance methods

###### ide_workbench_addin_can_open

No description available.

###### ide_workbench_addin_load

No description available.

###### ide_workbench_addin_load_project_async

No description available.

###### ide_workbench_addin_load_project_finish

No description available.

###### ide_workbench_addin_open_async

No description available.

###### ide_workbench_addin_open_at_async

No description available.

###### ide_workbench_addin_open_finish

No description available.

###### ide_workbench_addin_project_loaded

This function is called after the project has been loaded.

Available since: 3.32

###### ide_workbench_addin_unload

No description available.

###### ide_workbench_addin_unload_project_async

No description available.

###### ide_workbench_addin_unload_project_finish

No description available.

###### ide_workbench_addin_vcs_changed

This function notifies an `IdeWorkbenchAddin` that the version control system has changed. This happens when `ide_workbench_set_vcs()` is called or after an addin is loaded.

Available since: 3.32

###### ide_workbench_addin_workspace_added

No description available.

###### ide_workbench_addin_workspace_removed

No description available.

#### Interface structure

    struct IdeWorkbenchAddinInterface {
      GTypeInterface parent;
      void (* load) (
        IdeWorkbenchAddin* self,
        IdeWorkbench* workbench
      );
      void (* unload) (
        IdeWorkbenchAddin* self,
        IdeWorkbench* workbench
      );
      void (* load_project_async) (
        IdeWorkbenchAddin* self,
        IdeProjectInfo* project_info,
        GCancellable* cancellable,
        GAsyncReadyCallback callback,
        gpointer user_data
      );
      gboolean (* load_project_finish) (
        IdeWorkbenchAddin* self,
        GAsyncResult* result,
        GError** error
      );
      void (* unload_project_async) (
        IdeWorkbenchAddin* self,
        IdeProjectInfo* project_info,
        GCancellable* cancellable,
        GAsyncReadyCallback callback,
        gpointer user_data
      );
      gboolean (* unload_project_finish) (
        IdeWorkbenchAddin* self,
        GAsyncResult* result,
        GError** error
      );
      void (* project_loaded) (
        IdeWorkbenchAddin* self,
        IdeProjectInfo* project_info
      );
      void (* workspace_added) (
        IdeWorkbenchAddin* self,
        IdeWorkspace* workspace
      );
      void (* workspace_removed) (
        IdeWorkbenchAddin* self,
        IdeWorkspace* workspace
      );
      gboolean (* can_open) (
        IdeWorkbenchAddin* self,
        GFile* file,
        const gchar* content_type,
        gint* priority
      );
      void (* open_async) (
        IdeWorkbenchAddin* self,
        GFile* file,
        const gchar* content_type,
        IdeBufferOpenFlags flags,
        GCancellable* cancellable,
        GAsyncReadyCallback callback,
        gpointer user_data
      );
      void (* open_at_async) (
        IdeWorkbenchAddin* self,
        GFile* file,
        const gchar* content_type,
        gint at_line,
        gint at_line_offset,
        IdeBufferOpenFlags flags,
        GCancellable* cancellable,
        GAsyncReadyCallback callback,
        gpointer user_data
      );
      gboolean (* open_finish) (
        IdeWorkbenchAddin* self,
        GAsyncResult* result,
        GError** error
      );
      void (* vcs_changed) (
        IdeWorkbenchAddin* self,
        IdeVcs* vcs
      );

    }

###### Interface members

`parent` |
    GTypeInterface
| No description available.
`load` |
    void (* load) (
        IdeWorkbenchAddin* self,
        IdeWorkbench* workbench
      )
| No description available.
`unload` |
    void (* unload) (
        IdeWorkbenchAddin* self,
        IdeWorkbench* workbench
      )
| No description available.
`load_project_async` |
    void (* load_project_async) (
        IdeWorkbenchAddin* self,
        IdeProjectInfo* project_info,
        GCancellable* cancellable,
        GAsyncReadyCallback callback,
        gpointer user_data
      )
| No description available.
`load_project_finish` |
    gboolean (* load_project_finish) (
        IdeWorkbenchAddin* self,
        GAsyncResult* result,
        GError** error
      )
| No description available.
`unload_project_async` |
    void (* unload_project_async) (
        IdeWorkbenchAddin* self,
        IdeProjectInfo* project_info,
        GCancellable* cancellable,
        GAsyncReadyCallback callback,
        gpointer user_data
      )
| No description available.
`unload_project_finish` |
    gboolean (* unload_project_finish) (
        IdeWorkbenchAddin* self,
        GAsyncResult* result,
        GError** error
      )
| No description available.
`project_loaded` |
    void (* project_loaded) (
        IdeWorkbenchAddin* self,
        IdeProjectInfo* project_info
      )
| No description available.
`workspace_added` |
    void (* workspace_added) (
        IdeWorkbenchAddin* self,
        IdeWorkspace* workspace
      )
| No description available.
`workspace_removed` |
    void (* workspace_removed) (
        IdeWorkbenchAddin* self,
        IdeWorkspace* workspace
      )
| No description available.
`can_open` |
    gboolean (* can_open) (
        IdeWorkbenchAddin* self,
        GFile* file,
        const gchar* content_type,
        gint* priority
      )
| No description available.
`open_async` |
    void (* open_async) (
        IdeWorkbenchAddin* self,
        GFile* file,
        const gchar* content_type,
        IdeBufferOpenFlags flags,
        GCancellable* cancellable,
        GAsyncReadyCallback callback,
        gpointer user_data
      )
| No description available.
`open_at_async` |
    void (* open_at_async) (
        IdeWorkbenchAddin* self,
        GFile* file,
        const gchar* content_type,
        gint at_line,
        gint at_line_offset,
        IdeBufferOpenFlags flags,
        GCancellable* cancellable,
        GAsyncReadyCallback callback,
        gpointer user_data
      )
| No description available.
`open_finish` |
    gboolean (* open_finish) (
        IdeWorkbenchAddin* self,
        GAsyncResult* result,
        GError** error
      )
| No description available.
`vcs_changed` |
    void (* vcs_changed) (
        IdeWorkbenchAddin* self,
        IdeVcs* vcs
      )
| No description available.

#### Virtual methods

###### Ide.WorkbenchAddin.can_open

No description available.

###### Ide.WorkbenchAddin.load

No description available.

###### Ide.WorkbenchAddin.load_project_async

No description available.

###### Ide.WorkbenchAddin.load_project_finish

No description available.

###### Ide.WorkbenchAddin.open_async

No description available.

###### Ide.WorkbenchAddin.open_at_async

No description available.

###### Ide.WorkbenchAddin.open_finish

No description available.

###### Ide.WorkbenchAddin.project_loaded

This function is called after the project has been loaded.

###### Ide.WorkbenchAddin.unload

No description available.

###### Ide.WorkbenchAddin.unload_project_async

No description available.

###### Ide.WorkbenchAddin.unload_project_finish

No description available.

###### Ide.WorkbenchAddin.vcs_changed

This function notifies an `IdeWorkbenchAddin` that the version control system has changed. This happens when `ide_workbench_set_vcs()` is called or after an addin is loaded.

###### Ide.WorkbenchAddin.workspace_added

No description available.

###### Ide.WorkbenchAddin.workspace_removed

No description available.