## Anjuta project

Anjuta project — Anjuta project

## Stability Level

Unstable, unless otherwise indicated

## Functions

AnjutaProjectProperty * | anjuta_project_property_new ()
AnjutaProjectProperty * | anjuta_project_property_copy ()
void | anjuta_project_property_free ()
AnjutaProjectPropertyInfo * | anjuta_project_property_info_new ()
AnjutaProjectPropertyInfo * | anjuta_project_property_info_copy ()
void | anjuta_project_property_info_free ()
gboolean | ( *AnjutaProjectNodeTraverseFunc ) ()
void | ( *AnjutaProjectNodeForeachFunc ) ()
AnjutaProjectNode * | anjuta_project_node_root ()
AnjutaProjectNode * | anjuta_project_node_parent ()
AnjutaProjectNode * | anjuta_project_node_first_child ()
AnjutaProjectNode * | anjuta_project_node_last_child ()
AnjutaProjectNode * | anjuta_project_node_next_sibling ()
AnjutaProjectNode * | anjuta_project_node_prev_sibling ()
AnjutaProjectNode * | anjuta_project_node_nth_child ()
AnjutaProjectNode * | anjuta_project_node_parent_type ()
void | anjuta_project_node_foreach ()
void | anjuta_project_node_children_foreach ()
AnjutaProjectNode * | anjuta_project_node_traverse ()
AnjutaProjectNode * | anjuta_project_node_children_traverse ()
void | anjuta_project_node_check ()
void | anjuta_project_node_dump ()
AnjutaProjectNode * | anjuta_project_node_insert_before ()
AnjutaProjectNode * | anjuta_project_node_insert_after ()
AnjutaProjectNode * | anjuta_project_node_remove ()
AnjutaProjectNode * | anjuta_project_node_append ()
AnjutaProjectNode * | anjuta_project_node_prepend ()
AnjutaProjectNodeType | anjuta_project_node_get_node_type ()
AnjutaProjectNodeType | anjuta_project_node_get_full_type ()
AnjutaProjectNodeState | anjuta_project_node_get_state ()
const gchar * | anjuta_project_node_get_name ()
GFile * | anjuta_project_node_get_file ()
GList * | anjuta_project_node_get_properties_info ()
GList * | anjuta_project_node_get_properties ()
AnjutaProjectPropertyInfo * | anjuta_project_node_get_property_info ()
AnjutaProjectProperty * | anjuta_project_node_get_property ()
AnjutaProjectProperty * | anjuta_project_node_get_map_property ()
AnjutaProjectPropertyInfo * | anjuta_project_node_insert_property_info ()
AnjutaProjectProperty * | anjuta_project_node_insert_property ()
AnjutaProjectProperty * | anjuta_project_node_remove_property ()
gboolean | anjuta_project_node_set_state ()
gboolean | anjuta_project_node_clear_state ()
AnjutaProjectNode * | anjuta_project_node_get_group_from_file ()
AnjutaProjectNode * | anjuta_project_target_get_node_from_name ()
AnjutaProjectNode * | anjuta_project_node_get_source_from_file ()
AnjutaProjectNodeInfo * | anjuta_project_node_info_new ()
AnjutaProjectNodeInfo * | anjuta_project_node_info_copy ()
void | anjuta_project_node_info_free ()
const gchar * | anjuta_project_node_info_name ()
const gchar * | anjuta_project_node_info_mime ()
AnjutaProjectNodeType | anjuta_project_node_info_type ()
const gchar * | anjuta_project_node_info_property_help_id ()

## Properties

GFile * | file | Read / Write
gchar * | name | Read / Write
AnjutaProjectNodeState | state | Read / Write
AnjutaProjectNodeType | type | Read / Write

## Signals

void | loaded | Run Last
void | updated | Run Last

## Types and Values

enum | AnjutaProjectValueType
enum | AnjutaProjectPropertyFlags
enum | AnjutaProjectNodeType
enum | AnjutaProjectNodeState
struct | AnjutaProjectNode

## Object Hierarchy

        GBoxed
        ├── AnjutaProjectNodeInfo
        ├── AnjutaProjectProperty
        ╰── AnjutaProjectPropertyInfo
        GObject
        ╰── GInitiallyUnowned
            ╰── AnjutaProjectNode

## Includes

    #include <libanjuta/anjuta-project.h>

