Inheritance: BaseHistoryItem
        private void Activated(object sender, EventArgs e)
        {
            Gtk.Clipboard cb = Gtk.Clipboard.Get (Gdk.Atom.Intern ("CLIPBOARD", false));

            if (cb.WaitIsImageAvailable ()) {
                PintaCore.Tools.Commit ();

                Gdk.Pixbuf image = cb.WaitForImage ();

                Layer l = PintaCore.Layers.AddNewLayer (string.Empty);

                using (Cairo.Context g = new Cairo.Context (l.Surface))
                    g.DrawPixbuf (image, new Cairo.Point (0, 0));

                // Make new layer the current layer
                PintaCore.Layers.SetCurrentLayer (l);

                PintaCore.Workspace.Invalidate ();

                AddLayerHistoryItem hist = new AddLayerHistoryItem (Stock.Paste, Catalog.GetString ("Paste Into New Layer"), PintaCore.Layers.IndexOf (l));
                PintaCore.History.PushNewItem (hist);
            } else {
                ClipboardEmptyError ();
            }
        }
Example #2
0
        private void HandlePintaCoreActionsLayersAddNewLayerActivated(object sender, EventArgs e)
        {
            Document doc = PintaCore.Workspace.ActiveDocument;

            PintaCore.Tools.Commit();

            Layer l = doc.AddNewLayer(string.Empty);

            // Make new layer the current layer
            doc.SetCurrentLayer(l);

            AddLayerHistoryItem hist = new AddLayerHistoryItem("Menu.Layers.AddNewLayer.png", Catalog.GetString("Add New Layer"), doc.Layers.IndexOf(l));

            doc.History.PushNewItem(hist);
        }
Example #3
0
        private void HandlePintaCoreActionsLayersAddNewLayerActivated(object sender, EventArgs e)
        {
            Document doc = PintaCore.Workspace.ActiveDocument;

            PintaCore.Tools.Commit();

            UserLayer l = doc.Layers.AddNewLayer(string.Empty);

            // Make new layer the current layer
            doc.Layers.SetCurrentUserLayer(l);

            AddLayerHistoryItem hist = new AddLayerHistoryItem(Resources.Icons.LayerNew, Translations.GetString("Add New Layer"), doc.Layers.IndexOf(l));

            doc.History.PushNewItem(hist);
        }
Example #4
0
        private void HandlePintaCoreActionsLayersImportFromFileActivated(object sender, EventArgs e)
        {
            Document doc = PintaCore.Workspace.ActiveDocument;

            PintaCore.Tools.Commit();

            var fcd = new Gtk.FileChooserDialog(Catalog.GetString("Open Image File"), PintaCore.Chrome.MainWindow,
                                                FileChooserAction.Open, Stock.Cancel, ResponseType.Cancel,
                                                Stock.Open, ResponseType.Ok);

            fcd.SetCurrentFolder(PintaCore.System.GetDialogDirectory());
            fcd.AlternativeButtonOrder = new int[] { (int)ResponseType.Ok, (int)ResponseType.Cancel };

            fcd.AddImagePreview();

            int response = fcd.Run();

            if (response == (int)Gtk.ResponseType.Ok)
            {
                string file = fcd.Filename;
                PintaCore.System.LastDialogDirectory = fcd.CurrentFolder;

                // Open the image and add it to the layers
                Layer layer = doc.AddNewLayer(System.IO.Path.GetFileName(file));

                using (var fs = new FileStream(file, FileMode.Open))
                    using (Pixbuf bg = new Pixbuf(fs))
                        using (Cairo.Context g = new Cairo.Context(layer.Surface)) {
                            CairoHelper.SetSourcePixbuf(g, bg, 0, 0);
                            g.Paint();
                        }

                doc.SetCurrentLayer(layer);

                AddLayerHistoryItem hist = new AddLayerHistoryItem("Menu.Layers.ImportFromFile.png", Catalog.GetString("Import From File"), doc.Layers.IndexOf(layer));
                doc.History.PushNewItem(hist);

                doc.Workspace.Invalidate();
            }

            fcd.Destroy();
        }
