]> git.decadent.org.uk Git - videolink.git/blobdiff - videolink.cpp
Added explanation and example of linking to chapters.
[videolink.git] / videolink.cpp
index 4e9fa6b3c27057a7f64f9ae3b0061f274e3da2c7..ef30510149905c0ce7a4f277cbbe68a9c57be934 100644 (file)
@@ -15,6 +15,7 @@
 
 #include <stdlib.h>
 
+#include <gdk/gdkkeysyms.h>
 #include <gdkmm/pixbuf.h>
 #include <glibmm/convert.h>
 #include <glibmm/spawn.h>
@@ -159,7 +160,8 @@ namespace
        add(browser_widget_);
        browser_widget_.show();
 
-       Glib::signal_idle().connect(SigC::slot(*this, &base_window::on_idle));
+       Glib::signal_idle().connect(
+           sigc::mem_fun(this, &base_window::on_idle));
     }
 
     bool base_window::on_idle()
@@ -176,6 +178,7 @@ namespace
 
     private:
        virtual void do_late_initialisation();
+       bool on_key_press(GdkEventKey *);
 
        std::string main_page_uri_;
     };
@@ -185,13 +188,30 @@ namespace
        : base_window(frame_params),
          main_page_uri_(main_page_uri)
     {
+       signal_key_press_event().connect(
+           sigc::mem_fun(this, &preview_window::on_key_press));
     }
 
     void preview_window::do_late_initialisation()
     {
        browser_widget_.load_uri(main_page_uri_);
     }
-    
+
+    bool preview_window::on_key_press(GdkEventKey * event)
+    {
+       switch (event->keyval)
+       {
+       case GDK_t: // = top menu
+           browser_widget_.load_uri(main_page_uri_);
+           return true;
+       case GDK_q: // = quit
+           Gtk::Main::quit();
+           return true;
+       default:
+           return false;
+       }
+    }
+
     class conversion_window : public base_window
     {
     public:
@@ -258,7 +278,7 @@ namespace
          finished_(false)
     {
        browser_widget_.signal_net_state().connect(
-           SigC::slot(*this, &conversion_window::on_net_state_change));
+           sigc::mem_fun(this, &conversion_window::on_net_state_change));
 
        add_menu(main_page_uri);
     }
@@ -945,7 +965,7 @@ int main(int argc, char ** argv)
        {
            preview_window window(frame_params, menu_url);
            window.show();
-           window.signal_hide().connect(SigC::slot(&Gtk::Main::quit));
+           window.signal_hide().connect(sigc::ptr_fun(Gtk::Main::quit));
            Gtk::Main::run();
            return EXIT_SUCCESS;
        }
@@ -953,7 +973,7 @@ int main(int argc, char ** argv)
        {
            conversion_window window(frame_params, menu_url, output_dir, encoder);
            window.show();
-           window.signal_hide().connect(SigC::slot(&Gtk::Main::quit));
+           window.signal_hide().connect(sigc::ptr_fun(Gtk::Main::quit));
            Gtk::Main::run();
            return window.is_finished() ? EXIT_SUCCESS  : EXIT_FAILURE;
        }