IAnjutaProjectManager

IAnjutaProjectManager — Interface for project managers

Stability Level

Unstable, unless otherwise indicated

Synopsis

#include <libanjuta/interfaces/ianjuta-project-manager.h>

#define             IANJUTA_PROJECT_MANAGER_ERROR
#define             IANJUTA_PROJECT_MANAGER_PROJECT_ROOT_URI
#define             IANJUTA_PROJECT_MANAGER_CURRENT_URI
                    IAnjutaProjectManager;
                    IAnjutaProjectManagerIface;
GQuark              ianjuta_project_manager_error_quark (void);
GFile*              ianjuta_project_manager_add_group   (IAnjutaProjectManager *obj,
                                                         const gchar *name,
                                                         GFile *default_group,
                                                         GError **err);
GFile*              ianjuta_project_manager_add_source  (IAnjutaProjectManager *obj,
                                                         const gchar *name,
                                                         GFile *default_target,
                                                         GError **err);
GFile*              ianjuta_project_manager_add_source_quiet
                                                        (IAnjutaProjectManager *obj,
                                                         const gchar *name,
                                                         GFile *target,
                                                         GError **err);
GList*              ianjuta_project_manager_add_sources (IAnjutaProjectManager *obj,
                                                         GList *names,
                                                         GFile *default_target,
                                                         GError **err);
GFile*              ianjuta_project_manager_add_target  (IAnjutaProjectManager *obj,
                                                         const gchar *name,
                                                         GFile *default_group,
                                                         GError **err);
guint               ianjuta_project_manager_get_capabilities
                                                        (IAnjutaProjectManager *obj,
                                                         GError **err);
GList*              ianjuta_project_manager_get_children
                                                        (IAnjutaProjectManager *obj,
                                                         GFile *element,
                                                         GError **err);
GList*              ianjuta_project_manager_get_elements
                                                        (IAnjutaProjectManager *obj,
                                                         AnjutaProjectNodeType element_type,
                                                         GError **err);
GList*              ianjuta_project_manager_get_packages
                                                        (IAnjutaProjectManager *obj,
                                                         GError **err);
GFile*              ianjuta_project_manager_get_parent  (IAnjutaProjectManager *obj,
                                                         GFile *element,
                                                         GError **err);
GFile*              ianjuta_project_manager_get_selected
                                                        (IAnjutaProjectManager *obj,
                                                         GError **err);
AnjutaProjectTargetClass  ianjuta_project_manager_get_target_type
                                                        (IAnjutaProjectManager *obj,
                                                         GFile *target,
                                                         GError **err);
GList*              ianjuta_project_manager_get_targets (IAnjutaProjectManager *obj,
                                                         AnjutaProjectTargetClass target_type,
                                                         GError **err);
gboolean            ianjuta_project_manager_is_open     (IAnjutaProjectManager *obj,
                                                         GError **err);

Object Hierarchy

  GInterface
   +----IAnjutaProjectManager

Prerequisites

IAnjutaProjectManager requires GObject.

Signals

  "element-added"                                  : Run Last
  "element-removed"                                : Run Last
  "element-selected"                               : Run Last

Description

Details

IANJUTA_PROJECT_MANAGER_ERROR

#define IANJUTA_PROJECT_MANAGER_ERROR ianjuta_project_manager_error_quark()


IANJUTA_PROJECT_MANAGER_PROJECT_ROOT_URI

#define IANJUTA_PROJECT_MANAGER_PROJECT_ROOT_URI "project_root_uri"

Anjuta shell value set by project manager to the project root uri.


IANJUTA_PROJECT_MANAGER_CURRENT_URI

#define IANJUTA_PROJECT_MANAGER_CURRENT_URI "project_manager_current_uri"

Anjuta shell value set by project manager to the current uri.


IAnjutaProjectManager

typedef struct _IAnjutaProjectManager IAnjutaProjectManager;


IAnjutaProjectManagerIface

