*/
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 abstract async void get_movies (MovieFilter filter, ReceiveMovieFunction callback, int limit, GLib.Cancellable? cancellable);
+ public delegate void ReceiveMovieFunction (SList<Movie> movie);
+
+ 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);
+ }
+}