glade: Fix make file some files were not installed
[anjuta.git] / plugins / project-manager / project.h
bloba5c8bb8817a3eea1799232313d9db2f793593559
1 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
2 /* project.h
4 * Copyright (C) 2010 Sébastien Granjoux
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as
8 * published by the Free Software Foundation; either version 2 of the
9 * License, or (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
16 * You should have received a copy of the GNU General Public
17 * License along with this program; if not, write to the
18 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 * Boston, MA 02110-1301, USA.
22 #ifndef _PROJECT_H_
23 #define _PROJECT_H_
25 #include <glib.h>
26 #include <glib-object.h>
27 #include <libanjuta/anjuta-plugin.h>
28 #include <libanjuta/anjuta-project.h>
29 #include <libanjuta/interfaces/ianjuta-project.h>
31 #include "project-model.h"
32 #include "tree-data.h"
34 G_BEGIN_DECLS
36 #define ANJUTA_TYPE_PM_PROJECT (anjuta_pm_project_get_type ())
37 #define ANJUTA_PM_PROJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ANJUTA_TYPE_PM_PROJECT, AnjutaPmProject))
38 #define ANJUTA_PM_PROJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ANJUTA_TYPE_PM_PROJECT, AnjutaPmProjectClass))
39 #define ANJUTA_IS_PM_PROJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ANJUTA_TYPE_PM_PROJECT))
40 #define ANJUTA_IS_PM_PROJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ANJUTA_TYPE_PM_PROJECT))
41 #define ANJUTA_PM_PROJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ANJUTA_TYPE_PM_PROJECT, AnjutaPmProjectClass))
43 typedef struct _AnjutaPmProjectClass AnjutaPmProjectClass;
44 //typedef struct _AnjutaPmProject AnjutaPmProject;
46 struct _AnjutaPmProjectClass
48 GObjectClass parent_class;
50 void (*loaded) (AnjutaPmProject* project, AnjutaProjectNode *node, gboolean complete, GError *error);
53 struct _AnjutaPmProject
55 GObject parent_instance;
57 AnjutaPlugin *plugin;
59 IAnjutaProject *project;
61 AnjutaProjectNode *root;
63 guint incomplete_node;
65 gboolean loaded;
67 gint node_capabilities;
69 /* project properties dialog */
70 GtkWidget *properties_dialog;
73 GType anjuta_pm_project_get_type (void) G_GNUC_CONST;
75 AnjutaPmProject* anjuta_pm_project_new (AnjutaPlugin *plugin);
76 void anjuta_pm_project_free (AnjutaPmProject* project);
78 gboolean anjuta_pm_project_load (AnjutaPmProject *project, GFile *file, GError **error);
79 gboolean anjuta_pm_project_unload (AnjutaPmProject *project, GError **error);
80 gboolean anjuta_pm_project_refresh (AnjutaPmProject *project, GError **error);
82 gint anjuta_pm_project_get_capabilities (AnjutaPmProject *project);
83 const GList *anjuta_pm_project_get_node_info (AnjutaPmProject *project);
85 GList *anjuta_pm_project_get_packages (AnjutaPmProject *project);
87 AnjutaProjectNode *anjuta_pm_project_add_group (AnjutaPmProject *project, AnjutaProjectNode *parent, AnjutaProjectNode *sibling, const gchar *name, GError **error);
88 AnjutaProjectNode *anjuta_pm_project_add_target (AnjutaPmProject *project, AnjutaProjectNode *parent, AnjutaProjectNode *sibling, const gchar *name, AnjutaProjectNodeType type, GError **error);
89 AnjutaProjectNode *anjuta_pm_project_add_source (AnjutaPmProject *project, AnjutaProjectNode *parent, AnjutaProjectNode *sibling, const gchar *name, GError **error);
90 AnjutaProjectNode *anjuta_pm_project_get_root (AnjutaPmProject *project);
91 gboolean anjuta_pm_project_remove (AnjutaPmProject *project, AnjutaProjectNode *node, GError **error);
92 gboolean anjuta_pm_project_remove_data (AnjutaPmProject *project, GbfTreeData *data, GError **error);
95 gboolean anjuta_pm_project_is_open (AnjutaPmProject *project);
97 IAnjutaProject *anjuta_pm_project_get_project (AnjutaPmProject *project);
98 GbfProjectModel *anjuta_pm_project_get_model (AnjutaPmProject *project);
100 AnjutaProjectNode *anjuta_pm_project_get_node_from_file (AnjutaPmProject *project, AnjutaProjectNodeType type, GFile *file);
101 AnjutaProjectNode *anjuta_pm_project_get_node_from_iter (AnjutaPmProject *project, GtkTreeIter *iter);
102 AnjutaProjectNode *anjuta_pm_project_get_module (AnjutaPmProject *project, const gchar *name);
104 G_END_DECLS
106 #endif /* _PROJECT_H_ */