static void ide_primary_workspace_actions_update_dependencies_cb (PeasExtensionSet *set, PeasPluginInfo *plugin_info, PeasExtension *exten, gpointer user_data) { IdeDependencyUpdater *updater = (IdeDependencyUpdater *)exten; IdePrimaryWorkspace *self; UpdateDependencies *ud; IdeContext *context; IdeTask *task = user_data; g_assert (PEAS_IS_EXTENSION_SET (set)); g_assert (plugin_info != NULL); g_assert (IDE_IS_DEPENDENCY_UPDATER (updater)); g_assert (IDE_IS_TASK (task)); self = ide_task_get_source_object (task); context = ide_widget_get_context (GTK_WIDGET (self)); ide_object_append (IDE_OBJECT (context), IDE_OBJECT (updater)); ud = ide_task_get_task_data (task); ud->n_active++; ide_dependency_updater_update_async (updater, NULL, update_dependencies_cb, g_object_ref (task)); }
/** * peas_extension_set_call_valist: (skip) * @set: A #PeasExtensionSet. * @method_name: the name of the method that should be called. * @va_args: the arguments for the method. * * Call a method on all the #PeasExtension instances contained in @set. * * See peas_extension_call_valist() for more information. * * Deprecated: 1.2. Use peas_extension_set_foreach() instead. * * Return value: %TRUE on successful call. */ gboolean peas_extension_set_call_valist (PeasExtensionSet *set, const gchar *method_name, va_list va_args) { GICallableInfo *callable_info; GIArgument *args; gint n_args; g_return_val_if_fail (PEAS_IS_EXTENSION_SET (set), FALSE); g_return_val_if_fail (method_name != NULL, FALSE); callable_info = peas_gi_get_method_info (set->priv->exten_type, method_name); /* Already warned */ if (callable_info == NULL) return FALSE; n_args = g_callable_info_get_n_args (callable_info); g_return_val_if_fail (n_args >= 0, FALSE); args = g_newa (GIArgument, n_args); peas_gi_valist_to_arguments (callable_info, va_args, args, NULL); g_base_info_unref ((GIBaseInfo *) callable_info); return peas_extension_set_callv (set, method_name, args); }
static void ide_editor_view__extension_added (PeasExtensionSet *set, PeasPluginInfo *info, PeasExtension *exten, gpointer user_data) { IdeEditorView *self = user_data; IdeEditorViewAddin *addin = (IdeEditorViewAddin *)exten; g_assert (PEAS_IS_EXTENSION_SET (set)); g_assert (info != NULL); g_assert (IDE_IS_EDITOR_VIEW_ADDIN (addin)); g_assert (IDE_IS_EDITOR_VIEW (self)); ide_editor_view_addin_load (addin, self); if (self->document != NULL) { GtkSourceLanguage *language; language = gtk_source_buffer_get_language (GTK_SOURCE_BUFFER (self->document)); if (language != NULL) { const gchar *language_id; language_id = gtk_source_language_get_id (language); ide_editor_view_addin_language_changed (addin, language_id); } } }
static void ide_editor_view_unload_addins (IdeEditorView *self) { g_assert (IDE_IS_EDITOR_VIEW (self)); g_assert (!self->extensions || PEAS_IS_EXTENSION_SET (self->extensions)); g_clear_object (&self->extensions); }
static void gb_editor_view__extension_removed (PeasExtensionSet *set, PeasPluginInfo *info, GbEditorViewAddin *addin, GbEditorView *self) { g_assert (PEAS_IS_EXTENSION_SET (set)); g_assert (info != NULL); g_assert (GB_IS_EDITOR_VIEW_ADDIN (addin)); g_assert (GB_IS_EDITOR_VIEW (self)); gb_editor_view_addin_unload (addin, self); }
/** * peas_extension_set_callv: * @set: A #PeasExtensionSet. * @method_name: the name of the method that should be called. * @args: the arguments for the method. * * Call a method on all the #PeasExtension instances contained in @set. * * See peas_extension_callv() for more information. * * Return value: %TRUE on successful call. * * Deprecated: 1.2. Use peas_extension_set_foreach() instead. * * Rename to: peas_extension_set_call */ gboolean peas_extension_set_callv (PeasExtensionSet *set, const gchar *method_name, GIArgument *args) { PeasExtensionSetClass *klass; g_return_val_if_fail (PEAS_IS_EXTENSION_SET (set), FALSE); g_return_val_if_fail (method_name != NULL, FALSE); klass = PEAS_EXTENSION_SET_GET_CLASS (set); return klass->call (set, method_name, args); }
static void ide_application_addin_removed (PeasExtensionSet *set, PeasPluginInfo *plugin_info, PeasExtension *extension, gpointer user_data) { IdeApplication *self = user_data; g_assert (PEAS_IS_EXTENSION_SET (set)); g_assert (plugin_info != NULL); g_assert (IDE_IS_APPLICATION_ADDIN (extension)); ide_application_addin_unload (IDE_APPLICATION_ADDIN (extension), self); }
static void foreach_miner_func (PeasExtensionSet *set, PeasPluginInfo *plugin_info, PeasExtension *exten, gpointer user_data) { IdeRecentProjects *self = user_data; g_assert (PEAS_IS_EXTENSION_SET (set)); g_assert (plugin_info != NULL); g_assert (IDE_IS_PROJECT_MINER (exten)); g_assert (IDE_IS_RECENT_PROJECTS (self)); ide_recent_projects_add_miner (self, IDE_PROJECT_MINER (exten)); }
static void ide_workbench_addin_removed (PeasExtensionSet *set, PeasPluginInfo *plugin_info, PeasExtension *extension, gpointer user_data) { IdeWorkbench *self = user_data; g_assert (PEAS_IS_EXTENSION_SET (set)); g_assert (plugin_info != NULL); g_assert (IDE_IS_WORKBENCH_ADDIN (extension)); g_assert (IDE_IS_WORKBENCH (self)); ide_workbench_addin_unload (IDE_WORKBENCH_ADDIN (extension), self); }
static void ide_editor_view__extension_removed (PeasExtensionSet *set, PeasPluginInfo *info, PeasExtension *exten, gpointer user_data) { IdeEditorViewAddin *addin = (IdeEditorViewAddin *)exten; IdeEditorView *self = user_data; g_assert (PEAS_IS_EXTENSION_SET (set)); g_assert (info != NULL); g_assert (IDE_IS_EDITOR_VIEW_ADDIN (addin)); g_assert (IDE_IS_EDITOR_VIEW (self)); ide_editor_view_addin_unload (addin, self); }
static void ide_editor_perspective_addins_view_set (PeasExtensionSet *set, PeasPluginInfo *plugin_info, PeasExtension *exten, gpointer user_data) { IdeEditorAddin *addin = (IdeEditorAddin *)exten; IdeLayoutView *view = user_data; g_assert (PEAS_IS_EXTENSION_SET (set)); g_assert (plugin_info != NULL); g_assert (IDE_IS_EDITOR_ADDIN (addin)); g_assert (!view || IDE_IS_LAYOUT_VIEW (view)); ide_editor_addin_view_set (addin, view); }
static void ide_frame_notify_addin_of_page (PeasExtensionSet *set, PeasPluginInfo *plugin_info, PeasExtension *exten, gpointer user_data) { IdeFrameAddin *addin = (IdeFrameAddin *)exten; IdePage *page = user_data; g_assert (PEAS_IS_EXTENSION_SET (set)); g_assert (plugin_info != NULL); g_assert (IDE_IS_FRAME_ADDIN (addin)); g_assert (!page || IDE_IS_PAGE (page)); ide_frame_addin_set_page (addin, page); }
static void ide_workbench_notify_perspective_set (PeasExtensionSet *set, PeasPluginInfo *plugin_info, PeasExtension *exten, gpointer user_data) { IdeWorkbenchAddin *addin = (IdeWorkbenchAddin *)exten; IdePerspective *perspective = user_data; g_assert (PEAS_IS_EXTENSION_SET (set)); g_assert (plugin_info != NULL); g_assert (IDE_IS_WORKBENCH_ADDIN (addin)); g_assert (IDE_IS_PERSPECTIVE (perspective)); ide_workbench_addin_perspective_set (addin, perspective); }
/** * peas_extension_set_foreach: * @set: A #PeasExtensionSet. * @func: (scope call): A function call for each extension. * @data: Optional data to be passed to the function or %NULL. * * Calls @func for each #PeasExtension. * * Since: 1.2 */ void peas_extension_set_foreach (PeasExtensionSet *set, PeasExtensionSetForeachFunc func, gpointer data) { GList *l; g_return_if_fail (PEAS_IS_EXTENSION_SET (set)); g_return_if_fail (func != NULL); for (l = set->priv->extensions; l; l = l->next) { ExtensionItem *item = (ExtensionItem *) l->data; func (set, item->info, item->exten, data); } }
static void ide_frame_addin_removed (PeasExtensionSet *set, PeasPluginInfo *plugin_info, PeasExtension *exten, gpointer user_data) { IdeFrameAddin *addin = (IdeFrameAddin *)exten; IdeFrame *self = user_data; g_assert (IDE_IS_FRAME (self)); g_assert (PEAS_IS_EXTENSION_SET (set)); g_assert (plugin_info != NULL); g_assert (IDE_IS_FRAME_ADDIN (addin)); ide_frame_addin_set_page (addin, NULL); ide_frame_addin_unload (addin, self); }
/** * peas_extension_set_call: (skip) * @set: A #PeasExtensionSet. * @method_name: the name of the method that should be called. * @...: arguments for the method. * * Call a method on all the #PeasExtension instances contained in @set. * * See peas_extension_call() for more information. * * Deprecated: 1.2. Use peas_extension_set_foreach() instead. * * Return value: %TRUE on successful call. */ gboolean peas_extension_set_call (PeasExtensionSet *set, const gchar *method_name, ...) { va_list args; gboolean result; g_return_val_if_fail (PEAS_IS_EXTENSION_SET (set), FALSE); g_return_val_if_fail (method_name != NULL, FALSE); va_start (args, method_name); result = peas_extension_set_call_valist (set, method_name, args); va_end (args); return result; }
static void ide_workbench_addin_added (PeasExtensionSet *set, PeasPluginInfo *plugin_info, PeasExtension *extension, gpointer user_data) { IdeWorkbench *self = user_data; g_assert (PEAS_IS_EXTENSION_SET (set)); g_assert (plugin_info != NULL); g_assert (IDE_IS_WORKBENCH_ADDIN (extension)); g_assert (IDE_IS_WORKBENCH (self)); IDE_TRACE_MSG ("Loading workbench addin for %s", peas_plugin_info_get_module_name (plugin_info)); ide_workbench_addin_load (IDE_WORKBENCH_ADDIN (extension), self); }
/** * peas_extension_set_get_extension: * @set: A #PeasExtensionSet * @info: a #PeasPluginInfo * * Returns the #PeasExtension object corresponding to @info, or %NULL * if the plugin doesn't provide such an extension. * * Returns: (transfer none): a reference to a #PeasExtension or %NULL */ PeasExtension * peas_extension_set_get_extension (PeasExtensionSet *set, PeasPluginInfo *info) { GList *l; g_return_val_if_fail (PEAS_IS_EXTENSION_SET (set), NULL); g_return_val_if_fail (info != NULL, NULL); for (l = set->priv->extensions; l != NULL; l = l->next) { ExtensionItem *item = l->data; if (item->info == info) return item->exten; } return NULL; }
static void ide_editor_perspective_addin_removed (PeasExtensionSet *set, PeasPluginInfo *plugin_info, PeasExtension *exten, gpointer user_data) { IdeEditorPerspective *self = user_data; IdeEditorAddin *addin = (IdeEditorAddin *)exten; IdeLayoutView *view; g_assert (IDE_IS_EDITOR_PERSPECTIVE (self)); g_assert (IDE_IS_EDITOR_ADDIN (addin)); g_assert (PEAS_IS_EXTENSION_SET (set)); g_assert (plugin_info != NULL); view = ide_layout_grid_get_current_view (self->grid); if (view != NULL) ide_editor_addin_view_set (addin, NULL); ide_editor_addin_unload (addin, self); }
static void ide_frame_addin_added (PeasExtensionSet *set, PeasPluginInfo *plugin_info, PeasExtension *exten, gpointer user_data) { IdeFrameAddin *addin = (IdeFrameAddin *)exten; IdeFrame *self = user_data; IdePage *visible_child; g_assert (IDE_IS_FRAME (self)); g_assert (PEAS_IS_EXTENSION_SET (set)); g_assert (plugin_info != NULL); g_assert (IDE_IS_FRAME_ADDIN (addin)); ide_frame_addin_load (addin, self); visible_child = ide_frame_get_visible_child (self); if (visible_child != NULL) ide_frame_addin_set_page (addin, visible_child); }