public bool Equals(SelectionInfo SelectionInfo) { if (this.selected_ != SelectionInfo.selected_) { return false; } if (this.selectedMark_ != SelectionInfo.selectedMark_) { return false; } if (this.hasMulti != SelectionInfo.hasMulti) { return false; } if (this.hasMulti) { if (this.multi_ != SelectionInfo.multi_) { return false; } if (this.multiMark_ != SelectionInfo.multiMark_) { return false; } } return true; }
public bool Equals(SelectionInfo SelectionInfo) { if (this.selected_ != SelectionInfo.selected_) { return(false); } if (this.selectedMark_ != SelectionInfo.selectedMark_) { return(false); } if (this.hasMulti != SelectionInfo.hasMulti) { return(false); } if (this.hasMulti) { if (this.multi_ != SelectionInfo.multi_) { return(false); } if (this.multiMark_ != SelectionInfo.multiMark_) { return(false); } } return(true); }
protected override void OnPaint (PaintEventArgs e) { Node selectedNode = null; Node multiSelectNode = null; int selectedNodeMark = 0; int multiSelectMark = 0; bool multiSelect = false; try { if (isInitialized_) { try { if ((builder_ != null) && (builder_.GetCurrentlySelectedNode () != null)) { DetermineIsPaletted(e.Graphics); builder_.SetupPainting(e.Graphics, isAntiAlias, isPaletted); builder_.getRoot(); builder_.MeasureAll(); selectedNode = builder_.GetCurrentlySelectedNode(); try { multiSelectNode = builder_.MultiSelectNode(); selectedNodeMark = selectedNode.InternalMark; multiSelectMark = builder_.CurrentCaret(); multiSelect = builder_.HasSelection; } catch { } builder_.SetOrigin(lMargin - OffsetX, tMargin - OffsetY); Rectangle updateRect = new Rectangle((e.ClipRectangle.X - lMargin) + OffsetX, (e.ClipRectangle.Y - tMargin) + OffsetY, e.ClipRectangle.Width, e.ClipRectangle.Height); if ((((builder_.RootWidth + lMargin) + rMargin) != canvasWidth) || (((builder_.RootHeight + tMargin) + bMargin) != canvasHeight) ) { if (((builder_.RootWidth + lMargin) + rMargin) != canvasWidth) { canvasWidth = (builder_.RootWidth + lMargin) + rMargin; } if (((builder_.RootHeight + tMargin) + bMargin) != canvasHeight) { canvasHeight = (builder_.RootHeight + tMargin) + bMargin; } ResizeScrollbars(); } builder_.FillBackground(updateRect); if (builder_.HasSelection && Focused) { try { DrawHighlightSelection(builder_.CaptureSelection(), e); } catch { } } builder_.FillForeground(updateRect); if (selectedNode.IsAppend) { markX = (selectedNode.box.X + selectedNode.box.Width) + lMargin; try { if (selectedNode.type_.type == ElementType.Ms) { markX = (selectedNode.box.X + selectedNode.LiteralStart) + lMargin; } } catch { } } else { markX = (selectedNode.box.X + selectedNode.LiteralStart) + lMargin; } markY = selectedNode.box.Y + tMargin; caretHeight = selectedNode.box.Height; if (Focused) { if ((selectedNode.type_ != null)) { bbox.Left = (selectedNode.box.X + lMargin) - OffsetX; bbox.Top = ((selectedNode.box.Y + tMargin) - OffsetY) + selectedNode.box.Height; bbox.Right = selectedNode.box.Width; bbox.Bottom = 1; e.Graphics.DrawLine(caretBluePen, bbox.Left, bbox.Top, bbox.Left + bbox.Right, bbox.Top); } else { bbox.Left = 0; bbox.Top = 0; bbox.Right = 0; bbox.Bottom = 0; } } if (Focused && showCaret) { if ((selectedNode.type_ != null)) { e.Graphics.DrawLine(caretBluePen, markX - OffsetX, markY - OffsetY, markX - OffsetX, (markY - OffsetY) + caretHeight); } else { e.Graphics.DrawLine(caretBlackPen, markX - OffsetX, markY - OffsetY, markX - OffsetX, (markY - OffsetY) + caretHeight); } } } else { ResizeScrollbars (); } } catch (Exception) { ReRender (); } } } catch { } try { if (selectionInfo == null) { selectionInfo = new SelectionInfo (selectedNode, selectedNodeMark, multiSelectNode, multiSelectMark, multiSelect); } else { SelectionInfo info = new SelectionInfo (selectedNode, selectedNodeMark, multiSelectNode, multiSelectMark, multiSelect); if (!selectionInfo.Equals (info)) { try { Event_OnSelectionChanged (this, new SelectionArgs (builder_.HasSelection)); } catch { } } selectionInfo = info; } } catch { } base.OnPaint (e); }