GetSelectedBounds() public method

public GetSelectedBounds ( bool canvasOnly ) : Gdk.Rectangle
canvasOnly bool false for the whole selection, true for the part only on our canvas
return Gdk.Rectangle
示例#1
0
        private void HandlerPintaCoreActionsEditCopyActivated(object sender, EventArgs e)
        {
            Document doc = PintaCore.Workspace.ActiveDocument;

            Gtk.Clipboard cb = Gtk.Clipboard.Get(Gdk.Atom.Intern("CLIPBOARD", false));
            if (PintaCore.Tools.CurrentTool?.DoHandleCopy(doc, cb) == true)
            {
                return;
            }

            PintaCore.Tools.Commit();

            using (ImageSurface src = doc.Layers.GetClippedLayer(doc.Layers.CurrentUserLayerIndex)) {
                Gdk.Rectangle rect = doc.GetSelectedBounds(true);
                if (rect.Width == 0 || rect.Height == 0)
                {
                    return;
                }

                ImageSurface dest = CairoExtensions.CreateImageSurface(Format.Argb32, rect.Width, rect.Height);

                using (Context g = new Context(dest)) {
                    g.SetSourceSurface(src, -rect.X, -rect.Y);
                    g.Paint();
                }

                cb.Image = dest.ToPixbuf();

                (dest as IDisposable).Dispose();
            }
        }
示例#2
0
        private void HandlerPintaCoreActionsEditCopyActivated(object sender, EventArgs e)
        {
            Gtk.Clipboard cb = Gtk.Clipboard.Get(Gdk.Atom.Intern("CLIPBOARD", false));
            if (PintaCore.Tools.CurrentTool.TryHandleCopy(cb))
            {
                return;
            }

            Document doc = PintaCore.Workspace.ActiveDocument;

            PintaCore.Tools.Commit();

            ImageSurface src = doc.GetClippedLayer(doc.CurrentLayerIndex);

            Gdk.Rectangle rect = doc.GetSelectedBounds(true);

            ImageSurface dest = new ImageSurface(Format.Argb32, rect.Width, rect.Height);

            using (Context g = new Context(dest)) {
                g.SetSourceSurface(src, -rect.X, -rect.Y);
                g.Paint();
            }

            cb.Image = dest.ToPixbuf();

            (src as IDisposable).Dispose();
            (dest as IDisposable).Dispose();
        }
示例#3
0
		private void HandlePintaCoreActionsImageCropToSelectionActivated (object sender, EventArgs e)
		{
			Document doc = PintaCore.Workspace.ActiveDocument;

			PintaCore.Tools.Commit ();

			Gdk.Rectangle rect = doc.GetSelectedBounds (true);

			CropImageToRectangle (doc, rect, doc.Selection.SelectionPath);
		}