Movie list menu: place "Import movies" before "Delete movies"
[cinaest] / src / plugin-interface.vala
index acec3db..0252e9a 100644 (file)
  */
 
 public abstract class Plugin : Object {
-       public abstract void hello (Gtk.Window window);
+       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 unowned string get_name ();
+}
+
+public enum SourceFlags {
+       EDITABLE = 1,
+       ONLINE = 2,
+       RATING = 4,
 }
 
 public abstract class MovieSource : Object {
-       public delegate void ReceiveMovieFunction (Movie movie);
+       public abstract bool active { get; set construct; }
+
+       public delegate void ReceiveMovieFunction (SList<Movie> movie);
 
-       public abstract void get_movies (string filter, ReceiveMovieFunction callback, int limit);
+       public abstract async int 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 SourceFlags get_flags ();
 }
 
+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);
+       }
+}