Example #5
0
        private void HandlerPintaCoreActionsEditPasteIntoNewLayerActivated(object sender, EventArgs e)
        {
            PintaCore.Layers.FinishSelection ();

            Gtk.Clipboard cb = Gtk.Clipboard.Get (Gdk.Atom.Intern ("CLIPBOARD", false));
            Gdk.Pixbuf image = cb.WaitForImage ();

            // TODO: Message window saying no image on clipboard
            if (image == null)
                return;

            Layer l = PintaCore.Layers.AddNewLayer (string.Empty);

            using (Cairo.Context g = new Cairo.Context (l.Surface))
                g.DrawPixbuf (image, new Cairo.Point (0, 0));

            // Make new layer the current layer
            PintaCore.Layers.SetCurrentLayer (l);

            PintaCore.Workspace.Invalidate ();

            // TODO: Need paste icon
            AddLayerHistoryItem hist = new AddLayerHistoryItem ("Menu.Edit.EraseSelection.png", Mono.Unix.Catalog.GetString ("Paste Into New Layer"), PintaCore.Layers.IndexOf (l));
            PintaCore.History.PushNewItem (hist);
        }
Example #6
0
        private void HandlePintaCoreActionsLayersImportFromFileActivated(object sender, EventArgs e)
        {
            Document doc = PintaCore.Workspace.ActiveDocument;
            PintaCore.Tools.Commit ();

            Gtk.FileChooserDialog fcd = new Gtk.FileChooserDialog (Catalog.GetString ("Open Image File"), null, FileChooserAction.Open, Gtk.Stock.Cancel, Gtk.ResponseType.Cancel, Gtk.Stock.Open, Gtk.ResponseType.Ok);

            fcd.SetCurrentFolder (PintaCore.System.LastDialogDirectory);
            fcd.AlternativeButtonOrder = new int[] { (int) ResponseType.Ok, (int) ResponseType.Cancel };

            fcd.AddImagePreview ();

            int response = fcd.Run ();

            if (response == (int)Gtk.ResponseType.Ok) {

                string file = fcd.Filename;
                PintaCore.System.LastDialogDirectory = fcd.CurrentFolder;

                // Open the image and add it to the layers
                Layer layer = doc.AddNewLayer (System.IO.Path.GetFileName (file));

                using (var fs = new FileStream (file, FileMode.Open))
                    using (Pixbuf bg = new Pixbuf (fs))
                        using (Cairo.Context g = new Cairo.Context (layer.Surface)) {
                            CairoHelper.SetSourcePixbuf (g, bg, 0, 0);
                            g.Paint ();
                        }

                doc.SetCurrentLayer (layer);

                AddLayerHistoryItem hist = new AddLayerHistoryItem ("Menu.Layers.ImportFromFile.png", Catalog.GetString ("Import From File"), doc.Layers.IndexOf (layer));
                doc.History.PushNewItem (hist);

                doc.Workspace.Invalidate ();
            }

            fcd.Destroy ();
        }
Example #7
0
        private void HandlePintaCoreActionsLayersDuplicateLayerActivated(object sender, EventArgs e)
        {
            Document doc = PintaCore.Workspace.ActiveDocument;
            PintaCore.Tools.Commit ();

            Layer l = doc.DuplicateCurrentLayer ();

            // Make new layer the current layer
            doc.SetCurrentLayer (l);

            AddLayerHistoryItem hist = new AddLayerHistoryItem ("Menu.Layers.DuplicateLayer.png", Catalog.GetString ("Duplicate Layer"), doc.Layers.IndexOf (l));
            doc.History.PushNewItem (hist);
        }
