public string GetOutputText(bool includeSelectionOnly) { if (this.Elements.Count == 0) { return(""); } string txt = ""; if (includeSelectionOnly == false || this.Elements.Count == 0) { txt = this.Text; } else { System.Text.StringBuilder myStr = new System.Text.StringBuilder(); DomDocumentContentElement dce = this.Elements[0].DocumentContentElement; foreach (DomCharElement c in this.Elements) { if (dce.IsSelected(c)) { myStr.Append(c.CharValue); } } //foreach txt = myStr.ToString(); } return(txt); }
/// <summary> /// 获得输入焦点 /// </summary> public override void Focus() { DomElement firstElement = this.FirstContentElement; if (firstElement != null) { DomDocumentContentElement dce = this.DocumentContentElement; dce.SetSelection(firstElement.ViewIndex, 0); } }
public void Refresh(DomDocumentContentElement element, DomElement startElement, DomElement endElement) { _Document = element.OwnerDocument; _Elements = element.Content; _StartElement = startElement; _EndElement = endElement; _StateInvalidate = true; _ContentVersion++; if (_Document != null) { // 清空用户指定的样式 //_Document._UserSpecifyStyle = null; } }
public void Refresh(DomDocumentContentElement element, int startIndex, int length) { _Document = element.OwnerDocument; _Elements = element.Content; _StartIndex = startIndex; _Length = length; _StateInvalidate = true; _ContentVersion++; if (_Document != null) { // 清空用户指定的样式 //_Document._UserSpecifyStyle = null; } }
///// <summary> ///// 设置容器元素的可见性 ///// </summary> ///// <param name="visible">新的可见性</param> ///// <returns>操作是否成功</returns> //public bool EditorSetVisible(bool visible) //{ // bool result = false; // bool oldVisible = this.Visible; // if( oldVisible != visible ) // { // this.Visible = visible; // bool visible2 = this.Visible; // if (visible2 == visible) // { // // 成功的修改了元素的可见性 // if (visible) // { // this.OwnerDocument.HighlightManager.InvalidateHighlightInfo(this); // } // else // { // this.OwnerDocument.HighlightManager.Remove(this); // } // result = true; // XTextElement fc = this.FirstContentElement; // XTextElement lc = this.LastContentElement; // XTextContentElement content = this.ContentElement; // int startIndex = 0; // if (oldVisible) // { // startIndex = content.PrivateContent.IndexOf(fc); // } // this.UpdateContentVersion(); // content.UpdateContentElements(true); // if (oldVisible == false) // { // startIndex = content.PrivateContent.IndexOf(fc); // } // content.RefreshPrivateContent(startIndex, -1, false); // } // } // return result; //} /// <summary> /// 声明容器元素内容无效,需要重新排版 /// </summary> public void EditorInvalidateContent() { DomContentElement ce = this.ContentElement; DomElement currentElementBack = this.DocumentContentElement.CurrentElement; //XTextElementList contentElements = new XTextElementList(); //this.AppendContent(contentElements , true ); DomElement firstElement = ce.PrivateContent.GetPreElement(this.FirstContentElement); if (firstElement == null) { firstElement = this.FirstContentElement; } DomElement lastElement = ce.PrivateContent.GetNextElement(this.LastContentElement); if (lastElement == null) { lastElement = ce.PrivateContent.LastElement; } // 声明所经过的文本行无效 int endIndex = ce.PrivateContent.IndexOf(lastElement); for (int iCount = ce.PrivateContent.IndexOf(firstElement); iCount <= endIndex; iCount++) { if (ce.PrivateContent[iCount].OwnerLine != null) { ce.PrivateContent[iCount].OwnerLine.InvalidateState = true; } } this.UpdateContentVersion(); ce.UpdateContentElements(true); ce.RefreshPrivateContent( ce.PrivateContent.IndexOf(firstElement), ce.PrivateContent.IndexOf(lastElement), false); // 确认新的插入点的位置 DomDocumentContentElement dce = this.DocumentContentElement; dce.RefreshGlobalLines(); if (currentElementBack != null) { dce.Content.AutoClearSelection = true; dce.Content.LineEndFlag = false; int newSelectionPosition = currentElementBack.ViewIndex; dce.Content.MoveSelectStart(newSelectionPosition); } }
private bool DragBounds(DragPointStyle hit) { MouseCapturer cap = new MouseCapturer(this.OwnerDocument.EditorControl); cap.Tag = hit; cap.ReversibleShape = ReversibleShapeStyle.Custom; cap.Draw += new CaptureMouseMoveEventHandler(cap_Draw); DomDocumentContentElement ce = this.DocumentContentElement; if (cap.CaptureMouseMove()) { if (LastDragBounds.Width > 0 && LastDragBounds.Height > 0) { if (LastDragBounds.Width != this.Width || LastDragBounds.Height != this.Height) { System.Drawing.SizeF OldSize = new System.Drawing.SizeF( this.Width, this.Height); this.InvalidateView(); this.EditorSize = new SizeF(LastDragBounds.Width, LastDragBounds.Height); this.InvalidateView(); ce.SetSelection(this.ViewIndex, 1); if (this.OwnerDocument.BeginLogUndo()) { this.OwnerDocument.UndoList.AddProperty( XTextUndoStyles.EditorSize, OldSize, new System.Drawing.SizeF(this.Width, this.Height), this); this.OwnerDocument.EndLogUndo(); } this.ContentElement.RefreshPrivateContent( this.ContentElement.PrivateContent.IndexOf(this)); //ce.RefreshPrivateContent(ce.Content.IndexOf(this)); this.OwnerDocument.Modified = true; return(true); } } } return(false); }
internal void ClearContent() { this.Elements.Clear(); DomDocumentContentElement ce = this.Body; ce.AppendChildElement(this.OwnerDocument.CreateParagraphEOF()); ce.UpdateContentElements(true); ce.SetSelection(0, 0); ce = this.Header; ce.FixElements(); DocumentContentStyle style = new DocumentContentStyle(); ce.UpdateContentElements(true); ce.SetSelection(0, 0); ce = this.Footer; ce.FixElements(); ce.UpdateContentElements(true); ce.SetSelection(0, 0); }
public DomRange(DomDocumentContentElement element, DomElement startElement, DomElement endElement) { Refresh(element, startElement, endElement); }
public DomRange(DomDocumentContentElement element, int startIndex, int length) { Refresh(element, startIndex, length); }
/// <summary> /// 设置容器元素的可见性 /// </summary> /// <param name="visible">新的可见性</param> /// <param name="fastMode">是否启用快速模式,当使用快速模式时, /// 只更新DOM结构,不更新用户界面视图</param> /// <returns>操作是否成功</returns> public virtual bool EditorSetVisible(bool visible, bool fastMode) { bool result = false; bool oldVisible = this.Visible; if (oldVisible != visible) { this.Visible = visible; bool visible2 = this.Visible; if (visible2 == visible) { this.InvalidateView(); // 成功的修改了元素的可见性 if (visible) { this.OwnerDocument.HighlightManager.InvalidateHighlightInfo(this); } else { this.OwnerDocument.HighlightManager.Remove(this); } result = true; DomElement fc = this.FirstContentElement; DomElement lc = this.LastContentElement; DomContentElement content = this.ContentElement; int startIndex = 0; DomElement preElement = content.PrivateContent.GetPreElement(fc); if (oldVisible) { startIndex = content.PrivateContent.IndexOf(fc); } this.UpdateContentVersion(); DomDocumentContentElement dce = this.DocumentContentElement; DomElement currentElementBack = dce.CurrentElement; content.UpdateContentElements(true); if (oldVisible == false) { startIndex = content.PrivateContent.IndexOf(fc); } else { if (preElement != null && content.PrivateContent.Contains(preElement)) { startIndex = content.PrivateContent.IndexOf(preElement); } } content.RefreshPrivateContent(startIndex, -1, fastMode); if (fastMode == false) { if (currentElementBack != null) { int index = dce.Content.IndexOf(currentElementBack); if (index >= 0) { } } } } } return(result); }
/// <summary> /// 初始化对象 /// </summary> public DomSelection(DomDocumentContentElement dce) { _DocumentContent = dce; }