diff --git a/PROMS/Volian.Controls.Library/StepItem.cs b/PROMS/Volian.Controls.Library/StepItem.cs
index 348e7053..4fae1927 100644
--- a/PROMS/Volian.Controls.Library/StepItem.cs
+++ b/PROMS/Volian.Controls.Library/StepItem.cs
@@ -132,6 +132,10 @@ namespace Volian.Controls.Library
value.MyContent.Changed += new ContentInfoEvent(MyContent_Changed);
}
}
+ public StepItem ActiveParent
+ {
+ get { return _MyParentStepItem!=null ? _MyParentStepItem : _MyPreviousStepItem.ActiveParent; }
+ }
void MyContent_Changed(object sender)
{
// Update the text to reflect the content change
@@ -205,6 +209,7 @@ namespace Volian.Controls.Library
}
break;
case ChildRelation.RNO:
+ TabFormat = "";
if (RNOLevel <= _MyStepPanel.MaxRNO)
{
int colR = _MyStepPanel.ToDisplay(_MyStepSectionLayoutData.ColRTable, Convert.ToInt32(_MyStepSectionLayoutData.PMode) - 1);
@@ -216,7 +221,6 @@ namespace Volian.Controls.Library
TextLocation = new Point(_MyParentStepItem.TextLeft, _MyParentStepItem.BottomMostStepItem.Bottom);
}
// Same size as the Parent
- TabFormat = "";
TextWidth = _MyParentStepItem.TextWidth;
break;
case ChildRelation.Before:
@@ -437,9 +441,11 @@ namespace Volian.Controls.Library
get
{
StepItem tmpr = null; // BottomMost RNO
- if ((MyExpandingStatus != ExpandingStatus.No || Expanded) && _MyRNOStepItems != null) tmpr = _MyRNOStepItems[_MyRNOStepItems.Count - 1].BottomMostStepItem;
+ if ((MyExpandingStatus != ExpandingStatus.No || Expanded) && _MyRNOStepItems != null)
+ tmpr = _MyRNOStepItems[_MyRNOStepItems.Count - 1].BottomMostStepItem;
StepItem tmpa = this; // BottomMost After
- if ((MyExpandingStatus != ExpandingStatus.No || Expanded) & _MyAfterStepItems != null) tmpa = _MyAfterStepItems[_MyAfterStepItems.Count - 1].BottomMostStepItem;
+ if ((MyExpandingStatus != ExpandingStatus.No || Expanded) & _MyAfterStepItems != null)
+ tmpa = _MyAfterStepItems[_MyAfterStepItems.Count - 1].BottomMostStepItem;
// return the bottom most of the two results
if (tmpr == null)
return tmpa;
@@ -579,6 +585,16 @@ namespace Volian.Controls.Library
{
//// TIMING: DisplayItem.TimeIt("CSLARTB Top");
InitializeComponent();// TODO: Performance 25%
+ SetupStepItem(itemInfo, myStepPanel, myParentStepItem, myChildRelation, expand, null);
+ }
+ public StepItem(ItemInfo itemInfo, StepPanel myStepPanel, StepItem myParentStepItem, ChildRelation myChildRelation, bool expand, StepItem nextStepItem)
+ {
+ //// TIMING: DisplayItem.TimeIt("CSLARTB Top");
+ InitializeComponent();// TODO: Performance 25%
+ SetupStepItem(itemInfo, myStepPanel, myParentStepItem, myChildRelation, expand, nextStepItem);
+ }
+ private void SetupStepItem(ItemInfo itemInfo, StepPanel myStepPanel, StepItem myParentStepItem, ChildRelation myChildRelation, bool expand, StepItem nextStepItem)
+ {
_MyStepRTB.MyStepItem = this;
//// TIMING: DisplayItem.TimeIt("CSLARTB InitComp");
BackColor = myStepPanel.PanelColor;
@@ -631,14 +647,14 @@ namespace Volian.Controls.Library
switch (myChildRelation)
{
case ChildRelation.After:
- AddItem(myParentStepItem, ref myParentStepItem._MyAfterStepItems);
+ AddItem(myParentStepItem, ref myParentStepItem._MyAfterStepItems,nextStepItem);
break;
case ChildRelation.Before:
- AddItem(myParentStepItem, ref myParentStepItem._MyBeforeStepItems);
+ AddItem(myParentStepItem, ref myParentStepItem._MyBeforeStepItems, nextStepItem);
break;
case ChildRelation.RNO:
RNOLevel = myParentStepItem.RNOLevel + 1;
- AddItem(myParentStepItem, ref myParentStepItem._MyRNOStepItems);
+ AddItem(myParentStepItem, ref myParentStepItem._MyRNOStepItems, nextStepItem);
break;
case ChildRelation.None:
break;
@@ -695,19 +711,34 @@ namespace Volian.Controls.Library
///
/// Parent Container
/// StepItem List
- public void AddItem(StepItem parentStepItem, ref List siblingStepItems)
+ public void AddItem(StepItem parentStepItem, ref List siblingStepItems, StepItem nextStepItem)
{
- if (siblingStepItems == null)
+ if (siblingStepItems == null) // Create a list of siblings
{
siblingStepItems = new List();
siblingStepItems.Add(this);
MyParentStepItem = parentStepItem;
}
- else
+ else // Add to the existing list
{
- StepItem lastChild = LastChild(siblingStepItems);
- siblingStepItems.Add(this);
- MyPreviousStepItem = lastChild;
+ if (nextStepItem == null) // Add to the end of the list
+ {
+ StepItem lastChild = LastChild(siblingStepItems);
+ siblingStepItems.Add(this);
+ MyPreviousStepItem = lastChild;
+ }
+ else // Add to the middle of the list before a particular item
+ {
+ StepItem prevChild = nextStepItem.MyPreviousStepItem;
+ StepItem parent = nextStepItem.MyParentStepItem;
+ siblingStepItems.Insert(siblingStepItems.IndexOf(nextStepItem), this);
+ MyStepPanel.ItemMoving++;
+ MyPreviousStepItem = prevChild;// If a previous exists - this will adjust the location and width of the StepItem
+ nextStepItem.MyParentStepItem = null;
+ MyParentStepItem = parent; // If a parent exists - this will adjust the location and width of the StepItem
+ nextStepItem.MyPreviousStepItem = this;
+ MyStepPanel.ItemMoving--;
+ }
}
TabFormat = TemporaryFormat.TabFormat(this);
}
@@ -770,21 +801,117 @@ namespace Volian.Controls.Library
///
///
///
- public void AddChildAfter(ItemInfo MyItemInfo, bool expand)
+ public StepItem AddChildAfter(ItemInfo MyItemInfo, bool expand)
{
StepItem child = new StepItem(MyItemInfo, _MyStepPanel, this, ChildRelation.After, expand);
- child.RNOLevel = this.RNOLevel;
+ return child;
+ }
+ public StepItem AddChildAfter(ItemInfo MyItemInfo, StepItem nextStepItem)
+ {
+ StepItem child = new StepItem(MyItemInfo, _MyStepPanel, this, ChildRelation.After, true, nextStepItem);
+ return child;
+ }
+ public StepItem AddChildBefore(ItemInfo MyItemInfo, StepItem nextStepItem)
+ {
+ StepItem child = new StepItem(MyItemInfo, _MyStepPanel, this, ChildRelation.Before, true, nextStepItem);
+ return child;
+ }
+ public StepItem AddChildRNO(ItemInfo MyItemInfo, StepItem nextStepItem)
+ {
+ StepItem child = new StepItem(MyItemInfo, _MyStepPanel, this, ChildRelation.RNO, true, nextStepItem);
+ return child;
+ }
+ ///
+ /// Adds a sibling after the current StepItem
+ ///
+ public void AddSiblingAfter()
+ {
+ ItemInfo newItemInfo = MyItemInfo.InsertSiblingAfter("");
+ StepItem newStepItem = null;
+ switch (_MyChildRelation)
+ {
+ case ChildRelation.After:
+ newStepItem = ActiveParent.AddChildAfter(newItemInfo, MyNextStepItem);
+ break;
+ case ChildRelation.Before:
+ newStepItem = ActiveParent.AddChildBefore(newItemInfo, MyNextStepItem);
+ break;
+ case ChildRelation.RNO:
+ newStepItem = ActiveParent.AddChildRNO(newItemInfo, MyNextStepItem);
+ break;
+ default: // Need debug
+ break;
+ }
+ //StepItem newStepItem = ActiveParent.AddChildAfter(newItemInfo, );
+ _MyStepPanel.SelectedStepRTB = newStepItem.MyStepRTB;//Update Screen
+ }
+ public void AddSiblingBefore()
+ {
+ ItemInfo newItemInfo = MyItemInfo.InsertSiblingBefore("");
+ StepItem newStepItem=null;
+ switch (_MyChildRelation)
+ {
+ case ChildRelation.After:
+ newStepItem = ActiveParent.AddChildAfter(newItemInfo, this);
+ break;
+ case ChildRelation.Before:
+ newStepItem = ActiveParent.AddChildBefore(newItemInfo, this);
+ break;
+ case ChildRelation.RNO:
+ newStepItem = ActiveParent.AddChildRNO(newItemInfo, this);
+ break;
+ default: // Need debug
+ break;
+ }
+ _MyStepPanel.SelectedStepRTB = newStepItem.MyStepRTB;//Update Screen
+ }
+ public void AddChild(E_FromType fromType, int type)
+ {
+ ItemInfo newItemInfo = MyItemInfo.InsertChild(fromType,type,"");
+ // TODO: We need to determine where this will go in the stack of children
+ StepItem nextItem = MyStepPanel.FindItem(newItemInfo.NextItem);
+ StepItem newStepItem;
+ switch (fromType)
+ {
+ case E_FromType.Caution:
+ newStepItem = this.AddChildBefore(newItemInfo, nextItem);
+ break;
+ case E_FromType.Note:
+ newStepItem = this.AddChildBefore(newItemInfo, nextItem);
+ break;
+ case E_FromType.Procedure:
+ newStepItem = this.AddChildAfter(newItemInfo, nextItem);
+ break;
+ case E_FromType.RNO:
+ newStepItem = this.AddChildRNO(newItemInfo, nextItem);
+ break;
+ case E_FromType.Section:
+ newStepItem = this.AddChildAfter(newItemInfo, nextItem);
+ break;
+ case E_FromType.Step:
+ newStepItem = this.AddChildAfter(newItemInfo, nextItem);
+ break;
+ case E_FromType.Table:
+ newStepItem = this.AddChildAfter(newItemInfo, nextItem);
+ break;
+ default:
+ newStepItem = this.AddChildAfter(newItemInfo, nextItem);
+ break;
+ }
+ _MyStepPanel.SelectedStepRTB = newStepItem.MyStepRTB;//Update Screen
}
///
/// Add a list of children after
///
///
///
- public void AddChildAfter(ItemInfoList myItemInfoList, bool expand)
+ public StepItem AddChildAfter(ItemInfoList myItemInfoList, bool expand)
{
+ StepItem child = null;
if (myItemInfoList != null)
foreach (ItemInfo item in myItemInfoList)
- AddChildAfter(item, expand);
+ child = AddChildAfter(item, expand);
+ return child;
}
#endregion
#region Event Handlers
@@ -854,7 +981,10 @@ namespace Volian.Controls.Library
///
private void StepItem_Resize(object sender, EventArgs e)
{
+ if (MyStepRTB.Text.EndsWith("\n"))
+ Console.WriteLine("Added a new line to {0}", MyID);
if (_MyItemInfo == null) return;
+ //Console.WriteLine("{0} Resize - {1}, BottomMost {2}", MyID, MyPath,BottomMostStepItem.MyPath);
AdjustLocation();
}
///
@@ -897,8 +1027,17 @@ namespace Volian.Controls.Library
}
_Moving = false;
StepItem btm = BottomMostStepItem;
- if(this != btm)btm.AdjustLocation();
+ if(this != btm)
+ btm.AdjustLocation();
}
+
+ //private StepItem FindBottomMost()
+ //{
+ // StepItem btm = BottomMostStepItem;
+ // //if(btm.MyID != MyID)
+ // // Console.WriteLine("Item {0} - BottomMost {1}", MyPath, btm.MyPath);
+ // return btm;
+ //}
///
/// Handle the LinkGoTO event
///
@@ -1174,17 +1313,16 @@ namespace Volian.Controls.Library
///
/// Adjust the Location of all items below the current item.
///
- private void AdjustLocation()
+ internal void AdjustLocation()
{
StepItem tmp = NextDownStepItem;
if (tmp == null) return;
- // Debug to show when this is called
- // vlnStackTrace.ShowStack("{0} From {1} to {2}", tmp.MyPath, tmp.Top, Bottom);
- // Console.WriteLine("{0} From {1} to {2}", tmp.MyPath, tmp.Top, Bottom);
- if (tmp != null && !tmp.Moving && tmp.Top != Bottom)
+ //int bottom = BottomMostStepItem.Bottom;
+ int bottom = Bottom;
+ if (tmp != null && !tmp.Moving && tmp.Top != bottom)
{
_MyStepPanel.ItemMoving++;
- tmp.Top = Bottom;
+ tmp.Top = bottom;
_MyStepPanel.ItemMoving--;
}
}
@@ -1273,34 +1411,40 @@ namespace Volian.Controls.Library
{
get
{
- StepItem tmp = this;
- if (tmp.MyNextStepItem == null && FirstSiblingStepItem._MyChildRelation == ChildRelation.Before && tmp._MyAfterStepItems == null)
+ StepItem stepItem = this;
+ // If this item appears before it's parent, and it doesn't have anything below it, return the parent
+ if (MyNextStepItem == null && MyAfterStepItems == null && FirstSiblingStepItem._MyChildRelation == ChildRelation.Before)
return UpOneStepItem;
- if (Expanded && tmp._MyAfterStepItems != null)// check to see if there is a _After
- return tmp._MyAfterStepItems[0].TopMostStepItem;// if there is go that way
- while (tmp != null && tmp.MyNextStepItem == null) // if no Next walk up the parent path
+ if (Expanded && _MyAfterStepItems != null)// check to see if there is a _After
+ return MyAfterStepItems[0].TopMostStepItem;// if there is go that way
+ if (Expanded && MyRNOStepItems != null && MyItemInfo.RNOLevel >= MyItemInfo.Columns - 1)// check to see if there is a _After
+ return MyRNOStepItems[0].TopMostStepItem;// if there is go that way
+ while (stepItem != null && stepItem.MyNextStepItem == null) // if no Next walk up the parent path
{
- tmp = tmp.UpOneStepItem;
- if (tmp == null) // No Parent
+ stepItem = stepItem.UpOneStepItem;
+ if (stepItem == null) // No Parent
return null;
- if (tmp.MyExpandingStatus == ExpandingStatus.Expanding || tmp.Moving) // Parent Expanding or Moving - Wait
+ if (stepItem.MyExpandingStatus == ExpandingStatus.Expanding || stepItem.Moving) // Parent Expanding or Moving - Wait
return null;
- if (tmp.MyNextStepItem == null && tmp.FirstSiblingStepItem._MyChildRelation == ChildRelation.Before)
- return tmp.UpOneStepItem;
- StepItem btm = tmp.BottomMostStepItem;
- if (this != btm)
+ if (stepItem.MyNextStepItem == null && stepItem.FirstSiblingStepItem._MyChildRelation == ChildRelation.Before)
+ return stepItem.UpOneStepItem;
+ StepItem btm = stepItem.BottomMostStepItem; // Find the Bottom StepItem of this ancestor
+ if (this != btm) // If this is not the bottom, then just adjust things with respect to the bottom
{
- if (tmp.MyNextStepItem != null && tmp.MyNextStepItem.TopMostStepItem.Top != btm.Bottom)
+ StepItem btmNext = btm.NextDownStepItem;
+ //if (stepItem.MyNextStepItem != null && stepItem.MyNextStepItem.TopMostStepItem.Top != btm.Bottom)
+ if (btmNext != null && btmNext.Top != btm.Bottom)
{
_MyStepPanel.ItemMoving++;
- tmp.MyNextStepItem.TopMostStepItem.Top = btm.Bottom;
+ //stepItem.MyNextStepItem.TopMostStepItem.Top = btm.Bottom;
+ btmNext.Top = btm.Bottom;
_MyStepPanel.ItemMoving--;
}
return null; // Not the bottom - don't adjust anything else
}
}
- if (tmp != null)
- return tmp.MyNextStepItem.TopMostStepItem;// if no _After - check to see if there is a Next
+ if (stepItem != null)
+ return stepItem.MyNextStepItem.TopMostStepItem;// if no _After - check to see if there is a Next
return null;
}
}
diff --git a/PROMS/Volian.Controls.Library/StepRTB.cs b/PROMS/Volian.Controls.Library/StepRTB.cs
index 1f83f5bc..a76be837 100644
--- a/PROMS/Volian.Controls.Library/StepRTB.cs
+++ b/PROMS/Volian.Controls.Library/StepRTB.cs
@@ -59,6 +59,11 @@ namespace Volian.Controls.Library
get { return _vwMode; }
set { _vwMode = value; }
}
+ private VE_Font _MyStyleFont;
+ public VE_Font MyStyleFont
+ {
+ get { return _origDisplayText.TextFont; }
+ }
private ItemInfo _MyItemInfo;
public ItemInfo MyItemInfo
{
@@ -71,12 +76,28 @@ namespace Volian.Controls.Library
//_InitializingRTB = true;
DisplayText vlntxt = new DisplayText(_MyItemInfo, EpMode, VwMode);
_origDisplayText = vlntxt;
- Font = _origDisplayText.TextFont.WindowsFont;
+ //Font = _origDisplayText.TextFont.WindowsFont;
+
Text = ""; // Initialize text before add text
+ //if (_MyStepItem.MyID == 168)
+ // IMPORTANT: SetLineSpacing must be set before Link/protect, otherwise it
+ // was confusing the 'handle' of the rtf box.
+ RTBAPI.SetLineSpacing(this, RTBAPI.ParaSpacing.PFS_EXACT);
+
+ //SelectionStart = 1;
AddRtfText(vlntxt);
//AddRtfStyles();
ReadOnly = !(EpMode == E_EditPrintMode.Edit && VwMode == E_ViewMode.Edit);
- RTBAPI.SetLineSpacing(this, RTBAPI.ParaSpacing.PFS_EXACT);
+ if (_MyStepItem.MyID == 168)
+ RTBAPI.SetLineSpacing(this, RTBAPI.ParaSpacing.PFS_EXACT);
+ if (_MyStepItem.MyID == 168)
+ Console.WriteLine("After Linespacing\r\n {0}", Rtf);
+ //if (((_origDisplayText.TextFont.Style & E_Style.Bold) != 0) || ((_origDisplayText.TextFont.Style & E_Style.MmBold) != 0))
+ // RTBAPI.ToggleBold(true, this, RTBAPI.RTBSelection.SCF_ALL);
+ //if ((_origDisplayText.TextFont.Style & E_Style.Italics) != 0)
+ // RTBAPI.ToggleItalic(true, this, RTBAPI.RTBSelection.SCF_ALL);
+ //if ((_origDisplayText.TextFont.Style & E_Style.Underline) != 0)
+ // RTBAPI.ToggleUnderline(true, this, RTBAPI.RTBSelection.SCF_ALL);
//_InitializingRTB = false;
_IsDirty = false;
ClearUndo();
@@ -213,6 +234,7 @@ namespace Volian.Controls.Library
if (inRoAdd)
Console.WriteLine("SelectionStart {0}, SelectionLength {1}", SelectionStart, SelectionLength);
if (!SelectionProtected && MyLinkText != null) MyLinkText = null;
+
}
#endregion
#region ApplicationSupport
@@ -281,6 +303,7 @@ namespace Volian.Controls.Library
#region AddRtfTextAndStyles
private void AddRtfText(DisplayText myDisplayText)
{
+ AddFontTable();
foreach (displayTextElement vte in myDisplayText.DisplayTextElementList)
{
if (vte.Type == E_TextElementType.Text)
@@ -290,41 +313,142 @@ namespace Volian.Controls.Library
else
AddRtfLink((displayLinkElement)vte);
}
+ if (_MyStepItem.MyID == 168)
+ Console.WriteLine("_SelectedRtbSB\r\n {0}", _SelectedRtfSB.ToString());
+ SelectedRtf = _SelectedRtfSB.ToString() + "}";
+ if (_MyStepItem.MyID == 168)
+ Console.WriteLine("Rtf\r\n {0}", Rtf);
+ //if (_LinkPosition > -1)
+ FormatLinks();
+ }
+
+ private void FormatLinks()
+ {
+ if (_LinkLocations != null)
+ {
+ foreach (LinkLocation ll in _LinkLocations)
+ {
+ Select(ll.Position, ll.Length);
+
+ RTBAPI.CharFormatTwo charFormat = RTBAPI.GetCharFormat(this, RTBAPI.RTBSelection.SCF_SELECTION);
+ // Protect the link text to avoid manual changes
+ charFormat.dwMask = RTBAPI.CharFormatMasks.CFM_LINK | RTBAPI.CharFormatMasks.CFM_PROTECTED;
+ charFormat.dwEffects = RTBAPI.CharFormatEffects.CFE_LINK | RTBAPI.CharFormatEffects.CFE_PROTECTED;
+ RTBAPI.SetCharFormat((RichTextBox)this, RTBAPI.RTBSelection.SCF_SELECTION, charFormat);
+ //charFormat.dwMask = /* RTBAPI.CharFormatMasks.CFM_LINK | */ RTBAPI.CharFormatMasks.CFM_PROTECTED;
+ //charFormat.dwEffects = /* RTBAPI.CharFormatEffects.CFE_LINK | */ RTBAPI.CharFormatEffects.CFE_PROTECTED;
+ //RTBAPI.SetCharFormat((RichTextBox)this, RTBAPI.RTBSelection.SCF_SELECTION, charFormat);
+ }
+ }
+ }
+ private StringBuilder _SelectedRtfSB = new StringBuilder();
+
+ private void AddFontTable()
+ {
+ StringBuilder sbbeg = new StringBuilder();
+ StringBuilder sbend = new StringBuilder();
+ if (Font.Bold)
+ {
+ sbbeg.Append(@"\b");
+ sbend.Append(@"\b0");
+ }
+ if (Font.Underline)
+ {
+ sbbeg.Append(@"\ul");
+ sbend.Insert(0, @"\ulnone");
+ }
+ if (Font.Italic)
+ {
+ sbbeg.Append(@"\i");
+ sbend.Insert(0, @"\i0");
+ }
+ _SelectedRtfSB.Append(@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 " + this.Font.FontFamily.Name + @";}"); //}\f0\fs" + this.Font.SizeInPoints * 2 + @" " + myDisplayTextElement.Text + @"}}";
+ _SelectedRtfSB.Append(@"{\f1\fnil\fcharset0 Arial Unicode MS;}}");
+ _SelectedRtfSB.Append("\r\n");
+ // use styles to construct rtf commands to insert into next line (where \b is)
+ _SelectedRtfSB.Append(@"\viewkind4\uc1\pard\sl-240\slmult0" + sbbeg.ToString() + @"\fs" + this.Font.SizeInPoints * 2 + @" "); // \f0\fs" + this.Font.SizeInPoints * 2 + @" " + myDisplayTextElement.Text + @"}";
+ //SelectedRtf = _SelectedRtfSB.ToString();
}
private void AddRtf(displayTextElement myDisplayTextElement)
{
- SelectedRtf = @"{\rtf1{\fonttbl{\f0\fcharset2 "+this.Font.FontFamily.Name+@";}}\f0\fs" + this.Font.SizeInPoints*2 + " " + myDisplayTextElement.Text + @"}}";
+ // try later, i.e. adding bold to font name: SelectedRtf = @"{\rtf1{\fonttbl{\f0\fcharset2 " + this.Font.FontFamily.Name + @",Bold;}}\f0\fs" + this.Font.SizeInPoints * 2 + @" " + myDisplayTextElement.Text + @"}}";
+ //SelectedRtf = @"{\rtf1{\fonttbl{\f0\fcharset2 " + this.Font.FontFamily.Name + @";}}\f0\fs" + this.Font.SizeInPoints * 2 + @" " + myDisplayTextElement.Text + @"}}";
+ //_SelectedRtfSB.Append(@"\f0\fs" + this.Font.SizeInPoints * 2 + @" " + myDisplayTextElement.Text); // + @"}");
+ _SelectedRtfSB.Append(@"\f0 " + myDisplayTextElement.Text); // + @"}");
}
private void AddRtf(string str)
{
- SelectedRtf = @"{\rtf1{\fonttbl{\f0\fcharset2 " + this.Font.FontFamily.Name + @";}}\f0\fs" + this.Font.SizeInPoints * 2 + " " + str + @"}}";
+ SelectedText = str;
+// SelectedRtf = @"{\rtf1{\fonttbl{\f0\fcharset2 " + this.Font.FontFamily.Name + @";}}\f0\fs" + this.Font.SizeInPoints * 2 + @" " + str + @"}}";
}
private void AddSymbol(displayTextElement myDisplayTextElement)
{
- SelectedRtf = @"{\rtf1{\fonttbl{\f0\fcharset0 Arial Unicode MS;}}\f0\fs" + this.Font.SizeInPoints * 2 + " " + myDisplayTextElement.Text + @"}";
+ //_SelectedRtfSB.Append(@"\f1\fs" + this.Font.SizeInPoints * 2 + @" " + myDisplayTextElement.Text);
+ _SelectedRtfSB.Append(@"\f1 " + myDisplayTextElement.Text);
+ //SelectedRtf = @"{\rtf1{\fonttbl{\f0\fcharset0 Arial Unicode MS;}}\f0\fs" + this.Font.SizeInPoints * 2 + @" " + myDisplayTextElement.Text + @"}";
}
private void AddSymbol(string str)
{
//MessageBox.Show(SelectedRtf);
- SelectedRtf = @"{\rtf1{\fonttbl{\f0\fcharset0 Arial Unicode MS;}}\f0\fs" + this.Font.SizeInPoints * 2 + " " + /* ConvertUnicodeChar(str) */ str + @"}";
+ Font selfont = this.SelectionFont;
+ StringBuilder sbbeg = new StringBuilder();
+ StringBuilder sbend = new StringBuilder();
+ if (selfont.Bold)
+ {
+ sbbeg.Append(@"\b");
+ sbend.Append(@"\b0");
+ }
+ if (selfont.Underline)
+ {
+ sbbeg.Append(@"\ul");
+ sbend.Insert(0,@"\ulnone");
+ }
+ if (selfont.Italic)
+ {
+ sbbeg.Append(@"\i");
+ sbend.Insert(0, @"\i0");
+ }
+ if (sbend.Length > 0) sbbeg.Append(" ");
+
+ // sub/superscript???
+ SelectedRtf = @"{\rtf1{\fonttbl{\f0\fcharset0 Arial Unicode MS;}}\f0\fs" + this.Font.SizeInPoints * 2 + @" " + sbbeg.ToString() + str + sbend.ToString() + @"}";
}
+ private List _LinkLocations = null;
+ private void AddLinkLocation(string location, string url)
+ {
+ SelectedRtf = _SelectedRtfSB.ToString() + "}";
+ int linkPosition = this.TextLength;
+ this.Text = "";
+ if (_LinkLocations == null) _LinkLocations = new List();
+ _LinkLocations.Add(new LinkLocation(linkPosition, location.Length + url.Length));
+ }
+ private int _LinkPosition = -1;
+ private int _LinkLength;
private void AddRtfLink(displayLinkElement myDisplayLinkElement)
{
if (CreateParams.ClassName == "RICHEDIT50W")
AddLink50(myDisplayLinkElement.Text, myDisplayLinkElement.Link);
else
-
- AddLink20(myDisplayLinkElement.Text, myDisplayLinkElement.Link);
+ {
+ AddLinkLocation(myDisplayLinkElement.Text, myDisplayLinkElement.Link);
+ _SelectedRtfSB.Append(@"\f0\fs20 ");
+ _SelectedRtfSB.Append(myDisplayLinkElement.Text);
+ _SelectedRtfSB.Append(@"\v ");
+ _SelectedRtfSB.Append(myDisplayLinkElement.Link);
+ _SelectedRtfSB.Append(@"\v0 ");
+ //_SelectedRtfSB.Append(@"\sl-240\slmult0\f0\fs20 0POP05-EO-ES00, REDIAGNOSIS, COVER\v #Link:Transition:5 7 198\v0");
+ //AddLink20(myDisplayLinkElement.Text, myDisplayLinkElement.Link);
+ }
}
public void AddRtfLink(string linkUrl, string linkValue)
{
- if (CreateParams.ClassName == "RICHEDIT50W")
+ //if (CreateParams.ClassName == "RICHEDIT50W")
- AddLink50(linkUrl, linkValue);
- else
+ //AddLink50(linkUrl, linkValue);
+ //else
- AddLink20(linkUrl, linkValue);
+ //AddLink20(linkUrl, linkValue);
}
private void AddLink20(string linkValue, string linkUrl)
{
@@ -332,13 +456,15 @@ namespace Volian.Controls.Library
RTBAPI.CharFormatTwo charFormat = RTBAPI.GetCharFormat(this, RTBAPI.RTBSelection.SCF_SELECTION);
int position = SelectionStart; // before inserttran = this.TextLength;
SelectionLength = 0;
- SelectedRtf = @"{\rtf1\ansi " + linkValue + @"\v " + linkUrl + @"\v0}";
+ //SelectedRtf = @"{\rtf1\ansi " + linkValue + @"\v " + linkUrl + @"\v0}";
+ SelectedRtf = linkValue + @"\v " + linkUrl + @"\v0";
Select(position, linkValue.Length + linkUrl.Length);
// Protect the link text to avoid manual changes
charFormat.dwMask = RTBAPI.CharFormatMasks.CFM_LINK | RTBAPI.CharFormatMasks.CFM_PROTECTED;
charFormat.dwEffects = RTBAPI.CharFormatEffects.CFE_LINK | RTBAPI.CharFormatEffects.CFE_PROTECTED;
RTBAPI.SetCharFormat((RichTextBox)this, RTBAPI.RTBSelection.SCF_SELECTION, charFormat);
this.SelectionStart = this.TextLength;
+// \protect\fs20 0POP05-EO-ES00, REDIAGNOSIS, COVER\v #Link:Transition:5 7 198\protect0\v0
this.SelectionLength = 0;
}
private void AddLink50(string linkValue, string linkUrl)
@@ -355,7 +481,6 @@ namespace Volian.Controls.Library
if ((_origDisplayText.TextFont.Style & E_Style.Bold) > 0)
{
this.SelectAll();
-
RTBAPI.ToggleBold(true, this, RTBAPI.RTBSelection.SCF_SELECTION);
this.Select(0, 0);
}
@@ -662,8 +787,14 @@ namespace Volian.Controls.Library
if (e.KeyChar == '\b') return; // return on backspace otherwise, get a block char
if (e.KeyChar == '-')
AddSymbol(@"\u8209?");
+ else if (e.KeyChar == '{')
+ AddRtf("\\{");
+ else if (e.KeyChar == '}')
+ AddRtf("\\}");
+ else if (e.KeyChar == '[')
+ AddRtf(@"\b ");
else
- AddRtf(e.KeyChar.ToString());
+ return; // AddRtf(e.KeyChar.ToString());
e.Handled = true; // flag that it's been handled, otherwise, will get 2 chars.
}
IsControlChar = false;
@@ -801,4 +932,27 @@ namespace Volian.Controls.Library
}
#endregion
}
+ #region LinkLocation Class
+ internal class LinkLocation
+ {
+ private int _Position;
+ public int Position
+ {
+ get { return _Position; }
+ set { _Position = value; }
+ }
+ private int _Length;
+ public int Length
+ {
+ get { return _Length; }
+ set { _Length = value; }
+ }
+
+ public LinkLocation(int position, int length)
+ {
+ _Position = position;
+ _Length = length;
+ }
+ }
+ #endregion
}
diff --git a/PROMS/Volian.Controls.Library/StepTabRibbon.cs b/PROMS/Volian.Controls.Library/StepTabRibbon.cs
index b8be6185..65fdaaf9 100644
--- a/PROMS/Volian.Controls.Library/StepTabRibbon.cs
+++ b/PROMS/Volian.Controls.Library/StepTabRibbon.cs
@@ -11,6 +11,7 @@ namespace Volian.Controls.Library
{
public partial class StepTabRibbon : UserControl
{
+ #region Properties
private StepItem _MyStepItem;
public StepItem MyStepItem
{
@@ -24,6 +25,7 @@ namespace Volian.Controls.Library
}
}
}
+ private int _MyLastFormatID = -1;
private StepRTB _MyStepRTB;
public StepRTB MyStepRTB
{
@@ -33,14 +35,64 @@ namespace Volian.Controls.Library
_MyStepRTB = value;
if (value != null)
{
+ Console.WriteLine(string.Format("StepTabRibbon: In set of MyStepRTB, Selected Text = {0}", MyStepRTB.SelectedText));
_ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMRtfEdit);
- _MyStepRTB.SelectionChanged += new EventHandler(MyStepRTB_SelectionChanged);
+ //_MyStepRTB.SelectionChanged += new EventHandler(MyStepRTB_SelectionChanged);
+ _MyStepRTB.MouseUp += new MouseEventHandler(MyStepRTB_SelectionChanged);
_MyStepRTB.Leave += new EventHandler(MyStepRTB_Leave);
_MyStepRTB.LinkChanged += new StepRTBLinkEvent(_MyStepRTB_LinkChanged);
+ // Add symbols into the tab ribbon based on format selection. For now, only add symbols once
+ // because all symbols are same!!! If we start defining different symbols in different formats
+ // this will have to change, i.e. remove the second part of 'if' statement.
+ if (_MyStepRTB.MyStepItem.MyItemInfo.ActiveFormat.FormatID != _MyLastFormatID && _MyLastFormatID == -1)
+ {
+ // Add symbols to the tabribbon & also to the context menu getting info from the format file...
+ // Note that the ButtonItems must be used in order to place the buttons on a gallery (cannot
+ // use buttonx or dotnet/windows/button). However, you cannot change the font on ButtonItems so
+ // the ribbon MUST use the Arial Unicode MS Font for this to work!!!!
+ FormatInfo fmt = _MyStepRTB.MyStepItem.MyItemInfo.ActiveFormat;
+ SymbolList sl = fmt.PlantFormat.FormatData.SymbolList;
+ if (sl == null || sl.Count <= 0)
+ {
+ MessageBox.Show("No symbols are available, check with administrator");
+ return;
+ }
+ foreach (Symbol sym in sl)
+ {
+ DevComponents.DotNetBar.ButtonItem btn = new DevComponents.DotNetBar.ButtonItem();
+ btn.Text = string.Format("{0}", (char)sym.Unicode);
+ // to name button use unicode rather than desc, desc may have spaces or odd chars
+ btn.Name = "btn" + sym.Unicode.ToString();
+ btn.Tooltip = sym.Desc;
+ btn.Tag = string.Format(@"\u{0}", sym.Unicode);
+ btn.FontBold = true;
+ btn.Click += new System.EventHandler(btnSym_Click);
+ galleryContainerSymbols.SubItems.Add(btn);
+ DevComponents.DotNetBar.ButtonItem btnCM = new DevComponents.DotNetBar.ButtonItem();
+ btnCM.Text = string.Format("{0}", (char)sym.Unicode);
+ // to name button use unicode rather than desc, desc may have spaces or odd chars
+ btnCM.Name = "btnCM" + sym.Unicode.ToString();
+ btnCM.Tooltip = sym.Desc;
+ btnCM.Tag = string.Format(@"\u{0}", sym.Unicode);
+ btnCM.FontBold = true;
+ btnCM.Click += new System.EventHandler(btnSym_Click);
+ galleryContainerSymbolsCM.SubItems.Add(btnCM);
+ }
+ }
SetButtonAndMenuEnabling();
+ SetStepButtonAndMenuEnabling();
+ _MyLastFormatID = _MyStepRTB.MyStepItem.MyItemInfo.ActiveFormat.FormatID;
}
}
}
+ #endregion
+ #region Constructor
+ public StepTabRibbon()
+ {
+ InitializeComponent();
+ }
+ #endregion
+ #region Events
void _MyStepRTB_LinkChanged(object sender, StepPanelLinkEventArgs args)
{
// do all Transition and ReferencedObject menu items/buttons based on whether a 'link is selected' and the link type.
@@ -58,14 +110,58 @@ namespace Volian.Controls.Library
}
void MyStepRTB_Leave(object sender, EventArgs e)
{
- _MyStepRTB.SelectionChanged -= new EventHandler(MyStepRTB_SelectionChanged);
+ //_MyStepRTB.SelectionChanged -= new EventHandler(MyStepRTB_SelectionChanged);
+ _MyStepRTB.MouseUp -= new MouseEventHandler(MyStepRTB_SelectionChanged);
_MyStepRTB.Leave -= new EventHandler(MyStepRTB_Leave);
_MyStepRTB.LinkChanged -= new StepRTBLinkEvent(_MyStepRTB_LinkChanged);
}
void MyStepRTB_SelectionChanged(object sender, EventArgs e)
{
+ Console.WriteLine(string.Format("StepTabRibbon: In MyStepRTB_SelectionChanged, Selected Text = {0}",MyStepRTB.SelectedText));
SetButtonAndMenuEnabling();
}
+ void btnInsStep_Click(object sender, EventArgs e)
+ {
+ DevComponents.DotNetBar.ButtonItem b = (DevComponents.DotNetBar.ButtonItem)sender;
+ char [] sep = {' '};
+ string[] insdata = b.Tag.ToString().Split(sep);
+ if (insdata.Length != 2) return;
+ int fromtype = Convert.ToInt32(insdata[0]);
+ int contenttype = Convert.ToInt32(insdata[1]) + 20000;
+
+ // if from type == 0, we've inserted a hls, do a after from current HLS
+ // if not at HLS, go up parents until find it.
+ if (fromtype == 0)
+ {
+ StepItem hlsStepItem = _MyStepItem;
+
+ while (!hlsStepItem.MyItemInfo.IsHigh)
+ hlsStepItem = hlsStepItem.MyParentStepItem;
+ hlsStepItem.AddSiblingAfter(); // (contenttype);
+ }
+ else
+ {
+ _MyStepItem.AddChild((E_FromType)fromtype, contenttype);
+ }
+ }
+ private void btnInsBefore_Click(object sender, EventArgs e)
+ {
+ _MyStepItem.AddSiblingBefore();
+ }
+
+ private void btnInsAfter_Click(object sender, EventArgs e)
+ {
+ _MyStepItem.AddSiblingAfter();
+ }
+ ///
+ /// Using style for step type, enable/disable formatting buttons
+ ///
+ private void SetButtonForStyle()
+ {
+ btnBold.Enabled = !((_MyStepRTB.MyStyleFont.Style & E_Style.Bold) == E_Style.Bold || (_MyStepRTB.MyStyleFont.Style & E_Style.MmBold) == E_Style.MmBold);
+ btnUnderline.Enabled = !((_MyStepRTB.MyStyleFont.Style & E_Style.Underline) == E_Style.Underline);
+ btnItalics.Enabled = !((_MyStepRTB.MyStyleFont.Style & E_Style.Italics) == E_Style.Italics);
+ }
private void SetButtonAndMenuEnabling()
{
if (_MyStepRTB == null) return;
@@ -77,6 +173,9 @@ namespace Volian.Controls.Library
btnCMSubscript.Checked = btnSubscript.Checked = RTBAPI.IsSubScript(_MyStepRTB);
btnCMSuperscript.Checked = btnSuperscript.Checked = RTBAPI.IsSuperScript(_MyStepRTB);
}
+ //if (_MyStepItem.MyItemInfo.MyContent.Type == 20006 || _MyStepItem.MyItemInfo.MyContent.Type == 20007)
+ // Console.WriteLine("debug");
+ //SetButtonForStyle();
btnCMCut.Enabled = btnCMCopy.Enabled = btnCut.Enabled = btnCopy.Enabled = _MyStepRTB.SelectionLength > 0;
btnCMUndo.Enabled = btnUndo.Enabled = _MyStepRTB.CanUndo;
btnCMRedo.Enabled = btnRedo.Enabled = _MyStepRTB.CanRedo;
@@ -98,48 +197,138 @@ namespace Volian.Controls.Library
btnCMEditRO.Enabled = false;
}
}
- public StepTabRibbon()
+ private void SetStepButtonAndMenuEnabling()
{
- InitializeComponent();
-
- // Add symbols to the tabribbon & also to the context menu getting info from the format file...
- // Note that the ButtonItems must be used in order to place the buttons on a gallery (cannot
- // use buttonx or dotnet/windows/button). However, you cannot change the font on ButtonItems so
- // the ribbon MUST use the Arial Unicode MS Font for this to work!!!!
- Format fmt = VEPROMS.CSLA.Library.Format.Get(1); //base for now - TO DO KBR:
- SymbolList sl = fmt.PlantFormat.FormatData.SymbolList;
- if (sl == null || sl.Count <= 0)
+ // see if manual page break - only available on HLS
+ if (_MyStepItem.MyItemInfo.IsHigh)
{
- MessageBox.Show("No symbols are available, check with administrator");
+ StepConfig cfg = _MyStepItem.MyItemInfo.MyConfig as StepConfig;
+ btnInsPgBrk.Checked = cfg == null ? false : cfg.Step_ManualPagebreak;
+ }
+ btnInsPgBrk.Enabled = _MyStepItem.MyItemInfo.IsHigh;
+
+ // if on procedure or section 'change type' & 'insert' buttons should be disabled.
+ if (_MyStepItem.MyItemInfo.IsProcedure || _MyStepItem.MyItemInfo.IsSection)
+ {
+ btnChgTyp.Enabled = false;
+ btnInsHLS.Enabled = btnInsCaut.Enabled = btnInsNote.Enabled = btnInsRNO.Enabled = btnInsFig.Enabled =
+ btnInsTable.Enabled = btnInsSubstep.Enabled = btnInsBefore.Enabled = btnInsAfter.Enabled = false;
return;
}
- foreach (Symbol sym in sl)
+
+ btnChgTyp.Enabled = true;
+
+ // set up insert buttons based on format
+ E_AccStep? actable = 0;
+ StepData sd = _MyStepItem.MyItemInfo.FormatStepData;
+ actable = sd.StepEditData.AcTable;
+ if (actable == null) actable = 0;
+ btnInsHLS.Enabled = true;
+ btnInsCaut.Enabled = (actable & E_AccStep.AddingCaution)>0;
+ btnInsNote.Enabled = (actable & E_AccStep.AddingNote) > 0;
+ btnInsRNO.Enabled = (actable & E_AccStep.AddingRNO) > 0;
+ btnInsFig.Enabled = (actable & E_AccStep.AddingTable) > 0;
+ btnInsTable.Enabled = (actable & E_AccStep.AddingTable) > 0;
+ btnInsSubstep.Enabled = (actable & E_AccStep.AddingSub) > 0;
+ btnInsBefore.Enabled = (actable & E_AccStep.AddingPrev) > 0;
+ btnInsAfter.Enabled = (actable & E_AccStep.AddingNext) > 0;
+
+ btnInsHLS.SubItems.Clear();
+ btnInsCaut.SubItems.Clear();
+ btnInsNote.SubItems.Clear();
+ btnInsRNO.SubItems.Clear();
+ btnInsFig.SubItems.Clear();
+ btnInsTable.SubItems.Clear();
+ btnInsSubstep.SubItems.Clear();
+
+ // if (rno is enabled, set the tag:
+ if (btnInsRNO.Enabled)
+ btnInsRNO.Tag = string.Format("{0} {1}", (int)E_FromTypes.RNOs, MyStepItem.MyItemInfo.ActiveFormat.PlantFormat.FormatData.GetIndexFromType("RNOType"));
+
+ // add subitems depending on whether parent type is enabled:
+ if (btnInsHLS.Enabled) GalleryForSubTypes(_MyStepItem.MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList.HLS, sd, btnInsHLS, 0);
+ if (btnInsCaut.Enabled) GalleryForSubTypes(_MyStepItem.MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList.Caution, sd, btnInsCaut, (int)E_FromType.Caution);
+ if (btnInsNote.Enabled) GalleryForSubTypes(_MyStepItem.MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList.Note, sd, btnInsNote, (int)E_FromType.Note);
+ if (btnInsFig.Enabled) GalleryForSubTypes(_MyStepItem.MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList.Fig, sd, btnInsFig, (int)E_FromType.Table);
+ if (btnInsTable.Enabled) GalleryForSubTypes(_MyStepItem.MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList.Table, sd, btnInsTable, (int)E_FromType.Table);
+ if (btnInsSubstep.Enabled) GalleryForSubTypes(_MyStepItem.MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList.Substep, sd, btnInsSubstep, (int)E_FromType.Step);
+ }
+ ///
+ /// set up a gallery of step types whose parent are defined by input StepData. Can be below
+ /// more than one level, for example. Substep, EquipmentList, EquipmentWBlank - both equipment
+ /// lists would be put in gallery
+ ///
+ /// StepData: find subtypes related to this
+ /// StepData: this should be selected button
+ /// DevComponents.DotNetBar.ButtonItem: if items in the gallery, add gallery to this button
+ private void GalleryForSubTypes(StepData sdc, StepData selType, DevComponents.DotNetBar.ButtonItem btn, int fromtype)
+ {
+ int cursel = -1;
+ // The first argument (boolean) in StepGetLevelTypes provides the option to get a complete list of step types
+ // regardless of whether in the AER or RNO column (set to true). For all types, get both except for figures
+ // and tables.
+ bool getall = !(btn.Name == "btnInsFig" || (btn.Name == "btnInsTable"));
+ List sdl = _MyStepItem.MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepGetLevelTypes(getall, sdc, ref cursel, selType.Type, _MyStepItem.MyItemInfo);
+ if (sdl != null && sdl.Count > 0)
{
- DevComponents.DotNetBar.ButtonItem btn = new DevComponents.DotNetBar.ButtonItem();
- btn.Text = string.Format("{0}", (char)sym.Unicode);
- // to name button use unicode rather than desc, desc may have spaces or odd chars
- btn.Name = "btn" + sym.Unicode.ToString();
- btn.Tooltip = sym.Desc;
- btn.Tag = string.Format(@"\u{0}", sym.Unicode);
- btn.FontBold = true;
- btn.Click += new System.EventHandler(btnSym_Click);
- galleryContainerSymbols.SubItems.Add(btn);
- DevComponents.DotNetBar.ButtonItem btnCM = new DevComponents.DotNetBar.ButtonItem();
- btnCM.Text = string.Format("{0}", (char)sym.Unicode);
- // to name button use unicode rather than desc, desc may have spaces or odd chars
- btnCM.Name = "btnCM" + sym.Unicode.ToString();
- btnCM.Tooltip = sym.Desc;
- btnCM.Tag = string.Format(@"\u{0}", sym.Unicode);
- btnCM.FontBold = true;
- btnCM.Click += new System.EventHandler(btnSym_Click);
- galleryContainerSymbolsCM.SubItems.Add(btnCM);
+ foreach (StepDataRetval sdr in sdl)
+ {
+ bool addit = true;
+ StepData sd = _MyStepItem.MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList[sdr.Index];
+ int hlsSubType = -1; // if on hls, use this to set default on substep menu to first child
+ if (_MyStepItem.MyItemInfo.IsHigh && _MyStepItem.MyItemInfo.Steps != null)
+ {
+ hlsSubType = (int)_MyStepItem.MyItemInfo.Steps[0].MyContent.Type - 20000;
+ }
+ // unfortunately, there are some special cases to be handled.
+ // if high level step, don't put the rno button on
+ // if caution don't add note button (the StepGetLevelTypes method returns cautions/notes together
+ if (btn.Name == "btnInsHLS" && sd.Type == "RNOType") addit = false;
+ if (btn.Name == "btnInsCaut" && sd.Type.Length>=4 && sd.Type.Substring(0, 4) == "Note") addit = false;
+ if (btn.Name == "btnInsNote" && sd.Type.Length>=7 && sd.Type.Substring(0, 7) == "Caution") addit = false;
+ if (addit)
+ {
+ DevComponents.DotNetBar.ButtonItem bi = new DevComponents.DotNetBar.ButtonItem("btn" + sd.Type, sd.Type);
+ bi.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.TextOnlyAlways;
+ bi.Text = sdr.Name;
+ bi.Tag = string.Format("{0} {1}", fromtype, sdr.Index); // index of type to insert it when button is clicked
+ bi.Checked = (sd.Type == selType.Type);
+ if (_MyStepItem.MyItemInfo.IsHigh && hlsSubType != -1 && sdr.Index == hlsSubType) bi.Checked = true;
+ bi.Click += new System.EventHandler(btnInsStep_Click);
+ btn.SubItems.Add(bi);
+ }
+ }
+ // if only 1, be sure event exists on button to insert item & if more than 1 remove event because
+ // we want the drop down to appear.
+ btn.Click -= new System.EventHandler(btnInsStep_Click);
+ if (btn.SubItems.Count == 1)
+ {
+ btn.SubItems.Clear();
+ btn.Tag = string.Format("{0} {1}", fromtype, sdc.Index);
+ btn.Click += new System.EventHandler(btnInsStep_Click);
+ }
+ //else
+ // btn.Click -= new System.EventHandler(btnInsStep_Click);
}
}
+ #endregion
+ #region Insert Tab
private void btnSym_Click(object sender, EventArgs e)
{
DevComponents.DotNetBar.ButtonItem b = (DevComponents.DotNetBar.ButtonItem)sender;
_MyStepRTB.InsertSymbol((string)b.Tag);
}
+ private void btnInsPgBrk_Click(object sender, EventArgs e)
+ {
+ if (_MyStepItem.MyItemInfo.IsProcedure || _MyStepItem.MyItemInfo.IsSection) return;
+
+ // toggle manual page break
+ StepConfig cfg = _MyStepItem.MyItemInfo.MyConfig as StepConfig;
+ cfg.Step_ManualPagebreak = !cfg.Step_ManualPagebreak;
+ btnInsPgBrk.Checked = cfg.Step_ManualPagebreak;
+ }
+#endregion
+ #region Home Tab
private void btnPaste_Click(object sender, EventArgs e)
{
IDataObject myDO = Clipboard.GetDataObject();
@@ -243,15 +432,15 @@ namespace Volian.Controls.Library
}
else
{
- // bring up ro editor - for now just do a messagebox.
- MessageBox.Show("Bring up ro editor");
+ _MyStepItem.MyStepPanel.OnLinkClicked(sender, new StepPanelLinkEventArgs(_MyStepItem, _MyStepRTB.MyLinkText));
+ // for now bring up ro window. Later bring up ro editor!
}
}
-
- private void rpanInsert_Click(object sender, EventArgs e)
+ private void btnChgTyp_Click(object sender, EventArgs e)
{
-
}
+ #endregion
+ #region RHM debug
#if DEBUG
// The following code generates an XML output for the selected item for print testing.
private void btnPageBreak_Click(object sender, EventArgs e)
@@ -291,5 +480,6 @@ namespace Volian.Controls.Library
OutputAllChildren(itm);
}
#endif
+ #endregion
}
}
diff --git a/PROMS/Volian.Controls.Library/StepTabRibbon.designer.cs b/PROMS/Volian.Controls.Library/StepTabRibbon.designer.cs
index 821fa86c..0a76f51b 100644
Binary files a/PROMS/Volian.Controls.Library/StepTabRibbon.designer.cs and b/PROMS/Volian.Controls.Library/StepTabRibbon.designer.cs differ
diff --git a/PROMS/Volian.Controls.Library/StepTabRibbon.resx b/PROMS/Volian.Controls.Library/StepTabRibbon.resx
index 363cbf17..e9190492 100644
--- a/PROMS/Volian.Controls.Library/StepTabRibbon.resx
+++ b/PROMS/Volian.Controls.Library/StepTabRibbon.resx
@@ -128,6 +128,15 @@
t0ekztKvaA7ibixOyvoLADqYiGMXHIUWy7uQa+cSuZGUDb7FswWYwclx9oES/hqzGAmV1UTdSPiQ8Uqw
DCdiNtgFHwAtVpjbIvESaA4ZqUrP2xELFPEBUMwlqmH7iDiNNQAph2DskIMaIF16YfCVIoZOmtyveQF9
2CVVWYKhQwAAAABJRU5ErkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA
+ EnEB89x6jgAAAIBJREFUOE/FU9ESgCAIy///aAMU0DDYSxecV6KOObB1squRs3VyNY1Z4OWHATYTFHI1
+ gp0RXdm+vlGoLC5zPowCHDeiAGkmhMHnAEFpDwwRjcFKV++/6xyLVgEk2UfhnuVTNsVBa5Njk8xV6c1k
+ hNwGBmaHAP5n4G8q6gFdoZLjBpE7j5KJdaRlAAAAAElFTkSuQmCC
@@ -178,15 +187,6 @@
EnEB89x6jgAAAIBJREFUOE/FU9ESgCAIy///aAMU0DDYSxecV6KOObB1squRs3VyNY1Z4OWHATYTFHI1
gp0RXdm+vlGoLC5zPowCHDeiAGkmhMHnAEFpDwwRjcFKV++/6xyLVgEk2UfhnuVTNsVBa5Njk8xV6c1k
hNwGBmaHAP5n4G8q6gFdoZLjBpE7j5KJdaRlAAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA
- EnEB89x6jgAAAIBJREFUOE/FU9ESgCAIy///aAMU0DDYSxecV6KOObB1squRs3VyNY1Z4OWHATYTFHI1
- gp0RXdm+vlGoLC5zPowCHDeiAGkmhMHnAEFpDwwRjcFKV++/6xyLVgEk2UfhnuVTNsVBa5Njk8xV6c1k
- hNwGBmaHAP5n4G8q6gFdoZLjBpE7j5KJdaRlAAAAAElFTkSuQmCC