AtspiUiaSource.TextRangePattern.LineParagraphNormalize C# (CSharp) Метод

LineParagraphNormalize() приватный Метод

private LineParagraphNormalize ( bool is_line ) : void
is_line bool
Результат void
		private void LineParagraphNormalize (bool is_line)
		{
			if (!accessible.StateSet.Contains (StateType.MultiLine)) {
				startOffset = 0;
				endOffset = text.CharacterCount;
				return;
			}

			int n_chars = 0;
			string txt = text.GetText ();

			// First, fix up the start point
			int new_start = 0;
			for (int i = startOffset; i >= 0; i--) {
				if (BackwardPeekNewline (i, txt, out n_chars)) {
					new_start = i + 1;
					break;
				}
			}

			StartOffset = new_start;

			// if our range ends with a newline, don't do anything [Case 3]
			if (endOffset - 1 >= 0
			    && BackwardPeekNewline (endOffset - 1, txt, out n_chars)) {
				return;
			}

			int new_end = -1;
			if (is_line) {
				// walk backward until you hit a newline, or the startOffset
				for (int i = endOffset; i > startOffset; i--) {
					if (BackwardPeekNewline (i, txt, out n_chars)) {
						new_end = i + 1;
						break;
					}
				}
			} else {
				new_end = txt.Length;

				// walk forward until you hit a newline, or the end
				for (int i = endOffset; i < txt.Length; i++) {
					if (ForwardPeekNewline (i, txt, out n_chars)) {
						new_end = i + n_chars;
						break;
					}
				}

				EndOffset = new_end;
				return;
			}

			// if we found a newline, move on
			if (new_end >= 0) {
				EndOffset = new_end;
				return;
			}

			// we hit the start, so look forward for a newline
			new_end = txt.Length;
			for (int i = endOffset; i < txt.Length; i++) {
				if (ForwardPeekNewline (i, txt, out n_chars)) {
					new_end = i + n_chars;
					break;
				}
			}

			EndOffset = new_end;
		}