using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using VEPROMS.CSLA.Library; using DevComponents; using DevComponents.DotNetBar; using DevComponents.DotNetBar.Controls; using System.Drawing.Imaging; using VEPROMS.Properties; using DescriptiveEnum; namespace VEPROMS { public partial class frmFolderProperties : DevComponents.DotNetBar.Office2007Form { private string _DefaultFormatName = null; private string _DefaultChgBarType = null; private string _DefaultChgBarLoc = null; private string _DefaultChgBarText = null; private string _DefaultChgBarUsrMsg1 = null; private string _DefaultChgBarUsrMsg2 = null; private string _DefaultROGraficFileExtension = null; private string _DefaultImagePrefix = null; private string _DefaultROPrefix = null; private string _DefaultPagination = null; private string _DefaultWatermark = null; private bool _DefaultDisableDuplex = false; private string _DefaultFormatColumns = null; private bool _Initializing = false; private FolderConfig _FolderConfig; private string _ROcolor; private string _TransColor; private string _EditBckgndColor; private string _ViewBckgndColor; public frmFolderProperties(FolderConfig folderConfig) { _FolderConfig = folderConfig; _Initializing = true; InitializeComponent(); btnGeneral.PerformClick(); // always start with General tab or button _Initializing = false; // Build window caption this.Text = string.Format("{0} Properties",folderConfig.Name); } /// /// Use the ParentLookup to grab the default values /// - set the watermark property (where applicable) of the control with that value /// - set the default setting labels with that value /// ** the default setting labels appear when the Show Default Values checkbox is checked by the user. /// private void FindDefaultValues() { _FolderConfig.ParentLookup = true; // Get the default format name _DefaultFormatName = _FolderConfig.DefaultFormatSelection; SetupDefault(_DefaultFormatName, ppLblFormatDefault, ppCmbxFormat); // Get the default Change Bar Type _DefaultChgBarType = _FolderConfig.Print_ChangeBar.ToString(); SetupDefault(EnumDescConverter.GetEnumDescription(_FolderConfig.Print_ChangeBar), ppLblChangeBarTypeDefault, ppCmbxChangeBarType); // Get the default Change Bar Location _DefaultChgBarLoc = _FolderConfig.Print_ChangeBarLoc.ToString(); SetupDefault(EnumDescConverter.GetEnumDescription(_FolderConfig.Print_ChangeBarLoc), ppLblChgBarPosDefault, ppCmbxChgBarPos); // Get the default Change Bar text _DefaultChgBarText = _FolderConfig.Print_ChangeBarText.ToString(); SetupDefault(EnumDescConverter.GetEnumDescription(_FolderConfig.Print_ChangeBarText), ppLblChgBarTxtTypeDefault, ppCmbxChgBarTxtType); // Get the default User Change Bar Message 1 _DefaultChgBarUsrMsg1 = _FolderConfig.Print_UserCBMess1; if (!(_DefaultChgBarUsrMsg1.Equals(""))) ppLblChgBarUserMsgOneDefault.Text = string.Format("({0})", _DefaultChgBarUsrMsg1); // Get the default User Change Bar Message 2 _DefaultChgBarUsrMsg2 = _FolderConfig.Print_UserCBMess2; if (!(_DefaultChgBarUsrMsg2.Equals(""))) ppLblChgBarUserMsgTwoDefault.Text = string.Format("({0})", _DefaultChgBarUsrMsg2); // Get the default RO Graphic file extension _DefaultROGraficFileExtension = _FolderConfig.Graphics_defaultext; SetupDefault(_DefaultROGraficFileExtension, ppLblGraphicFileExtDefault, ppCmbxGrphFileExt); // Get the default Referenced Objects prefix _DefaultROPrefix = _FolderConfig.Default_SPPrefix; SetupDefault(_DefaultROPrefix, ppLblROPrefixDefault, ppCmbxDefROPrefix); // Get the default RO Graphics prefix _DefaultImagePrefix = _FolderConfig.Default_IMPrefix; SetupDefault(_DefaultImagePrefix, ppLblImagePrefixDefault, ppCmbxDefImgPrefix); // Get the default Print Pagination _DefaultPagination = _FolderConfig.Print_Pagination.ToString(); SetupDefault(EnumDescConverter.GetEnumDescription(_FolderConfig.Print_Pagination), ppLblPaginationDefault, ppCmbxPagination); // Get the default Watermark _DefaultWatermark = _FolderConfig.Print_Watermark.ToString(); SetupDefault(EnumDescConverter.GetEnumDescription(_FolderConfig.Print_Watermark), ppLblWatermarkDefault, ppCmbxWatermark); // Get the default Disable Duplex _DefaultDisableDuplex = _FolderConfig.Print_DisableDuplex; ppLblAutoDuplexDefault.Text = string.Format("(Duplex {0})", (_DefaultDisableDuplex) ? "OFF" : "ON"); // Get the default Format Columns _DefaultFormatColumns = _FolderConfig.Format_Columns.ToString(); SetupDefault(EnumDescConverter.GetEnumDescription(_FolderConfig.Format_Columns), ppLblStpEditorColsDefault, ppCmbxStpEditorCols); _FolderConfig.ParentLookup = false; } private void frmFolderProperties_Load(object sender, EventArgs e) { _Initializing = true; // populate the a list box of possible graphic file types // supported by .NET // foreach (ImageCodecInfo info in ImageCodecInfo.GetImageDecoders()) // { // string st = string.Format("{0} - ({1})", info.FormatDescription, info.FilenameExtension); // //string st = string.Format("{0}", info.FormatDescription); // comboBoxEx1.Items.Add(st); // } imageCodecInfoBindingSource.DataSource = ImageCodecInfo.GetImageDecoders(); formatInfoListBindingSource.DataSource = FormatInfoList.Get(); folderConfigBindingSource.DataSource = _FolderConfig; // Get the saved settings for this user // // This setting tells us if we should display the default values on this property page ppCbShwDefSettings.Checked = (Settings.Default["ShowDefaultFolderProp"] != null)? Settings.Default.ShowDefaultFolderProp : false; // Get the User's property page style "PropPageStyle" (this is a system wide user setting) // 1 - Button Dialog (default) // 2 - Tab Dialog if ((int)Settings.Default["PropPageStyle"] == (int)PropPgStyle.Tab) { tcFolder.TabsVisible = true; panButtons.Visible = false; this.Width -= panButtons.Width; } // Get the default values for the property page information FindDefaultValues(); // Setup as to which "tabs" to display on the property page // - the first (top) tree node shows different "tabs" than the // other folder type of tree nodes if (_FolderConfig.Name.Equals("VEPROMS")) { // if we are at the top node of the tree, remove the Folder Property page tabs // that do not pertain to this level (top of tree) this.tcFolder.Tabs.Remove(tiFmtSettings); this.tcFolder.Tabs.Remove(tiOutputSettings); this.tcFolder.Tabs.Remove(tiEditSettings); this.btnFormatSettings.Visible = false; this.btnOutputSettings.Visible = false; this.btnEdSettings.Visible = false; ppLblDefSettingsInfo.Visible = false; ppCbShwDefSettings.Visible = false; // hide check box for showing default values for top node } else { // don't show Start Message tab if not at top level this.tcFolder.Tabs.Remove(tiStMsg); this.btnStMsg.Visible = false; // this was coded for demo purposes... setup the text colors for the sample text // of the Step Editor Text Colors property _ROcolor = _FolderConfig.Color_ro; if (_ROcolor == string.Empty) _ROcolor = "Orange"; _EditBckgndColor = _FolderConfig.Color_editbackground; if (_EditBckgndColor == string.Empty) _EditBckgndColor = "LightGray"; _ViewBckgndColor = _FolderConfig.Default_BkColor.Name; if (_ViewBckgndColor == string.Empty) _ViewBckgndColor = "White"; _TransColor = _FolderConfig.Color_transition; if (_TransColor == string.Empty) _TransColor = "Orange"; SetupSampleTextBoxes(); // Assign the data sources to the combo boxes ppCmbxChangeBarType.DataSource = EnumDetail.Details(); ppCmbxChangeBarType.DisplayMember = "Name"; ppCmbxChangeBarType.ValueMember = "EValue"; ppCmbxChgBarPos.DataSource = EnumDetail.Details(); ppCmbxChgBarPos.DisplayMember = "Name"; ppCmbxChgBarPos.ValueMember = "EValue"; ppCmbxChgBarTxtType.DataSource = EnumDetail.Details(); ppCmbxChgBarTxtType.DisplayMember = "Name"; ppCmbxChgBarTxtType.ValueMember = "EValue"; ppCmbxPagination.DataSource = EnumDetail.Details(); ppCmbxPagination.DisplayMember = "Name"; ppCmbxPagination.ValueMember = "EValue"; ppCmbxWatermark.DataSource = EnumDetail.Details(); ppCmbxWatermark.DisplayMember = "Name"; ppCmbxWatermark.ValueMember = "EValue"; ppCmbxStpEditorCols.DataSource = EnumDetail.Details(); ppCmbxStpEditorCols.DisplayMember = "Name"; ppCmbxStpEditorCols.ValueMember = "EValue"; ppCbShwDefSettings.Visible = true; // display check box for showing default values } _Initializing = false; } private void ppBtnOK_Click(object sender, EventArgs e) { folderConfigBindingSource.EndEdit(); DialogResult = DialogResult.OK; // Save Default settings for User // // Save whether we should display the default values on this property page Settings.Default.ShowDefaultFolderProp = ppCbShwDefSettings.Checked; Settings.Default.Save(); this.Close(); } private void ppBtnCancel_Click(object sender, EventArgs e) { folderConfigBindingSource.CancelEdit(); this.Close(); } #region General tab /// /// This is the General button used on the button interface design /// /// object /// EventArgs private void btnGeneral_Click(object sender, EventArgs e) { ProcessButtonClick(tiGeneral, btnGeneral); } #endregion #region Referenced Objects tab /// /// This is the Referenced Objects button used on the button interface design /// /// object /// EventArgs private void btnRefObjs_Click(object sender, EventArgs e) { ProcessButtonClick(tiRefObj, btnRefObjs); } /// /// Selection in Graphic File Extension combo box changed. /// /// object /// EventArgs private void ppCmbxGrphFileExt_SelectedValueChanged(object sender, EventArgs e) { ProcessCmbxSelectedValueChange(ppCmbxGrphFileExt, _DefaultROGraficFileExtension, ppBtnDefaultGrfExt, ppLblGraphicFileExtDefault); } private void ppBtnDefaultGrfExt_Click(object sender, EventArgs e) { ppCmbxGrphFileExt.SelectedIndex = -1; //reset to the default Graphic File Extension setting } /// /// Selection in Default RO Prefix combo box changed. /// /// object /// EventArgs private void ppCmbxDefROPrefix_SelectedValueChanged(object sender, EventArgs e) { ProcessCmbxSelectedValueChange(ppCmbxDefROPrefix, _DefaultROPrefix, ppBtnDefaultROPrefix, ppLblROPrefixDefault); } private void ppBtnDefaultROPrefix_Click(object sender, EventArgs e) { ppCmbxDefROPrefix.SelectedIndex = -1; //reset to the default RO Prefix setting } /// /// Selection in Default Image Prefix combo box changed. /// /// object /// EventArgs private void ppCmbxDefImgPrefix_SelectedValueChanged(object sender, EventArgs e) { ProcessCmbxSelectedValueChange(ppCmbxDefImgPrefix, _DefaultImagePrefix, ppBtnDefaultImgPrefix, ppLblImagePrefixDefault); } private void ppBtnDefaultImgPrefix_Click(object sender, EventArgs e) { ppCmbxDefImgPrefix.SelectedIndex = -1; //reset to the default Image Prefix setting } /// /// TEMPORARY - TO PROVIDE DEMO FUNCTIONALITY /// An RO Folder was selected, find the RO.FST file and populate the RO and Image database combo boxes /// /// object /// EventArgs private void ppTxbxRoFoldLoc_TextChanged(object sender, EventArgs e) { string tpath = ppTxbxRoFoldLoc.Text + "\\RO.FST"; if (File.Exists(tpath)) { // build a list of available RO Accessory Page ID's ROFST rofst = new ROFST(tpath); ROFST.rodbi[] rodblist = rofst.GetRODatabaseList(); for (int i = 0; i < rodblist.Length; i++) { string mitem = string.Format("{0} - {1}", rodblist[i].dbiTitle, rodblist[i].dbiAP); switch (rodblist[i].dbiType) { case 7: ppCmbxDefROPrefix.Items.Add(mitem); // setpoint break; case 8: ppCmbxDefImgPrefix.Items.Add(mitem); // graphic break; default: // user defined ppCmbxDefROPrefix.Items.Add(mitem); ppCmbxDefImgPrefix.Items.Add(mitem); break; } } } } /// /// This is a temporary function for demo purposes... /// Display the standard folder selection dialog to have the user select the location of the Referenced Objects folder. /// From this, we will use the RO.FST to populate the RO and Image Accessory ID cobmo boxes. /// /// /// private void ppBtnFldrDlg_Click(object sender, EventArgs e) { dlgROFolder = new FolderBrowserDialog(); if (dlgROFolder.ShowDialog() == DialogResult.OK) { ppTxbxRoFoldLoc.Text = dlgROFolder.SelectedPath; } } #endregion #region Output Settings tab /// /// This is the Output Settings button used on the button interface design /// /// object /// EventArgs private void btnOutputSettings_Click(object sender, EventArgs e) { ProcessButtonClick(tiOutputSettings, btnOutputSettings); } /// /// Selection in Pagination combo box changed. /// /// object /// EventArgs private void ppCmbxPagination_SelectedValueChanged(object sender, EventArgs e) { FolderConfig.PrintPagination pgtn = (FolderConfig.PrintPagination)Enum.Parse(typeof(FolderConfig.PrintPagination), _DefaultPagination); ProcessCmbxSelectionEnumChanged(ppCmbxPagination, pgtn, ppBtnDefPagination, ppLblPaginationDefault); } private void ppBtnDefPagination_Click(object sender, EventArgs e) { ppCmbxPagination.SelectedIndex = -1; //reset to the default Pagination setting } /// /// Selection in Watermark combo box changed. /// /// object /// EventArgs private void ppCmbxWatermark_SelectedValueChanged(object sender, EventArgs e) { FolderConfig.PrintWatermark wtr = (FolderConfig.PrintWatermark)Enum.Parse(typeof(FolderConfig.PrintWatermark), _DefaultWatermark); ProcessCmbxSelectionEnumChanged(ppCmbxWatermark, wtr, ppBtnDefWatermark, ppLblWatermarkDefault); } private void ppBtnDefWatermark_Click(object sender, EventArgs e) { ppCmbxWatermark.SelectedIndex = -1; //reset to the default Watermark setting } /// /// Checkbox of the Disable Automatic Duplex changed. /// /// object /// EventArgs private void ppChbxDisAutoDuplex_CheckedChanged(object sender, EventArgs e) { ppBtnDeftDisAutoDuplx.Visible = (!_FolderConfig.Name.Equals("VEPROMS")) && (_DefaultDisableDuplex != ppChbxDisAutoDuplex.Checked); ppLblAutoDuplexDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDeftDisAutoDuplx.Visible; } #endregion #region Startup Message tab /// /// This is the Startup Message button used on the button interface design /// /// object /// EventArgs private void btnStMsg_Click(object sender, EventArgs e) { ProcessButtonClick(tiStMsg, btnStMsg); } #endregion #region Format Settings tab /// /// This is the Format Settings button used on the button interface design /// /// object /// EventArgs private void btnFormatSettings_Click(object sender, EventArgs e) { ProcessButtonClick(tiFmtSettings, btnFormatSettings); } /// /// Selection in Format combo box changed. /// /// object /// EventArgs private void ppCmbxFormat_SelectedValueChanged(object sender, EventArgs e) { ProcessCmbxSelectedValueChange(ppCmbxFormat, _DefaultFormatName, ppBtnDefaultFmt, ppLblFormatDefault); } private void ppBtnDefaultFmt_Click(object sender, EventArgs e) { ppCmbxFormat.SelectedIndex = -1; //reset to the default Format setting } /// /// Enable or disable the user specified change bar options base on the type /// of change bar selected. /// private void setEnabledUserSpecifiedChgBarCombos(FolderConfig.PrintChangeBar pcb) { ppGpbxUserSpecCB.Enabled = ppCmbxChgBarPos.Enabled = ppCmbxChgBarTxtType.Enabled = ppBtnDefaultCbPos.Enabled = ppBtnDefCbTxtTyp.Enabled = (ppCmbxChangeBarType.SelectedValue != null && ppCmbxChangeBarType.SelectedValue.Equals(FolderConfig.PrintChangeBar.WithUserSpecified)) || (ppCmbxChangeBarType.SelectedValue == null && pcb.Equals(FolderConfig.PrintChangeBar.WithUserSpecified)); } /// /// Selection in Change Bar combo box changed. /// /// object /// EventArgs private void ppCmbxChangeBarType_SelectedValueChanged(object sender, EventArgs e) { FolderConfig.PrintChangeBar pcb = (FolderConfig.PrintChangeBar)Enum.Parse(typeof(FolderConfig.PrintChangeBar), _DefaultChgBarType); ProcessCmbxSelectionEnumChanged(ppCmbxChangeBarType, pcb, ppBtnDefaultChgBar, ppLblChangeBarTypeDefault); setEnabledUserSpecifiedChgBarCombos(pcb); } private void ppBtnDefaultChgBar_Click(object sender, EventArgs e) { ppCmbxChangeBarType.SelectedIndex = -1; //reset to the default Change Bar setting } /// /// Selection in Change Bar Position combo box changed. /// /// object /// EventArgs private void ppCmbxChgBarPos_SelectedValueChanged(object sender, EventArgs e) { FolderConfig.PrintChangeBarLoc cbl = (FolderConfig.PrintChangeBarLoc)Enum.Parse(typeof(FolderConfig.PrintChangeBarLoc), _DefaultChgBarLoc); ProcessCmbxSelectionEnumChanged(ppCmbxChgBarPos, cbl, ppBtnDefaultCbPos, ppLblChgBarPosDefault); } private void ppCmbxChgBarPos_Click(object sender, EventArgs e) { ppCmbxChgBarPos.SelectedIndex = -1; //reset to the default Change Bar Position setting } /// /// Selection in Change Bar Text Type combo box changed. /// /// object /// EventArgs private void ppCmbxChgBarTxtType_SelectedValueChanged(object sender, EventArgs e) { FolderConfig.PrintChangeBarText cbt = (FolderConfig.PrintChangeBarText)Enum.Parse(typeof(FolderConfig.PrintChangeBarText), _DefaultChgBarText); ProcessCmbxSelectionEnumChanged(ppCmbxChgBarTxtType, cbt, ppBtnDefCbTxtTyp, ppLblChgBarTxtTypeDefault); setEnabledUserSpecifiedChgBarText(); } private void ppBtnDefCbTxtTyp_Click(object sender, EventArgs e) { ppCmbxChgBarTxtType.SelectedIndex = -1; //reset to the default Change Bar Text Type setting } /// /// Enable or disable the user specified change bar text based on the selected /// change bar text type (selected in the user specific change bar grouping) /// private void setEnabledUserSpecifiedChgBarText() { ppGpbxUserSpecTxt.Enabled = ppTxbxChangeBarUserMsgOne.Enabled = ppTxbxChgBarUserMsgTwo.Enabled = ppBtnDefCbTxt1.Enabled = ppBtnDefCbTxt2.Enabled = (ppCmbxChgBarTxtType.SelectedValue != null && ppCmbxChgBarTxtType.SelectedValue.Equals(FolderConfig.PrintChangeBarText.UserDef)); } /// /// Selection in Change Bar User Message One text changed. /// /// object /// EventArgs private void ppTxbxChangeBarUserMsgOne_TextChanged(object sender, EventArgs e) { ppBtnDefCbTxt1.Visible = (!_FolderConfig.Name.Equals("VEPROMS")) && (ppTxbxChangeBarUserMsgOne.Text != null); } /// /// Selection in Change Bar User Message Two text changed. /// /// object /// EventArgs private void ppTxbxChangeBarUserMsgTwo_TextChanged(object sender, EventArgs e) { ppBtnDefCbTxt2.Visible = (!_FolderConfig.Name.Equals("VEPROMS")) && (ppTxbxChgBarUserMsgTwo.Text != null); } #endregion #region Editor Settings tab /// /// This is the Editor Settings button used on the button interface design /// /// object /// EventArgs private void btnEdSettings_Click(object sender, EventArgs e) { ProcessButtonClick(tiEditSettings, btnEdSettings); } /// /// Set the text and background colors for the sample text for the Step Editor Text Colors /// on the Editor Settings property page /// private void SetupSampleTextBoxes() { ppPanelViewSample.BackColor = cGetColor(_ViewBckgndColor); ppLblViewRO.ForeColor = cGetColor(_ROcolor); ppLblViewTrans.ForeColor = cGetColor(_TransColor); ppPanelEditSample.BackColor = cGetColor(_EditBckgndColor); ppLblEditRO.ForeColor = cGetColor(_ROcolor); ppLblEditTrans.ForeColor = cGetColor(_TransColor); } /// /// Selection in View Mode Background Color changed. /// /// object /// EventArgs private void ppColorPickerViewModebckgnd_SelectedColorChanged(object sender, EventArgs e) { _ViewBckgndColor = strMakeColorName(ppColorPickerViewModebckgnd.SelectedColor); SetupSampleTextBoxes(); } /// /// Selection in Edit Mode Background Color changed. /// /// object /// EventArgs private void ppColorPickerEditModeBckGnd_SelectedColorChanged(object sender, EventArgs e) { _EditBckgndColor = strMakeColorName(ppColorPickerEditModeBckGnd.SelectedColor); _FolderConfig.Color_editbackground = _EditBckgndColor; SetupSampleTextBoxes(); } /// /// Selection in Transition Color changed. /// /// object /// EventArgs private void ppColorPickerTransition_SelectedColorChanged(object sender, EventArgs e) { _TransColor = strMakeColorName(ppColorPickerTransition.SelectedColor); SetupSampleTextBoxes(); } /// /// Selection in RO Color changed. /// /// object /// EventArgs private void ppColorPickerRO_SelectedColorChanged(object sender, EventArgs e) { _ROcolor = strMakeColorName(ppColorPickerRO.SelectedColor); SetupSampleTextBoxes(); } /// /// Preview the current color under mouse pointer /// For View Mode Background /// /// object /// ColorPreviewEventArgs private void ppColorPickerViewModebckgnd_ColorPreview(object sender, DevComponents.DotNetBar.ColorPreviewEventArgs e) { ppPanelViewSample.BackColor = e.Color; } /// /// Finalize the current color under mouse pointer /// For View Mode Background /// /// object /// EventArgs private void ppColorPickerViewModebckgnd_PopupFinalized(object sender, EventArgs e) { ppPanelViewSample.BackColor = cGetColor(_ViewBckgndColor); } /// /// Preview the current color under mouse pointer /// For Edit Mode Background /// /// object /// ColorPreviewEventArgs private void ppColorPickerEditModeBckGnd_ColorPreview(object sender, DevComponents.DotNetBar.ColorPreviewEventArgs e) { ppPanelEditSample.BackColor = e.Color; } /// /// Finalize the current color under mouse pointer /// For Edit Mode Background /// /// object /// EventArgs private void ppColorPickerEditModeBckGnd_PopupFinalized(object sender, EventArgs e) { ppPanelEditSample.BackColor = cGetColor(_EditBckgndColor); } /// /// Preview the current color under mouse pointer /// For Transition /// /// object /// ColorPreviewEventArgs private void ppColorPickerTransition_ColorPreview(object sender, DevComponents.DotNetBar.ColorPreviewEventArgs e) { ppLblViewTrans.ForeColor = e.Color; ppLblEditTrans.ForeColor = e.Color; } /// /// Finalize the current color under mouse pointer /// For Transition /// /// object /// EventArgs private void ppColorPickerTransition_PopupFinalized(object sender, EventArgs e) { ppLblViewTrans.ForeColor = cGetColor(_TransColor); ppLblEditTrans.ForeColor = cGetColor(_TransColor); } /// /// Preview the current color under mouse pointer /// For RO /// /// object /// ColorPreviewEventArgs private void ppColorPickerRO_ColorPreview(object sender, DevComponents.DotNetBar.ColorPreviewEventArgs e) { ppLblViewRO.ForeColor = e.Color; ppLblEditRO.ForeColor = e.Color; } /// /// Finalize the current color under mouse pointer /// For RO /// /// object /// EventArgs private void ppColorPickerRO_PopupFinalized(object sender, EventArgs e) { ppLblViewRO.ForeColor = cGetColor(_ROcolor); ppLblEditRO.ForeColor = cGetColor(_ROcolor); } /// /// Selection in Step Editor Columns combo box changed. /// /// object /// EventArgs private void ppCmbxStpEditorCols_SelectedValueChanged(object sender, EventArgs e) { FolderConfig.FormatColumns fcl = (FolderConfig.FormatColumns)Enum.Parse(typeof(FolderConfig.FormatColumns), _DefaultFormatColumns); ProcessCmbxSelectionEnumChanged(ppCmbxStpEditorCols, fcl, ppBtnDefEdCols, ppLblStpEditorColsDefault); } private void ppBtnDefEdCols_Click(object sender, EventArgs e) { ppCmbxStpEditorCols.SelectedIndex = -1; //reset to the default Step Editor Columns setting } #endregion #region Generic functions used on this property page /// /// Convert the given System.Drawing.Color to a string containing either the color's name or the Argb. /// /// System.Drawing.Color /// private string strMakeColorName(Color c) { string rtnstring = ""; if (c.IsNamedColor) rtnstring = c.Name; else rtnstring = string.Format("[A={0},R={1},G={2},B={3}]", c.A, c.R, c.G, c.B); return rtnstring; } /// /// Get a System.Drawing.Color from an Argb or color name /// /// Color Name or "[(alpha,)red,green,blue]" /// // a copy of this function was put in frmVEPROMS.CS private static Color cGetColor(string strColor) { Color rtnColor; // = new Color(); if (strColor == null || strColor.Equals("")) rtnColor = Color.White; else { if (strColor[0] == '[') { string[] parts = strColor.Substring(1, strColor.Length - 2).Split(",".ToCharArray()); int parts_cnt = 0; foreach (string s in parts) { parts[parts_cnt] = parts[parts_cnt].TrimStart(' '); // remove preceeding blanks parts_cnt++; } if (parts_cnt == 3) rtnColor = Color.FromArgb(Int32.Parse(parts[0]), Int32.Parse(parts[1]), Int32.Parse(parts[2])); else rtnColor = Color.FromArgb(Int32.Parse(parts[0].Substring(2)), Int32.Parse(parts[1].Substring(2)), Int32.Parse(parts[2].Substring(2)), Int32.Parse(parts[3].Substring(2))); } else rtnColor = Color.FromName(strColor); } return rtnColor; } /// /// Set the watermark and default label /// /// The default text /// Label that displays the current default when view defaults is set /// Combo box with a watermark property private static void SetupDefault(string defaultText, Label lbl, ComboBoxEx cmbo) { if (defaultText != null && !(defaultText.Equals(""))) { lbl.Text = string.Format("({0})", defaultText); cmbo.WatermarkText = string.Format("{0}", defaultText); } } /// /// Determines what labels (showing default values) are visable on the property pages /// private void defaultSettingsVisiblity() { ppLblChgBarUserMsgOneDefault.Visible = ppLblChgBarUserMsgTwoDefault.Visible = ppLblDefSettingsInfo.Visible = ppCbShwDefSettings.Checked; ppLblAutoDuplexDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDeftDisAutoDuplx.Visible; ppLblROPrefixDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefaultROPrefix.Visible; ppLblImagePrefixDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefaultImgPrefix.Visible; ppLblStpEditorColsDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefEdCols.Visible; ppLblGraphicFileExtDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefaultGrfExt.Visible; ppLblWatermarkDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefWatermark.Visible; ppLblPaginationDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefPagination.Visible; ppLblChgBarTxtTypeDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefCbTxtTyp.Visible; ppLblFormatDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefaultFmt.Visible; ppLblChangeBarTypeDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefaultChgBar.Visible; ppLblChgBarPosDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefaultCbPos.Visible; } /// /// Process a change in the combo box selection /// /// Combo Box Name /// string containing default text /// button to reset to default value /// label containing the default private void ProcessCmbxSelectedValueChange(ComboBoxEx cmbx, string defstr, ButtonX button, Label deflabel) { if ((cmbx.SelectedIndex != -1) && defstr != null && defstr.Equals(cmbx.SelectedValue)) { button.Focus(); button.PerformClick(); } button.Visible = (!_FolderConfig.Name.Equals("VEPROMS")) && (cmbx.SelectedValue != null); deflabel.Visible = ppCbShwDefSettings.Checked && button.Visible; } /// /// Process a change in the enum combo box selection /// /// Combo Box Name /// the default enum value /// button to reset to default value /// label containing the default private void ProcessCmbxSelectionEnumChanged(ComboBoxEx cmbx, object enumval, ButtonX button, Label deflabel) { if ((cmbx.SelectedIndex != -1) && cmbx.SelectedValue.Equals(enumval)) { button.Focus(); button.PerformClick(); } button.Visible = ((!_FolderConfig.Name.Equals("VEPROMS")) && (cmbx.SelectedValue != null)); deflabel.Visible = ppCbShwDefSettings.Checked && button.Visible; } /// /// Select the corresponding tab and set the button's state to checked /// /// Property Page Tab /// Corresponding Property Page Button private void ProcessButtonClick(TabItem tab, ButtonX button) { ClearAllCheckedButtons(); tcFolder.SelectedTab = tab; button.Checked = true; } /// /// For the Button Interface property page style, when a button is selected (pressed), /// it will remain in the checked state even when a different button is selected. Thus /// we must clear the checked state of the buttons when a button is selected, then set /// the newly selected button's state to checked. /// private void ClearAllCheckedButtons() { btnGeneral.Checked = false; btnEdSettings.Checked = false; btnFormatSettings.Checked = false; btnOutputSettings.Checked = false; btnRefObjs.Checked = false; btnStMsg.Checked = false; } /// /// This is a generic Enter Event function for use with all of the property page tabs. /// Found that the visiblity value of buttons is not recorded until the property page in which it resides is diplayed. /// Thus we need to call defaultSettingVisiblity() to check and set visiblity states. /// /// type object /// type EventArgs private void tabpage_Enter(object sender, EventArgs e) { // Show or hide the labels containing the default values if (!_Initializing) defaultSettingsVisiblity(); } #endregion } }