Example #8
0
        private void HandlePintaCoreActionsLayersImportFromFileActivated(object sender, EventArgs e)
        {
            PintaCore.Layers.FinishSelection ();

            Gtk.FileChooserDialog fcd = new Gtk.FileChooserDialog ("Open Image File", null, FileChooserAction.Open, Gtk.Stock.Cancel, Gtk.ResponseType.Cancel, Gtk.Stock.Open, Gtk.ResponseType.Ok);

            int response = fcd.Run ();

            if (response == (int)Gtk.ResponseType.Ok) {

                string file = fcd.Filename;

                // Open the image and add it to the layers
                Layer layer = PintaCore.Layers.AddNewLayer (System.IO.Path.GetFileName (file));

                Pixbuf bg = new Pixbuf (file, (int)PintaCore.Workspace.ImageSize.X, (int)PintaCore.Workspace.ImageSize.Y, true);

                using (Cairo.Context g = new Cairo.Context (layer.Surface)) {
                    CairoHelper.SetSourcePixbuf (g, bg, 0, 0);
                    g.Paint ();
                }

                bg.Dispose ();

                PintaCore.Layers.SetCurrentLayer (layer);

                AddLayerHistoryItem hist = new AddLayerHistoryItem ("Menu.Layers.ImportFromFile.png", Mono.Unix.Catalog.GetString ("Import From File"), PintaCore.Layers.IndexOf (layer));
                PintaCore.History.PushNewItem (hist);

                PintaCore.Workspace.Invalidate ();
            }

            fcd.Destroy ();
        }
Example #9
0
        private void HandlePintaCoreActionsLayersDuplicateLayerActivated(object sender, EventArgs e)
        {
            PintaCore.Layers.FinishSelection ();

            Layer l = PintaCore.Layers.DuplicateCurrentLayer ();

            // Make new layer the current layer
            PintaCore.Layers.SetCurrentLayer (l);

            AddLayerHistoryItem hist = new AddLayerHistoryItem ("Menu.Layers.DuplicateLayer.png", Mono.Unix.Catalog.GetString ("Duplicate Layer"), PintaCore.Layers.IndexOf (l));
            PintaCore.History.PushNewItem (hist);
        }
Example #10
0
        private void HandlePintaCoreActionsLayersImportFromFileActivated(object sender, EventArgs e)
        {
            Document doc = PintaCore.Workspace.ActiveDocument;

            PintaCore.Tools.Commit();

            using var fcd = new FileChooserNative(
                      Translations.GetString("Open Image File"),
                      PintaCore.Chrome.MainWindow,
                      FileChooserAction.Open,
                      Translations.GetString("Open"),
                      Translations.GetString("Cancel"));

            fcd.SetCurrentFolder(PintaCore.System.GetDialogDirectory());

            // Add image files filter
            var ff = new FileFilter();

            foreach (var format in PintaCore.System.ImageFormats.Formats)
            {
                if (!format.IsWriteOnly())
                {
                    foreach (var ext in format.Extensions)
                    {
                        ff.AddPattern(string.Format("*.{0}", ext));
                    }
                }
            }

            ff.Name = Translations.GetString("Image files");
            fcd.AddFilter(ff);

            var response = (ResponseType)fcd.Run();

            if (response == ResponseType.Accept)
            {
                string file = fcd.Filename;

                string?directory = Path.GetDirectoryName(file);
                if (directory is not null)
                {
                    PintaCore.System.LastDialogDirectory = directory;
                }

                // Open the image and add it to the layers
                UserLayer layer = doc.Layers.AddNewLayer(System.IO.Path.GetFileName(file));

                using (var fs = new FileStream(file, FileMode.Open))
                    using (var bg = new Pixbuf(fs))
                        using (var g = new Cairo.Context(layer.Surface)) {
                            Gdk.CairoHelper.SetSourcePixbuf(g, bg, 0, 0);
                            g.Paint();
                        }

                doc.Layers.SetCurrentUserLayer(layer);

                AddLayerHistoryItem hist = new AddLayerHistoryItem(Resources.Icons.LayerImport, Translations.GetString("Import From File"), doc.Layers.IndexOf(layer));
                doc.History.PushNewItem(hist);

                doc.Workspace.Invalidate();
            }
        }