Add movie list window reference to the movie list menu
[cinaest] / src / movie-list-menu.vala
1 /* This file is part of Cinaest.
2  *
3  * Copyright (C) 2009 Philipp Zabel
4  *
5  * Cinaest 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 3 of the License, or
8  * (at your option) any later version.
9  *
10  * Cinaest is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with Cinaest. If not, see <http://www.gnu.org/licenses/>.
17  */
18
19 using Gtk;
20 using Hildon;
21
22 public class MovieListMenu : AppMenu {
23         public TreeSortable sortable;
24         private MovieListWindow movie_list_window;
25
26         public MovieListMenu (MovieListWindow window) {
27                 movie_list_window = window;
28         }
29
30         construct {
31                 // Add sort buttons as view menu filters
32                 var sort_by_title = new RadioButton.with_label (null, _("ABC"));
33                 var sort_by_year = new RadioButton.with_label_from_widget (sort_by_title, _("Year"));
34                 var sort_by_rating = new RadioButton.with_label_from_widget (sort_by_title, _("Rating"));
35
36                 // Draw them as toggle buttons, not as radio buttons
37                 sort_by_title.set_mode (false);
38                 sort_by_year.set_mode (false);
39                 sort_by_rating.set_mode (false);
40
41                 // TODO - get this from GConf
42                 sort_by_title.set_active (true);
43
44                 // Connect signals
45                 sort_by_title.toggled.connect (button => {
46                         if (button.get_active ())
47                                 sortable.set_sort_column_id (MovieListStore.Columns.TITLE, Gtk.SortType.ASCENDING);
48                 });
49                 sort_by_year.toggled.connect (button => {
50                         if (button.get_active ())
51                                 sortable.set_sort_column_id (MovieListStore.Columns.YEAR, Gtk.SortType.DESCENDING);
52                 });
53                 sort_by_rating.toggled.connect (button => {
54                         if (button.get_active ())
55                                 sortable.set_sort_column_id (MovieListStore.Columns.RATING, Gtk.SortType.DESCENDING);
56                 });
57
58                 add_filter (sort_by_title);
59                 add_filter (sort_by_year);
60                 add_filter (sort_by_rating);
61
62                 show_all ();
63         }
64 }