1 static BrowserWindow _BrowserWindow;
3 public class BrowserWindow : Object
6 private BrowserWindow _this;
8 public static BrowserWindow singleton()
10 if (_BrowserWindow == null) {
11 _BrowserWindow= new BrowserWindow();
13 return _BrowserWindow;
15 public Xcls_view view;
20 public BrowserWindow()
23 this.el = new Gtk.Window( Gtk.WindowType.TOPLEVEL );
28 var child_0 = new Xcls_ScrolledWindow2( _this );
30 this.el.add ( child_0.el );
33 this.el.destroy.connect( () => {
36 this.el.show.connect( () => {
37 this.el.resize(1200,500);
38 this.view.el.load_uri(webkitpdf.opt_url);
43 // user defined functions
44 public class Xcls_ScrolledWindow2 : Object
46 public Gtk.ScrolledWindow el;
47 private BrowserWindow _this;
53 public Xcls_ScrolledWindow2(BrowserWindow _owner )
56 this.el = new Gtk.ScrolledWindow( null, null );
61 var child_0 = new Xcls_view( _this );
63 this.el.add ( child_0.el );
68 this.el.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC);
72 // user defined functions
74 public class Xcls_view : Object
76 public WebKit.WebView el;
77 private BrowserWindow _this;
83 public Xcls_view(BrowserWindow _owner )
87 this.el = new WebKit.WebView();
94 this.el.load_finished.connect( (le) => {
96 print("load_changed %d ?= %d\n", le, WebKit.LoadEvent.FINISHED);
98 if (le != WebKit.LoadEvent.FINISHED) {
102 GLib.Timeout.add_seconds(webkitpdf.opt_delay, () => {
103 print("making screenshot\n");
104 _this.view.el.get_snapshot.begin(
105 WebKit.SnapshotRegion.FULL_DOCUMENT,
106 WebKit.SnapshotOptions.NONE, null, (obj, res) => {
107 var sf = _this.view.el.get_snapshot.end(res);
109 sf.write_to_png(webkitpdf.opt_target_png);
113 }, GLib.Priority.DEFAULT);
116 print("calling print in %d seconds\n", (int)webkitpdf.opt_delay);
117 GLib.Timeout.add_seconds(webkitpdf.opt_delay, () => {
119 var pe = new Gtk.PrintOperation();
120 print("got callback for print");
122 /*pe.failed.connect(() => {
123 print("print failed\n");
128 pe.done.connect(() => {
129 print("print completed\n");
134 //pe.run_dialog(_this.el);
137 var list = Gtk.PaperSize.get_paper_sizes(false);
138 var psetup = new Gtk.PageSetup();
139 for(var i = 0; i < list.length(); i++ ) {
140 var entry = list.nth_data(i).copy();
141 if (entry.get_name() == "iso_a2") {
142 psetup.set_paper_size(entry);
148 var ps = new Gtk.PrintSettings();
149 ps.set_printer("Print to File");
150 ps.set("output-file-format", "pdf");
151 //ps.set("output-uri", "file://" + webkitpdf.opt_target_pdf);
152 ps.set("output-uri", webkitpdf.opt_target_pdf);
154 pe.set_print_settings(ps);
155 pe.set_page_setup(psetup);
156 print("Calling Print?\n");
157 //pe.run_dialog(_this.el);
158 this.el.get_main_frame().print();
163 }, GLib.Priority.DEFAULT);
168 // user defined functions