## Anjuta project Anjuta project — Anjuta project |

## Stability Level

Unstable, unless otherwise indicated

## Synopsis

    #include <libanjuta/anjuta-project.h>

    enum                AnjutaProjectValueType;
    enum                AnjutaProjectPropertyFlags;
    struct              AnjutaProjectProperty;
    AnjutaProjectProperty * anjuta_project_property_new     (const gchar *value,
                                                             const gchar *name,
                                                             gpointer user_data);
    AnjutaProjectProperty * anjuta_project_property_copy    (AnjutaProjectProperty *prop);
    void                anjuta_project_property_free        (AnjutaProjectProperty *prop);
    struct              AnjutaProjectPropertyInfo;
    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);
    AnjutaProjectPropertyInfo * anjuta_project_property_info_copy
                                                            (AnjutaProjectPropertyInfo *info);
    void                anjuta_project_property_info_free   (AnjutaProjectPropertyInfo *info);
    enum                AnjutaProjectNodeType;
    enum                AnjutaProjectNodeState;
    struct              AnjutaProjectNode;
    struct              AnjutaProjectNodeClass;
    gboolean            (*AnjutaProjectNodeTraverseFunc)    (AnjutaProjectNode *node,
                                                             gpointer data);
    void                (*AnjutaProjectNodeForeachFunc)     (AnjutaProjectNode *node,
                                                             gpointer data);
    AnjutaProjectNode * anjuta_project_node_root            (AnjutaProjectNode *node);
    AnjutaProjectNode * anjuta_project_node_parent          (AnjutaProjectNode *node);
    AnjutaProjectNode * anjuta_project_node_first_child     (AnjutaProjectNode *node);
    AnjutaProjectNode * anjuta_project_node_last_child      (AnjutaProjectNode *node);
    AnjutaProjectNode * anjuta_project_node_next_sibling    (AnjutaProjectNode *node);
    AnjutaProjectNode * anjuta_project_node_prev_sibling    (AnjutaProjectNode *node);
    AnjutaProjectNode * anjuta_project_node_nth_child       (AnjutaProjectNode *node,
                                                             guint n);
    AnjutaProjectNode * anjuta_project_node_parent_type     (AnjutaProjectNode *node,
                                                             AnjutaProjectNodeType type);
    void                anjuta_project_node_foreach         (AnjutaProjectNode *node,
                                                             GTraverseType order,
                                                             AnjutaProjectNodeForeachFunc func,
                                                             gpointer data);
    void                anjuta_project_node_children_foreach
                                                            (AnjutaProjectNode *node,
                                                             AnjutaProjectNodeForeachFunc func,
                                                             gpointer data);
    AnjutaProjectNode * anjuta_project_node_traverse        (AnjutaProjectNode *node,
                                                             GTraverseType order,
                                                             AnjutaProjectNodeTraverseFunc func,
                                                             gpointer data);
    AnjutaProjectNode * anjuta_project_node_children_traverse
                                                            (AnjutaProjectNode *node,
                                                             AnjutaProjectNodeTraverseFunc func,
                                                             gpointer data);
    void                anjuta_project_node_check           (AnjutaProjectNode *parent);
    void                anjuta_project_node_dump            (AnjutaProjectNode *parent);
    AnjutaProjectNode * anjuta_project_node_insert_before   (AnjutaProjectNode *parent,
                                                             AnjutaProjectNode *sibling,
                                                             AnjutaProjectNode *node);
    AnjutaProjectNode * anjuta_project_node_insert_after    (AnjutaProjectNode *parent,
                                                             AnjutaProjectNode *sibling,
                                                             AnjutaProjectNode *node);
    AnjutaProjectNode * anjuta_project_node_remove          (AnjutaProjectNode *node);
    AnjutaProjectNode * anjuta_project_node_append          (AnjutaProjectNode *parent,
                                                             AnjutaProjectNode *node);
    AnjutaProjectNode * anjuta_project_node_prepend         (AnjutaProjectNode *parent,
                                                             AnjutaProjectNode *node);
    AnjutaProjectNodeType anjuta_project_node_get_node_type (const AnjutaProjectNode *node);
    AnjutaProjectNodeType anjuta_project_node_get_full_type (const AnjutaProjectNode *node);
    AnjutaProjectNodeState anjuta_project_node_get_state    (const AnjutaProjectNode *node);
    const gchar *       anjuta_project_node_get_name        (const AnjutaProjectNode *node);
    GFile *             anjuta_project_node_get_file        (const AnjutaProjectNode *node);
    GList *             anjuta_project_node_get_properties_info
                                                            (AnjutaProjectNode *node);
    GList *             anjuta_project_node_get_properties  (AnjutaProjectNode *node);
    AnjutaProjectPropertyInfo * anjuta_project_node_get_property_info
                                                            (AnjutaProjectNode *node,
                                                             const gchar *id);
    AnjutaProjectProperty * anjuta_project_node_get_property
                                                            (AnjutaProjectNode *node,
                                                             const gchar *id);
    AnjutaProjectProperty * anjuta_project_node_get_map_property
                                                            (AnjutaProjectNode *node,
                                                             const gchar *id,
                                                             const gchar *name);
    AnjutaProjectPropertyInfo * anjuta_project_node_insert_property_info
                                                            (AnjutaProjectNode *node,
                                                             AnjutaProjectPropertyInfo *info);
    AnjutaProjectProperty * anjuta_project_node_insert_property
                                                            (AnjutaProjectNode *node,
                                                             AnjutaProjectPropertyInfo *info,
                                                             AnjutaProjectProperty *property);
    AnjutaProjectProperty * anjuta_project_node_remove_property
                                                            (AnjutaProjectNode *node,
                                                             AnjutaProjectProperty *property);
    gboolean            anjuta_project_node_set_state       (AnjutaProjectNode *node,
                                                             AnjutaProjectNodeState state);
    gboolean            anjuta_project_node_clear_state     (AnjutaProjectNode *node,
                                                             AnjutaProjectNodeState state);
    AnjutaProjectNode * anjuta_project_node_get_group_from_file
                                                            (const AnjutaProjectNode *root,
                                                             GFile *directory);
    AnjutaProjectNode * anjuta_project_target_get_node_from_name
                                                            (const AnjutaProjectNode *parent,
                                                             const gchar *name);
    AnjutaProjectNode * anjuta_project_node_get_source_from_file
                                                            (const AnjutaProjectNode *parent,
                                                             GFile *file);
    struct              AnjutaProjectNodeInfo;
    AnjutaProjectNodeInfo * anjuta_project_node_info_new    (AnjutaProjectNodeType type,
                                                             const gchar *name,
                                                             const gchar *mime_type);
    AnjutaProjectNodeInfo * anjuta_project_node_info_copy   (AnjutaProjectNodeInfo *info);
    void                anjuta_project_node_info_free       (AnjutaProjectNodeInfo *info);
    const gchar *       anjuta_project_node_info_name       (const AnjutaProjectNodeInfo *info);
    const gchar *       anjuta_project_node_info_mime       (const AnjutaProjectNodeInfo *info);
    AnjutaProjectNodeType anjuta_project_node_info_type     (const AnjutaProjectNodeInfo *info);
    const gchar *       anjuta_project_node_info_property_help_id
                                                            (const AnjutaProjectNodeInfo *info);

