Пример #1
0
static void
on_value_removed (AnjutaPlugin *plugin,
				  const gchar *name,
				  gpointer data)
{
	AnjutaShell* shell = anjuta_plugin_get_shell (plugin);
	StarterPlugin* splugin = ANJUTA_PLUGIN_STARTER (plugin);
	IAnjutaDocumentManager* docman = anjuta_shell_get_interface (shell,
																 IAnjutaDocumentManager,
																 NULL);
	IAnjutaProjectManager* pm = anjuta_shell_get_interface (shell,
															IAnjutaProjectManager,
															NULL);
	
	if (!(docman && ianjuta_document_manager_get_doc_widgets (docman, NULL)) &&
		!(pm && ianjuta_project_manager_get_current_project (pm, NULL)))
	{
		DEBUG_PRINT ("Showing starter");
		splugin->priv->starter = create_starter_widget (splugin);
		anjuta_shell_add_widget (shell, splugin->priv->starter,
								 "AnjutaStarter",
								 _("Start"),
								 GTK_STOCK_ABOUT,
								 ANJUTA_SHELL_PLACEMENT_CENTER,
								 NULL);
		anjuta_shell_present_widget (shell, splugin->priv->starter, NULL);
		g_object_unref (splugin->priv->starter);
	}
}
Пример #2
0
static void
on_project_loaded(IAnjutaProjectManager *project_manager, GError *error, gpointer user_data)
{
    QuickOpenPlugin* self = user_data;

    IAnjutaProject* project;

    project = ianjuta_project_manager_get_current_project(project_manager, NULL);
    quick_open_plugin_load_project_files(self, project);
}
Пример #3
0
void 
cpp_packages_load (CppPackages* packages, gboolean force)
{
	CppJavaPlugin* plugin = ANJUTA_PLUGIN_CPP_JAVA(packages->plugin);

	if (g_settings_get_boolean (plugin->settings,
	                            PREF_PROJECT_PACKAGES))
	{
		IAnjutaProjectManager* pm =
			anjuta_shell_get_interface (packages->plugin->shell, IAnjutaProjectManager, NULL);
		IAnjutaProject* project;
		
		g_signal_connect_swapped (pm, "project-loaded", G_CALLBACK (cpp_packages_load_real), packages);

		project = ianjuta_project_manager_get_current_project (pm, NULL);
		/* Only load the packages if necessary */
		if (project && ianjuta_project_is_loaded (project, NULL))
		{
			gboolean loaded = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (project), 
			                                                      PROJECT_LOADED));
			if (!loaded && !packages->loading)
			{
				cpp_packages_load_real (packages, NULL, pm);
				g_object_set_data (G_OBJECT (project), PROJECT_LOADED, GINT_TO_POINTER (TRUE));
			}
		}
	}
	else
	{
		if (packages->loading)
		{
			if (!packages->idle_id)
			{
				packages->idle_id = g_idle_add ((GSourceFunc)cpp_packages_idle_load_user, packages);
				g_object_ref (packages);
			}
			return;
		}
		else
		{
			cpp_packages_load_user (packages, force);
		}
	}

	g_signal_connect (plugin->settings, "changed::PREF_LIBC",
	                  G_CALLBACK (on_load_libc), packages);
	on_load_libc (plugin->settings,
	              PREF_LIBC,
	              packages);
}
Пример #4
0
static void
quick_open_plugin_setup_project_handling(QuickOpenPlugin* self)
{
    IAnjutaProject* project;

    self->project_manager = anjuta_shell_get_interface (ANJUTA_PLUGIN(self)->shell,
        IAnjutaProjectManager, NULL);
    g_return_if_fail(self->project_manager);

    g_object_add_weak_pointer(G_OBJECT(self->project_manager), (void**)&self->project_manager);

    /* Connect to project manager events. */
    self->project_watch_id = anjuta_plugin_add_watch(ANJUTA_PLUGIN(self),
        IANJUTA_PROJECT_MANAGER_CURRENT_PROJECT,
        current_project_added, current_project_removed, self);

    g_signal_connect(self->project_manager, "project-loaded",
        G_CALLBACK (on_project_loaded), self);

    project = ianjuta_project_manager_get_current_project (self->project_manager, NULL);
    if (project)
        quick_open_plugin_project_added(self, project);
}