/** * Feed Handler * Copyright © 2009 Thomas Perl **/ using Gtk; using GLib; [DBus (name="org.maemo.garage.feedhandler")] public class FeedHandler : GLib.Object { private MainLoop loop; public FeedHandler(MainLoop loop) { this.loop = loop; } [DBus (name = "mime_open")] public void mime_open(string url) { Gtk.Dialog dlg = new Gtk.Dialog(); dlg.add_button("Subscribe", Gtk.ResponseType.YES); dlg.add_button("Cancel", Gtk.ResponseType.CLOSE); dlg.title = "feedhandler received a URL"; dlg.vbox.add(new Gtk.Label(url)); dlg.show_all(); dlg.run(); dlg.destroy(); message("URL received: %s", url); loop.quit(); } } static int main(string [] args) { MainLoop loop = new MainLoop(null, false); Gtk.init(ref args); try { var conn = DBus.Bus.get(DBus.BusType.SESSION); dynamic DBus.Object bus = conn.get_object("org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus"); uint request_name_result = bus.RequestName( "org.maemo.garage.feedhandler", (uint)0); if (request_name_result == DBus.RequestNameReply.PRIMARY_OWNER) { FeedHandler server = new FeedHandler(loop); conn.register_object("/org/maemo/garge/feedhandler", server); loop.run(); } } catch (Error e) { stderr.printf("OOps: %s\n", e.message); } return 0; }