2
2
* project.h - this file is part of Geany, a fast and lightweight IDE
4
* Copyright 2007-2008 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
5
* Copyright 2007-2008 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
4
* Copyright 2007-2009 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
5
* Copyright 2007-2009 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
7
7
* This program is free software; you can redistribute it and/or modify
8
8
* it under the terms of the GNU General Public License as published by
18
18
* along with this program; if not, write to the Free Software
19
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21
* $Id: project.h 2287 2008-02-27 13:17:29Z eht16 $
21
* $Id: project.h 3684 2009-04-05 14:14:29Z eht16 $
25
25
#ifndef GEANY_PROJECT_H
26
26
#define GEANY_PROJECT_H 1
28
/* structure for representing a project. */
28
#define GEANY_PROJECT_EXT "geany"
31
/** Structure for representing a project. */
32
typedef struct GeanyProject
31
gchar *name; /* the name of the project */
32
gchar *description; /* short description of the project */
34
gchar *file_name; /* where the project file is stored (in UTF-8) */
36
gchar *base_path; /* base path of the project directory (in UTF-8, maybe relative) */
37
gchar *run_cmd; /* project run command (in UTF-8) */
38
/* ... */ /* fields for build process(run arguments and so on) should be added */
40
gint type; /* identifier whether it is a pure Geany project or modified/extended */
43
gchar **file_patterns; /* array of filename extension patterns */
34
gchar *name; /**< The name of the project. */
35
gchar *description; /**< Short description of the project. */
36
gchar *file_name; /**< Where the project file is stored (in UTF-8). */
37
gchar *base_path; /**< Base path of the project directory (in UTF-8, maybe relative). */
38
gchar *run_cmd; /**< Project run command (in UTF-8). */
39
/** Identifier whether it is a pure Geany project or modified/extended
42
gchar **file_patterns; /**< Array of filename extension patterns. */
45
43
gboolean make_in_base_path;
45
struct GeanyProjectPrivate *priv; /* must be last, append fields before this item */
50
typedef struct ProjectPrefs
50
52
gchar *session_file;
51
53
gboolean project_session;
54
gboolean project_file_in_basedir;
54
57
extern ProjectPrefs project_prefs;
60
void project_init(void);
62
void project_finalize(void);
57
65
void project_new(void);
59
67
void project_open(void);
63
71
void project_properties(void);
73
gboolean project_ask_close(void);
66
76
gboolean project_load_file(const gchar *locale_file_name);
78
gboolean project_load_file_with_session(const gchar *locale_file_name);
68
80
gchar *project_get_base_path(void);
70
82
gchar *project_get_make_dir(void);