void HandleRenderingQueueItemAdded(object sender, RenderingTaskEventArgs e) { Application.Invoke(delegate { RefreshQueueList(); if (!expander1.Expanded) { queue_GtkLabel.Markup = "<b>Tasks queue (" + mRenderingQueue.Queue.Length + " left)</b>"; } }); }
void HandleRenderingQueueAfterItemProcessingFinished(object sender, RenderingTaskEventArgs e) { Application.Invoke(delegate { source_label.Text = ""; destination_label.Text = ""; processing_progressbar.Fraction = 1; processing_progressbar.Text = "Render process is completed"; thumb_image.Clear(); }); }
void HandleRenderingQueueBeforeItemProcessingStarted(object sender, RenderingTaskEventArgs e) { Application.Invoke(delegate { cancel_button.Sensitive = true; cancelAll_button.Sensitive = true; source_label.Text = ""; destination_label.Text = ""; processing_progressbar.Fraction = 0; processing_progressbar.Text = "Starting the render process..."; mProcessingStatusIcon.Visible = true; updateMoment = DateTime.Now; }); }
// Each handler here should contain Application.Invoke void HandleRenderingQueueItemRendering(object sender, RenderingTaskEventArgs e) { Application.Invoke(delegate { FloatBitmapGtk renderDest = (FloatBitmapGtk)e.Target.Stage.CurrentImage; // Drawing to pixbuf and saving to file using (Gdk.Pixbuf rp = new Gdk.Pixbuf(Gdk.Colorspace.Rgb, false, 8, renderDest.Width, renderDest.Height)) { renderDest.DrawToPixbuf(rp, delegate(double progress) { // TODO: report progress via RenderingTask (needed to create an event) //rpw.SetStatusAndProgress(progress, "Saving image..."); return(true); } ); // TODO: "quality" must be specified for jpeg only. // For png it should be "tEXt" fields. // http://www.libpng.org/pub/png/spec/1.2/PNG-Chunks.html rp.Savev(e.Target.Destination, e.Target.FileType, new string[] { "quality" }, new string[] { "95" }); } }); }
void HandleRenderingQueueItemIndexChanged(object sender, RenderingTaskEventArgs e) { Application.Invoke(delegate { RefreshQueueList(); }); }