typedef struct {
	GTypeInterface g_iface;
	
	/* Signal */
	void (*element_added) (IAnjutaProjectManager *obj, GFile *element);
	/* Signal */
	void (*element_removed) (IAnjutaProjectManager *obj, GFile *element);
	/* Signal */
	void (*element_selected) (IAnjutaProjectManager *obj, GFile *element);

	GFile* (*add_group) (IAnjutaProjectManager *obj, const gchar *name,  GFile *default_group, GError **err);
	GFile* (*add_source) (IAnjutaProjectManager *obj, const gchar *name,  GFile *default_target, GError **err);
	GFile* (*add_source_quiet) (IAnjutaProjectManager *obj, const gchar *name,  GFile *target, GError **err);
	GList* (*add_sources) (IAnjutaProjectManager *obj, GList* names,  GFile *default_target, GError **err);
	GFile* (*add_target) (IAnjutaProjectManager *obj, const gchar *name,  GFile *default_group, GError **err);
	guint (*get_capabilities) (IAnjutaProjectManager *obj, GError **err);
	GList* (*get_children) (IAnjutaProjectManager *obj, GFile *element, GError **err);
	GList* (*get_elements) (IAnjutaProjectManager *obj, AnjutaProjectNodeType element_type, GError **err);
	GList* (*get_packages) (IAnjutaProjectManager *obj, GError **err);
	GFile* (*get_parent) (IAnjutaProjectManager *obj, GFile *element, GError **err);
	GFile* (*get_selected) (IAnjutaProjectManager *obj, GError **err);
	AnjutaProjectTargetClass (*get_target_type) (IAnjutaProjectManager *obj, GFile *target, GError **err);
	GList* (*get_targets) (IAnjutaProjectManager *obj, AnjutaProjectTargetClass target_type, GError **err);
	gboolean (*is_open) (IAnjutaProjectManager *obj, GError **err);
} IAnjutaProjectManagerIface;


ianjuta_project_manager_error_quark ()

GQuark              ianjuta_project_manager_error_quark (void);

Returns :


ianjuta_project_manager_add_group ()

GFile*              ianjuta_project_manager_add_group   (IAnjutaProjectManager *obj,
                                                         const gchar *name,
                                                         GFile *default_group,
                                                         GError **err);

Prompts the user to add a new group to the project. The user can select a parent group different from the one set as default.

obj :

Self.

name :

Group name or URI.

default_group :

A GFile corresponding to the default parent group or NULL if don't care.

err :

Error propagation and reporting.

Returns :

A GFile corresponding to the new group added in the project. You own the returned file; use g_object_unref() to release it.

ianjuta_project_manager_add_source ()

GFile*              ianjuta_project_manager_add_source  (IAnjutaProjectManager *obj,
                                                         const gchar *name,
                                                         GFile *default_target,
                                                         GError **err);

Prompts the user to add a file to the project. If the user selects multiple files only the first source file is returned.

You can add non existing file. In this case the element_added signal will be emitted with a non existing file. So it is up to the caller to reemit this signal later when the file is created.

obj :

Self.

name :

Source name or URI.

default_target :

A GFile corresponding to the default target or group or NULL if you don't care.

err :

Error propagation and reporting.

Returns :

A GFile corresponding to the new source file in the project view. You own the returned file; use g_object_unref() to release it.

ianjuta_project_manager_add_source_quiet ()

GFile*              ianjuta_project_manager_add_source_quiet
                                                        (IAnjutaProjectManager *obj,
                                                         const gchar *name,
                                                         GFile *target,
                                                         GError **err);

Adds a file to the project without prompting the user.

You can add non existing file. In this case the element_added signal will be emitted with a non existing file. So it is up to the caller to reemit this signal later when the file is created.

obj :

Self.

name :

Source name or URI.

target :

A GFile corresponding to the parent target or group.

err :

Error propagation and reporting.

Returns :

A GFile corresponding to the new source file in the project view. You own the returned file; use g_object_unref() to release it.

ianjuta_project_manager_add_sources ()

GList*              ianjuta_project_manager_add_sources (IAnjutaProjectManager *obj,
                                                         GList *names,
                                                         GFile *default_target,
                                                         GError **err);

Prompts the user to add several files to the project. Depending on the project backend, it can be possible that the source files must be located in a particular directory.

You can add non existing file. In this case the element_added signal will be emitted with a non existing file. So it is up to the caller to reemit this signal later when the file is created.

obj :

Self.

names :

Sources name or URI to add.. element-type utf8.

default_target :

A GFile corresponding to the default target or group or NULL if don't care.

err :

Error propagation and reporting.

Returns :

A list of GFile corresponding to all new source files added in the project. You own the list with the the returned files; use g_list_free() and g_object_unref() on each file to release them.. element-type GFile. transfer full GFile.

ianjuta_project_manager_add_target ()

GFile*              ianjuta_project_manager_add_target  (IAnjutaProjectManager *obj,
                                                         const gchar *name,
                                                         GFile *default_group,
                                                         GError **err);

Prompts the user to add a new target to the project. The user can select a parent group different from the one set as default.

obj :

Self

name :

Target name or URI.

default_group :

A GFile corresponding to the default parent group or NULL if don't care.

err :

Error propagation and reporting.

Returns :

A GFile corresponding to the new target added in the project. You own the returned file; use g_object_unref() to release it.

ianjuta_project_manager_get_capabilities ()

