From a5a3f16177e877ad2f033be4af25ef889f00a337 Mon Sep 17 00:00:00 2001 From: mschill Date: Fri, 29 May 2026 06:06:58 -0400 Subject: [PATCH 1/2] C2026-021_B2026-048 Expand Functionality of Viewing Mode --- PROMS/VEPROMS User Interface/frmVEPROMS.cs | 52 +++++++++--- .../VEPROMS.CSLA.Library/Extension/ItemExt.cs | 4 + .../DisplayApplicability.cs | 80 ++++++++++--------- .../DisplayTabControl.cs | 39 ++++++--- PROMS/Volian.Controls.Library/EditItem.cs | 23 +++++- PROMS/Volian.Controls.Library/StepRTB.cs | 78 +++++++++++++++--- .../Volian.Controls.Library/StepTabRibbon.cs | 9 ++- 7 files changed, 213 insertions(+), 72 deletions(-) diff --git a/PROMS/VEPROMS User Interface/frmVEPROMS.cs b/PROMS/VEPROMS User Interface/frmVEPROMS.cs index a819a751..07f0ab5a 100644 --- a/PROMS/VEPROMS User Interface/frmVEPROMS.cs +++ b/PROMS/VEPROMS User Interface/frmVEPROMS.cs @@ -245,13 +245,17 @@ namespace VEPROMS displayBookMarks.SetupBookMarks(); // setup bookmarks in the child window tc.MyCopyStep = myParent.tc.MyCopyStep; // copy the copystep info to the child window + + //B2026 - 048 View Only Mode freezes PROMS if last tab closed + tc.EnableDisableStepProperties -= EnableDisableStepProperties; + tc.EnableDisableStepProperties += new StepTabRibbonEvent(EnableDisableStepProperties); - (tv.Nodes[0] as VETreeNode).InChildWindow = true; // tells us this folder's tree nodes are in the child window + (tv.Nodes[0] as VETreeNode).InChildWindow = true; // tells us this folder's tree nodes are in the child window } public void OpenItem(ItemInfo myItemInfo) { - tc.OpenItem(myItemInfo); + tc.OpenItem(myItemInfo); } public void RefreshItem(ItemInfo myItemInfo) @@ -352,9 +356,10 @@ namespace VEPROMS displayRO.TabControl = tc; // B2019-043 this was being passed in as a parameter for DisplayRO which caused issues with the Visual Studio designer bottomProgBar.ValueChanged += new EventHandler(bottomProgBar_ValueChanged); + tc.EnableDisableStepProperties += new StepTabRibbonEvent(EnableDisableStepProperties); - // When creating an XY Plot, a System.Drawing.Graphics is needed and it requires a form. Use the main form. - if (VlnSettings.DebugMode) + // When creating an XY Plot, a System.Drawing.Graphics is needed and it requires a form. Use the main form. + if (VlnSettings.DebugMode) { MSWordToPDF.DebugStatus = 1; MSWordToPDF.OverrideColor = Color.Red; @@ -964,7 +969,18 @@ namespace VEPROMS { pnl.ApplDisplayMode = displayApplicability.ViewMode; displayHistory.ApplDisplayMode = pnl.ApplDisplayMode; + + //C2026-021 Expand Functionality of Viewing Mode + if (pnl.ApplDisplayMode > 0 && pnl.VwMode != E_ViewMode.View) + { + pnl.VwMode = E_ViewMode.View; + EnableDisableStepProperties(sender, new StepTabRibbonEventArgs(tc.SelectedDisplayTabItem.MyItemInfo, 0, pnl.VwMode)); + MessageBox.Show("Changing to View Only Mode. Applicability Viewing Mode must be Master to return to Edit Mode. View Mode can be toggled off via the Ribbon->View tab.", "Changing to View Mode", MessageBoxButtons.OK, MessageBoxIcon.Warning); + } + + pnl.MyStepTabPanel.MyStepTabRibbon.RefreshProcedure(); } + } void tv_ViewPDF(object sender, vlnTreeViewPdfArgs args) @@ -4867,15 +4883,31 @@ namespace VEPROMS //In View Only Mode - Step Properties should be disabled public void EnableDisableStepProperties(object sender, StepTabRibbonEventArgs args) { - if (args.ViewMode == E_ViewMode.View && (infoTabs.Enabled || infoTabs.SelectedTab != infotabTags)) + //C2026 - 021 Expand Functionality of Viewing Mode + //B2026 - 048 View Only Mode freezes PROMS if last tab closed + if (args.ViewMode == E_ViewMode.View && (infotabControlPanelTags.Enabled || (infoTabs.SelectedTab != infotabTags && infoTabs.SelectedTab != infotabApplicability))) { - infoTabs.Enabled = true; - infoTabs.SelectedTab = infotabTags; - infoTabs.Enabled = false; + if (infoTabs.SelectedTab != infotabApplicability) + { + infoTabs.SelectedTab = infotabTags; + } + + infotabControlPanelTags.Enabled = false; + infotabControlPanelRO.Enabled = false; + infotabControlPanelTransitions.Enabled = false; + tabControlPanel1.Enabled = false; + displayApplicability.SetEnableDisableItemSelection(false); + tcpFoldoutMaint.Enabled = false; + } - else if (args.ViewMode != E_ViewMode.View && !infoTabs.Enabled) + else if (args.ViewMode != E_ViewMode.View && !infotabControlPanelTags.Enabled) { - infoTabs.Enabled = true; + infotabControlPanelTags.Enabled = true; + infotabControlPanelRO.Enabled = true; + infotabControlPanelTransitions.Enabled = true; + tabControlPanel1.Enabled = true; + displayApplicability.SetEnableDisableItemSelection(true); + tcpFoldoutMaint.Enabled = true; } } diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs index 4d7b9987..d4c61f96 100644 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs +++ b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs @@ -8123,6 +8123,10 @@ namespace VEPROMS.CSLA.Library } set { _ChangeBarDate = value; } } + + //C2026-021 Expand Functionality of Viewing Mode + public void ResetChangeBar() => _ChangeBarDate = null; + public Dictionary MyLookup = null; public override void SetupTags() { diff --git a/PROMS/Volian.Controls.Library/DisplayApplicability.cs b/PROMS/Volian.Controls.Library/DisplayApplicability.cs index 1f4a388c..6a32243c 100644 --- a/PROMS/Volian.Controls.Library/DisplayApplicability.cs +++ b/PROMS/Volian.Controls.Library/DisplayApplicability.cs @@ -55,7 +55,7 @@ namespace Volian.Controls.Library foreach (string name in names) { i++; - AddViewMode(name.Trim(), i.ToString(), apple == i); + AddViewMode($"{name.Trim()} (View Only)", i.ToString(), apple == i); } AddItemMode("All", "-1", ref gpSubItem); @@ -130,42 +130,46 @@ namespace Volian.Controls.Library set { _MyApplicability = value; } } - //private ProcedureInfo _MyProcedureInfo; - //public ProcedureInfo MyProcedureInfo - //{ - //get { return _MyProcedureInfo; } - //set - //{ - // _MyProcedureInfo = value; - // if (_MyProcedureInfo != null && _MyProcedureInfo.IsProcedure) - // { - // DocVersionConfig cfg = new DocVersionConfig(_MyProcedureInfo.MyDocVersion); - // if (cfg.Unit_Name == string.Empty) - // this.Visible = false; - // else - // { - // string[] names = cfg.Unit_Name.Split(','); - // gpMode.Controls.Clear(); - // gpItem.Controls.Clear(); - // MyCheckBoxes.Clear(); - // AddViewMode("Master", "-1", true); - // int i = 0; - // foreach (string name in names) - // { - // AddViewMode(name.Trim(), (++i).ToString()); - // } - // AddItemMode("All", "-1"); - // i = 0; - // foreach (string name in names) - // AddItemMode(name.Trim(), (++i).ToString()); - // AddItemMode("None", "0"); - // //if(!this.Visible) - // // this.Visible = true; - // } - // } - //} - //} - private void AddItemMode(string name, string value, ref DevComponents.DotNetBar.Controls.GroupPanel gpSubItem) + //C2026-021 Expand Functionality of Viewing Mode + public bool ShowItemSelection = true; + public void SetEnableDisableItemSelection(bool value) => gpItem.Enabled = ShowItemSelection = value; + + //private ProcedureInfo _MyProcedureInfo; + //public ProcedureInfo MyProcedureInfo + //{ + //get { return _MyProcedureInfo; } + //set + //{ + // _MyProcedureInfo = value; + // if (_MyProcedureInfo != null && _MyProcedureInfo.IsProcedure) + // { + // DocVersionConfig cfg = new DocVersionConfig(_MyProcedureInfo.MyDocVersion); + // if (cfg.Unit_Name == string.Empty) + // this.Visible = false; + // else + // { + // string[] names = cfg.Unit_Name.Split(','); + // gpMode.Controls.Clear(); + // gpItem.Controls.Clear(); + // MyCheckBoxes.Clear(); + // AddViewMode("Master", "-1", true); + // int i = 0; + // foreach (string name in names) + // { + // AddViewMode(name.Trim(), (++i).ToString()); + // } + // AddItemMode("All", "-1"); + // i = 0; + // foreach (string name in names) + // AddItemMode(name.Trim(), (++i).ToString()); + // AddItemMode("None", "0"); + // //if(!this.Visible) + // // this.Visible = true; + // } + // } + //} + //} + private void AddItemMode(string name, string value, ref DevComponents.DotNetBar.Controls.GroupPanel gpSubItem) { CheckBox cb = new CheckBox(); cb.BackColor = Color.Transparent; @@ -550,7 +554,7 @@ namespace Volian.Controls.Library void DisplayApplicability_VisibleChanged(object sender, EventArgs e) { MyItemInfo = MyItemInfo; - gpItem.Enabled = UserInfo.CanEdit(MyUserInfo,(MyItemInfo == null) ? null : MyItemInfo.MyDocVersion); //Can Change Applicability + gpItem.Enabled = ShowItemSelection && UserInfo.CanEdit(MyUserInfo,(MyItemInfo == null) ? null : MyItemInfo.MyDocVersion); //Can Change Applicability } } } diff --git a/PROMS/Volian.Controls.Library/DisplayTabControl.cs b/PROMS/Volian.Controls.Library/DisplayTabControl.cs index 620640de..d82d61ac 100644 --- a/PROMS/Volian.Controls.Library/DisplayTabControl.cs +++ b/PROMS/Volian.Controls.Library/DisplayTabControl.cs @@ -194,15 +194,15 @@ namespace Volian.Controls.Library CopyStepSelected(this, args); } - #region Private Fields + #region Private Fields - /// - /// This is a lookup table for all of the DisplayTabItems that are currently open - /// The key is: - /// "Item - " + Procedure ItemID for step pages - /// "Doc - " + DocumentID for Word Documents - /// - public Dictionary _MyDisplayTabItems; + /// + /// This is a lookup table for all of the DisplayTabItems that are currently open + /// The key is: + /// "Item - " + Procedure ItemID for step pages + /// "Doc - " + DocumentID for Word Documents + /// + public Dictionary _MyDisplayTabItems; /// /// When a Tab is closed it is added to this list. @@ -549,7 +549,15 @@ namespace Volian.Controls.Library if (((Bar)sender).Items == null) return; if (((Bar)sender).Items.Count == 1)// Remove bar if last item is closed... { - Bar bar = sender as Bar; + //B2026 - 048 View Only Mode freezes PROMS if last tab closed + //if last item is closing, need to re-enable Step Properties + //so if closing in view only mode will not freeze when re-opening + if (MyEditItem != null && MyEditItem.MyStepPanel.VwMode == E_ViewMode.View) + { + OnEnableDisableStepProperties(new StepTabRibbonEventArgs(MyEditItem.MyItemInfo, 0, E_ViewMode.Edit)); + } + + Bar bar = sender as Bar; if (bar != null) { if (dotNetBarManager1.Bars.Contains(bar.Name)) @@ -568,9 +576,16 @@ namespace Volian.Controls.Library ActivateRemainingTab((Bar)sender); } } - #endregion - #region Public Methods - public void RefreshItem(ItemInfo myItemInfo) + + public event StepTabRibbonEvent EnableDisableStepProperties; + private void OnEnableDisableStepProperties(StepTabRibbonEventArgs args) + { + if (EnableDisableStepProperties != null) + EnableDisableStepProperties(this, args); + } + #endregion + #region Public Methods + public void RefreshItem(ItemInfo myItemInfo) { ItemInfo proc = myItemInfo.MyProcedure; // Find procedure Item string key = "Item - " + proc.ItemID.ToString(); diff --git a/PROMS/Volian.Controls.Library/EditItem.cs b/PROMS/Volian.Controls.Library/EditItem.cs index a8c0c8ba..80a47892 100644 --- a/PROMS/Volian.Controls.Library/EditItem.cs +++ b/PROMS/Volian.Controls.Library/EditItem.cs @@ -245,6 +245,20 @@ namespace Volian.Controls.Library } protected void MyContent_Changed(object sender) { + //C2026-021 Expand Functionality of Viewing Mode + if (MyStepPanel.ApplDisplayMode > 0) + { + MyItemInfo.MyDocVersion.DocVersionConfig.SelectedSlave = MyStepPanel.ApplDisplayMode; + MyItemInfo.MyProcedure.ProcedureConfig.SelectedSlave = MyStepPanel.ApplDisplayMode; + } + else + { + MyItemInfo.MyDocVersion.DocVersionConfig.SelectedSlave = 0; + MyItemInfo.MyProcedure.ProcedureConfig.SelectedSlave = 0; + } + + MyItemInfo.MyProcedure.ResetChangeBar(); + // Update the text to reflect the content change MyItemInfo.RefreshItemAnnotations(); ChangeBar = MyItemInfo.HasChangeBar; @@ -4114,7 +4128,14 @@ namespace Volian.Controls.Library } } } - //// TIMING: DisplayItem.TimeIt("CSLARTB Parent"); + //// TIMING: DisplayItem.TimeIt("CSLARTB Parent"); + + //C2026-021 Expand Functionality of Viewing Mode + if (MyStepPanel.ApplDisplayMode > 0) + MyItemInfo.MyDocVersion.DocVersionConfig.SelectedSlave = MyStepPanel.ApplDisplayMode; + else + MyItemInfo.MyDocVersion.DocVersionConfig.SelectedSlave = 0; + SetText(); if (itemInfo.IsSupInfoPart) { diff --git a/PROMS/Volian.Controls.Library/StepRTB.cs b/PROMS/Volian.Controls.Library/StepRTB.cs index 5bd95ddb..c2e7c5ab 100644 --- a/PROMS/Volian.Controls.Library/StepRTB.cs +++ b/PROMS/Volian.Controls.Library/StepRTB.cs @@ -492,15 +492,32 @@ namespace Volian.Controls.Library OnAdjustTableWidth(this, new StepRTBTableWidthEventArgs(true)); //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "RefreshDisplay 2"); _InitializingRTB = true; - DisplayText vlntxt = new DisplayText(MyItemInfo, E_EditPrintMode.Edit, VwMode, !ActiveMode, FieldToEdit, true,null, null,false); - //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "RefreshDisplay 3"); - //if (_origDisplayText != null && vlntxt.StartText == _origDisplayText.StartText) - //{ - // ReadOnly = !(EpMode == E_EditPrintMode.Edit && VwMode == E_ViewMode.Edit); - // if (!ReadOnly && !edit) ReadOnly = true; - // return; - //} - OrigDisplayText = vlntxt; + + //C2026-021 Expand Functionality of Viewing Mode + StepPanel pnl = (Parent as RTBItem)?.MyStepPanel; + if (pnl?.ApplDisplayMode > 0) + { + MyItemInfo.MyDocVersion.DocVersionConfig.SelectedSlave = pnl.ApplDisplayMode; + } + else + { + MyItemInfo.MyDocVersion.DocVersionConfig.SelectedSlave = 0; + } + + DisplayText vlntxt = new DisplayText(MyItemInfo, E_EditPrintMode.Edit, VwMode, !ActiveMode, FieldToEdit, true,null, null,false); + if (pnl?.ApplDisplayMode > 0 && MyItemInfo.MyContent.ContentRoUsageCount > 0) + { + vlntxt.StartText = RefreshROsWithUnitStartText(vlntxt.StartText, pnl.ApplDisplayMode); + } + + //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "RefreshDisplay 3"); + //if (_origDisplayText != null && vlntxt.StartText == _origDisplayText.StartText) + //{ + // ReadOnly = !(EpMode == E_EditPrintMode.Edit && VwMode == E_ViewMode.Edit); + // if (!ReadOnly && !edit) ReadOnly = true; + // return; + //} + OrigDisplayText = vlntxt; //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "RefreshDisplay 4"); // RHM 20101201 - Don't reset the text. Calculate the text and compare it with the existing text in AddRTFText @@ -656,7 +673,48 @@ namespace Volian.Controls.Library Application.DoEvents(); } - private bool IsDerived(StepConfig sc) + //C2026-021 Expand Functionality of Viewing Mode + //regex for finding Referenced object links + private static Regex regRefObj = new Regex(@"\#Link\:ReferencedObject:([0-9]*) ([0-9a-zA-Z]*) ([0-9]*)", RegexOptions.Singleline); + + //Replace the Default RO text with Unit Specific RO text + private string RefreshROsWithUnitStartText(string startText, int unitID) + { + ROFSTLookup lookup = MyItemInfo.MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyItemInfo.MyDocVersion); + + MatchCollection mc = regRefObj.Matches(startText); + + if (mc.Count == 0) + return startText; + + StringBuilder sb = new StringBuilder(); + int lastindex = 0; + + foreach (Match match in mc) + { + //get where ther default text for the RO starts + int indx = startText.LastIndexOf(@"\v 0) + { + //Procedure Viewing Mode is set to a specific Unit - so cannot exit vie only mode + MessageBox.Show(this, "Procedures with multiple units are only editable when the Viewing Mode is set to Master. To change out of View Only Mode, first open the Step Propeties panel->Applicability tab and change the Viewing Mode to be Master. Then you can disable View Only Mode.", "Procedure Viewing Mode Incompatiple with Edits", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + else if (MyEditItem.MyStepPanel.VwMode == E_ViewMode.View) { //swapping into edit mode, so check out procedure and Setup Security (this.Parent as StepTabPanel).MyDisplayTabItem.OwnerID = MySessionInfo.CheckOutItem(MyEditItem.MyItemInfo.MyProcedure.ItemID, 0); From 250b3fa406ec04dc757f2bfe7a1b72f441a7b239 Mon Sep 17 00:00:00 2001 From: mschill Date: Fri, 29 May 2026 06:33:37 -0400 Subject: [PATCH 2/2] Remove commented out code --- .../DisplayApplicability.cs | 65 --- .../DisplayTabControl.cs | 6 - PROMS/Volian.Controls.Library/StepRTB.cs | 386 +----------------- 3 files changed, 16 insertions(+), 441 deletions(-) diff --git a/PROMS/Volian.Controls.Library/DisplayApplicability.cs b/PROMS/Volian.Controls.Library/DisplayApplicability.cs index 6a32243c..e9b68be0 100644 --- a/PROMS/Volian.Controls.Library/DisplayApplicability.cs +++ b/PROMS/Volian.Controls.Library/DisplayApplicability.cs @@ -46,7 +46,6 @@ namespace Volian.Controls.Library names.Add(dcfg.Unit_Name); } dcfg.SelectedSlave = 0; - // string[] names = dcfg.Unit_Name.Split(','); int apple = -1; if(_MyDisplayTabItem.MyStepTabPanel != null) apple = _MyDisplayTabItem.MyStepTabPanel.MyStepPanel.ApplDisplayMode; @@ -96,9 +95,6 @@ namespace Volian.Controls.Library DevComponents.DotNetBar.Controls.GroupPanel gpSubItem; gpSubItem = new DevComponents.DotNetBar.Controls.GroupPanel { - // - // gpSubItem - // AutoSize = true, AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink, CanvasColor = System.Drawing.SystemColors.Control, @@ -134,41 +130,6 @@ namespace Volian.Controls.Library public bool ShowItemSelection = true; public void SetEnableDisableItemSelection(bool value) => gpItem.Enabled = ShowItemSelection = value; - //private ProcedureInfo _MyProcedureInfo; - //public ProcedureInfo MyProcedureInfo - //{ - //get { return _MyProcedureInfo; } - //set - //{ - // _MyProcedureInfo = value; - // if (_MyProcedureInfo != null && _MyProcedureInfo.IsProcedure) - // { - // DocVersionConfig cfg = new DocVersionConfig(_MyProcedureInfo.MyDocVersion); - // if (cfg.Unit_Name == string.Empty) - // this.Visible = false; - // else - // { - // string[] names = cfg.Unit_Name.Split(','); - // gpMode.Controls.Clear(); - // gpItem.Controls.Clear(); - // MyCheckBoxes.Clear(); - // AddViewMode("Master", "-1", true); - // int i = 0; - // foreach (string name in names) - // { - // AddViewMode(name.Trim(), (++i).ToString()); - // } - // AddItemMode("All", "-1"); - // i = 0; - // foreach (string name in names) - // AddItemMode(name.Trim(), (++i).ToString()); - // AddItemMode("None", "0"); - // //if(!this.Visible) - // // this.Visible = true; - // } - // } - //} - //} private void AddItemMode(string name, string value, ref DevComponents.DotNetBar.Controls.GroupPanel gpSubItem) { CheckBox cb = new CheckBox(); @@ -255,18 +216,6 @@ namespace Volian.Controls.Library } } } - //IItemConfig cfg = MyItemInfo.MyConfig as IItemConfig; - //cfg.MasterSlave_Applicability.SetFlags(MyApplicability); - //Content c = Content.Get(MyItemInfo.MyContent.ContentID); - //c.Save(); - //foreach (TransitionInfo ti in MyItemInfo.ItemTransitions_ToID) - //{ - // if (!ti.MyItemToID.IsApplicable(MyApplicability)) - // { - // MessageBox.Show("you can't do this"); - // return; - // } - //} List invalidTrans = WillTransitionsBeValidCommand.Execute(MyItemInfo.ItemID, MyApplicability); // B2021-149: for Procedure level PC/PC, continue processing if all 'invalid' transitions are internal (query used // return internal and external for the procedure level) @@ -311,20 +260,6 @@ namespace Volian.Controls.Library // C2021 - 027: Procedure level PC/PC - checkbox for applicability changed, fix ribbon's menus if (MyItemInfo.IsProcedure) _MyDisplayTabItem.MyStepTabPanel.MyStepTabRibbon.SetParentChildCreatePDFButton(MyItemInfo.MyDocVersion.UnitNames, MyItemInfo); - //using (Content cnt = Content.Get(MyItemInfo.MyContent.ContentID)) - //{ - // cnt.DTS = DateTime.Now; - // cnt.UserID = Volian.Base.Library.VlnSettings.UserID; - // //cnt.Save(); - //} - - //using (Step s = Step.Get(MyItemInfo.ItemID)) - //{ - // IItemConfig cfg = new StepConfig(s); - // cfg.MasterSlave_Applicability = new Volian.Base.Library.BigNum(MyApplicability); - // s.MyContent.Config = cfg.ToString(); - // s.Save(); - //} } private void BtnApplicabilitychg_Click(object sender, System.EventArgs e) { diff --git a/PROMS/Volian.Controls.Library/DisplayTabControl.cs b/PROMS/Volian.Controls.Library/DisplayTabControl.cs index d82d61ac..c332a18a 100644 --- a/PROMS/Volian.Controls.Library/DisplayTabControl.cs +++ b/PROMS/Volian.Controls.Library/DisplayTabControl.cs @@ -145,12 +145,6 @@ namespace Volian.Controls.Library return (verIdList.Count > 1); } } - //public event ItemSelectedChangedEvent OpenEnhancedDocument; - //public void OnOpenEnhancedDocument(ItemSelectedChangedEventArgs args) - //{ - // if (OpenEnhancedDocument != null) - // OpenEnhancedDocument(this, args); - //} public event ItemSelectedChangedEvent OpenInSeparateWindow; public void OnOpenInSeparateWindow(ItemSelectedChangedEventArgs args) { diff --git a/PROMS/Volian.Controls.Library/StepRTB.cs b/PROMS/Volian.Controls.Library/StepRTB.cs index c2e7c5ab..5728cf6e 100644 --- a/PROMS/Volian.Controls.Library/StepRTB.cs +++ b/PROMS/Volian.Controls.Library/StepRTB.cs @@ -25,7 +25,6 @@ namespace Volian.Controls.Library public delegate void StepRTBLocationEvent(object sender, StepRTBLocationEventArgs args); public delegate void StepRTBMouseEvent(object sender, MouseEventArgs args); public delegate void StepRTBRoEvent(object sender, StepRTBRoEventArgs args); - //public delegate void StepRTBMouseWheelEvent(object sender, MouseEventArgs args); public partial class StepRTB : RichTextBox // , IStepRTB { private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); @@ -177,18 +176,6 @@ namespace Volian.Controls.Library { if (CursorMovement != null) CursorMovement(sender, args); } - //public event StepRTBModeChangeEvent ModeChange; - //private void OnModeChange(object sender, StepRTBModeChangeEventArgs args) - //{ - // //_MyModeChangeEventArgs = args; - // if (ModeChange != null) ModeChange(sender, args); - // else MessageBox.Show("StepRTB - no mode change defined"); - //} - //public event StepRTBMouseWheelEvent MouseWheel; - //private void OnMouseWheel(object sender, MouseEventArgs args) - //{ - // if (MouseWheel != null) MouseWheel(sender, args); - //} /// /// This event is not raised during all the in-between changes for link deletions @@ -292,23 +279,6 @@ namespace Volian.Controls.Library } } } - // use newer rich text box.... - //[DllImport("kernel32.dll", CharSet = CharSet.Auto)] - //static extern IntPtr LoadLibrary(string lpFileName); - //protected override CreateParams CreateParams - //{ - // get - // { - // CreateParams prams = base.CreateParams; - // if (LoadLibrary("msftedit.dll") != IntPtr.Zero) - // { - // //prams.ExStyle |= 0x020; // transparent - - // prams.ClassName = "RICHEDIT50W"; - // } - // return prams; - // } - //} private E_FieldToEdit _FieldToEdit = E_FieldToEdit.StepText; public E_FieldToEdit FieldToEdit { @@ -321,14 +291,12 @@ namespace Volian.Controls.Library get { //B2020-100 RHM Use SelectionFont rather than the font from the format file. - //if (_RtfPrefix == null) - //{ - StringBuilder selectedRtfSB = new StringBuilder(); - //AddFontTable(selectedRtfSB, FormatFont, FontIsFixed(FormatFont)); + StringBuilder selectedRtfSB = new StringBuilder(); + // B2021-100: if SelectionFont is null, use the FormatFont AddFontTable(selectedRtfSB, SelectionFont==null?FormatFont:SelectionFont, FontIsFixed(FormatFont)); _RtfPrefix = selectedRtfSB.ToString(); - //} + return _RtfPrefix + @"\f1\fs" + FormatFont.SizeInPoints * 2 + " "; } } @@ -375,14 +343,6 @@ namespace Volian.Controls.Library get { if (_MyClassName == string.Empty)_MyClassName = CreateParams.ClassName; return _MyClassName; } set { _MyClassName = value; } } - //private E_EditPrintMode _epMode = E_EditPrintMode.Edit; - //public E_EditPrintMode EpMode - //{ - // get { return _epMode; } - // set { - // if (value == E_EditPrintMode.Print) Console.WriteLine(""); - // _epMode = value; } - //} private E_ViewMode _vwMode = E_ViewMode.Edit; public E_ViewMode VwMode { @@ -490,7 +450,6 @@ namespace Volian.Controls.Library ActiveMode = activeMode; OnAdjustTableWidth(this, new StepRTBTableWidthEventArgs(true)); - //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "RefreshDisplay 2"); _InitializingRTB = true; //C2026-021 Expand Functionality of Viewing Mode @@ -510,13 +469,6 @@ namespace Volian.Controls.Library vlntxt.StartText = RefreshROsWithUnitStartText(vlntxt.StartText, pnl.ApplDisplayMode); } - //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "RefreshDisplay 3"); - //if (_origDisplayText != null && vlntxt.StartText == _origDisplayText.StartText) - //{ - // ReadOnly = !(EpMode == E_EditPrintMode.Edit && VwMode == E_ViewMode.Edit); - // if (!ReadOnly && !edit) ReadOnly = true; - // return; - //} OrigDisplayText = vlntxt; //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "RefreshDisplay 4"); @@ -524,49 +476,37 @@ namespace Volian.Controls.Library //Text = ""; // Initialize text before add text // IMPORTANT: SetLineSpacing must be set before Links, otherwise it // was confusing the 'handle' of the rtf box. - //Console.WriteLine("'font',{0}", Font); - //if(Text == "")SelectionFont = Font; // Initialize SelectionFont - //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "1"); if (FieldToEdit == E_FieldToEdit.StepText) { if (MyItemInfo != null) { - //if (MyItemInfo.IsStep) Font = MyFontFamily == null ? MyItemInfo.FormatStepData.Font.WindowsFont : new Font(MyFontFamily, MyItemInfo.FormatStepData.Font.WindowsFont.Size, MyItemInfo.FormatStepData.Font.WindowsFont.Style); - //else Font = Font = MyFontFamily == null ? MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font.WindowsFont : new Font(MyFontFamily, MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font.WindowsFont.Size, MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font.WindowsFont.Style); if (MyItemInfo.IsStep) { if (MyFontFamily == null) { - //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "Before WindowsFont1"); System.Drawing.Font fnt = MyItemInfo.FormatStepData.Font.WindowsFont; - //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "After WindowsFont1a"); Application.DoEvents(); if (FontKey(Font) != FontKey(fnt)) Font = fnt; - //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "After WindowsFont1b"); } else Font = VE_Font.GetWinSysFont(MyFontFamily, MyItemInfo.FormatStepData.Font.WindowsFont.Size, MyItemInfo.FormatStepData.Font.WindowsFont.Style); - //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "RefreshDisplay 4"); } else { if (MyFontFamily == null) { - //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "Before WindowsFont2"); Font = MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font.WindowsFont; - //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "After WindowsFont2"); } else Font = VE_Font.GetWinSysFont(MyFontFamily, MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font.WindowsFont.Size, MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font.WindowsFont.Style); - //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "RefreshDisplay 5"); + } LastRtf = Rtf; } } - //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "StepRTB.RefreshDisplay Before SetLineSpacing"); + RTBAPI.SetLineSpacing(this, RTBAPI.ParaSpacing.PFS_EXACT); - //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "StepRTB.RefreshDisplay After SetLineSpacing"); bool readOnlyStep = MyItemInfo == null || MyItemInfo.FormatStepData == null ? false : MyItemInfo.FormatStepData.ReadOnly; if (!readOnlyStep) { @@ -574,10 +514,9 @@ namespace Volian.Controls.Library if (IsDerived(sc) && !MyItemInfo.EnhAllowMod()) readOnlyStep = true; } ReadOnly = readOnlyStep || VwMode == E_ViewMode.View || ActiveMode == false; - //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "Before AddRTFText"); AddRtfText(vlntxt.StartText); - //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "After AddRTFText"); - //AddRtfStyles(); + + // set readonly based on initial modes, however, these may change if // user selected view mode. ClearUndo(); @@ -604,10 +543,7 @@ namespace Volian.Controls.Library { RemoveEventHandlers(); OnAdjustTableWidth(this, new StepRTBTableWidthEventArgs(false));// View Mode - //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "Before SelectAll"); SelectAll(); - //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "After SelectAll"); - //if (SelectionHangingIndent !=0) SelectionHangingIndent = 0; int indchar = 0; string indentToken = MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.IndentToken; if (indentToken == null || indentToken == "0") indentToken = "\x5"; @@ -615,7 +551,6 @@ namespace Volian.Controls.Library // this line of code was moved before the find for the indent so that // the window gets resized if the indent changes the height, i.e. more line(s) in window. AddEventHandlers(); - //if (MyItemInfo.InList(186722)) Console.WriteLine("here"); if ((indchar = Find(indentToken, indchar, RichTextBoxFinds.None)) >= 0) { int nindents = 0; @@ -669,7 +604,6 @@ namespace Volian.Controls.Library _InitializingRTB = false; AdjustSizeForContents(!ActiveMode); - //Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle, "After RefreshDisplay"); Application.DoEvents(); } @@ -810,8 +744,6 @@ namespace Volian.Controls.Library protected override void OnMouseWheel(MouseEventArgs e) { OnDoMouseWheel(this, e); - //MyRTBItem.MyStepPanel.MouseWheel(e); - //base.OnMouseWheel(e); } // When a border style is changed, the richtextbox's handle is 'destroyed', so that the handleDestroyed // event is done. This was causing the event handlers to be removed (RemoveEventHandler) so that the @@ -954,10 +886,6 @@ namespace Volian.Controls.Library { _MouseDown = false; } - //void MyConfig_PropertyChanged(object sender, PropertyChangedEventArgs e) - //{ - // SaveConfig(); - //} private void StepRTB_Click(object sender, EventArgs e) { if (ReadOnly) return; @@ -1015,44 +943,6 @@ namespace Volian.Controls.Library } #endregion #region ApplicationSupport - // Used in StepTabRibbon: - //public void ToggleEditView(E_ViewMode vwMode) - //{ - // OnDoSaveContents(this, new EventArgs()); // SaveText(); - // //ItemInfo tmp = MyItemInfo; - // //MyItemInfo = null; - // //ReadOnly = !ReadOnly; - // //EpMode = ReadOnly ? E_EditPrintMode.Print : E_EditPrintMode.Edit; - // VwMode = vwMode; - // ReadOnly = VwMode == E_ViewMode.View; - // ViewRTB = ReadOnly; - // Clear(); - // RefreshDisplay(!ViewRTB); - // //MyItemInfo = tmp; - // SelectionStart = 0; - // SelectionLength = 0; - // //OnModeChange(this, new StepRTBModeChangeEventArgs(ViewRTB?E_ViewMode.View:E_ViewMode.Edit)); - //} - //public string InsertSymbolInRO(string val) - //{ - // string retval = val; - // C2019-043 convert a "->" to the Right Arrow symbol and a "<-" to the Left Arrow Symbol - // note that at the dash character gets convert to a non-breaking hyphen "\u8209?" - //if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseDashGreaterLessThenForArrowsInROValue) - //{ - // retval = retval.Replace("\\u8209?>", GetAddSymbolTextForROs(@"\u8594?")); // Right Arrow - // retval = retval.Replace("<\\u8209?", GetAddSymbolTextForROs(@"\u8592?")); // Left Arrow - //} - //// C2022-021 convert a "<=" to a less than or equal symbol, a ">=" to a greather than or equal symbol and +- to a - //// plus/minus symbol in ROs - //if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertGTELTEPMinROValue) - //{ - // retval = retval.Replace("<=", GetAddSymbolTextForROs(@"\u8804?")); // Less than or Equal - // retval = retval.Replace(">=", GetAddSymbolTextForROs(@"\u8805?")); // Greater than or Equal - // retval = retval.Replace("+\\u8209?", @"\'b1"); // plus/minus - note - is stored as \u8209 and plus/minus is < 256, i.e. handled differently - //} - // return retval; - //} public void InsertRO(string value, string link) { // B2023-037: Remove code that saves the unicode characters for <=, >=, +-, <- and -> into the link text. The characters @@ -1230,8 +1120,6 @@ namespace Volian.Controls.Library return; } //Console.WriteLine("ItemID:{0}", MyItemInfo.ItemID); - //if(MyItemInfo.ItemID==10256) - // Volian.Base.Library.vlnStackTrace.ShowStackLocal("ItemID:{0}", MyItemInfo.ItemID.ToString()); StringBuilder selectedRtfSB = new StringBuilder(); AddFontTable(selectedRtfSB, FormatFont, FontIsFixed(FormatFont)); _RtfPrefix = selectedRtfSB.ToString(); @@ -1255,27 +1143,12 @@ namespace Volian.Controls.Library } // B2017-048, B2017-052, B2017-055 ROs sometimes have two start tokens which make them uneditable. newRtf = newRtf.Replace(""); - // return new Point(mcStart.Count, mcEnd.Count); - //} public void SetTableGridCellRTFPrefix(Font myfont) { if (_FormatFont == null) @@ -1340,7 +1213,7 @@ namespace Volian.Controls.Library sbbeg.Append(@"\i"); sbend.Insert(0, @"\i0"); } - selectedRtfSB.Append(@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 " + myFont.FontFamily.Name + @";}"); //}\f0\fs" + this.Font.SizeInPoints * 2 + @" " + myDisplayTextElement.Text + @"}}"; + selectedRtfSB.Append(@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 " + myFont.FontFamily.Name + @";}"); if (!isFixed) selectedRtfSB.Append(@"{\f1\fnil\fcharset0 " + Volian.Base.Library.vlnFont.ProportionalSymbolFont + @";}}{\colortbl ;\red255\green0\blue0;\red0\green0\blue255;}"); // C2017-036 get best available proportional font for symbols - B2025-039 add Blue for Colored Replace Words else @@ -1349,7 +1222,7 @@ namespace Volian.Controls.Library // use styles to construct rtf commands to insert into next line (where \b, etc is) // B2015-134 Hanging Indent with Hard Returns was not being saved- removed \sl-240\slmult0 selectedRtfSB.Append(@"\viewkind4\uc1\pard" + sbbeg.ToString() + @"\fs" + Convert.ToInt32(myFont.SizeInPoints * 2).ToString() + @" "); // \f0\fs" + this.Font.SizeInPoints * 2 + @" " + myDisplayTextElement.Text + @"}"; - //selectedRtfSB.Append(@"\viewkind4\uc1\pard\sl-240\slmult0" + sbbeg.ToString() + @"\fs" + Convert.ToInt32(myFont.SizeInPoints * 2).ToString() + @" "); // \f0\fs" + this.Font.SizeInPoints * 2 + @" " + myDisplayTextElement.Text + @"}"; + } private bool FontIsFixed(Font myFont) @@ -1454,7 +1327,6 @@ namespace Volian.Controls.Library { string fonttab = FontTable; string fontsize = FontSize; - //if (this.DetectUrls) this.DetectUrls = false; if (SelectionLength > 0)HandleDeleteKeyWithSelectedText(new KeyEventArgs(Keys.None), null); int position = SelectionStart; SelectionLength = 0; @@ -1484,7 +1356,6 @@ namespace Volian.Controls.Library } private void AddLink50(string linkValue, string linkUrl) { - //this.DetectUrls = false; int position = SelectionStart; SelectionLength = 0; SelectedRtf = string.Format(@"{{\rtf\field{{\*\fldinst{{HYPERLINK ""www.volian.com #{0}"" }}}}{{\fldrslt{{\cf2\ul {1}}}}}}}", linkUrl, linkValue); @@ -1537,9 +1408,6 @@ namespace Volian.Controls.Library { Size offset = Size - ClientSize; int widthNew = (this is TableCellEditor) ? Width : (ContentsSize.Width + offset.Width + AdjustSize.Width); - //int widthNew = Width; - //if (!(this is TableCellEditor)) - // widthNew = ContentsSize.Width + offset.Width + AdjustSize.Width; int heightNew = ContentsSize.Height + offset.Height + AdjustSize.Height; // Don't make the window narrower unless it has text - RHM - 20100107 Size szNew = new Size(((Text != "" && adjustWidth) ? widthNew : (widthNew > Width ? widthNew : Width)), heightNew); @@ -1677,22 +1545,6 @@ namespace Volian.Controls.Library } #endregion #region ColorSupport - Not currently used. - //private void SetBackGroundColor(ItemInfo itemInfo) - //{ - // string backcolor = null; - // int type = (int)itemInfo.MyContent.Type; - // FormatInfo formatinfo = itemInfo.ActiveFormat; - // if (type == (int)E_FromType.Procedure) - // backcolor = formatinfo.PlantFormat.FormatData.ProcData.BackColor; - // else if (type == (int)E_FromType.Section) - // backcolor = formatinfo.PlantFormat.FormatData.SectData.BackColor; - // else - // { - // int typindx = (int)itemInfo.MyContent.Type - 20000; // what to do for other types rather than steps - // backcolor = formatinfo.PlantFormat.FormatData.StepDataList[typindx].StepLayoutData.BackColor; - // } - // BackColor = Color.FromName(backcolor); - //} #endregion #region EventSupport #region LinkEvents @@ -1725,8 +1577,6 @@ namespace Volian.Controls.Library #region TextAndContentsEvents void StepRTB_TextChanged(object sender, EventArgs e) { - //if (Rtf.Contains(" 0) return; - // if (SelectionStart == TextLength) return; - // Console.WriteLine("Handle Overwrite, SelectionStart = {0}, SelectionLength = {1}", SelectionStart, SelectionLength); - // SelectionLength = 1; - //} private bool _CheckSelection = false; #endregion #region Delete Handlers @@ -1915,7 +1754,7 @@ namespace Volian.Controls.Library DeleteCurrentSelection(keychars); e.SuppressKeyPress = true; break; - case RangeStatus.Before_Between: //myRTB1.SelectedText.EndsWith(@"[END> private void InsertCharBetweenLinks(LinkLocation ll, char charToAdd, bool setSelect) { - //_InsertingSpaceBetweenLinks = true; DebugPrint("ICBLvvvvvvvvvvvvvvv>>>"); Rtf = Rtf.Substring(0, ll.StartRtf) + @"\v0 " + charToAdd.ToString() + @"\v " + Rtf.Substring(ll.StartRtf); - //_InsertingSpaceBetweenLinks = false; if (setSelect) SelectionStart = ll.Start - 6; // account for >>"); } private void ExpandSelectionToIncludeStart() { - //_AdjustingSelection = true; SetSelection(SelectionStart - 7, SelectionLength + 7); // Expand selection to include start - //_AdjustingSelection = false; } public string GetSelectionForClipBoard() { @@ -2044,7 +1879,6 @@ namespace Volian.Controls.Library { _SendBackSpace = true; RtbSendKeys("{BS}"); // remove X - //this.ClearUndo(); // undo was redisplay 'X' and then deleted text Application.DoEvents(); DebugSelection("After BS"); } @@ -2063,9 +1897,7 @@ namespace Volian.Controls.Library int slen = SelectionLength + 1 - 7; // This puts a space at the link that starts at the end of the selection InsertCharBetweenLinks(_RangeEndLink.NextLink); - //_AdjustingSelection = true; DeleteSelection(sstart, slen, keychars); - //_AdjustingSelection = false; _ProcessingKeys--; } private void DeleteStartBetweenLinks(string keychars) @@ -2074,7 +1906,6 @@ namespace Volian.Controls.Library DebugSelection("DeleteStartBetweenLinks"); int slen = SelectionLength + 8; int sstart = SelectionStart - 7; - //LinkLocation ll = FindBetweenLinks(SelectionStart); InsertCharBetweenLinks(_RangeStartLink); DeleteSelection(sstart, slen, keychars); _ProcessingKeys--; @@ -2085,7 +1916,6 @@ namespace Volian.Controls.Library DebugSelection("DeleteFromStartOfBox"); int slen = SelectionLength; SetSelection(0, 0); - //RtbSendKeys(" "); // open for space between links which separates END/START tokens SelectedText = " "; DeleteSelection(0, slen + 8, keychars); _ProcessingKeys--; @@ -2096,12 +1926,8 @@ namespace Volian.Controls.Library DebugSelection("DeleteFromStartOfBoxEndBetweenLinks"); // This puts a space at the link that starts at the end of the selection int sLen = SelectionStart + SelectionLength - 7 + 2;// -7 for 0) HandleDeleteKeyWithSelectedText(e, null); break; case Keys.Insert: - //_OverWrite = !_OverWrite; - //if (_OverWrite) - //{ - // HandleSelectionChange(); - //} - //else - //{ - // SelectionLength = 0; - // HandleSelectionChange(); - //} // For now, don't allow for toggling between insert/overwrite mode - see // comment on _OverWrite e.Handled = true; @@ -2627,21 +2441,11 @@ namespace Volian.Controls.Library if (e.Shift) { e.Handled = true; - ItemInfo myCopyStep = (this.Parent.Parent.Parent as StepTabPanel).MyDisplayTabControl.MyCopyStep; - if (myCopyStep != null) - { - // commented out as part of bug fix B2016-148 to fix the not popping up the paste options - //if (this.MyItemInfo.IsSection && myCopyStep.IsSection) - // OnSetMenu(this, new StepRTBMenuEventArgs("StepPaste")); - //if (this.MyItemInfo.IsStep && myCopyStep.IsStep) - //{ - // if ((this.MyItemInfo.IsHigh && myCopyStep.IsHigh) || (!this.MyItemInfo.IsHigh && !myCopyStep.IsHigh)) - // OnSetMenu(this, new StepRTBMenuEventArgs("StepPaste")); - //} - OnSetMenu(this, new StepRTBMenuEventArgs("StepPaste")); - } - //if (!OnCheckClipboard(this, new EventArgs())) return; // check if 'clipboard' contains a step. - //OnSetMenu(this, new StepRTBMenuEventArgs("StepPaste")); + ItemInfo myCopyStep = (this.Parent.Parent.Parent as StepTabPanel).MyDisplayTabControl.MyCopyStep; + if (myCopyStep != null) + { + OnSetMenu(this, new StepRTBMenuEventArgs("StepPaste")); + } } else if (!e.Control && !e.Alt) { @@ -2846,7 +2650,6 @@ namespace Volian.Controls.Library } if (Text == "" && Parent != null && Parent is VlnFlexGrid) { - //ShowMyParentsFonts(); SelectionFont = Parent.Font; } // add the character with its font depending on the char.... @@ -3100,7 +2903,6 @@ namespace Volian.Controls.Library _AdjustingSelection = true; PushSelection(); FindLinks(); - //IdentifyLinks(); PopSelection(); LinkLocation llx = FindLinkLocation(); if (_CheckSelection) @@ -3315,98 +3117,6 @@ namespace Volian.Controls.Library Select(locStart, locLength); } #endregion - //#region FontAndStylesSupport - //private void ToggleFontStyle(FontStyle style, bool att_on) - //{ - // int start = SelectionStart; - // int len = SelectionLength; - // System.Drawing.Font currentFont; - // FontStyle fs; - // for (int i = 0; i < len; ++i) - // { - // Select(start + i, 1); - // currentFont = SelectionFont; - // fs = currentFont.Style; - // //add or remove style - // if (!att_on)fs = fs | style; - // else fs = fs & ~style; - - // SelectionFont = new Font( - // currentFont.FontFamily, - // currentFont.Size, - // fs - // ); - // } - //} - /// - /// Returns a Font with: - /// 1) The font applying to the entire selection, if none is the default font. - /// 2) The font size applying to the entire selection, if none is the size of the default font. - /// 3) A style containing the attributes that are common to the entire selection, default regular. - /// - /// - //public Font GetFontDetails() - //{ - // //This method should handle cases that occur when multiple fonts/styles are selected - - // int start = SelectionStart; - // int len = SelectionLength; - // int TempStart = 0; - - // if (len <= 1) - // { - // // Return the selection or default font - // if (SelectionFont != null) - // return SelectionFont; - // else - // return Font; // should be default from format. - // } - - // // Step through the selected text one char at a time - // // after setting defaults from first char - // _rtbTemp.Rtf = SelectedRtf; - - // //Turn everything on so we can turn it off one by one - // FontStyle replystyle = - // FontStyle.Bold | FontStyle.Italic | FontStyle.Underline; - - // // Set reply font, size and style to that of first char in selection. - // _rtbTemp.Select(TempStart, 1); - // string replyfont = _rtbTemp.SelectionFont.Name; - // float replyfontsize = _rtbTemp.SelectionFont.Size; - // replystyle = replystyle & _rtbTemp.SelectionFont.Style; - - // // Search the rest of the selection - // for (int i = 1; i < len; ++i) - // { - // _rtbTemp.Select(TempStart + i, 1); - - // // Check reply for different style - // replystyle = replystyle & _rtbTemp.SelectionFont.Style; - - // // Check font - // if (replyfont != _rtbTemp.SelectionFont.FontFamily.Name) - // replyfont = ""; - - // // Check font size - // if (replyfontsize != _rtbTemp.SelectionFont.Size) - // replyfontsize = (float)0.0; - // } - - // // Now set font and size if more than one font or font size was selected - // if (replyfont == "") - // replyfont = _rtbTemp.Font.FontFamily.Name; - - // if (replyfontsize == 0.0) - // replyfontsize = _rtbTemp.Font.Size; - - // // generate reply font - // Font reply - // = new Font(replyfont, replyfontsize, replystyle); - - // return reply; - //} - //#endregion #region EnumsSelectionRange private enum StartStatus : int { @@ -3483,12 +3193,6 @@ namespace Volian.Controls.Library DebugPrint("SelectionStart {0}, SelectionEnd {1}, TextLength {2}", SelectionStart, SelectionStart + SelectionLength, TextLength); - //if (_RangeStartLink != null) - // _RangeStartLink.Show("startLink"); - //if (_RangeEndLink != null) - // _RangeEndLink.Show("endLink"); - //if (foundLink != null) - // foundLink.Show("foundLink"); if (foundLink == null) return RTBRangeStatus = RangeStatus.NoContainedLinks; @@ -3807,7 +3511,6 @@ namespace Volian.Controls.Library static void tsi_Click(object sender, EventArgs e) { ToolStripMenuItem tsmi = sender as ToolStripMenuItem; - //_ContextMenuStepRTB.MyRTBItem.MyStepPanel.MyStepTabPanel.MyStepTabRibbon.OpenContextMenu(tsmi.Owner.Location); _ContextMenuStepRTB.OnOpenContextMenu(sender, new StepRTBLocationEventArgs(tsmi.Owner.Location)); } // This is our customized Spell Check dialog @@ -4202,63 +3905,6 @@ namespace Volian.Controls.Library if (NextLink != null) Console.WriteLine("LinkLocation: {0}.NextLink {1}", str, NextLink); } - // #region ClipboardHandler - // private const int WM_CUT = 0x0300; - // private const int WM_COPY = 0x0301; - // private const int WM_PASTE = 0x0302; - - // public delegate void ClipboardEventHandler(object sender, ClipboardEventArgs e); - - // [Category("Clipboard")] - // public event ClipboardEventHandler CutText; - // [Category("Clipboard")] - // public event ClipboardEventHandler CopiedText; - // [Category("Clipboard")] - // public event ClipboardEventHandler PastedText; - - // protected override void WndProc(ref Message m) - // { - // if (m.Msg == WM_CUT) - // { - // if (CutText != null) - // CutText(this, new ClipboardEventArgs(this.SelectedText)); - // } - // else if (m.Msg == WM_COPY) - // { - // if (CopiedText != null) - // CopiedText(this, new ClipboardEventArgs(this.SelectedText)); - // } - // else if (m.Msg == WM_PASTE) - // { - // if (PastedText != null) - // PastedText(this, new ClipboardEventArgs(Clipboard.GetText())); - // } - - // base.WndProc(ref m); - // } - //} - - //public class ClipboardEventArgs : EventArgs - //{ - // private string clipboardText; - // public string ClipboardText - // { - // get - // { - // return clipboardText; - // } - - // set - // { - // clipboardText = value; - // } - // } - - // public ClipboardEventArgs(string clipboardText) - // { - // this.clipboardText = clipboardText; - // } - // #endregion } #endregion