![]() |
![]() |
![]() |
Anjuta Developers Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy | Properties | Signals |
#include <libanjuta/anjuta-project.h> struct AnjutaProjectNode; struct AnjutaProjectNodeClass; void (*AnjutaProjectNodeForeachFunc) (AnjutaProjectNode *node
,gpointer data
); struct AnjutaProjectNodeInfo; enum AnjutaProjectNodeState; gboolean (*AnjutaProjectNodeTraverseFunc) (AnjutaProjectNode *node
,gpointer data
); enum AnjutaProjectNodeType; struct AnjutaProjectProperty; enum AnjutaProjectPropertyFlags; struct AnjutaProjectPropertyInfo; enum AnjutaProjectValueType; AnjutaProjectNode * anjuta_project_node_append (AnjutaProjectNode *parent
,AnjutaProjectNode *node
); void anjuta_project_node_check (AnjutaProjectNode *parent
); void anjuta_project_node_children_foreach (AnjutaProjectNode *node
,AnjutaProjectNodeForeachFunc func
,gpointer data
); AnjutaProjectNode * anjuta_project_node_children_traverse (AnjutaProjectNode *node
,AnjutaProjectNodeTraverseFunc func
,gpointer data
); gboolean anjuta_project_node_clear_state (AnjutaProjectNode *node
,AnjutaProjectNodeState state
); void anjuta_project_node_dump (AnjutaProjectNode *parent
); AnjutaProjectNode * anjuta_project_node_first_child (AnjutaProjectNode *node
); void anjuta_project_node_foreach (AnjutaProjectNode *node
,GTraverseType order
,AnjutaProjectNodeForeachFunc func
,gpointer data
); GFile * anjuta_project_node_get_file (const AnjutaProjectNode *node
); AnjutaProjectNodeType anjuta_project_node_get_full_type (const AnjutaProjectNode *node
); AnjutaProjectNode * anjuta_project_node_get_group_from_file (const AnjutaProjectNode *root
,GFile *directory
); AnjutaProjectProperty * anjuta_project_node_get_map_property (AnjutaProjectNode *node
,const gchar *id
,const gchar *name
); const gchar * anjuta_project_node_get_name (const AnjutaProjectNode *node
); AnjutaProjectNodeType anjuta_project_node_get_node_type (const AnjutaProjectNode *node
); GList * anjuta_project_node_get_properties (AnjutaProjectNode *node
); GList * anjuta_project_node_get_properties_info (AnjutaProjectNode *node
); AnjutaProjectProperty * anjuta_project_node_get_property (AnjutaProjectNode *node
,const gchar *id
); AnjutaProjectPropertyInfo * anjuta_project_node_get_property_info (AnjutaProjectNode *node
,const gchar *id
); AnjutaProjectNode * anjuta_project_node_get_source_from_file (const AnjutaProjectNode *parent
,GFile *file
); AnjutaProjectNodeState anjuta_project_node_get_state (const AnjutaProjectNode *node
); AnjutaProjectNodeInfo * anjuta_project_node_info_copy (AnjutaProjectNodeInfo *info
); void anjuta_project_node_info_free (AnjutaProjectNodeInfo *info
); const gchar * anjuta_project_node_info_mime (const AnjutaProjectNodeInfo *info
); const gchar * anjuta_project_node_info_name (const AnjutaProjectNodeInfo *info
); AnjutaProjectNodeInfo * anjuta_project_node_info_new (AnjutaProjectNodeType type
,const gchar *name
,const gchar *mime_type
); const gchar * anjuta_project_node_info_property_help_id (const AnjutaProjectNodeInfo *info
); AnjutaProjectNodeType anjuta_project_node_info_type (const AnjutaProjectNodeInfo *info
); AnjutaProjectNode * anjuta_project_node_insert_after (AnjutaProjectNode *parent
,AnjutaProjectNode *sibling
,AnjutaProjectNode *node
); AnjutaProjectNode * anjuta_project_node_insert_before (AnjutaProjectNode *parent
,AnjutaProjectNode *sibling
,AnjutaProjectNode *node
); AnjutaProjectProperty * anjuta_project_node_insert_property (AnjutaProjectNode *node
,AnjutaProjectPropertyInfo *info
,AnjutaProjectProperty *property
); AnjutaProjectPropertyInfo * anjuta_project_node_insert_property_info (AnjutaProjectNode *node
,AnjutaProjectPropertyInfo *info
); AnjutaProjectNode * anjuta_project_node_last_child (AnjutaProjectNode *node
); AnjutaProjectNode * anjuta_project_node_next_sibling (AnjutaProjectNode *node
); AnjutaProjectNode * anjuta_project_node_nth_child (AnjutaProjectNode *node
,guint n
); AnjutaProjectNode * anjuta_project_node_parent (AnjutaProjectNode *node
); AnjutaProjectNode * anjuta_project_node_parent_type (AnjutaProjectNode *node
,AnjutaProjectNodeType type
); AnjutaProjectNode * anjuta_project_node_prepend (AnjutaProjectNode *parent
,AnjutaProjectNode *node
); AnjutaProjectNode * anjuta_project_node_prev_sibling (AnjutaProjectNode *node
); AnjutaProjectNode * anjuta_project_node_remove (AnjutaProjectNode *node
); AnjutaProjectProperty * anjuta_project_node_remove_property (AnjutaProjectNode *node
,AnjutaProjectProperty *property
); AnjutaProjectNode * anjuta_project_node_root (AnjutaProjectNode *node
); gboolean anjuta_project_node_set_state (AnjutaProjectNode *node
,AnjutaProjectNodeState state
); AnjutaProjectNode * anjuta_project_node_traverse (AnjutaProjectNode *node
,GTraverseType order
,AnjutaProjectNodeTraverseFunc func
,gpointer data
); AnjutaProjectProperty * anjuta_project_property_copy (AnjutaProjectProperty *prop
); void anjuta_project_property_free (AnjutaProjectProperty *prop
); AnjutaProjectPropertyInfo * anjuta_project_property_info_copy (AnjutaProjectPropertyInfo *info
); void anjuta_project_property_info_free (AnjutaProjectPropertyInfo *info
); 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
); AnjutaProjectProperty * anjuta_project_property_new (const gchar *value
,const gchar *name
,gpointer user_data
); AnjutaProjectNode * anjuta_project_target_get_node_from_name (const AnjutaProjectNode *parent
,const gchar *name
);
GObject +----GInitiallyUnowned +----AnjutaProjectNode
GBoxed +----AnjutaProjectNodeInfo
GBoxed +----AnjutaProjectProperty
GBoxed +----AnjutaProjectPropertyInfo
"file" GFile* : Read / Write "name" gchar* : Read / Write "state" AnjutaProjectNodeState : Read / Write "type" AnjutaProjectNodeType : Read / Write
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.
struct AnjutaProjectNode;
The AnjutaProjectNode struct contains private data only, and should accessed using the functions below.
struct AnjutaProjectNodeClass { GInitiallyUnownedClass parent_class; void (*updated) (GError *error); void (*loaded) (GError *error); };
void (*AnjutaProjectNodeForeachFunc) (AnjutaProjectNode *node
,gpointer data
);
|
. [closure] |
struct AnjutaProjectNodeInfo { AnjutaProjectNodeType type; gchar *name; gchar *mime_type; gchar *property_help_id; };
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;
gboolean (*AnjutaProjectNodeTraverseFunc) (AnjutaProjectNode *node
,gpointer data
);
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;
struct AnjutaProjectProperty { gchar *name; gchar *value; AnjutaProjectPropertyInfo *info; gpointer user_data; };
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;
struct AnjutaProjectPropertyInfo { gchar *id; gchar *name; AnjutaProjectValueType type; AnjutaProjectPropertyFlags flags; gchar *description; AnjutaProjectProperty *default_value; gpointer user_data; };
typedef enum { ANJUTA_PROJECT_PROPERTY_STRING = 1, ANJUTA_PROJECT_PROPERTY_LIST, ANJUTA_PROJECT_PROPERTY_BOOLEAN, ANJUTA_PROJECT_PROPERTY_MAP } AnjutaProjectValueType;
AnjutaProjectNode * anjuta_project_node_append (AnjutaProjectNode *parent
,AnjutaProjectNode *node
);
Returns : |
. [transfer none] |
void anjuta_project_node_children_foreach (AnjutaProjectNode *node
,AnjutaProjectNodeForeachFunc func
,gpointer data
);
|
. [scope call] |
AnjutaProjectNode * anjuta_project_node_children_traverse (AnjutaProjectNode *node
,AnjutaProjectNodeTraverseFunc func
,gpointer data
);
|
. [scope call] |
Returns : |
. [transfer none] |
gboolean anjuta_project_node_clear_state (AnjutaProjectNode *node
,AnjutaProjectNodeState state
);
AnjutaProjectNode * anjuta_project_node_first_child (AnjutaProjectNode *node
);
Returns : |
. [transfer none] |
void anjuta_project_node_foreach (AnjutaProjectNode *node
,GTraverseType order
,AnjutaProjectNodeForeachFunc func
,gpointer data
);
|
. [scope call] |
GFile * anjuta_project_node_get_file (const AnjutaProjectNode *node
);
Returns : |
. [transfer none] |
AnjutaProjectNodeType anjuta_project_node_get_full_type (const AnjutaProjectNode *node
);
AnjutaProjectNode * anjuta_project_node_get_group_from_file (const AnjutaProjectNode *root
,GFile *directory
);
|
the root node |
|
Directory to search in |
Returns : |
. [transfer none] |
AnjutaProjectProperty * anjuta_project_node_get_map_property (AnjutaProjectNode *node
,const gchar *id
,const gchar *name
);
const gchar * anjuta_project_node_get_name (const AnjutaProjectNode *node
);
AnjutaProjectNodeType anjuta_project_node_get_node_type (const AnjutaProjectNode *node
);
GList * anjuta_project_node_get_properties (AnjutaProjectNode *node
);
Returns : |
. [transfer none][element-type Anjuta.ProjectProperty] |
GList * anjuta_project_node_get_properties_info
(AnjutaProjectNode *node
);
Returns : |
. [transfer none][element-type Anjuta.ProjectPropertyInfo] |
AnjutaProjectProperty * anjuta_project_node_get_property (AnjutaProjectNode *node
,const gchar *id
);
|
. [transfer none] |
|
Property identifier. [transfer none] |
Returns : |
. [transfer none] |
AnjutaProjectPropertyInfo * anjuta_project_node_get_property_info (AnjutaProjectNode *node
,const gchar *id
);
|
. [transfer none] |
|
Property identifier. [transfer none] |
Returns : |
. [transfer none] |
AnjutaProjectNode * anjuta_project_node_get_source_from_file (const AnjutaProjectNode *parent
,GFile *file
);
|
the parent node |
|
The file to query the source for |
Returns : |
. [transfer none] |
AnjutaProjectNodeState anjuta_project_node_get_state (const AnjutaProjectNode *node
);
AnjutaProjectNodeInfo * anjuta_project_node_info_copy (AnjutaProjectNodeInfo *info
);
const gchar * anjuta_project_node_info_mime (const AnjutaProjectNodeInfo *info
);
const gchar * anjuta_project_node_info_name (const AnjutaProjectNodeInfo *info
);
AnjutaProjectNodeInfo * anjuta_project_node_info_new (AnjutaProjectNodeType type
,const gchar *name
,const gchar *mime_type
);
|
. [transfer none] |
|
. [transfer none] |
Returns : |
. [transfer full] |
const gchar * anjuta_project_node_info_property_help_id
(const AnjutaProjectNodeInfo *info
);
AnjutaProjectNodeType anjuta_project_node_info_type (const AnjutaProjectNodeInfo *info
);
AnjutaProjectNode * anjuta_project_node_insert_after (AnjutaProjectNode *parent
,AnjutaProjectNode *sibling
,AnjutaProjectNode *node
);
|
. [allow-none][transfer none] |
|
. [transfer none] |
Returns : |
. [transfer none] |
AnjutaProjectNode * anjuta_project_node_insert_before (AnjutaProjectNode *parent
,AnjutaProjectNode *sibling
,AnjutaProjectNode *node
);
|
. [allow-none][transfer none] |
|
. [transfer none] |
Returns : |
. [transfer none] |
AnjutaProjectProperty * anjuta_project_node_insert_property (AnjutaProjectNode *node
,AnjutaProjectPropertyInfo *info
,AnjutaProjectProperty *property
);
|
. [transfer none] |
|
. [transfer none] |
|
. [transfer full] |
Returns : |
. [transfer none] |
AnjutaProjectPropertyInfo * anjuta_project_node_insert_property_info (AnjutaProjectNode *node
,AnjutaProjectPropertyInfo *info
);
|
. [transfer none] |
|
. [transfer none] |
Returns : |
. [transfer none] |
AnjutaProjectNode * anjuta_project_node_last_child (AnjutaProjectNode *node
);
Returns : |
. [transfer none] |
AnjutaProjectNode * anjuta_project_node_next_sibling (AnjutaProjectNode *node
);
Returns : |
. [transfer none] |
AnjutaProjectNode * anjuta_project_node_nth_child (AnjutaProjectNode *node
,guint n
);
Returns : |
. [transfer none] |
AnjutaProjectNode * anjuta_project_node_parent (AnjutaProjectNode *node
);
Returns : |
. [transfer none] |
AnjutaProjectNode * anjuta_project_node_parent_type (AnjutaProjectNode *node
,AnjutaProjectNodeType type
);
Returns : |
. [transfer none] |
AnjutaProjectNode * anjuta_project_node_prepend (AnjutaProjectNode *parent
,AnjutaProjectNode *node
);
Returns : |
. [transfer none] |
AnjutaProjectNode * anjuta_project_node_prev_sibling (AnjutaProjectNode *node
);
Returns : |
. [transfer none] |
AnjutaProjectNode * anjuta_project_node_remove (AnjutaProjectNode *node
);
|
. [transfer none] |
Returns : |
. [transfer full] |
AnjutaProjectProperty * anjuta_project_node_remove_property (AnjutaProjectNode *node
,AnjutaProjectProperty *property
);
AnjutaProjectNode * anjuta_project_node_root (AnjutaProjectNode *node
);
Returns : |
. [transfer none] |
gboolean anjuta_project_node_set_state (AnjutaProjectNode *node
,AnjutaProjectNodeState state
);
AnjutaProjectNode * anjuta_project_node_traverse (AnjutaProjectNode *node
,GTraverseType order
,AnjutaProjectNodeTraverseFunc func
,gpointer data
);
|
. [scope call] |
Returns : |
. [transfer none] |
AnjutaProjectProperty * anjuta_project_property_copy (AnjutaProjectProperty *prop
);
AnjutaProjectPropertyInfo * anjuta_project_property_info_copy
(AnjutaProjectPropertyInfo *info
);
void anjuta_project_property_info_free (AnjutaProjectPropertyInfo *info
);
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
);
|
Property identifier. [transfer none] |
|
Translatable property name. [transfer none] |
|
Property value type |
|
Property flags |
|
Property description. [transfer none] |
|
Default property value. [transfer full] |
|
Optional user data. [allow-none][transfer full] |
Returns : |
. [transfer full] |
AnjutaProjectProperty * anjuta_project_property_new (const gchar *value
,const gchar *name
,gpointer user_data
);
|
Value. [transfer none] |
|
Optional name used by map properties. [allow-none][transfer none] |
|
Optional user data. [allow-none][transfer full] |
Returns : |
. [transfer full] |
AnjutaProjectNode * anjuta_project_target_get_node_from_name (const AnjutaProjectNode *parent
,const gchar *name
);
"loaded"
signalvoid user_function (AnjutaProjectNode *anjutaprojectnode,
gpointer arg1,
GError *arg2,
gpointer user_data) : Run Last
|
the object which received the signal. |
|
user data set when the signal handler was connected. |
"updated"
signalvoid user_function (AnjutaProjectNode *anjutaprojectnode,
gpointer arg1,
GError *arg2,
gpointer user_data) : Run Last
|
the object which received the signal. |
|
user data set when the signal handler was connected. |