## Description

A project in Anjuta is represented by a tree. There are six kinds of node.

The root node is the parent of all other nodes, it can implement IAnjutaProject interface and represent the project itself but it is not mandatory.

A module node represents a module in autotools project, it is a group of packages.

A package node represents a package in autotools project, it is library.

A group node is used to group several target or source, it can represent a directory by example.

A target node represents an object file defined explicitely. There are different kinds of target: program, library... A target have as children all source needed to build it.

A source node represents a source file. These are lead of the tree, a source node cannot have children.

All these nodes are base objects. They have derived in each project backend to provide more specific information.

## Functions

### anjuta_project_property_new ()

    AnjutaProjectProperty *
    anjuta_project_property_new (const gchar *value,
                                 const gchar *name,
                                 gpointer user_data);

#### Parameters

value | Value. | [transfer none]
name | Optional name used by map properties. | [allow-none][transfer none]
user_data | Optional user data. | [allow-none][transfer full]

#### Returns

.

[transfer full]

### anjuta_project_property_copy ()

    AnjutaProjectProperty *
    anjuta_project_property_copy (AnjutaProjectProperty *prop);

### anjuta_project_property_free ()

    void
    anjuta_project_property_free (AnjutaProjectProperty *prop);

### anjuta_project_property_info_new ()

    AnjutaProjectPropertyInfo *
    anjuta_project_property_info_new (const gchar *id,
                                      const gchar *name,
                                      AnjutaProjectValueType type,
                                      AnjutaProjectPropertyFlags flags,
                                      const gchar *description,
                                      AnjutaProjectProperty *default_value,
                                      gpointer user_data);

#### Parameters

id | Property identifier. | [transfer none]
name | Translatable property name. | [transfer none]
type | Property value type |
flags | Property flags |
description | Property description. | [transfer none]
default_value | Default property value. | [transfer full]
user_data | Optional user data. | [allow-none][transfer full]

#### Returns

.

[transfer full]

### anjuta_project_property_info_copy ()

    AnjutaProjectPropertyInfo *
    anjuta_project_property_info_copy (AnjutaProjectPropertyInfo *info);

### anjuta_project_property_info_free ()

    void
    anjuta_project_property_info_free (AnjutaProjectPropertyInfo *info);

### AnjutaProjectNodeTraverseFunc ()

    gboolean
    (*AnjutaProjectNodeTraverseFunc) (AnjutaProjectNode *node,
                                      gpointer data);

### AnjutaProjectNodeForeachFunc ()

    void
    (*AnjutaProjectNodeForeachFunc) (AnjutaProjectNode *node,
                                     gpointer data);

#### Parameters

data | . | [closure]

### anjuta_project_node_root ()

    AnjutaProjectNode *
    anjuta_project_node_root (AnjutaProjectNode *node);

#### Returns

.

[transfer none]

### anjuta_project_node_parent ()

    AnjutaProjectNode *
    anjuta_project_node_parent (AnjutaProjectNode *node);

#### Returns

.

[transfer none]

### anjuta_project_node_first_child ()

    AnjutaProjectNode *
    anjuta_project_node_first_child (AnjutaProjectNode *node);

#### Returns

.

[transfer none]

### anjuta_project_node_last_child ()

    AnjutaProjectNode *
    anjuta_project_node_last_child (AnjutaProjectNode *node);

#### Returns

.

[transfer none]

### anjuta_project_node_next_sibling ()

    AnjutaProjectNode *
    anjuta_project_node_next_sibling (AnjutaProjectNode *node);

#### Returns

.

[transfer none]

### anjuta_project_node_prev_sibling ()

    AnjutaProjectNode *
    anjuta_project_node_prev_sibling (AnjutaProjectNode *node);

#### Returns

.

[transfer none]

### anjuta_project_node_nth_child ()

    AnjutaProjectNode *
    anjuta_project_node_nth_child (AnjutaProjectNode *node,
                                   guint n);

#### Returns

.

[transfer none]

### anjuta_project_node_parent_type ()

    AnjutaProjectNode *
    anjuta_project_node_parent_type (AnjutaProjectNode *node,
                                     AnjutaProjectNodeType type);

#### Returns

.

[transfer none]

