//************************************************************************* // Constructor: GeneralUserSettingsDialog() // /// <summary> /// Initializes a new instance of the <see /// cref="GeneralUserSettingsDialog" /> class. /// </summary> /// /// <param name="generalUserSettings"> /// The object being edited. /// </param> /// /// <param name="workbook"> /// Workbook containing the graph data. /// </param> //************************************************************************* public GeneralUserSettingsDialog( GeneralUserSettings generalUserSettings, Microsoft.Office.Interop.Excel.Workbook workbook ) { Debug.Assert(generalUserSettings != null); Debug.Assert(workbook != null); generalUserSettings.AssertValid(); m_oGeneralUserSettings = generalUserSettings; m_oWorkbook = workbook; m_oAxisFont = m_oGeneralUserSettings.AxisFont; m_oLabelUserSettings = m_oGeneralUserSettings.LabelUserSettings; // Instantiate an object that saves and retrieves the position of this // dialog. Note that the object automatically saves the settings when // the form closes. m_oGeneralUserSettingsDialogUserSettings = new GeneralUserSettingsDialogUserSettings(this); InitializeComponent(); nudEdgeWidth.Minimum = (Decimal)EdgeWidthConverter.MinimumWidthWorkbook; nudEdgeWidth.Maximum = (Decimal)EdgeWidthConverter.MaximumWidthWorkbook; nudSelectedEdgeWidth.Minimum = (Decimal)EdgeWidthConverter.MinimumWidthWorkbook; nudSelectedEdgeWidth.Maximum = (Decimal)EdgeWidthConverter.MaximumWidthWorkbook; nudRelativeArrowSize.Minimum = (Decimal)EdgeDrawer.MinimumRelativeArrowSize; nudRelativeArrowSize.Maximum = (Decimal)EdgeDrawer.MaximumRelativeArrowSize; nudVertexRadius.Minimum = nudVertexImageSize.Minimum = (Decimal)VertexRadiusConverter.MinimumRadiusWorkbook; nudVertexRadius.Maximum = nudVertexImageSize.Maximum = (Decimal)VertexRadiusConverter.MaximumRadiusWorkbook; ( new VertexShapeConverter() ).PopulateComboBox(cbxVertexShape, false); nudVertexAlpha.Minimum = nudEdgeAlpha.Minimum = (Decimal)AlphaConverter.MinimumAlphaWorkbook; nudVertexAlpha.Maximum = nudEdgeAlpha.Maximum = (Decimal)AlphaConverter.MaximumAlphaWorkbook; DoDataExchange(false); AssertValid(); }
//************************************************************************* // Method: DoDataExchange() // /// <summary> /// Transfers data between the dialog's fields and its controls. /// </summary> /// /// <param name="bFromControls"> /// true to transfer data from the dialog's controls to its fields, false /// for the other direction. /// </param> /// /// <returns> /// true if the transfer was successful. /// </returns> //************************************************************************* protected Boolean DoDataExchange( Boolean bFromControls ) { if (bFromControls) { Boolean bUseSpecifiedVertexImageSize = radUseSpecifiedVertexImageSize.Checked; Single fEdgeWidth, fSelectedEdgeWidth, fRelativeArrowSize, fVertexRadius, fVertexAlpha, fEdgeAlpha; Single fVertexImageSize = 0; if ( !ValidateNumericUpDown(nudVertexRadius, "a size for simple vertex shapes", out fVertexRadius) || ( bUseSpecifiedVertexImageSize && !ValidateNumericUpDown(nudVertexImageSize, "a size for vertex images", out fVertexImageSize) ) || !ValidateNumericUpDown(nudVertexAlpha, "a vertex opacity", out fVertexAlpha) || !ValidateNumericUpDown(nudEdgeWidth, "a width for unselected edges", out fEdgeWidth) || !ValidateNumericUpDown(nudEdgeAlpha, "an edge opacity", out fEdgeAlpha) || !ValidateNumericUpDown(nudRelativeArrowSize, "an arrow size", out fRelativeArrowSize) || !ValidateNumericUpDown(nudSelectedEdgeWidth, "a width for selected edges", out fSelectedEdgeWidth) ) { return (false); } m_oGeneralUserSettings.BackColor = usrBackColor.Color; m_oGeneralUserSettings.EdgeWidth = fEdgeWidth; m_oGeneralUserSettings.SelectedEdgeWidth = fSelectedEdgeWidth; m_oGeneralUserSettings.RelativeArrowSize = fRelativeArrowSize; m_oGeneralUserSettings.EdgeColor = usrEdgeColor.Color; m_oGeneralUserSettings.EdgeAlpha = fEdgeAlpha; m_oGeneralUserSettings.SelectedEdgeColor = usrSelectedEdgeColor.Color; m_oGeneralUserSettings.VertexShape = (VertexShape)cbxVertexShape.SelectedValue; m_oGeneralUserSettings.VertexRadius = fVertexRadius; m_oGeneralUserSettings.VertexImageSize = bUseSpecifiedVertexImageSize ? fVertexImageSize : new Nullable<Single>(); m_oGeneralUserSettings.VertexColor = usrVertexColor.Color; m_oGeneralUserSettings.VertexAlpha = fVertexAlpha; m_oGeneralUserSettings.SelectedVertexColor = usrSelectedVertexColor.Color; m_oGeneralUserSettings.AutoSelect = chkAutoSelect.Checked; m_oGeneralUserSettings.AxisFont = m_oAxisFont; m_oGeneralUserSettings.LabelUserSettings = m_oLabelUserSettings; m_oGeneralUserSettings.AutoReadWorkbook = chkAutoReadWorkbook.Checked; } else { usrBackColor.Color = m_oGeneralUserSettings.BackColor; nudEdgeWidth.Value = (Decimal)m_oGeneralUserSettings.EdgeWidth; nudSelectedEdgeWidth.Value = (Decimal)m_oGeneralUserSettings.SelectedEdgeWidth; nudRelativeArrowSize.Value = (Decimal)m_oGeneralUserSettings.RelativeArrowSize; usrEdgeColor.Color = m_oGeneralUserSettings.EdgeColor; nudEdgeAlpha.Value = (Decimal)m_oGeneralUserSettings.EdgeAlpha; usrSelectedEdgeColor.Color = m_oGeneralUserSettings.SelectedEdgeColor; cbxVertexShape.SelectedValue = m_oGeneralUserSettings.VertexShape; nudVertexRadius.Value = (Decimal)m_oGeneralUserSettings.VertexRadius; Nullable<Single> oVertexImageSize = m_oGeneralUserSettings.VertexImageSize; if (oVertexImageSize.HasValue) { radUseSpecifiedVertexImageSize.Checked = true; nudVertexImageSize.Value = (Decimal)oVertexImageSize.Value; } else { radUseActualVertexImageSize.Checked = true; } usrVertexColor.Color = m_oGeneralUserSettings.VertexColor; nudVertexAlpha.Value = (Decimal)m_oGeneralUserSettings.VertexAlpha; usrSelectedVertexColor.Color = m_oGeneralUserSettings.SelectedVertexColor; chkAutoSelect.Checked = m_oGeneralUserSettings.AutoSelect; m_oAxisFont = m_oGeneralUserSettings.AxisFont; m_oLabelUserSettings = m_oGeneralUserSettings.LabelUserSettings.Copy(); chkAutoReadWorkbook.Checked = m_oGeneralUserSettings.AutoReadWorkbook; EnableControls(); } return (true); }