public abstract void hello (Gtk.Window window, Osso.Context context);
public abstract unowned List<MovieSource> get_sources ();
+ public abstract List<MovieAction> get_actions (Movie movie, Gtk.Window window);
public abstract void settings_dialog (Gtk.Window window);
public abstract async void get_movies (MovieFilter filter, ReceiveMovieFunction callback, int limit, GLib.Cancellable? cancellable);
public abstract void add_movie (Movie movie);
+ public abstract void delete_movie (Movie movie);
public abstract unowned string get_name ();
public abstract unowned string get_description ();
+
+ public abstract bool get_editable ();
}
+public class MovieAction : Object {
+ public delegate void MovieActionFunc (Movie movie, Gtk.Window window);
+
+ public string name;
+ private MovieActionFunc action;
+ private Movie movie;
+ private Gtk.Window window;
+
+ public MovieAction (string _name, MovieActionFunc _action, Movie _movie, Gtk.Window _window) {
+ name = _name;
+ action = _action;
+ movie = _movie;
+ window = _window;
+ }
+
+ public void execute () {
+ action (movie, window);
+ }
+}