## Object Hierarchy

      GBoxed
       +----AnjutaProjectProperty

      GBoxed
       +----AnjutaProjectPropertyInfo

      GObject
       +----GInitiallyUnowned
             +----AnjutaProjectNode

      GBoxed
       +----AnjutaProjectNodeInfo

## Properties

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

## Signals

      "loaded"                                         : Run Last
      "updated"                                        : Run Last

## 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.

## Details

### enum AnjutaProjectValueType

    typedef enum {
    	ANJUTA_PROJECT_PROPERTY_STRING = 1,
    	ANJUTA_PROJECT_PROPERTY_LIST,
    	ANJUTA_PROJECT_PROPERTY_BOOLEAN,
    	ANJUTA_PROJECT_PROPERTY_MAP
    } AnjutaProjectValueType;

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

### enum AnjutaProjectPropertyFlags

    typedef enum {
    	ANJUTA_PROJECT_PROPERTY_READ_ONLY = 1 << 0,
    	ANJUTA_PROJECT_PROPERTY_READ_WRITE = 1 << 1,
    	ANJUTA_PROJECT_PROPERTY_HIDDEN = 1 << 2,
    	ANJUTA_PROJECT_PROPERTY_STATIC = 1 << 3,
    } AnjutaProjectPropertyFlags;

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

### struct AnjutaProjectProperty

    struct AnjutaProjectProperty {
    	gchar *name;
    	gchar *value;
    	AnjutaProjectPropertyInfo *info;
    	gpointer user_data;
    };

### anjuta_project_property_new ()

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

`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);

### struct AnjutaProjectPropertyInfo

    struct AnjutaProjectPropertyInfo {
        gchar *id;
    	gchar *name;
        AnjutaProjectValueType type;
        AnjutaProjectPropertyFlags flags;
        gchar *description;
        AnjutaProjectProperty *default_value;
    	gpointer user_data;
    };

### 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);

`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);

