public static void DrawActivities(LJD.Graphics g, ViewMetrics viewMetrics, IViewEvents eventsHandler) { PushGraphicsStateForDrawingActivites(g, viewMetrics, HitTestResult.AreaCode.ActivitiesPanel); foreach (var a in Metrics.GetActivitiesMetrics(viewMetrics, eventsHandler)) { g.FillRectangle(GetActivityBrush(viewMetrics, a.Activity.Type), a.ActivityBarRect); foreach (var ph in a.Phases) { var phaseMargin = a.ActivityBarRect.Height / 3; g.FillRectangle(ph.Brush, ph.X1, a.ActivityBarRect.Top + phaseMargin, Math.Max(ph.X2 - ph.X1, 2), a.ActivityBarRect.Height - phaseMargin - 2); } foreach (var ms in a.Milestones) { g.DrawLine(viewMetrics.MilestonePen, ms.X, a.ActivityBarRect.Top, ms.X, a.ActivityBarRect.Bottom); } g.DrawRectangle(viewMetrics.ActivityBarBoundsPen, a.ActivityBarRect); if (a.PairedActivityConnectorBounds != null) { var r = a.PairedActivityConnectorBounds.Value; g.DrawLine(viewMetrics.ActivitiesConnectorPen, r.Left, r.Top, r.Left, r.Bottom); g.DrawLine(viewMetrics.ActivitiesConnectorPen, r.Right, r.Top, r.Right, r.Bottom); } } g.PopState(); }
public static void DrawActivitiesBackground( LJD.Graphics g, ViewMetrics viewMetrics, IViewEvents eventsHandler ) { PushGraphicsStateForDrawingActivites(g, viewMetrics, HitTestResult.AreaCode.ActivitiesPanel); foreach (var a in Metrics.GetActivitiesMetrics(viewMetrics, eventsHandler)) { if (a.Activity.IsSelected) { g.FillRectangle(viewMetrics.SelectedLineBrush, a.ActivityLineRect); } else if (a.Activity.Color.HasValue) { using (var bgBrush = MakeBrush(a.Activity.Color.Value)) g.FillRectangle(bgBrush, a.ActivityLineRect); } } g.PopState(); }
public static CursorType GetCursor( Point pt, ViewMetrics vm, IViewEvents eventsHandler, Func <LJD.Graphics> graphicsFactory ) { foreach (var a in Metrics.GetActivitiesMetrics(vm, eventsHandler)) { bool overLink = false; overLink = overLink || (a.BeginTriggerLinkRect.HasValue && a.BeginTriggerLinkRect.Value.Contains(pt)); overLink = overLink || (a.EndTriggerLinkRect.HasValue && a.EndTriggerLinkRect.Value.Contains(pt)); overLink = overLink || a.Milestones.Any(ms => ms.Bounds.HasValue && ms.Bounds.Value.Contains(pt)); if (overLink) { return(CursorType.Hand); } } using (var g = graphicsFactory()) { foreach (var bmk in Metrics.GetBookmarksMetrics(g, vm, eventsHandler)) { if (bmk.IsOverLink(pt)) { return(CursorType.Hand); } } foreach (var evt in Metrics.GetEventMetrics(g, eventsHandler, vm)) { if (evt.IsOverLink(pt)) { return(CursorType.Hand); } } } return(CursorType.Default); }