BrowserWindow.bjs
authorAlan Knowles <alan@roojs.com>
Thu, 12 Nov 2015 03:50:30 +0000 (11:50 +0800)
committerAlan Knowles <alan@roojs.com>
Thu, 12 Nov 2015 03:50:30 +0000 (11:50 +0800)
BrowserWindow.vala

BrowserWindow.bjs
BrowserWindow.vala

index 975aa83..183692f 100644 (file)
@@ -24,7 +24,7 @@
      "items" : [
       {
        "listeners" : {
-        "print" : "(po) => {\n\n\n}",
+        "print" : "(pe) => {\n\n\n    \t \t\n    \t\t\n    \t\tpe.ref();\n\t\t\tpe.failed.connect(() => {\n \t\t\t\tprint(\"print failed\\n\");\n\t\t\t\t Gtk.main_quit();\n        \t\t\n    \t\t});\n    \t\t pe.finished.connect(() => {\n \t\t\t\tprint(\"print completed\\n\");\n\t\t\t\t Gtk.main_quit();\n        \t\t\n    \t\t});\n    \t\t\n    \t\tpe.run_dialog(_this.el);\n    \t\treturn false;\n    \t\t\n\t\t    var list = Gtk.PaperSize.get_paper_sizes(false);\n\t\t    var psetup = new Gtk.PageSetup();\n\t\t    for(var i = 0; i < list.length(); i++ ) {\n\t\t        var entry = list.nth_data(i).copy();\n\t\t        if (entry.get_name() == \"iso_a2\") {\n\t\t            psetup.set_paper_size(entry);\n\t\t        }\n\t\t    }\n\t\t        \n\n\n\t\t    var ps = new Gtk.PrintSettings();\n\t\t    ps.set_printer(\"Print to File\");\n\t\t    ps.set(\"output-file-format\", \"pdf\");\n\t\t    //ps.set(\"output-uri\", \"file://\" + webkitpdf.opt_target_pdf);\n\t\t    ps.set(\"output-uri\",  webkitpdf.opt_target_pdf);\n\n\t\t    pe.set_print_settings(ps);\n\t\t    pe.set_page_setup(psetup);\n\t\t    print(\"Calling Print?\\n\");\n\t\t    pe.run_dialog(_this.el);\n\t\t    //pe.print();\n\t\t    return false;\n\t\t   \n}",
         "load_changed" : "(le) => {\n\t\t \n        print(\"load_changed %d ?= %d\\n\", le, WebKit.LoadEvent.FINISHED);\n\n        if (le != WebKit.LoadEvent.FINISHED) {\n            return;\n        }\n        /*\n        GLib.Timeout.add_seconds(webkitpdf.opt_delay, () => { \n            print(\"making screenshot\\n\");\n            _this.view.el.get_snapshot.begin(\n        \t\t\tWebKit.SnapshotRegion.FULL_DOCUMENT, \n        \t\t\tWebKit.SnapshotOptions.NONE, null, (obj, res) => {\n                var sf = _this.view.el.get_snapshot.end(res);\n\n                sf.write_to_png(webkitpdf.opt_target_png);\n            });\n            Gtk.main_quit();\n            return false;\n        }, GLib.Priority.DEFAULT);\n */       \n        GLib.Timeout.add_seconds(webkitpdf.opt_delay, () => { \n        \n\n        }, GLib.Priority.DEFAULT);\n \n}"
        },
        "id" : "view",
index a41fe06..ae24173 100644 (file)
@@ -91,9 +91,50 @@ public class BrowserWindow : Object
             // set gobject values
 
             //listeners
-            this.el.print.connect( (po) => {
+            this.el.print.connect( (pe) => {
             
             
+                               
+                               
+                               pe.ref();
+                               pe.failed.connect(() => {
+                                       print("print failed\n");
+                                        Gtk.main_quit();
+                               
+                               });
+                                pe.finished.connect(() => {
+                                       print("print completed\n");
+                                        Gtk.main_quit();
+                               
+                               });
+                               
+                               pe.run_dialog(_this.el);
+                               return false;
+                               
+                           var list = Gtk.PaperSize.get_paper_sizes(false);
+                           var psetup = new Gtk.PageSetup();
+                           for(var i = 0; i < list.length(); i++ ) {
+                               var entry = list.nth_data(i).copy();
+                               if (entry.get_name() == "iso_a2") {
+                                   psetup.set_paper_size(entry);
+                               }
+                           }
+                               
+            
+            
+                           var ps = new Gtk.PrintSettings();
+                           ps.set_printer("Print to File");
+                           ps.set("output-file-format", "pdf");
+                           //ps.set("output-uri", "file://" + webkitpdf.opt_target_pdf);
+                           ps.set("output-uri",  webkitpdf.opt_target_pdf);
+            
+                           pe.set_print_settings(ps);
+                           pe.set_page_setup(psetup);
+                           print("Calling Print?\n");
+                           pe.run_dialog(_this.el);
+                           //pe.print();
+                           return false;
+                          
             });
             this.el.load_changed.connect( (le) => {