상속: System.EventArgs
예제 #1
0
        // 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" });
                }
            });
        }
예제 #2
0
 void HandleRenderingQueueItemRemoved(object sender, RenderingTaskEventArgs e)
 {
     Application.Invoke(delegate {
         RefreshQueueList();
         if (!expander1.Expanded)
         {
             queue_GtkLabel.Markup = "<b>Tasks queue (" + mRenderingQueue.Queue.Length + " left)</b>";
         }
     });
 }
예제 #3
0
        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;

            });
        }
예제 #4
0
 void HandleRenderingQueueItemIndexChanged(object sender, RenderingTaskEventArgs e)
 {
     Application.Invoke(delegate {
         RefreshQueueList();
     });
 }
예제 #5
0
 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();
     });
 }