### anjuta_project_node_foreach ()

    void
    anjuta_project_node_foreach (AnjutaProjectNode *node,
                                 GTraverseType order,
                                 AnjutaProjectNodeForeachFunc func,
                                 gpointer data);

#### Parameters

func | . | [scope call]

### anjuta_project_node_children_foreach ()

    void
    anjuta_project_node_children_foreach (AnjutaProjectNode *node,
                                          AnjutaProjectNodeForeachFunc func,
                                          gpointer data);

#### Parameters

func | . | [scope call]

### anjuta_project_node_traverse ()

    AnjutaProjectNode *
    anjuta_project_node_traverse (AnjutaProjectNode *node,
                                  GTraverseType order,
                                  AnjutaProjectNodeTraverseFunc func,
                                  gpointer data);

#### Parameters

func | . | [scope call]

#### Returns

.

[transfer none]

### anjuta_project_node_children_traverse ()

    AnjutaProjectNode *
    anjuta_project_node_children_traverse (AnjutaProjectNode *node,
                                           AnjutaProjectNodeTraverseFunc func,
                                           gpointer data);

#### Parameters

func | . | [scope call]

#### Returns

.

[transfer none]

### anjuta_project_node_check ()

    void
    anjuta_project_node_check (AnjutaProjectNode *parent);

### anjuta_project_node_dump ()

    void
    anjuta_project_node_dump (AnjutaProjectNode *parent);

### anjuta_project_node_insert_before ()

    AnjutaProjectNode *
    anjuta_project_node_insert_before (AnjutaProjectNode *parent,
                                       AnjutaProjectNode *sibling,
                                       AnjutaProjectNode *node);

#### Parameters

sibling | . | [allow-none][transfer none]
node | . | [transfer none]

#### Returns

.

[transfer none]

### anjuta_project_node_insert_after ()

    AnjutaProjectNode *
    anjuta_project_node_insert_after (AnjutaProjectNode *parent,
                                      AnjutaProjectNode *sibling,
                                      AnjutaProjectNode *node);

#### Parameters

sibling | . | [allow-none][transfer none]
node | . | [transfer none]

#### Returns

.

[transfer none]

### anjuta_project_node_remove ()

    AnjutaProjectNode *
    anjuta_project_node_remove (AnjutaProjectNode *node);

#### Parameters

node | . | [transfer none]

#### Returns

.

[transfer full]

### anjuta_project_node_append ()

    AnjutaProjectNode *
    anjuta_project_node_append (AnjutaProjectNode *parent,
                                AnjutaProjectNode *node);

#### Returns

.

[transfer none]

### anjuta_project_node_prepend ()

    AnjutaProjectNode *
    anjuta_project_node_prepend (AnjutaProjectNode *parent,
                                 AnjutaProjectNode *node);

#### Returns

.

[transfer none]

### anjuta_project_node_get_node_type ()

    AnjutaProjectNodeType
    anjuta_project_node_get_node_type (const AnjutaProjectNode *node);

### anjuta_project_node_get_full_type ()

    AnjutaProjectNodeType
    anjuta_project_node_get_full_type (const AnjutaProjectNode *node);

### anjuta_project_node_get_state ()

    AnjutaProjectNodeState
    anjuta_project_node_get_state (const AnjutaProjectNode *node);

### anjuta_project_node_get_name ()

    const gchar *
    anjuta_project_node_get_name (const AnjutaProjectNode *node);

### anjuta_project_node_get_file ()

    GFile *
    anjuta_project_node_get_file (const AnjutaProjectNode *node);

#### Returns

.

[transfer none]

### anjuta_project_node_get_properties_info ()

    GList *
    anjuta_project_node_get_properties_info
                                   (AnjutaProjectNode *node);

#### Returns

.

[transfer none][element-type Anjuta.ProjectPropertyInfo]

### anjuta_project_node_get_properties ()

    GList *
    anjuta_project_node_get_properties (AnjutaProjectNode *node);

#### Returns

.

[transfer none][element-type Anjuta.ProjectProperty]

### anjuta_project_node_get_property_info ()

    AnjutaProjectPropertyInfo *
    anjuta_project_node_get_property_info (AnjutaProjectNode *node,
                                           const gchar *id);

#### Parameters

node | . | [transfer none]
id | Property identifier. | [transfer none]

#### Returns

.

[transfer none]

