chiark / gitweb /
56964d9edb4333bc276b17b8b51ecd0c6a4a804f
[disorder] / disobedience / choose.h
1 /*
2  * This file is part of DisOrder
3  * Copyright (C) 2008 Richard Kettlewell
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
18  * USA
19  */
20 #ifndef CHOOSE_H
21 #define CHOOSE_H
22
23 /** @brief Extra data at each node */
24 struct choosedata {
25   /** @brief Node type */
26   int type;
27
28   /** @brief Full track or directory name */
29   gchar *track;
30
31   /** @brief Sort key */
32   gchar *sort;
33 };
34
35 /** @brief Track name column number */
36 #define NAME_COLUMN 0
37
38 /** @brief Hidden column number */
39 #define CHOOSEDATA_COLUMN 1
40
41 /** @brief @ref choosedata node is a file */
42 #define CHOOSE_FILE 0
43
44 /** @brief @ref choosedata node is a directory */
45 #define CHOOSE_DIRECTORY 1
46
47 extern GtkTreeStore *choose_store;
48 extern GtkWidget *choose_view;
49 extern GtkTreeSelection *choose_selection;
50 extern const struct tabtype choose_tabtype;
51
52 struct choosedata *choose_iter_to_data(GtkTreeIter *iter);
53 struct choosedata *choose_path_to_data(GtkTreePath *path);
54 gboolean choose_button_event(GtkWidget *widget,
55                              GdkEventButton *event,
56                              gpointer user_data);
57
58 #endif /* CHOOSE_H */
59
60 /*
61 Local Variables:
62 c-basic-offset:2
63 comment-column:40
64 fill-column:79
65 indent-tabs-mode:nil
66 End:
67 */