![]() |
![]() |
![]() |
Anjuta Developers Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy | Properties | Signals |
#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
);
GBoxed +----AnjutaProjectProperty
GBoxed +----AnjutaProjectPropertyInfo
GObject +----GInitiallyUnowned +----AnjutaProjectNode
GBoxed +----AnjutaProjectNodeInfo
"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.
typedef enum { ANJUTA_PROJECT_PROPERTY_STRING = 1, ANJUTA_PROJECT_PROPERTY_LIST, ANJUTA_PROJECT_PROPERTY_BOOLEAN, ANJUTA_PROJECT_PROPERTY_MAP } AnjutaProjectValueType;
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 AnjutaProjectProperty { gchar *name; gchar *value; AnjutaProjectPropertyInfo *info; gpointer user_data; };
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] |
AnjutaProjectProperty * anjuta_project_property_copy (AnjutaProjectProperty *prop
);
struct AnjutaProjectPropertyInfo { gchar *id; gchar *name; AnjutaProjectValueType type; AnjutaProjectPropertyFlags flags; gchar *description; AnjutaProjectProperty *default_value; gpointer user_data; };
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] |
AnjutaProjectPropertyInfo * anjuta_project_property_info_copy
(AnjutaProjectPropertyInfo *info
);
void anjuta_project_property_info_free (AnjutaProjectPropertyInfo *info
);
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;
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;
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); };
gboolean (*AnjutaProjectNodeTraverseFunc) (AnjutaProjectNode *node
,gpointer data
);
void (*AnjutaProjectNodeForeachFunc) (AnjutaProjectNode *node
,gpointer data
);
|
. [closure] |
AnjutaProjectNode * anjuta_project_node_root (AnjutaProjectNode *node
);
Returns : |
. [transfer none] |
AnjutaProjectNode * anjuta_project_node_parent (AnjutaProjectNode *node
);
Returns : |
. [transfer none] |
AnjutaProjectNode * anjuta_project_node_first_child (AnjutaProjectNode *node
);
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_prev_sibling (AnjutaProjectNode *node
);
Returns : |
. [transfer none] |
AnjutaProjectNode * anjuta_project_node_nth_child (AnjutaProjectNode *node
,guint n
);
Returns : |
. [transfer none] |
AnjutaProjectNode * anjuta_project_node_parent_type (AnjutaProjectNode *node
,AnjutaProjectNodeType type
);
Returns : |
. [transfer none] |
void anjuta_project_node_foreach (AnjutaProjectNode *node
,GTraverseType order
,AnjutaProjectNodeForeachFunc func
,gpointer data
);
|
. [scope call] |
void anjuta_project_node_children_foreach (AnjutaProjectNode *node
,AnjutaProjectNodeForeachFunc func
,gpointer data
);
|
. [scope call] |
AnjutaProjectNode * anjuta_project_node_traverse (AnjutaProjectNode *node
,GTraverseType order
,AnjutaProjectNodeTraverseFunc func
,gpointer data
);
|
. [scope call] |
Returns : |
. [transfer none] |
AnjutaProjectNode * anjuta_project_node_children_traverse (AnjutaProjectNode *node
,AnjutaProjectNodeTraverseFunc func
,gpointer data
);
|
. [scope call] |
Returns : |
. [transfer none] |
AnjutaProjectNode * anjuta_project_node_insert_before (AnjutaProjectNode *parent
,AnjutaProjectNode *sibling
,AnjutaProjectNode *node
);
|
. [allow-none][transfer none] |
|
. [transfer none] |
Returns : |
. [transfer none] |
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_remove (AnjutaProjectNode *node
);
|
. [transfer none] |
Returns : |
. [transfer full] |
AnjutaProjectNode * anjuta_project_node_append (AnjutaProjectNode *parent
,AnjutaProjectNode *node
);
Returns : |
. [transfer none] |
AnjutaProjectNode * anjuta_project_node_prepend (AnjutaProjectNode *parent
,AnjutaProjectNode *node
);
Returns : |
. [transfer none] |
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
);
Returns : |
. [transfer none] |
GList * anjuta_project_node_get_properties_info
(AnjutaProjectNode *node
);
Returns : |
. [transfer none][element-type Anjuta.ProjectPropertyInfo] |
GList * anjuta_project_node_get_properties (AnjutaProjectNode *node
);
Returns : |
. [transfer none][element-type Anjuta.ProjectProperty] |
AnjutaProjectPropertyInfo * anjuta_project_node_get_property_info (AnjutaProjectNode *node
,const gchar *id
);
|
. [transfer none] |
|
Property identifier. [transfer none] |
Returns : |
. [transfer none] |
AnjutaProjectProperty * anjuta_project_node_get_property (AnjutaProjectNode *node
,const gchar *id
);
|
. [transfer none] |
|
Property identifier. [transfer none] |
Returns : |
. [transfer none] |
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
);
|
. [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] |
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
);
|
the root node |
|
Directory to search in |
Returns : |
. [transfer none] |
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
);
|
the parent node |
|
The file to query the source for |
Returns : |
. [transfer none] |
struct AnjutaProjectNodeInfo { AnjutaProjectNodeType type; gchar *name; gchar *mime_type; gchar *property_help_id; };
AnjutaProjectNodeInfo * anjuta_project_node_info_new (AnjutaProjectNodeType type
,const gchar *name
,const gchar *mime_type
);
|
. [transfer none] |
|
. [transfer none] |
Returns : |
. [transfer full] |
AnjutaProjectNodeInfo * anjuta_project_node_info_copy (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
);
"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. |