### anjuta_project_node_get_property ()

    AnjutaProjectProperty *
    anjuta_project_node_get_property (AnjutaProjectNode *node,
                                      const gchar *id);

#### Parameters

node | . | [transfer none]
id | Property identifier. | [transfer none]

#### Returns

.

[transfer none]

### anjuta_project_node_get_map_property ()

    AnjutaProjectProperty *
    anjuta_project_node_get_map_property (AnjutaProjectNode *node,
                                          const gchar *id,
                                          const gchar *name);

### anjuta_project_node_insert_property_info ()

    AnjutaProjectPropertyInfo *
    anjuta_project_node_insert_property_info
                                   (AnjutaProjectNode *node,
                                    AnjutaProjectPropertyInfo *info);

#### Parameters

node | . | [transfer none]
info | . | [transfer none]

#### Returns

.

[transfer none]

### anjuta_project_node_insert_property ()

    AnjutaProjectProperty *
    anjuta_project_node_insert_property (AnjutaProjectNode *node,
                                         AnjutaProjectPropertyInfo *info,
                                         AnjutaProjectProperty *property);

#### Parameters

node | . | [transfer none]
info | . | [transfer none]
property | . | [transfer full]

#### Returns

.

[transfer none]

### anjuta_project_node_remove_property ()

    AnjutaProjectProperty *
    anjuta_project_node_remove_property (AnjutaProjectNode *node,
                                         AnjutaProjectProperty *property);

### anjuta_project_node_set_state ()

    gboolean
    anjuta_project_node_set_state (AnjutaProjectNode *node,
                                   AnjutaProjectNodeState state);

### anjuta_project_node_clear_state ()

    gboolean
    anjuta_project_node_clear_state (AnjutaProjectNode *node,
                                     AnjutaProjectNodeState state);

### anjuta_project_node_get_group_from_file ()

    AnjutaProjectNode *
    anjuta_project_node_get_group_from_file
                                   (const AnjutaProjectNode *root,
                                    GFile *directory);

#### Parameters

root | the root node |
directory | Directory to search in |

#### Returns

.

[transfer none]

### anjuta_project_target_get_node_from_name ()

    AnjutaProjectNode *
    anjuta_project_target_get_node_from_name
                                   (const AnjutaProjectNode *parent,
                                    const gchar *name);

### anjuta_project_node_get_source_from_file ()

    AnjutaProjectNode *
    anjuta_project_node_get_source_from_file
                                   (const AnjutaProjectNode *parent,
                                    GFile *file);

#### Parameters

parent | the parent node |
file | The file to query the source for |

#### Returns

.

[transfer none]

### anjuta_project_node_info_new ()

    AnjutaProjectNodeInfo *
    anjuta_project_node_info_new (AnjutaProjectNodeType type,
                                  const gchar *name,
                                  const gchar *mime_type);

#### Parameters

name | . | [transfer none]
mime_type | . | [transfer none]

#### Returns

.

[transfer full]

### anjuta_project_node_info_copy ()

    AnjutaProjectNodeInfo *
    anjuta_project_node_info_copy (AnjutaProjectNodeInfo *info);

### anjuta_project_node_info_free ()

    void
    anjuta_project_node_info_free (AnjutaProjectNodeInfo *info);

### anjuta_project_node_info_name ()

    const gchar *
    anjuta_project_node_info_name (const AnjutaProjectNodeInfo *info);

### anjuta_project_node_info_mime ()

    const gchar *
    anjuta_project_node_info_mime (const AnjutaProjectNodeInfo *info);

### anjuta_project_node_info_type ()

    AnjutaProjectNodeType
    anjuta_project_node_info_type (const AnjutaProjectNodeInfo *info);

### anjuta_project_node_info_property_help_id ()

    const gchar *
    anjuta_project_node_info_property_help_id
                                   (const AnjutaProjectNodeInfo *info);

## Types and Values

### enum AnjutaProjectValueType

#### Members

ANJUTA_PROJECT_PROPERTY_STRING |  |
ANJUTA_PROJECT_PROPERTY_LIST |  |
ANJUTA_PROJECT_PROPERTY_BOOLEAN |  |
ANJUTA_PROJECT_PROPERTY_MAP |  |

### enum AnjutaProjectPropertyFlags

#### Members

