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 (); } }
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); }
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); }
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(); }
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); }
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 (); }
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); }
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 (); }
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); }
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(); } }