guint               ianjuta_project_manager_get_capabilities
                                                        (IAnjutaProjectManager *obj,
                                                         GError **err);

Gets the capabilites of project whether it can add group, target sources etc.

obj :

Self

err :

Error propagation and reporting.

Returns :

Supported capabilites.

ianjuta_project_manager_get_children ()

GList*              ianjuta_project_manager_get_children
                                                        (IAnjutaProjectManager *obj,
                                                         GFile *element,
                                                         GError **err);

Gets the list of all children of the corresponding parent.

obj :

Self

element :

A GFile corresponding to a parent.

err :

Error propagation and reporting.

Returns :

The list of GFile corresponding to each child of the element or NULL if the element has no child. Free the returned list with g_list_free() and the files with g_object_unref().. element-type GFile. transfer full GFile.

ianjuta_project_manager_get_elements ()

GList*              ianjuta_project_manager_get_elements
                                                        (IAnjutaProjectManager *obj,
                                                         AnjutaProjectNodeType element_type,
                                                         GError **err);

Get a list of all elements of this type in the project.

obj :

Self

element_type :

Select one element type: source, group or target

err :

Error propagation and reporting.

Returns :

Get list of GFile corresponding to all valid elements or NULL if there are no elements of this type. Free the returned list with g_list_free() and the files with g_object_unref().. element-type GFile. transfer full GFile.

ianjuta_project_manager_get_packages ()

GList*              ianjuta_project_manager_get_packages
                                                        (IAnjutaProjectManager *obj,
                                                         GError **err);

obj :

Self

err :

Error propagation and reporting.

Returns :

the list of pkg-config packages that the current project requires in it's configure.ac. Can be NULL if there is no project opened currently or no package is required.. element-type utf8.

ianjuta_project_manager_get_parent ()

GFile*              ianjuta_project_manager_get_parent  (IAnjutaProjectManager *obj,
                                                         GFile *element,
                                                         GError **err);

Gets the parent of the corresponding child.

obj :

Self

element :

A GFile corresponding to one child.

err :

Error propagation and reporting.

Returns :

The parent of the child, or NULL if the element is the root.

ianjuta_project_manager_get_selected ()

GFile*              ianjuta_project_manager_get_selected
                                                        (IAnjutaProjectManager *obj,
                                                         GError **err);

Gets the currently selected element in the project manager view.

obj :

Self

err :

Error propagation and reporting.

Returns :

A GFile corresponding to the selected element in the project view. You own the returned file; use g_object_unref() to release it.

ianjuta_project_manager_get_target_type ()

AnjutaProjectTargetClass  ianjuta_project_manager_get_target_type
                                                        (IAnjutaProjectManager *obj,
                                                         GFile *target,
                                                         GError **err);

Get the type of the corresponding target: program, library...

obj :

Self

target :

A GFile corresponding to a target

err :

Error propagation and reporting.

Returns :

Return the type of the target.

ianjuta_project_manager_get_targets ()

GList*              ianjuta_project_manager_get_targets (IAnjutaProjectManager *obj,
                                                         AnjutaProjectTargetClass target_type,
                                                         GError **err);

Get a list of targets in the project with the corresponding type.

obj :

Self

target_type :

type of the target

err :

Error propagation and reporting.

Returns :

A list of GFile corresponding to each target of the requested type or NULL if none exists. Free the returned list with g_list_free() and the files with g_object_unref().. element-type GFile. transfer full GFile.

ianjuta_project_manager_is_open ()

gboolean            ianjuta_project_manager_is_open     (IAnjutaProjectManager *obj,
                                                         GError **err);

Gets whether a project is currently opened.

obj :

Self

err :

Error propagation and reporting.

Returns :

TRUE if a project is opened.

Signal Details

The "element-added" signal

void                user_function                      (IAnjutaProjectManager *ianjutaprojectmanager,
                                                        GObject               *arg1,
                                                        gpointer               user_data)                  : Run Last

ianjutaprojectmanager :

the object which received the signal.

arg1 :

user_data :

user data set when the signal handler was connected.

The "element-removed" signal

void                user_function                      (IAnjutaProjectManager *ianjutaprojectmanager,
                                                        GObject               *arg1,
                                                        gpointer               user_data)                  : Run Last

ianjutaprojectmanager :

the object which received the signal.

arg1 :

user_data :

user data set when the signal handler was connected.

The "element-selected" signal

void                user_function                      (IAnjutaProjectManager *ianjutaprojectmanager,
                                                        GObject               *arg1,
                                                        gpointer               user_data)                  : Run Last

ianjutaprojectmanager :

the object which received the signal.

arg1 :

user_data :

user data set when the signal handler was connected.