// // (C) Copyright 2003-2019 by Autodesk, Inc. // // Permission to use, copy, modify, and distribute this software in // object code form for any purpose and without fee is hereby granted, // provided that the above copyright notice appears in all copies and // that both that copyright notice and the limited warranty and // restricted rights notice below appear in all supporting // documentation. // // AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS. // AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF // MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC. // DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE // UNINTERRUPTED OR ERROR FREE. // // Use, duplication, or disclosure by the U.S. Government is subject to // restrictions set forth in FAR 52.227-19 (Commercial Computer // Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) // (Rights in Technical Data and Computer Software), as applicable. // using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Autodesk.Revit; using Autodesk.Revit.DB; namespace Revit.SDK.Samples.ViewPrinter.CS { public partial class PrintSetupForm : System.Windows.Forms.Form { private PrintSTP m_printSetup; private bool m_stopUpdateFlag; private readonly double INCHES_IN_FEET = 12.0 ; public PrintSetupForm(PrintSTP printSetup) { m_printSetup = printSetup; InitializeComponent(); } private void PrintSetupForm_Load(object sender, EventArgs e) { printerNameLabel.Text = m_printSetup.PrinterName; printSetupsComboBox.DataSource = m_printSetup.PrintSettingNames; printSetupsComboBox.SelectedItem = m_printSetup.SettingName; this.printSetupsComboBox.SelectedValueChanged += new System.EventHandler(this.printSetupsComboBox_SelectedValueChanged); renameButton.Enabled = deleteButton.Enabled = m_printSetup.SettingName.Equals("") ? false : true; paperSizeComboBox.DataSource = m_printSetup.PaperSizes; paperSizeComboBox.SelectedItem = m_printSetup.PaperSize; this.paperSizeComboBox.SelectedValueChanged += new System.EventHandler(this.sizeComboBox_SelectedValueChanged); paperSourceComboBox.DataSource = m_printSetup.PaperSources; paperSourceComboBox.SelectedItem = m_printSetup.PaperSource; this.paperSourceComboBox.SelectedValueChanged += new System.EventHandler(this.sourceComboBox_SelectedValueChanged); if (m_printSetup.PageOrientation == PageOrientationType.Landscape) { landscapeRadioButton.Checked = true; } else { portraitRadioButton.Checked = true; } this.landscapeRadioButton.CheckedChanged += new System.EventHandler(this.landscapeRadioButton_CheckedChanged); this.portraitRadioButton.CheckedChanged += new System.EventHandler(this.portraitRadioButton_CheckedChanged); marginTypeComboBox.DataSource = m_printSetup.MarginTypes; this.offsetRadioButton.CheckedChanged += new System.EventHandler(this.offsetRadioButton_CheckedChanged); this.centerRadioButton.CheckedChanged += new System.EventHandler(this.centerRadioButton_CheckedChanged); this.userDefinedMarginYTextBox.TextChanged += new System.EventHandler(this.userDefinedMarginYTextBox_TextChanged); this.userDefinedMarginXTextBox.TextChanged += new System.EventHandler(this.userDefinedMarginXTextBox_TextChanged); marginTypeComboBox.SelectedItem = m_printSetup.SelectedMarginType; this.marginTypeComboBox.SelectedValueChanged += new System.EventHandler(this.marginTypeComboBox_SelectedValueChanged); if (m_printSetup.PaperPlacement == PaperPlacementType.Center) { centerRadioButton.Checked = true; offsetRadioButton.Checked = false; } else { offsetRadioButton.Checked = true; centerRadioButton.Checked = false; } if (m_printSetup.HiddenLineViews == HiddenLineViewsType.RasterProcessing) { rasterRadioButton.Checked = true; } else { vectorRadioButton.Checked = true; } this.rasterRadioButton.CheckedChanged += new System.EventHandler(this.rasterRadioButton_CheckedChanged); this.vectorRadioButton.CheckedChanged += new System.EventHandler(this.vectorRadioButton_CheckedChanged); if (m_printSetup.ZoomType == ZoomType.Zoom) { zoomRadioButton.Checked = true; zoomPercentNumericUpDown.Value = m_printSetup.Zoom; } else { fitToPageRadioButton.Checked = true; } this.zoomRadioButton.CheckedChanged += new System.EventHandler(this.zoomRadioButton_CheckedChanged); this.fitToPageRadioButton.CheckedChanged += new System.EventHandler(this.fitToPageRadioButton_CheckedChanged); rasterQualityComboBox.DataSource = m_printSetup.RasterQualities; rasterQualityComboBox.SelectedItem = m_printSetup.RasterQuality; this.rasterQualityComboBox.SelectedValueChanged += new System.EventHandler(this.rasterQualityComboBox_SelectedValueChanged); colorsComboBox.DataSource = m_printSetup.Colors; colorsComboBox.SelectedItem = m_printSetup.Color; this.colorsComboBox.SelectedValueChanged += new System.EventHandler(this.colorsComboBox_SelectedValueChanged); ViewLinksInBlueCheckBox.Checked = m_printSetup.ViewLinksinBlue; this.ViewLinksInBlueCheckBox.CheckedChanged += new System.EventHandler(this.ViewLinksInBlueCheckBox_CheckedChanged); hideScopeBoxedCheckBox.Checked = m_printSetup.HideScopeBoxes; this.hideScopeBoxedCheckBox.CheckedChanged += new System.EventHandler(this.hideScopeBoxedCheckBox_CheckedChanged); hideRefWorkPlanesCheckBox.Checked = m_printSetup.HideReforWorkPlanes; this.hideRefWorkPlanesCheckBox.CheckedChanged += new System.EventHandler(this.hideRefWorkPlanesCheckBox_CheckedChanged); hideCropBoundariesCheckBox.Checked = m_printSetup.HideCropBoundaries; this.hideCropBoundariesCheckBox.CheckedChanged += new System.EventHandler(this.hideCropBoundariesCheckBox_CheckedChanged); hideUnreferencedViewTagsCheckBox.Checked = m_printSetup.HideUnreferencedViewTags; this.hideUnreferencedViewTagsCheckBox.CheckedChanged += new System.EventHandler(this.hideUnreferencedViewTagsCheckBox_CheckedChanged); } private void saveButton_Click(object sender, EventArgs e) { m_printSetup.Save(); } private void printSetupsComboBox_SelectedValueChanged(object sender, EventArgs e) { if (m_stopUpdateFlag) return; m_printSetup.SettingName = printSetupsComboBox.SelectedItem as string; paperSizeComboBox.SelectedItem = m_printSetup.PaperSize; paperSourceComboBox.SelectedItem = m_printSetup.PaperSource; if (m_printSetup.PageOrientation == PageOrientationType.Landscape) { landscapeRadioButton.Checked = true; } else { portraitRadioButton.Checked = true; } if (m_printSetup.PaperPlacement == PaperPlacementType.Center) { centerRadioButton.Checked = true; } else { offsetRadioButton.Checked = true; } if (m_printSetup.VerifyMarginType(marginTypeComboBox)) { marginTypeComboBox.SelectedItem = m_printSetup.SelectedMarginType; } if (m_printSetup.HiddenLineViews == HiddenLineViewsType.RasterProcessing) { rasterRadioButton.Checked = true; } else { vectorRadioButton.Checked = true; } if (m_printSetup.ZoomType == ZoomType.Zoom) { zoomRadioButton.Checked = true; zoomPercentNumericUpDown.Value = m_printSetup.Zoom; } else { fitToPageRadioButton.Checked = true; m_printSetup.ZoomType = ZoomType.Zoom; zoomPercentNumericUpDown.Value = m_printSetup.Zoom; m_printSetup.ZoomType = ZoomType.FitToPage; } rasterQualityComboBox.SelectedItem = m_printSetup.RasterQuality; colorsComboBox.SelectedItem = m_printSetup.Color; ViewLinksInBlueCheckBox.Checked = m_printSetup.ViewLinksinBlue; hideScopeBoxedCheckBox.Checked = m_printSetup.HideScopeBoxes; hideRefWorkPlanesCheckBox.Checked = m_printSetup.HideReforWorkPlanes; hideCropBoundariesCheckBox.Checked = m_printSetup.HideCropBoundaries; hideUnreferencedViewTagsCheckBox.Checked = m_printSetup.HideUnreferencedViewTags; renameButton.Enabled = deleteButton.Enabled = m_printSetup.SettingName.Equals("") ? false : true; revertButton.Enabled = false; } private void sizeComboBox_SelectedValueChanged(object sender, EventArgs e) { m_printSetup.PaperSize = paperSizeComboBox.SelectedItem as string; if (!revertButton.Enabled) { revertButton.Enabled = true; } } private void sourceComboBox_SelectedValueChanged(object sender, EventArgs e) { m_printSetup.PaperSource = paperSourceComboBox.SelectedItem as string; if (!revertButton.Enabled) { revertButton.Enabled = true; } } private void portraitRadioButton_CheckedChanged(object sender, EventArgs e) { if (portraitRadioButton.Checked) { m_printSetup.PageOrientation = PageOrientationType.Portrait; } if (!revertButton.Enabled) { revertButton.Enabled = true; } } private void landscapeRadioButton_CheckedChanged(object sender, EventArgs e) { if (landscapeRadioButton.Checked) { m_printSetup.PageOrientation = PageOrientationType.Landscape; } if (!revertButton.Enabled) { revertButton.Enabled = true; } } private void centerRadioButton_CheckedChanged(object sender, EventArgs e) { if (!centerRadioButton.Checked) return; m_printSetup.PaperPlacement = PaperPlacementType.Center; m_printSetup.VerifyMarginType(marginTypeComboBox); System.Collections.ObjectModel.Collection controlsToEnableOrNot = new System.Collections.ObjectModel.Collection(); controlsToEnableOrNot.Add(userDefinedMarginXTextBox); controlsToEnableOrNot.Add(userDefinedMarginYTextBox); if (m_printSetup.VerifyUserDefinedMargin(controlsToEnableOrNot)) { userDefinedMarginXTextBox.Text = (m_printSetup.OriginOffsetX * INCHES_IN_FEET).ToString(); userDefinedMarginYTextBox.Text = (m_printSetup.OriginOffsetY * INCHES_IN_FEET).ToString(); if (!revertButton.Enabled) { revertButton.Enabled = true; } } } private void offsetRadioButton_CheckedChanged(object sender, EventArgs e) { if (!offsetRadioButton.Checked) return; m_printSetup.PaperPlacement = PaperPlacementType.LowerLeft; m_printSetup.VerifyMarginType(marginTypeComboBox); System.Collections.ObjectModel.Collection controlsToEnableOrNot = new System.Collections.ObjectModel.Collection(); controlsToEnableOrNot.Add(userDefinedMarginXTextBox); controlsToEnableOrNot.Add(userDefinedMarginYTextBox); if (m_printSetup.VerifyUserDefinedMargin(controlsToEnableOrNot)) { userDefinedMarginXTextBox.Text = (m_printSetup.OriginOffsetX * INCHES_IN_FEET).ToString(); userDefinedMarginYTextBox.Text = (m_printSetup.OriginOffsetY * INCHES_IN_FEET).ToString(); if (!revertButton.Enabled) { revertButton.Enabled = true; } } } private void marginTypeComboBox_SelectedValueChanged(object sender, EventArgs e) { m_printSetup.SelectedMarginType = (MarginType)marginTypeComboBox.SelectedItem; System.Collections.ObjectModel.Collection controlsToEnableOrNot = new System.Collections.ObjectModel.Collection(); controlsToEnableOrNot.Add(userDefinedMarginXTextBox); controlsToEnableOrNot.Add(userDefinedMarginYTextBox); if (m_printSetup.VerifyUserDefinedMargin(controlsToEnableOrNot)) { userDefinedMarginXTextBox.Text = (m_printSetup.OriginOffsetX * INCHES_IN_FEET).ToString(); userDefinedMarginYTextBox.Text = (m_printSetup.OriginOffsetY * INCHES_IN_FEET).ToString(); } if (!revertButton.Enabled) { revertButton.Enabled = true; } } private void vectorRadioButton_CheckedChanged(object sender, EventArgs e) { if (vectorRadioButton.Checked) { m_printSetup.HiddenLineViews = HiddenLineViewsType.VectorProcessing; if (!revertButton.Enabled) { revertButton.Enabled = true; } } } private void rasterRadioButton_CheckedChanged(object sender, EventArgs e) { if (rasterRadioButton.Checked) { m_printSetup.HiddenLineViews = HiddenLineViewsType.RasterProcessing; if (!revertButton.Enabled) { revertButton.Enabled = true; } } } private void fitToPageRadioButton_CheckedChanged(object sender, EventArgs e) { if (fitToPageRadioButton.Checked) { m_printSetup.ZoomType = ZoomType.FitToPage; centerRadioButton.Checked = true; if (!revertButton.Enabled) { revertButton.Enabled = true; } } } private void zoomRadioButton_CheckedChanged(object sender, EventArgs e) { if (zoomRadioButton.Checked) { m_printSetup.ZoomType = ZoomType.Zoom; offsetRadioButton.Checked = true; m_printSetup.Zoom = (int)zoomPercentNumericUpDown.Value; if (!revertButton.Enabled) { revertButton.Enabled = true; } } } private void zoomPercentNumericUpDown_ValueChanged(object sender, EventArgs e) { if (zoomRadioButton.Checked) { m_printSetup.Zoom = (int)zoomPercentNumericUpDown.Value; if (!revertButton.Enabled) { revertButton.Enabled = true; } } } private void rasterQualityComboBox_SelectedValueChanged(object sender, EventArgs e) { m_printSetup.RasterQuality = (RasterQualityType)rasterQualityComboBox.SelectedItem; if (!revertButton.Enabled) { revertButton.Enabled = true; } } private void colorsComboBox_SelectedValueChanged(object sender, EventArgs e) { m_printSetup.Color = (ColorDepthType)colorsComboBox.SelectedItem; if (!revertButton.Enabled) { revertButton.Enabled = true; } } private void ViewLinksInBlueCheckBox_CheckedChanged(object sender, EventArgs e) { m_printSetup.ViewLinksinBlue = ViewLinksInBlueCheckBox.Checked; if (!revertButton.Enabled) { revertButton.Enabled = true; } } private void hideScopeBoxedCheckBox_CheckedChanged(object sender, EventArgs e) { m_printSetup.HideScopeBoxes = hideScopeBoxedCheckBox.Checked; if (!revertButton.Enabled) { revertButton.Enabled = true; } } private void hideRefWorkPlanesCheckBox_CheckedChanged(object sender, EventArgs e) { m_printSetup.HideReforWorkPlanes = hideRefWorkPlanesCheckBox.Checked; if (!revertButton.Enabled) { revertButton.Enabled = true; } } private void hideCropBoundariesCheckBox_CheckedChanged(object sender, EventArgs e) { m_printSetup.HideCropBoundaries = hideCropBoundariesCheckBox.Checked; if (!revertButton.Enabled) { revertButton.Enabled = true; } } private void hideUnreferencedViewTagsCheckBox_CheckedChanged(object sender, EventArgs e) { m_printSetup.HideUnreferencedViewTags = hideUnreferencedViewTagsCheckBox.Checked; if (!revertButton.Enabled) { revertButton.Enabled = true; } } private void userDefinedMarginXTextBox_TextChanged(object sender, EventArgs e) { double doubleValue; if (!double.TryParse(userDefinedMarginXTextBox.Text, out doubleValue)) { PrintMgr.MyMessageBox("Invalid input"); return; } m_printSetup.OriginOffsetX = doubleValue / INCHES_IN_FEET; if (!revertButton.Enabled) { revertButton.Enabled = true; } } private void userDefinedMarginYTextBox_TextChanged(object sender, EventArgs e) { double doubleValue; if (!double.TryParse(userDefinedMarginYTextBox.Text, out doubleValue)) { PrintMgr.MyMessageBox("Invalid input"); return; } m_printSetup.OriginOffsetY = doubleValue / INCHES_IN_FEET; if (!revertButton.Enabled) { revertButton.Enabled = true; } } private void saveAsButton_Click(object sender, EventArgs e) { using (SaveAsForm dlg = new SaveAsForm(m_printSetup)) { dlg.ShowDialog(); } m_stopUpdateFlag = true; printSetupsComboBox.DataSource = m_printSetup.PrintSettingNames; printSetupsComboBox.Update(); m_stopUpdateFlag = false; printSetupsComboBox.SelectedItem = m_printSetup.SettingName; } private void renameButton_Click(object sender, EventArgs e) { using (ReNameForm dlg = new ReNameForm(m_printSetup)) { dlg.ShowDialog(); } m_stopUpdateFlag = true; printSetupsComboBox.DataSource = m_printSetup.PrintSettingNames; printSetupsComboBox.Update(); m_stopUpdateFlag = false; printSetupsComboBox.SelectedItem = m_printSetup.SettingName; } private void revertButton_Click(object sender, EventArgs e) { m_printSetup.Revert(); printSetupsComboBox_SelectedValueChanged(null, null); } private void deleteButton_Click(object sender, EventArgs e) { m_printSetup.Delete(); m_stopUpdateFlag = true; printSetupsComboBox.DataSource = m_printSetup.PrintSettingNames; printSetupsComboBox.Update(); m_stopUpdateFlag = false; printSetupsComboBox.SelectedItem = m_printSetup.SettingName; } } }