ANJUTA_PROJECT_PROPERTY_READ_ONLY |  |
ANJUTA_PROJECT_PROPERTY_READ_WRITE |  |
ANJUTA_PROJECT_PROPERTY_HIDDEN |  |
ANJUTA_PROJECT_PROPERTY_STATIC |  |

### enum AnjutaProjectNodeType

#### Members

ANJUTA_PROJECT_UNKNOWN |  |
ANJUTA_PROJECT_SHAREDLIB |  |
ANJUTA_PROJECT_STATICLIB |  |
ANJUTA_PROJECT_PROGRAM |  |
ANJUTA_PROJECT_PYTHON |  |
ANJUTA_PROJECT_JAVA |  |
ANJUTA_PROJECT_LISP |  |
ANJUTA_PROJECT_HEADER |  |
ANJUTA_PROJECT_MAN |  |
ANJUTA_PROJECT_INFO |  |
ANJUTA_PROJECT_GENERIC |  |
ANJUTA_PROJECT_DATA |  |
ANJUTA_PROJECT_EXTRA |  |
ANJUTA_PROJECT_INTLTOOL |  |
ANJUTA_PROJECT_CONFIGURE |  |
ANJUTA_PROJECT_IDL |  |
ANJUTA_PROJECT_MKENUMS |  |
ANJUTA_PROJECT_GENMARSHAL |  |
ANJUTA_PROJECT_SCRIPT |  |
ANJUTA_PROJECT_ROOT_GROUP |  |
ANJUTA_PROJECT_LT_MODULE |  |
ANJUTA_PROJECT_PROXY |  |
ANJUTA_PROJECT_PROJECT |  |
ANJUTA_PROJECT_PRIMARY |  |
ANJUTA_PROJECT_EXECUTABLE |  |
ANJUTA_PROJECT_READ_ONLY |  |
ANJUTA_PROJECT_FRAME |  |
ANJUTA_PROJECT_ID_MASK |  |
ANJUTA_PROJECT_FLAG_MASK |  |
ANJUTA_PROJECT_TYPE_MASK |  |
ANJUTA_PROJECT_ROOT |  |
ANJUTA_PROJECT_GROUP |  |
ANJUTA_PROJECT_TARGET |  |
ANJUTA_PROJECT_SOURCE |  |
ANJUTA_PROJECT_MODULE |  |
ANJUTA_PROJECT_PACKAGE |  |
ANJUTA_PROJECT_VARIABLE |  |
ANJUTA_PROJECT_OBJECT |  |

### enum AnjutaProjectNodeState

#### Members

ANJUTA_PROJECT_OK |  |
ANJUTA_PROJECT_MODIFIED |  |
ANJUTA_PROJECT_INCOMPLETE |  |
ANJUTA_PROJECT_LOADING |  |
ANJUTA_PROJECT_REMOVED |  |
ANJUTA_PROJECT_CAN_ADD_GROUP |  |
ANJUTA_PROJECT_CAN_ADD_TARGET |  |
ANJUTA_PROJECT_CAN_ADD_SOURCE |  |
ANJUTA_PROJECT_CAN_ADD_MODULE |  |
ANJUTA_PROJECT_CAN_ADD_PACKAGE |  |
ANJUTA_PROJECT_CAN_REMOVE |  |
ANJUTA_PROJECT_CAN_SAVE |  |
ANJUTA_PROJECT_REMOVE_FILE |  |

### struct AnjutaProjectNode

    struct AnjutaProjectNode;

The AnjutaProjectNode struct contains private data only, and should accessed using the functions below.

## Property Details

### The `“file”` property

      “file”                     GFile *

The GFile for the node.

Flags: Read / Write

### The `“name”` property

      “name”                     gchar *

Node name.

Flags: Read / Write

Default value: ""

### The `“state”` property

      “state”                    AnjutaProjectNodeState

Node state.

Flags: Read / Write

### The `“type”` property

      “type”                     AnjutaProjectNodeType

Node type.

Flags: Read / Write

## Signal Details

### The `“loaded”` signal

    void
    user_function (AnjutaProjectNode *anjutaprojectnode,
                   gpointer           arg1,
                   GError            *arg2,
                   gpointer           user_data)

Flags: Run Last

### The `“updated”` signal

    void
    user_function (AnjutaProjectNode *anjutaprojectnode,
                   gpointer           arg1,
                   GError            *arg2,
                   gpointer           user_data)

Flags: Run Last