public MainWindow() { InitializeComponent(); this.Closing += new System.ComponentModel.CancelEventHandler(Window_Closing); /* Set up ghostscript calls for progress update */ m_ghostscript = new ghostsharp(); m_ghostscript.gsUpdateMain += new ghostsharp.gsCallBackMain(gsProgress); m_ghostscript.gsIOUpdateMain += new ghostsharp.gsIOCallBackMain(gsIO); m_ghostscript.gsDLLProblemMain += new ghostsharp.gsDLLProblem(gsDLL); m_currpage = 0; m_gsoutput = new gsOutput(); m_gsoutput.Activate(); m_tempfiles = new List <TempFile>(); m_thumbnails = new List <DocPage>(); m_docPages = new Pages(); m_pageType = new List <Page_Content_t>(); m_page_sizes = new List <pagesizes_t>(); m_file_open = false; m_document_type = doc_t.UNKNOWN; m_doczoom = 1.0; m_init_done = false; m_busy_render = true; m_validZoom = true; m_firstime = true; m_list_thumb = new List <idata_t>(); m_images_rendered = new List <idata_t>(); m_busy_rendering = false; m_aa = true; m_aa_change = false; xaml_PageList.AddHandler(Grid.DragOverEvent, new System.Windows.DragEventHandler(Grid_DragOver), true); xaml_PageList.AddHandler(Grid.DropEvent, new System.Windows.DragEventHandler(Grid_Drop), true); /* For case of opening another file */ string[] arguments = Environment.GetCommandLineArgs(); if (arguments.Length > 1) { string filePath = arguments[1]; ProcessFile(filePath); } }
public MainWindow() : base(Gtk.WindowType.Toplevel) { /* Set up ghostscript calls for progress update */ m_ghostscript = new ghostsharp(); m_ghostscript.gsUpdateMain += new ghostsharp.gsCallBackMain(gsProgress); m_ghostscript.gsIOUpdateMain += new ghostsharp.gsIOCallBackMain(gsIO); m_ghostscript.gsDLLProblemMain += new ghostsharp.gsDLLProblem(gsDLL); DeleteEvent += delegate { Application.Quit(); }; m_currpage = 0; m_gsoutput = new gsOutput(); m_gsoutput.Activate(); m_tempfiles = new List <TempFile>(); m_thumbnails = new List <DocPage>(); m_docPages = new Pages(); m_page_sizes = new List <pagesizes_t>(); m_page_scroll_pos = new List <int>(); m_file_open = false; m_doczoom = 1.0; m_init_done = false; m_busy_render = true; m_firstime = true; m_aa = true; m_aa_change = false; m_zoom_txt = "100"; m_page_txt = "1"; m_ignore_scroll_change = false; /* Set up Vbox in main window */ this.SetDefaultSize(500, 700); this.Title = "GhostPDL Mono GTK Demo"; m_GtkvBoxMain = new VBox(false, 0); this.Add(m_GtkvBoxMain); /* Add Menu Bar to vBox */ Gtk.MenuBar menu_bar = new MenuBar(); Menu filemenu = new Menu(); MenuItem file = new MenuItem("File"); file.Submenu = filemenu; AccelGroup agr = new AccelGroup(); AddAccelGroup(agr); ImageMenuItem openi = new ImageMenuItem(Stock.Open, agr); openi.AddAccelerator("activate", agr, new AccelKey( Gdk.Key.o, Gdk.ModifierType.ControlMask, AccelFlags.Visible)); openi.Activated += OnOpen; filemenu.Append(openi); ImageMenuItem closei = new ImageMenuItem(Stock.Close, agr); closei.AddAccelerator("activate", agr, new AccelKey( Gdk.Key.w, Gdk.ModifierType.ControlMask, AccelFlags.Visible)); closei.Activated += OnClose; filemenu.Append(closei); MenuItem messagesi = new MenuItem("Show Messages"); messagesi.Activated += OnShowMessages; filemenu.Append(messagesi); MenuItem about = new MenuItem("About"); about.Activated += OnAboutClicked; filemenu.Append(about); SeparatorMenuItem sep = new SeparatorMenuItem(); filemenu.Append(sep); ImageMenuItem quiti = new ImageMenuItem(Stock.Quit, agr); quiti.AddAccelerator("activate", agr, new AccelKey( Gdk.Key.q, Gdk.ModifierType.ControlMask, AccelFlags.Visible)); filemenu.Append(quiti); quiti.Activated += OnQuit; menu_bar.Append(file); m_GtkvBoxMain.PackStart(menu_bar, false, false, 0); /* Add a hbox with the page information, zoom control, and aa to vbox */ HBox pageBox = new HBox(false, 0); m_GtkpageEntry = new Entry(); m_GtkpageEntry.Activated += PageChanged; m_GtkpageEntry.WidthChars = 4; m_GtkpageTotal = new Label("/0"); pageBox.PackStart(m_GtkpageEntry, false, false, 0); pageBox.PackStart(m_GtkpageTotal, false, false, 0); HBox zoomBox = new HBox(false, 0); m_GtkZoomPlus = new Button(); m_GtkZoomPlus.Label = "+"; m_GtkZoomPlus.Clicked += ZoomIn; m_GtkZoomMinus = new Button(); m_GtkZoomMinus.Label = "–"; m_GtkZoomMinus.Clicked += ZoomOut; m_GtkzoomEntry = new Entry(); m_GtkzoomEntry.WidthChars = 3; m_GtkzoomEntry.Activated += ZoomChanged; Label precentLabel = new Label("%"); zoomBox.PackStart(m_GtkZoomPlus, false, false, 0); zoomBox.PackStart(m_GtkZoomMinus, false, false, 0); zoomBox.PackStart(m_GtkzoomEntry, false, false, 0); zoomBox.PackStart(precentLabel, false, false, 0); HBox hBoxControls = new HBox(false, 0); m_GtkaaCheck = new CheckButton("Enable Antialias:"); m_GtkaaCheck.Active = true; m_GtkaaCheck.Clicked += AaCheck_Clicked; hBoxControls.PackStart(pageBox, false, false, 0); hBoxControls.PackStart(zoomBox, false, false, 20); hBoxControls.PackStart(m_GtkaaCheck, false, false, 0); m_GtkvBoxMain.PackStart(hBoxControls, false, false, 0); /* Tree view containing thumbnail and main images */ HBox hBoxPages = new HBox(false, 0); /* Must be scrollable */ m_GtkthumbScroll = new ScrolledWindow(); m_GtkthumbScroll.BorderWidth = 5; m_GtkthumbScroll.ShadowType = ShadowType.In; m_GtkmainScroll = new ScrolledWindow(); m_GtkmainScroll.BorderWidth = 5; m_GtkmainScroll.ShadowType = ShadowType.In; m_GtkmainScroll.Vadjustment.ValueChanged += Vadjustment_Changed; m_GtkTreeThumb = new Gtk.TreeView(); m_GtkTreeThumb.HeadersVisible = false; m_GtkimageStoreThumb = new Gtk.ListStore(typeof(Gdk.Pixbuf)); m_GtkTreeThumb.AppendColumn("Thumb", new Gtk.CellRendererPixbuf(), "pixbuf", 0); m_GtkTreeThumb.Style.YThickness = 100; m_GtkthumbScroll.Add(m_GtkTreeThumb); m_GtkTreeThumb.RowActivated += M_GtkTreeThumb_RowActivated; m_GtkTreeMain = new Gtk.TreeView(); m_GtkTreeMain.HeadersVisible = false; m_GtkTreeMain.RulesHint = false; m_GtkimageStoreMain = new Gtk.ListStore(typeof(Gdk.Pixbuf)); m_GtkTreeMain.AppendColumn("Main", new Gtk.CellRendererPixbuf(), "pixbuf", 0); m_GtkmainScroll.Add(m_GtkTreeMain); // Separate with gridlines m_GtkTreeMain.EnableGridLines = TreeViewGridLines.Horizontal; //To disable selections, set the selection mode to None: m_GtkTreeMain.Selection.Mode = SelectionMode.None; hBoxPages.PackStart(m_GtkthumbScroll, false, false, 0); hBoxPages.PackStart(m_GtkmainScroll, true, true, 0); m_GtkTreeThumb.Model = m_GtkimageStoreThumb; m_GtkTreeMain.Model = m_GtkimageStoreMain; m_GtkvBoxMain.PackStart(hBoxPages, true, true, 0); /* For case of opening another file */ string[] arguments = Environment.GetCommandLineArgs(); if (arguments.Length > 1) { m_currfile = arguments[1]; ProcessFile(); } }
public MainWindow() { InitializeComponent(); this.Closing += new System.ComponentModel.CancelEventHandler(Window_Closing); /* Set up ghostscript calls for progress update */ m_ghostscript = new ghostsharp(); m_ghostscript.gsUpdateMain += new ghostsharp.gsCallBackMain(gsProgress); m_ghostscript.gsIOUpdateMain += new ghostsharp.gsIOCallBackMain(gsIO); m_ghostscript.gsDLLProblemMain += new ghostsharp.gsDLLProblem(gsDLL); m_ghostscript.DisplayDeviceOpen(); m_currpage = 0; m_gsoutput = new gsOutput(); m_gsoutput.Activate(); m_tempfiles = new List <TempFile>(); m_thumbnails = new List <DocPage>(); m_docPages = new Pages(); m_pageType = new List <Page_Content_t>(); m_page_sizes = new List <pagesizes_t>(); m_document_type = doc_t.UNKNOWN; m_doczoom = 1.0; m_viewer_state = ViewerState_t.NO_FILE; m_validZoom = true; m_doc_type_has_page_access = true; m_list_thumb = new List <idata_t>(); m_images_rendered = new List <idata_t>(); m_aa = true; xaml_PageList.AddHandler(Grid.DragOverEvent, new System.Windows.DragEventHandler(Grid_DragOver), true); xaml_PageList.AddHandler(Grid.DropEvent, new System.Windows.DragEventHandler(Grid_Drop), true); /* For case of opening another file, or launching a print process */ string[] arguments = Environment.GetCommandLineArgs(); if (arguments.Length == 3) { string filePath = arguments[1]; string job = arguments[2]; if (String.Equals(job, "open")) { ProcessFile(filePath); } } else if (arguments.Length == 5) { string filePath = arguments[1]; string job = arguments[2]; try { m_currpage = Int32.Parse(arguments[3]); m_numpages = Int32.Parse(arguments[4]); } catch (FormatException) { Console.WriteLine("Failure to parse print page info"); Close(); } /* Keep main window hidden if we are doing a print process */ this.IsVisibleChanged += new System.Windows.DependencyPropertyChangedEventHandler(WindowVisible); m_viewer_state = ViewerState_t.PRINTING; Print(filePath); } }