void exportAMF_Click(object sender, EventArgs mouseEvent) { UiThread.RunOnIdle((state) => { SaveFileDialogParams saveParams = new SaveFileDialogParams("Save as AMF|*.amf", initialDirectory: documentsPath); saveParams.Title = "MatterControl: Export File"; saveParams.ActionButtonLabel = "Export"; saveParams.FileName = printItemWrapper.Name; Close(); FileDialog.SaveFileDialog(saveParams, onExportAmfFileSelected); }); }
private void exportSTL_Click(object sender, EventArgs mouseEvent) { UiThread.RunOnIdle(() => { SaveFileDialogParams saveParams = new SaveFileDialogParams("Save as STL|*.stl"); saveParams.Title = "MatterControl: Export File"; saveParams.ActionButtonLabel = "Export"; saveParams.FileName = printItemWrapper.Name; Close(); FileDialog.SaveFileDialog(saveParams, onExportStlFileSelected); }); }
private void outputScad_Click(object sender, EventArgs e) { if (previousRender != null) { SaveFileDialogParams saveParams = new SaveFileDialogParams("Text files (*.scad)|*.scad"); FileDialog.SaveFileDialog(saveParams, (streamToSaveTo) => { if (streamToSaveTo != null) { OpenSCadOutput.Save(previousRender, streamToSaveTo.FileName); } }); } }
private void OutputScad_Click(object sender, EventArgs e) { if (rootUnion != null) { SaveFileDialogParams saveParams = new SaveFileDialogParams("Text files (*.scad)|*.scad"); FileDialog.SaveFileDialog(saveParams, (streamToSaveTo) => { if (streamToSaveTo != null) { OpenSCadOutput.Save(rootUnion, streamToSaveTo.FileName);//"c:/output.scad") } }); } }
string IFileDialogs.SaveFileDialog(SaveFileDialogParams p) { var dlg = new NSSavePanel(); dlg.Title = p.Title ?? "Save"; if (p.SuggestedFileName != null) { dlg.NameFieldStringValue = p.SuggestedFileName; } if (dlg.RunModal() == 1) { return(dlg.Url.Path); } return(null); }
void DoExportSTL_Click(object state) { SaveFileDialogParams saveParams = new SaveFileDialogParams("Save as STL|*.stl"); saveParams.Title = "MatterControl: Export File"; saveParams.ActionButtonLabel = "Export"; System.IO.Stream streamToSaveTo = FileDialog.SaveFileDialog(ref saveParams); if (streamToSaveTo != null) { streamToSaveTo.Close(); Close(); File.Copy(printQueueItem.printItem.FileLocation, saveParams.FileName, true); ShowFileIfRequested(saveParams.FileName); } }
public override bool SaveFileDialog(SaveFileDialogParams saveParams, Action <SaveFileDialogParams> callback) { WidgetForWindowsFormsAbstract.MainWindowsFormsWindow.ShowingSystemDialog = true; Gtk.FileChooserDialog fc = new Gtk.FileChooserDialog(saveParams.Title, null, FileChooserAction.Save, "Cancel", ResponseType.Cancel, "Save", ResponseType.Accept); Gtk.FileFilter filter = new Gtk.FileFilter(); filter.Name = saveParams.Filter.Split('|')[0]; string[] extensions = saveParams.Filter.Split('|')[1].Split(';'); foreach (string e in extensions) { filter.AddPattern(e.ToLower()); } fc.AddFilter(filter); //Set default filename and add file extension fc.CurrentName = saveParams.FileName + extensions[0].TrimStart('*'); fc.SetCurrentFolder(saveParams.InitialDirectory); Gtk.Application.Init(); if (fc.Run() == (int)ResponseType.Accept) { saveParams.FileName = fc.Filename; UiThread.RunOnIdle(() => { callback(saveParams); }); } fc.Destroy(); while (Gtk.Application.EventsPending()) { Gtk.Main.Iteration(); } WidgetForWindowsFormsAbstract.MainWindowsFormsWindow.ShowingSystemDialog = false; return(true); }
void createPatrsSheetsButton_Click(object sender, MouseEventArgs mouseEvent) { List <PrintItem> parts = PrintQueueControl.Instance.CreateReadOnlyPartList(); SaveFileDialogParams saveParams = new SaveFileDialogParams("Save Parts Sheet|*.pdf"); System.IO.Stream streamToSaveTo = FileDialog.SaveFileDialog(ref saveParams); if (streamToSaveTo != null) { string partFileName = saveParams.FileName; if (!partFileName.StartsWith("" + Path.DirectorySeparatorChar)) { partFileName = Path.DirectorySeparatorChar + partFileName; } PartsSheet currentPartsInQueue = new PartsSheet(parts, partFileName); currentPartsInQueue.SaveSheets(); } }
private void onExportLogFileSelected(SaveFileDialogParams saveParams) { if (saveParams.FileName != null) { string filePathToSave = saveParams.FileName; if (filePathToSave != null && filePathToSave != "") { try { textScrollWidget.WriteToFile(filePathToSave); } catch(UnauthorizedAccessException e) { PrinterOutputCache.Instance.PrinterLines.Add(""); PrinterOutputCache.Instance.PrinterLines.Add(writeFaildeWaring); PrinterOutputCache.Instance.PrinterLines.Add(cantAccessPath.FormatWith(filePathToSave)); PrinterOutputCache.Instance.PrinterLines.Add(""); } } } }
private void SaveStl(SaveFileDialogParams saveParams) { try { if (!string.IsNullOrEmpty(saveParams.FileName)) { string filePathToSave = saveParams.FileName; if (filePathToSave != null && filePathToSave != "") { string extension = Path.GetExtension(filePathToSave); if (extension == "") { File.Delete(filePathToSave); filePathToSave += ".stl"; } if (Path.GetExtension(printItemWrapper.FileLocation).ToUpper() == Path.GetExtension(filePathToSave).ToUpper()) { File.Copy(printItemWrapper.FileLocation, filePathToSave, true); } else { List <MeshGroup> meshGroups = MeshFileIo.Load(printItemWrapper.FileLocation); if (!MeshFileIo.Save(meshGroups, filePathToSave)) { UiThread.RunOnIdle(() => { StyledMessageBox.ShowMessageBox(null, "AMF to STL conversion failed", "Couldn't save file".Localize()); }); } } ShowFileIfRequested(filePathToSave); } } } catch (Exception e) { UiThread.RunOnIdle(() => { StyledMessageBox.ShowMessageBox(null, e.Message, "Couldn't save file".Localize()); }); } }
public override bool SaveFileDialog(SaveFileDialogParams saveParams, Action <SaveFileDialogParams> callback) { WidgetForWindowsFormsAbstract.MainWindowsFormsWindow.ShowingSystemDialog = true; SaveFileDialogParams SaveFileDialogDialogParams = saveParams; SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.InitialDirectory = SaveFileDialogDialogParams.InitialDirectory; saveFileDialog1.Filter = saveParams.Filter; saveFileDialog1.FilterIndex = saveParams.FilterIndex; saveFileDialog1.RestoreDirectory = true; saveFileDialog1.AddExtension = true; saveFileDialog1.FileName = saveParams.FileName; saveFileDialog1.Title = saveParams.Title; saveFileDialog1.ShowHelp = false; saveFileDialog1.OverwritePrompt = true; saveFileDialog1.CheckPathExists = true; saveFileDialog1.SupportMultiDottedExtensions = true; saveFileDialog1.ValidateNames = false; if (saveFileDialog1.ShowDialog() == DialogResult.OK) { SaveFileDialogDialogParams.FileName = saveFileDialog1.FileName; } else { SaveFileDialogDialogParams.FileName = null; } WidgetForWindowsFormsAbstract.MainWindowsFormsWindow.ShowingSystemDialog = false; UiThread.RunOnIdle(() => { callback(saveParams); }); return(true); }
void onExportGcodeFileSelected(SaveFileDialogParams saveParams) { if (saveParams.FileName != null) { gcodePathAndFilenameToSave = saveParams.FileName; string extension = Path.GetExtension(gcodePathAndFilenameToSave); if (extension == "") { File.Delete(gcodePathAndFilenameToSave); gcodePathAndFilenameToSave += ".gcode"; } string sourceExtension = Path.GetExtension(printItemWrapper.FileLocation).ToUpper(); if (MeshFileIo.ValidFileExtensions().Contains(sourceExtension)) { SlicingQueue.Instance.QueuePartForSlicing(printItemWrapper); printItemWrapper.SlicingDone.RegisterEvent(sliceItem_Done, ref unregisterEvents); } else if (partIsGCode) { SaveGCodeToNewLocation(printItemWrapper.FileLocation, gcodePathAndFilenameToSave); } } }
void DoExportGCode_Click(object state) { SaveFileDialogParams saveParams = new SaveFileDialogParams("Export GCode|*.gcode", title: "Export GCode"); saveParams.Title = "MatterControl: Export File"; saveParams.ActionButtonLabel = "Export"; System.IO.Stream streamToSaveTo = FileDialog.SaveFileDialog(ref saveParams); if (streamToSaveTo != null) { streamToSaveTo.Close(); string filePathToSave = saveParams.FileName; string extension = GetExtension(filePathToSave); if (extension == "") { File.Delete(filePathToSave); filePathToSave += ".gcode"; } if (System.IO.Path.GetExtension(printQueueItem.printItem.FileLocation).ToUpper() == ".STL") { pathAndFilenameToSave = saveParams.FileName; Close(); SlicingQueue.Instance.QueuePartForSlicing(printQueueItem.printItem); printQueueItem.printItem.Done += new EventHandler(sliceItem_Done); } else if (partIsGCode) { Close(); SaveGCodeToNewLocation(printQueueItem.printItem.FileLocation, saveParams.FileName); } } }
private async void onExportStlFileSelected(SaveFileDialogParams saveParams) { await Task.Run(() => SaveStl(saveParams)); }
//Opens Save file dialog and outputs current queue as a project public void SaveAs() { SaveFileDialogParams saveParams = new SaveFileDialogParams("Save Project|*.zip"); FileDialog.SaveFileDialog(saveParams, onSaveFileSelected); }
public void CreateWindowContent() { this.RemoveAllChildren(); TextImageButtonFactory textImageButtonFactory = new TextImageButtonFactory(); FlowLayoutWidget topToBottom = new FlowLayoutWidget(FlowDirection.TopToBottom); topToBottom.Padding = new BorderDouble(3, 0, 3, 5); topToBottom.AnchorAll(); // Creates Header FlowLayoutWidget headerRow = new FlowLayoutWidget(FlowDirection.LeftToRight); headerRow.HAnchor = HAnchor.ParentLeftRight; headerRow.Margin = new BorderDouble(0, 3, 0, 0); headerRow.Padding = new BorderDouble(0, 3, 0, 3); BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; //Creates Text and adds into header { TextWidget elementHeader = new TextWidget("File export options:".Localize(), pointSize: 14); elementHeader.TextColor = ActiveTheme.Instance.PrimaryTextColor; elementHeader.HAnchor = HAnchor.ParentLeftRight; elementHeader.VAnchor = Agg.UI.VAnchor.ParentBottom; headerRow.AddChild(elementHeader); topToBottom.AddChild(headerRow); } // Creates container in the middle of window FlowLayoutWidget middleRowContainer = new FlowLayoutWidget(FlowDirection.TopToBottom); { middleRowContainer.HAnchor = HAnchor.ParentLeftRight; middleRowContainer.VAnchor = VAnchor.ParentBottomTop; middleRowContainer.Padding = new BorderDouble(5); middleRowContainer.BackgroundColor = ActiveTheme.Instance.SecondaryBackgroundColor; } if (!partIsGCode) { string exportStlText = LocalizedString.Get("Export as"); string exportStlTextFull = string.Format("{0} STL", exportStlText); Button exportAsStlButton = textImageButtonFactory.Generate(exportStlTextFull); exportAsStlButton.HAnchor = HAnchor.ParentLeft; exportAsStlButton.Cursor = Cursors.Hand; exportAsStlButton.Click += new EventHandler(exportSTL_Click); middleRowContainer.AddChild(exportAsStlButton); } if (!partIsGCode) { string exportAmfText = LocalizedString.Get("Export as"); string exportAmfTextFull = string.Format("{0} AMF", exportAmfText); Button exportAsAmfButton = textImageButtonFactory.Generate(exportAmfTextFull); exportAsAmfButton.HAnchor = HAnchor.ParentLeft; exportAsAmfButton.Cursor = Cursors.Hand; exportAsAmfButton.Click += new EventHandler(exportAMF_Click); middleRowContainer.AddChild(exportAsAmfButton); } bool showExportGCodeButton = ActivePrinterProfile.Instance.ActivePrinter != null || partIsGCode; if (showExportGCodeButton) { string exportGCodeText = LocalizedString.Get("Export as"); string exportGCodeTextFull = string.Format("{0} GCode", exportGCodeText); Button exportGCode = textImageButtonFactory.Generate(exportGCodeTextFull); exportGCode.Name = "Export as GCode Button"; exportGCode.HAnchor = HAnchor.ParentLeft; exportGCode.Cursor = Cursors.Hand; exportGCode.Click += new EventHandler((object sender, EventArgs e) => { UiThread.RunOnIdle(ExportGCode_Click); }); middleRowContainer.AddChild(exportGCode); PluginFinder <ExportGcodePlugin> exportPluginFinder = new PluginFinder <ExportGcodePlugin>(); foreach (ExportGcodePlugin plugin in exportPluginFinder.Plugins) { //Create export button for each Plugin found string exportButtonText = plugin.getButtonText().Localize(); Button exportButton = textImageButtonFactory.Generate(exportButtonText); exportButton.HAnchor = HAnchor.ParentLeft; exportButton.Cursor = Cursors.Hand; exportButton.Click += new EventHandler((object sender, EventArgs e) => { SaveFileDialogParams saveParams = new SaveFileDialogParams(plugin.getExtensionFilter(), title: plugin.getButtonText()); saveParams.Title = "MatterControl: Export File"; saveParams.ActionButtonLabel = "Export"; FileDialog.SaveFileDialog(saveParams, delegate(SaveFileDialogParams saveParam) { string extension = Path.GetExtension(saveParam.FileName); if (extension == "") { saveParam.FileName += plugin.getFileExtension(); } if (partIsGCode) { Close(); plugin.generate(printItemWrapper.FileLocation, saveParam.FileName); } else { Close(); SlicingQueue.Instance.QueuePartForSlicing(printItemWrapper); printItemWrapper.SlicingDone += new EventHandler((object slicingCompleteSender, EventArgs slicingEventArgs) => { PrintItemWrapper sliceItem = (PrintItemWrapper)slicingCompleteSender; if (File.Exists(sliceItem.GetGCodePathAndFileName())) { plugin.generate(sliceItem.GetGCodePathAndFileName(), saveParam.FileName); } }); //End SlicingDone Event handler } }); //End SaveFileDialog delegate }); //End Click Event handler middleRowContainer.AddChild(exportButton); } //bool showExportX3GButton = ActivePrinterProfile.Instance.ActivePrinter.DriverType == "X3G"; bool showExportX3GButton = false; if (showExportX3GButton) { string exportAsX3GText = "Export as X3G".Localize(); Button exportAsX3G = textImageButtonFactory.Generate(exportAsX3GText); exportAsX3G.HAnchor = HAnchor.ParentLeft; exportAsX3G.Cursor = Cursors.Hand; exportAsX3G.Click += new EventHandler((object sender, EventArgs e) => { UiThread.RunOnIdle(ExportX3G_Click); }); middleRowContainer.AddChild(exportAsX3G); } } middleRowContainer.AddChild(new VerticalSpacer()); // If print leveling is enabled then add in a check box 'Apply Leveling During Export' and default checked. if (showExportGCodeButton && ActivePrinterProfile.Instance.DoPrintLeveling) { applyLeveling = new CheckBox(LocalizedString.Get(applyLevelingDuringExportString), ActiveTheme.Instance.PrimaryTextColor, 10); applyLeveling.Checked = true; applyLeveling.HAnchor = HAnchor.ParentLeft; applyLeveling.Cursor = Cursors.Hand; //applyLeveling.Margin = new BorderDouble(top: 10); middleRowContainer.AddChild(applyLeveling); } // TODO: make this work on the mac and then delete this if if (OsInformation.OperatingSystem == OSType.Windows || OsInformation.OperatingSystem == OSType.X11) { showInFolderAfterSave = new CheckBox(LocalizedString.Get("Show file in folder after save"), ActiveTheme.Instance.PrimaryTextColor, 10); showInFolderAfterSave.HAnchor = HAnchor.ParentLeft; showInFolderAfterSave.Cursor = Cursors.Hand; //showInFolderAfterSave.Margin = new BorderDouble(top: 10); middleRowContainer.AddChild(showInFolderAfterSave); } if (!showExportGCodeButton) { string noGCodeMessageTextBeg = LocalizedString.Get("Note"); string noGCodeMessageTextEnd = LocalizedString.Get("To enable GCode export, select a printer profile."); string noGCodeMessageTextFull = string.Format("{0}: {1}", noGCodeMessageTextBeg, noGCodeMessageTextEnd); TextWidget noGCodeMessage = new TextWidget(noGCodeMessageTextFull, textColor: ActiveTheme.Instance.PrimaryTextColor, pointSize: 10); noGCodeMessage.HAnchor = HAnchor.ParentLeft; middleRowContainer.AddChild(noGCodeMessage); } //Creates button container on the bottom of window FlowLayoutWidget buttonRow = new FlowLayoutWidget(FlowDirection.LeftToRight); { BackgroundColor = ActiveTheme.Instance.PrimaryBackgroundColor; buttonRow.HAnchor = HAnchor.ParentLeftRight; buttonRow.Padding = new BorderDouble(0, 3); } Button cancelButton = textImageButtonFactory.Generate("Cancel"); cancelButton.Name = "Export Item Window Cancel Button"; cancelButton.Cursor = Cursors.Hand; cancelButton.Click += (sender, e) => { CloseOnIdle(); }; buttonRow.AddChild(new HorizontalSpacer()); buttonRow.AddChild(cancelButton); topToBottom.AddChild(middleRowContainer); topToBottom.AddChild(buttonRow); this.AddChild(topToBottom); }