diff --git a/PROMS/VEPROMS User Interface/frmVEPROMS.cs b/PROMS/VEPROMS User Interface/frmVEPROMS.cs index ab9e03d2..af6b0fad 100644 --- a/PROMS/VEPROMS User Interface/frmVEPROMS.cs +++ b/PROMS/VEPROMS User Interface/frmVEPROMS.cs @@ -187,6 +187,7 @@ namespace VEPROMS } void frmVEPROMS_Activated(object sender, EventArgs e) { + if (ActiveControl == tc) tc.HideCaret(); // refresh anything that pertains to external files or programs: // if ro.fst was 'updated' from the roeditor, enable the update ro.fst values on @@ -260,6 +261,21 @@ namespace VEPROMS displayBookMarks.MyDisplayTabControl = tc; // allows bookmark selection to bring up steps/docs office2007StartButton1.MouseDown +=new MouseEventHandler(office2007StartButton1_MouseDown); //displayRO.EnabledChanged += new EventHandler(displayRO_EnabledChanged); + tc.Enter += new EventHandler(tc_Enter); + tc.Leave += new EventHandler(tc_Leave); + this.Deactivate += new EventHandler(frmVEPROMS_Deactivate); + } + void frmVEPROMS_Deactivate(object sender, EventArgs e) + { + tc.HideCaret(); // Hide the pseudo caret + } + void tc_Leave(object sender, EventArgs e) + { + tc.ShowCaret();// Show the pseudo caret + } + void tc_Enter(object sender, EventArgs e) + { + tc.HideCaret();// Hide the pseudo caret } //void displayRO_EnabledChanged(object sender, EventArgs e) //{ diff --git a/PROMS/Volian.Controls.Library/DisplayTabControl.Designer.cs b/PROMS/Volian.Controls.Library/DisplayTabControl.Designer.cs index e47069fc..3eaaa518 100644 --- a/PROMS/Volian.Controls.Library/DisplayTabControl.Designer.cs +++ b/PROMS/Volian.Controls.Library/DisplayTabControl.Designer.cs @@ -36,6 +36,7 @@ namespace Volian.Controls.Library this.bottomDocDockSite = new DevComponents.DotNetBar.DockSite(); this.fillDocDockSite = new DevComponents.DotNetBar.DockSite(); this._MyBar = new DevComponents.DotNetBar.Bar(); + this._PnlCaret = new System.Windows.Forms.Panel(); this.leftDocDockSite = new DevComponents.DotNetBar.DockSite(); this.rightDocDockSite = new DevComponents.DotNetBar.DockSite(); this.bottomBarDockSite = new DevComponents.DotNetBar.DockSite(); @@ -44,8 +45,10 @@ namespace Volian.Controls.Library this.topBarDockSite = new DevComponents.DotNetBar.DockSite(); this.topDocDockSite = new DevComponents.DotNetBar.DockSite(); this.superTooltip1 = new DevComponents.DotNetBar.SuperTooltip(); + this.tmrCaret = new System.Windows.Forms.Timer(this.components); this.fillDocDockSite.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this._MyBar)).BeginInit(); + this._MyBar.SuspendLayout(); this.SuspendLayout(); // // dotNetBarManager1 @@ -60,7 +63,6 @@ namespace Volian.Controls.Library this.dotNetBarManager1.AutoDispatchShortcuts.Add(DevComponents.DotNetBar.eShortcut.Del); this.dotNetBarManager1.AutoDispatchShortcuts.Add(DevComponents.DotNetBar.eShortcut.Ins); this.dotNetBarManager1.BottomDockSite = this.bottomDocDockSite; - this.dotNetBarManager1.DefinitionName = ""; this.dotNetBarManager1.EnableFullSizeDock = false; this.dotNetBarManager1.FillDockSite = this.fillDocDockSite; this.dotNetBarManager1.LeftDockSite = this.leftDocDockSite; @@ -114,7 +116,9 @@ namespace Volian.Controls.Library this._MyBar.CanHide = true; this._MyBar.CanUndock = false; this._MyBar.CloseSingleTab = true; + this._MyBar.Controls.Add(this._PnlCaret); this._MyBar.DockTabAlignment = DevComponents.DotNetBar.eTabStripAlignment.Top; + this._MyBar.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this._MyBar.LayoutType = DevComponents.DotNetBar.eLayoutType.DockContainer; this._MyBar.Location = new System.Drawing.Point(0, 0); this._MyBar.Name = "_MyBar"; @@ -125,6 +129,16 @@ namespace Volian.Controls.Library this._MyBar.TabNavigation = true; this._MyBar.TabStop = false; // + // _PnlCaret + // + this._PnlCaret.BackColor = System.Drawing.Color.Red; + this._PnlCaret.Location = new System.Drawing.Point(5, 5); + this._PnlCaret.Margin = new System.Windows.Forms.Padding(0); + this._PnlCaret.Name = "_PnlCaret"; + this._PnlCaret.Size = new System.Drawing.Size(142, 16); + this._PnlCaret.TabIndex = 1; + this._PnlCaret.Visible = false; + // // leftDocDockSite // this.leftDocDockSite.AccessibleRole = System.Windows.Forms.AccessibleRole.Window; @@ -202,6 +216,11 @@ namespace Volian.Controls.Library // this.superTooltip1.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F"; // + // tmrCaret + // + this.tmrCaret.Interval = 500; + this.tmrCaret.Tick += new System.EventHandler(this.tmrCaret_Tick); + // // DisplayTabControl // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -219,6 +238,7 @@ namespace Volian.Controls.Library this.Size = new System.Drawing.Size(673, 383); this.fillDocDockSite.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this._MyBar)).EndInit(); + this._MyBar.ResumeLayout(false); this.ResumeLayout(false); } @@ -240,5 +260,7 @@ namespace Volian.Controls.Library //private DevComponents.DotNetBar.DockContainerItem dockContainerItem2; //private DevComponents.DotNetBar.DockContainerItem dockContainerItem3; private DevComponents.DotNetBar.SuperTooltip superTooltip1; + private System.Windows.Forms.Panel _PnlCaret; + private System.Windows.Forms.Timer tmrCaret; } } diff --git a/PROMS/Volian.Controls.Library/DisplayTabControl.cs b/PROMS/Volian.Controls.Library/DisplayTabControl.cs index 363f1938..427fcbb8 100644 --- a/PROMS/Volian.Controls.Library/DisplayTabControl.cs +++ b/PROMS/Volian.Controls.Library/DisplayTabControl.cs @@ -33,6 +33,7 @@ namespace Volian.Controls.Library private int _UniqueBarCount; private ItemInfo _MyItemInfo = null; private EditItem _MyEditItem = null; + private StepRTB _MyStepRTB = null; private bool _RibbonExpanded=true; public bool RibbonExpanded { @@ -155,11 +156,16 @@ namespace Volian.Controls.Library { _MyItemInfo = args.MyItemInfo; _MyEditItem = args.MyEditItem; + if (_MyEditItem != null) + _MyStepRTB = _MyEditItem.MyStepRTB; + else + _MyStepRTB = null; } else { _MyItemInfo = null; _MyEditItem = null; + _MyStepRTB = null; } if (ItemSelectedChanged != null) ItemSelectedChanged(sender, args); } @@ -471,6 +477,54 @@ namespace Volian.Controls.Library { get { return _MyBar; } } + public Panel PnlCaret + { + get { return _PnlCaret; } + } + public void ShowCaret() + { + if (_MyStepRTB != null) + { + if (!_MyStepRTB.Visible) + _MyStepRTB.Visible = true; + if (_MyStepRTB.SelectionLength == 0) + { + Point pt = _MyStepRTB.GetPositionFromCharIndex(_MyStepRTB.SelectionStart); + pt = _MyStepRTB.PointToScreen(pt); + pt = this.PointToClient(pt); + PnlCaret.Location = pt; + PnlCaret.BackColor = _MyStepRTB.ForeColor; + using (Graphics gr = this.CreateGraphics()) + { + SizeF sf = gr.MeasureString("Mg", _MyStepRTB.SelectionFont); + sf.Width = 1; + PnlCaret.Size = sf.ToSize(); + } + tmrCaret.Enabled = true; + } + else + { + _MyStepRTB.SelectionColor = Color.White; + _MyStepRTB.SelectionBackColor = Color.FromName("Highlight"); + } + } + } + public void HideCaret() + { + if (_MyStepRTB != null && ! _MyStepRTB.Disposing) + { + if (_MyStepRTB.SelectionLength == 0) + { + tmrCaret.Enabled = false; + PnlCaret.Visible = false; + } + else + { + _MyStepRTB.SelectionColor = _MyStepRTB.ForeColor; + _MyStepRTB.SelectionBackColor = _MyStepRTB.BackColor; + } + } + } #endregion #region Private Methods ///// @@ -686,5 +740,9 @@ namespace Volian.Controls.Library myDisplayTabItem.Dispose(); } #endregion + private void tmrCaret_Tick(object sender, EventArgs e) + { + PnlCaret.Visible = !PnlCaret.Visible; + } } } diff --git a/PROMS/Volian.Controls.Library/DisplayTabControl.resx b/PROMS/Volian.Controls.Library/DisplayTabControl.resx index 9b30e3b8..0e2e6930 100644 --- a/PROMS/Volian.Controls.Library/DisplayTabControl.resx +++ b/PROMS/Volian.Controls.Library/DisplayTabControl.resx @@ -123,4 +123,7 @@ 168, 17 + + 295, 17 + \ No newline at end of file diff --git a/PROMS/Volian.Controls.Library/GridItem.cs b/PROMS/Volian.Controls.Library/GridItem.cs index 40651625..985ea731 100644 --- a/PROMS/Volian.Controls.Library/GridItem.cs +++ b/PROMS/Volian.Controls.Library/GridItem.cs @@ -29,7 +29,8 @@ namespace Volian.Controls.Library * 4) KBR ContextMenu for table. May want it to function in a similar way to spellcheck, with * the contentmenu to support table options and a last item that supports existing * contextmenu - * 5) RHM Copy step - including modifying SQL code to copy grid/image data. + * 5) RHM Copy step - including modifying SQL code to copy grid/image data. + * The Grid includes links which also need to be updated. * 6) RHM Selection is NOT selection, i.e. if merged cells, selection isn't selecting the 'merged' * i.e. parent cell. * 7) RHM Selecting a range can end up with uneven rows or uneven columns. We need to handle, @@ -197,10 +198,17 @@ namespace Volian.Controls.Library } void MyStepRTB_EditModeChanged(object sender, EventArgs args) + { + AdjustColorsForEditMode(); + } + + private void AdjustColorsForEditMode() { if (MyStepRTB.EditMode) + { MyFlexGrid.Styles["Focus"].ForeColor = MyFlexGrid.Styles["Focus"].BackColor = MyFlexGrid.Styles["Highlight"].ForeColor = MyFlexGrid.Styles["Highlight"].BackColor = Color.SkyBlue; + } else { MyFlexGrid.Styles["Focus"].ForeColor = MyFlexGrid.Styles["Highlight"].ForeColor = Color.Black; @@ -587,7 +595,7 @@ namespace Volian.Controls.Library } public override void SetActive() { - MyFlexGrid.Styles["Focus"].BackColor = MyFlexGrid.Styles["Highlight"].BackColor = Color.LightCyan; + AdjustColorsForEditMode(); } private bool _Empty = false; public override bool Empty diff --git a/PROMS/Volian.Controls.Library/StepRTB.cs b/PROMS/Volian.Controls.Library/StepRTB.cs index 9b341e8a..58581908 100644 --- a/PROMS/Volian.Controls.Library/StepRTB.cs +++ b/PROMS/Volian.Controls.Library/StepRTB.cs @@ -532,6 +532,7 @@ namespace Volian.Controls.Library } private void SetUpStepRTB() { + DetectUrls = false; C1SpellChecker2.SetActiveSpellChecking(this, true); this.Height = 10; // initialize the height to 10, the default height was too big for the cells in grid tables BorderStyle = System.Windows.Forms.BorderStyle.None; @@ -893,7 +894,7 @@ namespace Volian.Controls.Library { string fonttab = FontTable; string fontsize = FontSize; - this.DetectUrls = false; + //if (this.DetectUrls) this.DetectUrls = false; if (SelectionLength > 0)HandleDeleteKeyWithSelectedText(new KeyEventArgs(Keys.None), null); int position = SelectionStart; SelectionLength = 0; @@ -905,7 +906,7 @@ namespace Volian.Controls.Library } private void AddLink50(string linkValue, string linkUrl) { - this.DetectUrls = false; + //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);