This commit is contained in:
		@@ -139,6 +139,22 @@ namespace Volian.Controls.Library
 | 
				
			|||||||
			TextFont = vFont;
 | 
								TextFont = vFont;
 | 
				
			||||||
			StartText = CreateRtf(colorLinks, text, false, false, false, false, false);
 | 
								StartText = CreateRtf(colorLinks, text, false, false, false, false, false);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							public DisplayText(ItemInfo itemInfo, string text, bool colorLinks)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								_FieldToEdit = E_FieldToEdit.Text;
 | 
				
			||||||
 | 
								_MyItemInfo = itemInfo;
 | 
				
			||||||
 | 
								OriginalText = text;
 | 
				
			||||||
 | 
								TextFont = itemInfo.GetItemFont();
 | 
				
			||||||
 | 
								_MyFormat = itemInfo.ActiveFormat;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								bool wordsShouldBeReplaced = true;
 | 
				
			||||||
 | 
								bool numbersShouldBeFormated = !_MyFormat.PlantFormat.FormatData.SectData.StepSectionData.FortranFormatNumbers;
 | 
				
			||||||
 | 
								int typ = ((int)itemInfo.MyContent.Type) % 10000;
 | 
				
			||||||
 | 
								bool ROsShouldBeAdjusted = wordsShouldBeReplaced; // same logical value
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								text = CreateRtf(colorLinks, text, false, wordsShouldBeReplaced, numbersShouldBeFormated, false, ROsShouldBeAdjusted);
 | 
				
			||||||
 | 
								StartText = text;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		private string CreateRtf(bool colorLinks, string text, bool tableShouldBeOutlined, bool wordsShouldBeReplaced, bool numbersShouldBeFormated, bool tableHasBorder, bool ROsShouldBeAdjusted)
 | 
							private string CreateRtf(bool colorLinks, string text, bool tableShouldBeOutlined, bool wordsShouldBeReplaced, bool numbersShouldBeFormated, bool tableHasBorder, bool ROsShouldBeAdjusted)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			// Adjust RO display
 | 
								// Adjust RO display
 | 
				
			||||||
@@ -170,33 +186,37 @@ namespace Volian.Controls.Library
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			// as a precaution, convert any \~ to \u160?. This is for Hard spaces. see the commentary in the
 | 
								// as a precaution, convert any \~ to \u160?. This is for Hard spaces. see the commentary in the
 | 
				
			||||||
			// save portion of this code for an explanation.
 | 
								// save portion of this code for an explanation.
 | 
				
			||||||
			text = text.Replace(@"\~", @"\u160?");
 | 
								if (!text.StartsWith(@"{\rtf"))
 | 
				
			||||||
			text = text.Replace("\r\n", @"\par ");
 | 
					 | 
				
			||||||
			//if (text.IndexOf(@"\line") > -1)
 | 
					 | 
				
			||||||
			//    MessageBox.Show("Found rtf line");
 | 
					 | 
				
			||||||
			text = text.Replace(@"\line", @"\par");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			// Now put symbol (for fixed fonts) or unicode font (proportional) around symbols
 | 
					 | 
				
			||||||
			// These fonts are VESymbFix & Arial Unicode MS respectively, and the font table
 | 
					 | 
				
			||||||
			// is actually defined in the StepRTB code.
 | 
					 | 
				
			||||||
			int indxsym = NextUnicode(text,0);//text.IndexOf(@"\u");
 | 
					 | 
				
			||||||
			while (indxsym != -1)
 | 
					 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				int incrindx = 3;
 | 
									text = text.Replace(@"\~", @"\u160?");
 | 
				
			||||||
				if (text[indxsym + 2] != 'l')
 | 
									text = text.Replace("\r\n", @"\par ");
 | 
				
			||||||
 | 
									//if (text.IndexOf(@"\line") > -1)
 | 
				
			||||||
 | 
									//    MessageBox.Show("Found rtf line");
 | 
				
			||||||
 | 
									text = text.Replace(@"\line", @"\par");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									// Now put symbol (for fixed fonts) or unicode font (proportional) around symbols
 | 
				
			||||||
 | 
									// These fonts are VESymbFix & Arial Unicode MS respectively, and the font table
 | 
				
			||||||
 | 
									// is actually defined in the StepRTB code.
 | 
				
			||||||
 | 
									int indxsym = NextUnicode(text, 0);//text.IndexOf(@"\u");
 | 
				
			||||||
 | 
									while (indxsym != -1)
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					text = text.Insert(indxsym, @"\f1 ");
 | 
										int incrindx = 3;
 | 
				
			||||||
					int indxendsym = text.IndexOfAny(@"\ ?".ToCharArray(), indxsym + 5);
 | 
										if (text[indxsym + 2] != 'l')
 | 
				
			||||||
					if (indxendsym == -1)  // must be end of line:
 | 
					 | 
				
			||||||
						text = text.Insert(text.Length - 1, @"\f0 ");
 | 
					 | 
				
			||||||
					else
 | 
					 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						if (text[indxendsym] == '?') indxendsym++;
 | 
											text = text.Insert(indxsym, @"\f1 ");
 | 
				
			||||||
						text = text.Insert(indxendsym, @"\f0 ");   // TODO: do I need a space??
 | 
											int indxendsym = text.IndexOfAny(@"\ ?".ToCharArray(), indxsym + 5);
 | 
				
			||||||
 | 
											if (indxendsym == -1)  // must be end of line:
 | 
				
			||||||
 | 
												text = text.Insert(text.Length - 1, @"\f0 ");
 | 
				
			||||||
 | 
											else
 | 
				
			||||||
 | 
											{
 | 
				
			||||||
 | 
												if (text[indxendsym] == '?') indxendsym++;
 | 
				
			||||||
 | 
												text = text.Insert(indxendsym, @"\f0 ");   // TODO: do I need a space??
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
											incrindx = 5;
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
					incrindx = 5;
 | 
										indxsym = NextUnicode(text, indxsym + incrindx);//text.IndexOf(@"\u", indxsym + incrindx);
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				indxsym = NextUnicode(text, indxsym + incrindx);//text.IndexOf(@"\u", indxsym + incrindx);
 | 
					 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			return text;
 | 
								return text;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user