private void InitAnnotations() { _annAutomationManager = new AnnAutomationManager(); // Disable the rotation _annAutomationManager.RotateModifierKey = AnnKeys.None; _annAutomationManager.EditObjectAfterDraw = false; _annAutomationManager.CreateDefaultObjects(); _annAutomation = new AnnAutomation(_annAutomationManager, _rasterImageViewer); _annAutomation.AfterObjectChanged += new EventHandler <AnnAfterObjectChangedEventArgs>(_annAutomation_AfterObjectChanged); _annAutomation.Container.ObjectAdded += new EventHandler <AnnObjectCollectionEventArgs>(_annAutomationObjects_ItemAdded); _annAutomation.Container.ObjectRemoved += new EventHandler <AnnObjectCollectionEventArgs>(_annAutomationObjects_ItemRemoved); _annAutomation.OnShowContextMenu += new EventHandler <AnnAutomationEventArgs>(_annAutomation_OnShowContextMenu); _annAutomation.Draw += new EventHandler <AnnDrawDesignerEventArgs>(_annAutomation_Draw); _annAutomation.SetCursor += new EventHandler <AnnCursorEventArgs>(_annAutomation_SetCursor); _annAutomation.RestoreCursor += new EventHandler(_annAutomation_RestoreCursor); // We are not going to do undo/redeo _annAutomation.UndoCapacity = 0; // Set this as the one and only active automation object so mouse and keyboard events // get to it _annAutomation.Active = true; _annAutomation.DefaultCurrentObjectId = AnnObject.None; // Get the rectangle and select objects AnnAutomationObject selectAutomationObject = GetAutomationObject(_annAutomationManager, AnnObject.SelectObjectId); AnnAutomationObject zoneAutomationObject = CreateZoneAutomationObject(); _automationManagerHelper = new AutomationManagerHelper(_annAutomationManager); ZoneAnnotationObjectRenderer zoneObjectRenderer = new ZoneAnnotationObjectRenderer(); IAnnObjectRenderer annRectangleObjectRenderer = _annAutomationManager.RenderingEngine.Renderers[AnnObject.RectangleObjectId]; zoneObjectRenderer.LocationsThumbStyle = annRectangleObjectRenderer.LocationsThumbStyle; zoneObjectRenderer.RotateCenterThumbStyle = annRectangleObjectRenderer.RotateCenterThumbStyle; zoneObjectRenderer.RotateGripperThumbStyle = annRectangleObjectRenderer.RotateGripperThumbStyle; _annAutomationManager.Objects.Clear(); ContextMenu cm = new ContextMenu(); cm.MenuItems.Add(new MenuItem("&Delete", _zoneDeleteMenuItem_Click)); cm.MenuItems.Add(new MenuItem("-", null as EventHandler)); cm.MenuItems.Add(new MenuItem("&Properties...", _zonePropertiesMenuItem_Click)); zoneAutomationObject.ContextMenu = cm; _annAutomationManager.RenderingEngine.Renderers[AnnObject.UserObjectId] = zoneObjectRenderer; _annAutomationManager.Objects.Add(selectAutomationObject); _annAutomationManager.Objects.Add(zoneAutomationObject); // Disable Annotation selection object since we don't want users to group annotation objects. var selectionObject = _annAutomationManager.FindObjectById(AnnObject.SelectObjectId); selectionObject.DrawDesignerType = null; }
public override LeadRectD GetInvalidateRect(AnnContainerMapper mapper, IAnnObjectRenderer renderer) { LeadRectD invalidateRect = base.GetInvalidateRect(mapper, renderer); // Add angle label to the invalidate rect IAnnLabelRenderer labelRenderer = renderer.LabelRenderer; if (labelRenderer != null && labelRenderer.RenderingEngine != null && Labels.ContainsKey("CobbAngle")) { AnnLabel label = Labels["CobbAngle"]; LeadRectD lablebounds = labelRenderer.GetBounds(mapper, label, FixedStateOperations); invalidateRect = LeadRectD.UnionRects(lablebounds, invalidateRect); } return(invalidateRect); }
public override LeadRectD GetInvalidateRect(AnnContainerMapper mapper, IAnnObjectRenderer renderer) { LeadRectD invalidate = GetBoundingRectangle(); if (_linesAsRulers) { int linesCount = Points.Count / 2; for (int i = 0; i < linesCount; ++i) { AnnPolyRulerObject ruler = new AnnPolyRulerObject(); ruler.Points.Clear(); ruler.Points.Add(Points[2 * i]); ruler.Points.Add(Points[2 * i + 1]); invalidate = LeadRectD.UnionRects(invalidate, ruler.GetInvalidateRect(mapper, renderer)); } } invalidate = LeadRectD.UnionRects(base.GetInvalidateRect(mapper, renderer), invalidate); return(invalidate); }