public class MovieListMenu : AppMenu {
public TreeSortable sortable;
+ private MovieListWindow movie_list_window;
+ private Hildon.Button select_source;
+ private Gtk.Button delete_movies;
+
+ public MovieListMenu (MovieListWindow window) {
+ movie_list_window = window;
+ }
construct {
// Add sort buttons as view menu filters
add_filter (sort_by_year);
add_filter (sort_by_rating);
+ // Add view menu buttons
+ select_source = new Hildon.Button.with_text (SizeType.FINGER_HEIGHT, ButtonArrangement.VERTICAL, _("Source"), _("None"));
+ delete_movies = new Gtk.Button.with_label (_("Delete movies"));
+ var settings = new Gtk.Button.with_label (_("Settings"));
+
+ select_source.set_style (ButtonStyle.PICKER);
+
+ // Connect signals
+ select_source.clicked.connect (on_select_source_clicked);
+ delete_movies.clicked.connect (() => { movie_list_window.on_delete_movies_clicked (); });
+ settings.clicked.connect (on_settings_clicked);
+
+ append (select_source);
+ append (delete_movies);
+ append (settings);
+
show_all ();
}
+
+ public MovieSource source {
+ set {
+ select_source.value = value.get_name ();
+ if (value.get_editable ()) {
+ delete_movies.show ();
+ } else {
+ delete_movies.hide ();
+ }
+ }
+ }
+
+ public void on_select_source_clicked (Gtk.Button button) {
+ Hildon.Button select_source = (Hildon.Button) button;
+ var dialog = new SourceDialog (movie_list_window);
+
+ var source = movie_list_window.source;
+ dialog.run (ref source);
+ movie_list_window.source = source;
+
+ select_source.value = source.get_name ();
+ }
+
+ public void on_settings_clicked (Gtk.Button button) {
+ var dialog = new SettingsDialog (movie_list_window);
+
+ dialog.run ();
+ }
}