### enum AnjutaProjectNodeType

    typedef enum {
    	ANJUTA_PROJECT_UNKNOWN = 0,
    	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 = 1 << 16,
    	ANJUTA_PROJECT_PROJECT = 1 << 17,
    	ANJUTA_PROJECT_PRIMARY = 1 << 18,
    	ANJUTA_PROJECT_EXECUTABLE = 1 << 19,
    	ANJUTA_PROJECT_READ_ONLY = 1 << 20,	 /* Node cannot be created by the backend */
    	ANJUTA_PROJECT_FRAME= 1 << 21,		/* Project configuration file */
    	ANJUTA_PROJECT_ID_MASK = 0xFFFF << 0,
    	ANJUTA_PROJECT_FLAG_MASK = 0xFF << 16,
    	ANJUTA_PROJECT_TYPE_MASK = 0xFF << 24,
    	ANJUTA_PROJECT_ROOT = 1 << 24,
    	ANJUTA_PROJECT_GROUP = 2 << 24,
    	ANJUTA_PROJECT_TARGET = 3 << 24,
    	ANJUTA_PROJECT_SOURCE = 4 << 24,
    	ANJUTA_PROJECT_MODULE = 5 << 24,
    	ANJUTA_PROJECT_PACKAGE = 6 << 24,
    	ANJUTA_PROJECT_VARIABLE = 7 << 24,
    	ANJUTA_PROJECT_OBJECT = 8 << 24,
    } AnjutaProjectNodeType;

`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

    typedef enum {
    	ANJUTA_PROJECT_OK = 0,
    	ANJUTA_PROJECT_MODIFIED = 1 << 0,		/* Node has been modified */
    	ANJUTA_PROJECT_INCOMPLETE = 1 << 1, /* Node is not fully loaded */
    	ANJUTA_PROJECT_LOADING = 1 << 2, /* Node is send to the worker thread */
    	ANJUTA_PROJECT_REMOVED = 1 << 3,		/* Node has been removed */
    	ANJUTA_PROJECT_CAN_ADD_GROUP = 1 << 8,
    	ANJUTA_PROJECT_CAN_ADD_TARGET = 1 << 9,
    	ANJUTA_PROJECT_CAN_ADD_SOURCE = 1 << 10,
    	ANJUTA_PROJECT_CAN_ADD_MODULE = 1 << 11,
    	ANJUTA_PROJECT_CAN_ADD_PACKAGE = 1 << 12,
    	ANJUTA_PROJECT_CAN_REMOVE = 1 << 16,
    	ANJUTA_PROJECT_CAN_SAVE = 1 << 17,
    	ANJUTA_PROJECT_REMOVE_FILE = 1 << 18
    } AnjutaProjectNodeState;

`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.

### struct AnjutaProjectNodeClass

    struct AnjutaProjectNodeClass {
    	GInitiallyUnownedClass parent_class;

    	void				(*updated)			(GError *error);
    	void				(*loaded)			(GError *error);
    };

### AnjutaProjectNodeTraverseFunc ()

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

### AnjutaProjectNodeForeachFunc ()

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

`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);

`func` : | . [scope call]

### anjuta_project_node_children_foreach ()

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

`func` : | . [scope call]

### anjuta_project_node_traverse ()

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

`func` : | . [scope call]
Returns : | . [transfer none]

### anjuta_project_node_children_traverse ()

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

`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);

`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);

`sibling` : | . [allow-none][transfer none]
`node` : | . [transfer none]
Returns : | . [transfer none]

### anjuta_project_node_remove ()

    AnjutaProjectNode * anjuta_project_node_remove          (AnjutaProjectNode *node);

`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);

`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);

`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);

`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);

`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);

`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);

`parent` : | the parent node
`file` : | The file to query the source for
Returns : | . [transfer none]

### struct AnjutaProjectNodeInfo

    struct AnjutaProjectNodeInfo {
    	AnjutaProjectNodeType type;
    	gchar *name;
    	gchar *mime_type;
    	gchar *property_help_id;
    };

### anjuta_project_node_info_new ()

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

`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);

## Property Details

### The `"file"` property

      "file"                     GFile*                : Read / Write

The GFile for the node.

### The `"name"` property

      "name"                     gchar*                : Read / Write

Node name.

Default value: ""

### The `"state"` property

      "state"                    AnjutaProjectNodeState  : Read / Write

Node state.

### The `"type"` property

      "type"                     AnjutaProjectNodeType  : Read / Write

Node type.

## Signal Details

### The `"loaded"` signal

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

`anjutaprojectnode` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.

### The `"updated"` signal

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

`anjutaprojectnode` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.