1 /* LASH Control Panel
2  * Copyright (C) 2006 Dave Robillard <drobilla@connect.carleton.ca>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
17  */
18 
19 #ifndef __PROJECT_H__
20 #define __PROJECT_H__
21 
22 #include <gtk/gtk.h>
23 #include <lash/lash.h>
24 
25 typedef struct _project project_t;
26 
27 enum
28 {
29     CLIENT_NAME_COLUMN,
30 	CLIENT_ID_COLUMN,
31     CLIENT_NUM_COLUMNS
32 };
33 
34 
35 struct _project {
36 
37 	char* name;
38 	char* dir;
39 	int   page_number;
40 
41 	lash_client_t* lash_client;
42 
43 	GtkListStore* clients;
44 
45 	GtkWidget* box;
46 	GtkWidget* tab_label;
47 
48 	GtkWidget*         properties_label;
49 	GtkWidget*         properties_table;
50 	GtkWidget*         name_label;
51 	GtkWidget*         name_entry;
52 	GtkWidget*         set_name_button;
53 	GtkWidget*         dir_label;
54 	GtkWidget*         dir_entry;
55 	GtkWidget*         set_dir_button;
56 	GtkWidget*         clients_label;
57 	GtkWidget*         clients_align_box;
58 	GtkWidget*         clients_align_label;
59 	GtkWidget*         clients_list;
60 	GtkWidget*         clients_list_scroll;
61 	GtkCellRenderer*   clients_renderer;
62 	GtkTreeViewColumn* name_column;
63 	GtkTreeViewColumn* id_column;
64 	GtkWidget*         clients_button_box;
65 	GtkWidget*         save_button;
66 	GtkWidget*         close_button;
67 };
68 
69 project_t* project_create(lash_client_t* lash_client, const char* const name);
70 void       project_destroy(project_t* project);
71 
72 void project_set_name(project_t* project, const char* const name);
73 void project_set_dir(project_t* project, const char* const dir);
74 
75 #endif /* __PROJECT_H__ */
76