Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        public static void DrawFocusedMessage(
            LJD.Graphics g,
            ViewMetrics viewMetrics,
            IViewEvents eventsHandler,
            DrawScope scope,
            Size sz)
        {
            var pos = eventsHandler.OnDrawFocusedMessage(scope);

            if (pos == null)
            {
                return;
            }
            if (pos.Value < 0 || pos.Value > 1)
            {
                return;
            }
            var x = (int)(pos.Value * (double)sz.Width);

            g.DrawLine(viewMetrics.FocusedMessagePen, x, 0, x, sz.Height);
            var img   = viewMetrics.FocusedMessageLineTop;
            var imgsz = img.GetSize(height: 4f);

            g.DrawImage(img, new RectangleF
                            (x - imgsz.Width / 2, 1, imgsz.Width, imgsz.Height));
        }
Exemplo n.º 3
0
 public static void DrawEvents(
     LJD.Graphics g,
     ViewMetrics viewMetrics,
     IViewEvents eventsHandler)
 {
     foreach (var evt in Metrics.GetEventMetrics(g, eventsHandler, viewMetrics))
     {
         if (evt.VertLinePoints != null)
         {
             g.PushState();
             g.EnableAntialiasing(true);
             g.DrawLines(viewMetrics.UserEventPen, evt.VertLinePoints);
             g.PopState();
         }
         else
         {
             g.DrawLine(viewMetrics.UserEventPen, evt.VertLineA, evt.VertLineB);
         }
         if (evt.Icon != null)
         {
             g.DrawImage(evt.Icon, evt.IconRect);
         }
         g.FillRectangle(viewMetrics.EventRectBrush, evt.CaptionRect);
         g.DrawRectangle(viewMetrics.EventRectPen, evt.CaptionRect);
         g.DrawString(evt.Event.Caption, viewMetrics.EventCaptionFont,
                      viewMetrics.EventCaptionBrush, evt.CaptionDrawingOrigin,
                      viewMetrics.EventCaptionStringFormat);
     }
 }
Exemplo n.º 4
0
 public void Init(LegendItemInfo item, Drawing.Resources resources, IViewEvents events)
 {
     this.item                = item;
     this.resources           = resources;
     this.events              = events;
     previewView.NeedsDisplay = true;
 }
Exemplo n.º 5
0
 void IView.SetEventsHandler(IViewEvents eventsHandler)
 {
     this.eventsHandler = eventsHandler;
     myWebBrowser.Init(eventsHandler);
     myWebBrowser.Navigated  += (sender, args) => eventsHandler.OnBrowserNavigated(args.Url);
     myWebBrowser.Navigating += (sender, args) => eventsHandler.OnBrowserNavigated(args.Url);
 }
Exemplo n.º 6
0
 public static IEnumerable <TLRulerMark> GetRulerMarks(
     ViewMetrics viewMetrics,
     IViewEvents eventsHandler,
     DrawScope scope
     )
 {
     return(eventsHandler.OnDrawRulers(scope, viewMetrics.ActivitiesViewWidth, viewMetrics.DistnanceBetweenRulerMarks));
 }
Exemplo n.º 7
0
        public MainFrame()
        {
            _ya12306 = new Ya12306(this);

            _loginForm = new LoginForm(_client);
            InitializeComponent();
            WindowsInterop.SecurityAlertDialogWillBeShown += _ => true;

            _autoQueryTimer.Tick += AutoQueryTimerTick;
            _autoQueryTimer.Interval = 10000;
        }
Exemplo n.º 8
0
 public void Init()
 {
     view = Substitute.For <IView>();
     view.When(v => v.SetPresenter(Arg.Any <IViewEvents>())).Do(
         x => eventsHandler = x.Arg <IViewEvents>());
     presenter                             = new Presenter(view);
     onSearchNowRaised                     = 0;
     presenter.OnSearchNow                += (sender, e) => ++ onSearchNowRaised;
     onCurrentSuggestionChanged            = 0;
     presenter.OnCurrentSuggestionChanged += (sender, e) => ++ onCurrentSuggestionChanged;
 }
Exemplo n.º 9
0
        void IView.SetPresenter(IViewEvents presenter)
        {
            this.presenter = presenter;
            this.presentationDataAccess = presenter as IPresentationDataAccess;

            if (presentationDataAccess.FontName != null && (LogJoint.Properties.Settings.Default.MonospaceBookmarks ?? "") == "1")
            {
                linkDisplayFont.Dispose();
                linkDisplayFont = new Font(presentationDataAccess.FontName, 8f, FontStyle.Underline);
            }
        }
Exemplo n.º 10
0
        public static void DrawMeasurer(
            LJD.Graphics g,
            ViewMetrics viewMetrics,
            IViewEvents eventsHandler)
        {
            var drawInfo = eventsHandler.OnDrawMeasurer();

            if (!drawInfo.MeasurerVisible)
            {
                return;
            }
            double viewWidth  = viewMetrics.ActivitiesViewWidth;
            int    viewHeight = viewMetrics.ActivitiesViewHeight;
            var    x1         = Metrics.SafeGetScreenX(drawInfo.X1, viewWidth);
            var    x2         = Metrics.SafeGetScreenX(drawInfo.X2, viewWidth);

            g.DrawLine(viewMetrics.MeasurerPen, x1, viewMetrics.MeasurerTop, x1, viewHeight);
            g.DrawLine(viewMetrics.MeasurerPen, x2, viewMetrics.MeasurerTop, x2, viewHeight);
            g.DrawLine(viewMetrics.MeasurerPen, x1, viewMetrics.MeasurerTop, x2, viewMetrics.MeasurerTop);
            var        textSz = g.MeasureString(drawInfo.Text, viewMetrics.MeasurerTextFont);
            RectangleF textRect;
            int        textHPadding = 2;

            if (textSz.Width < (x2 - x1 - 5))
            {
                textRect = new RectangleF(
                    (x2 + x1 - textSz.Width - textHPadding) / 2,
                    viewMetrics.MeasurerTop - textSz.Height / 2,
                    textSz.Width + textHPadding,
                    textSz.Height
                    );
            }
            else
            {
                textRect = new RectangleF(
                    x2 + 5,
                    viewMetrics.MeasurerTop - textSz.Height / 2,
                    textSz.Width + textHPadding,
                    textSz.Height
                    );
                if (textRect.Right > viewMetrics.ActivitiesViewWidth)
                {
                    textRect.X = x1 - 5 - textRect.Width;
                }
            }
            g.FillRectangle(viewMetrics.MeasurerTextBoxBrush, textRect);
            g.DrawRectangle(viewMetrics.MeasurerTextBoxPen, new RectangleF(textRect.X, textRect.Y, textRect.Width, textRect.Height));
            g.DrawString(drawInfo.Text,
                         viewMetrics.MeasurerTextFont, viewMetrics.MeasurerTextBrush,
                         new PointF((textRect.X + textRect.Right) / 2, (textRect.Y + textRect.Bottom) / 2),
                         viewMetrics.MeasurerTextFormat);
        }
Exemplo n.º 11
0
        public static void MouseMoveHelper(
            IPresentationDataAccess presentationDataAccess,
            DrawContext drawContext,
            Rectangle clientRectangle,
            IViewEvents viewEvents,
            Point pt,
            bool isLeftDrag,
            out CursorType newCursor
            )
        {
            newCursor = CursorType.Arrow;

            if (presentationDataAccess != null)
            {
                foreach (var i in DrawingUtils.GetVisibleMessagesIterator(drawContext, presentationDataAccess, clientRectangle))
                {
                    DrawingUtils.Metrics mtx = DrawingUtils.GetMetrics(i, drawContext);

                    if (pt.Y >= mtx.MessageRect.Top && pt.Y < mtx.MessageRect.Bottom)
                    {
                        if (isLeftDrag)
                        {
                            var hitTester = new HitTestingVisitor(drawContext, mtx, pt.X, i.TextLineIndex);
                            i.Message.Visit(hitTester);
                            MessageMouseEventFlag flags = MessageMouseEventFlag.ShiftIsHeld
                                                          | MessageMouseEventFlag.CapturedMouseMove;
                            if (pt.X < drawContext.CollapseBoxesAreaSize)
                            {
                                flags |= MessageMouseEventFlag.OulineBoxesArea;
                            }
                            viewEvents.OnMessageMouseEvent(i, hitTester.LineTextPosition, flags, pt);
                        }
                        if (i.Message.IsStartFrame() && mtx.OulineBox.Contains(pt))
                        {
                            newCursor = CursorType.Arrow;
                        }
                        else if (pt.X < drawContext.CollapseBoxesAreaSize)
                        {
                            newCursor = CursorType.RightToLeftArrow;
                        }
                        else if (pt.X >= drawContext.GetTextOffset(0, 0).X)
                        {
                            newCursor = CursorType.IBeam;
                        }
                        else
                        {
                            newCursor = CursorType.Arrow;
                        }
                    }
                }
            }
        }
Exemplo n.º 12
0
 public static void DrawBookmarks(
     LJD.Graphics g,
     ViewMetrics viewMetrics,
     IViewEvents eventsHandler)
 {
     foreach (var evt in Metrics.GetBookmarksMetrics(g, viewMetrics, eventsHandler))
     {
         g.DrawLine(viewMetrics.BookmarkPen, evt.VertLineA, evt.VertLineB);
         if (evt.Icon != null)
         {
             g.DrawImage(evt.Icon, evt.IconRect);
         }
     }
 }
Exemplo n.º 13
0
        public static void DrawActivtiesView(
            LJD.Graphics g,
            ViewMetrics viewMetrics,
            IViewEvents eventsHandler)
        {
            var viewSz = new Size(viewMetrics.ActivitiesViewWidth, viewMetrics.ActivitiesViewHeight);

            Drawing.DrawActivitiesBackground(g, viewMetrics, eventsHandler);
            Drawing.DrawRulerLines(g, viewMetrics, eventsHandler, DrawScope.VisibleRange, viewSz);
            Drawing.DrawActivitiesTopBound(g, viewMetrics);
            Drawing.DrawEvents(g, viewMetrics, eventsHandler);
            Drawing.DrawBookmarks(g, viewMetrics, eventsHandler);
            Drawing.DrawFocusedMessage(g, viewMetrics, eventsHandler, DrawScope.VisibleRange, viewSz);
            Drawing.DrawActivities(g, viewMetrics, eventsHandler);
            Drawing.DrawMeasurer(g, viewMetrics, eventsHandler);
        }
Exemplo n.º 14
0
        public static void DrawCaptionsView(
            LJD.Graphics g,
            ViewMetrics viewMetrics,
            IViewEvents eventsHandler,
            int sequenceDiagramAreaWidth,
            Action <string, Rectangle, int, int, bool> drawCaptionWithHighlightedRegion
            )
        {
            PushGraphicsStateForDrawingActivites(g, viewMetrics, HitTestResult.AreaCode.CaptionsPanel);

            int availableHeight = viewMetrics.ActivitiesViewHeight;

            foreach (var a in eventsHandler.OnDrawActivities())
            {
                int y = Metrics.GetActivityY(viewMetrics, a.Index);
                if (y < 0)
                {
                    continue;
                }
                if (y > availableHeight)
                {
                    break;
                }

                var h = viewMetrics.LineHeight - 1;
                var sequenceDiagramTextRect = new Rectangle(0, y, sequenceDiagramAreaWidth, h);
                var textRect = new Rectangle(
                    sequenceDiagramTextRect.Right + 3 /* text padding */, y, viewMetrics.ActivitesCaptionsViewWidth - sequenceDiagramTextRect.Right, h);
                var lineRect = new Rectangle(0, y, viewMetrics.ActivitesCaptionsViewWidth, h);
                if (a.IsSelected)
                {
                    g.FillRectangle(viewMetrics.SelectedLineBrush, lineRect);
                }
                else if (a.Color.HasValue)
                {
                    using (var bgBrush = MakeBrush(a.Color.Value))
                        g.FillRectangle(bgBrush, lineRect);
                }
                if (!string.IsNullOrEmpty(a.SequenceDiagramText))
                {
                    g.DrawString(a.SequenceDiagramText, viewMetrics.ActivitesCaptionsFont, viewMetrics.ActivitesCaptionsBrush, sequenceDiagramTextRect);
                }
                drawCaptionWithHighlightedRegion(a.Caption, textRect, a.CaptionSelectionBegin, a.CaptionSelectionLength, a.IsError);
            }

            g.PopState();
        }
Exemplo n.º 15
0
        public static void DrawRulerLines(
            LJD.Graphics g,
            ViewMetrics viewMetrics,
            IViewEvents eventHandler,
            DrawScope scope,
            Size viewSize
            )
        {
            double availableWidth = viewSize.Width;

            foreach (var m in Metrics.GetRulerMarks(viewMetrics, eventHandler, scope))
            {
                int x = (int)(m.X * availableWidth);
                g.DrawString(m.Label, viewMetrics.RulerMarkFont, viewMetrics.RulerMarkBrush, new Point(x, 2));
                g.DrawLine(viewMetrics.RulerLinePen, x, 0, x, viewSize.Height);
            }
        }
Exemplo n.º 16
0
        public static void DrawNavigationPanel(
            LJD.Graphics g,
            ViewMetrics viewMetrics,
            IViewEvents eventsHandler)
        {
            var panelClientRect = new Rectangle(0, 0, viewMetrics.NavigationPanelWidth, viewMetrics.NavigationPanelHeight);

            g.FillRectangle(viewMetrics.NavigationPanel_InvisibleBackground, panelClientRect);

            var m = Metrics.GetNavigationPanelMetrics(viewMetrics, eventsHandler);

            g.FillRectangle(viewMetrics.NavigationPanel_VisibleBackground, m.VisibleRangeBox);

            DrawRulerLines(g, viewMetrics, eventsHandler, DrawScope.AvailableRange, panelClientRect.Size);

            double width = (double)viewMetrics.NavigationPanelWidth;

            foreach (var evt in eventsHandler.OnDrawEvents(DrawScope.AvailableRange))
            {
                int x = (int)(evt.X * width);
                g.DrawLine(viewMetrics.UserEventPen, x, 0, x, viewMetrics.NavigationPanelHeight);
            }

            foreach (var evt in eventsHandler.OnDrawBookmarks(DrawScope.AvailableRange))
            {
                int x = (int)(evt.X * width);
                g.DrawLine(viewMetrics.BookmarkPen, x, 0, x, viewMetrics.NavigationPanelHeight);
            }

            var focusedMessagePos = eventsHandler.OnDrawFocusedMessage(DrawScope.AvailableRange);

            if (focusedMessagePos.HasValue && focusedMessagePos.Value >= 0 && focusedMessagePos.Value <= 1)
            {
                int x = (int)(focusedMessagePos.Value * width);
                g.DrawLine(viewMetrics.FocusedMessagePen, x, 0, x, viewMetrics.NavigationPanelHeight);
            }

            ResizerDrawing.DrawResizer(g, m.Resizer1, viewMetrics.SystemControlBrush);
            ResizerDrawing.DrawResizer(g, m.Resizer2, viewMetrics.SystemControlBrush);

            Rectangle visibleRangeBox = m.VisibleRangeBox;

            visibleRangeBox.Width = Math.Max(visibleRangeBox.Width, 1);
            g.DrawRectangle(viewMetrics.VisibleRangePen, visibleRangeBox);
        }
Exemplo n.º 17
0
        public static void MouseDownHelper(
            IPresentationDataAccess presentationDataAccess,
            DrawContext drawContext,
            Rectangle clientRectangle,
            IViewEvents viewEvents,
            Point pt,
            MessageMouseEventFlag flags,
            out bool captureTheMouse
            )
        {
            captureTheMouse = true;

            if (presentationDataAccess != null)
            {
                foreach (var i in DrawingUtils.GetVisibleMessagesIterator(drawContext, presentationDataAccess, clientRectangle))
                {
                    DrawingUtils.Metrics mtx = DrawingUtils.GetMetrics(i, drawContext);

                    // if user clicked line's outline box (collapse/expand cross)
                    if (i.Message.IsStartFrame() && mtx.OulineBox.Contains(pt.X, pt.Y) && i.TextLineIndex == 0)
                    //if (viewEvents.OnOulineBoxClicked(i.Message, (flags & MessageMouseEventFlag.CtrlIsHeld) != 0))
                    {
                        captureTheMouse = false;
                        break;
                    }

                    // if user clicked line area
                    if (mtx.MessageRect.Contains(pt.X, pt.Y))
                    {
                        var hitTester = new HitTestingVisitor(drawContext, mtx, pt.X, i.TextLineIndex);
                        i.Message.Visit(hitTester);
                        if ((flags & MessageMouseEventFlag.DblClick) != 0)
                        {
                            captureTheMouse = false;
                        }
                        if (pt.X < drawContext.CollapseBoxesAreaSize)
                        {
                            flags |= MessageMouseEventFlag.OulineBoxesArea;
                        }
                        viewEvents.OnMessageMouseEvent(i, hitTester.LineTextPosition, flags, pt);
                        break;
                    }
                }
            }
        }
Exemplo n.º 18
0
        public static int GetSequenceDiagramAreaMetrics(
            LJD.Graphics g,
            ViewMetrics viewMetrics,
            IViewEvents eventsHandler
            )
        {
            float maxTextWidth = 0;

            if (eventsHandler != null)
            {
                foreach (var a in eventsHandler.OnDrawActivities())
                {
                    if (!string.IsNullOrEmpty(a.SequenceDiagramText))
                    {
                        var w = g.MeasureString(a.SequenceDiagramText, viewMetrics.ActivitesCaptionsFont).Width;
                        maxTextWidth = Math.Max(maxTextWidth, w);
                    }
                }
            }
            return(Math.Min((int)Math.Ceiling(maxTextWidth), viewMetrics.ActivitesCaptionsViewWidth / 2));
        }
Exemplo n.º 19
0
 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();
 }
Exemplo n.º 20
0
 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);
 }
Exemplo n.º 21
0
        public static NavigationPanelMetrics GetNavigationPanelMetrics(
            ViewMetrics viewMetrics,
            IViewEvents eventsHandler)
        {
            NavigationPanelDrawInfo drawInfo = eventsHandler.OnDrawNavigationPanel();
            double width = (double)viewMetrics.NavigationPanelWidth;
            int    x1    = (int)(width * drawInfo.VisibleRangeX1);
            int    x2    = (int)(width * drawInfo.VisibleRangeX2);

            var visibleRangeBox = new Rectangle(x1, 1, x2 - x1, viewMetrics.NavigationPanelHeight - 4);
            var resizerWidth    = Math.Min(viewMetrics.VisibleRangeResizerWidth, Math.Abs(x2 - x1));

            var resizer1 = new Rectangle(visibleRangeBox.Left + 1, visibleRangeBox.Top + 1,
                                         resizerWidth, visibleRangeBox.Height - 1);
            var resizer2 = new Rectangle(visibleRangeBox.Right - resizerWidth,
                                         visibleRangeBox.Top + 1, resizerWidth, visibleRangeBox.Height - 1);

            return(new NavigationPanelMetrics()
            {
                VisibleRangeBox = visibleRangeBox,
                Resizer1 = resizer1,
                Resizer2 = resizer2
            });
        }
Exemplo n.º 22
0
        public SourceDetailsForm(IViewEvents viewEvents)
        {
            InitializeComponent();

            this.viewEvents = viewEvents;

            controls[ControlFlag.NameEditbox]                    = nameTextBox;
            controls[ControlFlag.FormatTextBox]                  = formatTextBox;
            controls[ControlFlag.VisibleCheckBox]                = visibleCheckBox;
            controls[ControlFlag.ColorPanel]                     = colorPanel;
            controls[ControlFlag.StateDetailsLink]               = stateDetailsLink;
            controls[ControlFlag.StateLabel]                     = stateLabel;
            controls[ControlFlag.LoadedMessagesTextBox]          = loadedMessagesTextBox;
            controls[ControlFlag.LoadedMessagesWarningIcon]      = loadedMessagesWarningIcon;
            controls[ControlFlag.LoadedMessagesWarningLinkLabel] = loadedMessagesWarningLinkLabel;
            controls[ControlFlag.TrackChangesLabel]              = trackChangesLabel;
            controls[ControlFlag.SuspendResumeTrackingLink]      = suspendResumeTrackingLink;
            controls[ControlFlag.FirstMessageLinkLabel]          = firstMessageLinkLabel;
            controls[ControlFlag.LastMessageLinkLabel]           = lastMessageLinkLabel;
            controls[ControlFlag.SaveAsButton]                   = saveAsButton;
            controls[ControlFlag.AnnotationTextBox]              = annotationTextBox;
            controls[ControlFlag.TimeOffsetTextBox]              = timeOffsetTextBox;
            controls[ControlFlag.CopyPathButton]                 = copyPathLink;
        }
 void IView.SetPresenter(IViewEvents viewEvents)
 {
     this.viewEvents = viewEvents;
 }
Exemplo n.º 24
0
 void IView.SetEventsHandler(IViewEvents handler)
 {
     this.eventsHandler = handler;
 }
Exemplo n.º 25
0
 void IView.SetEventsHandler(IViewEvents eventsHandler)
 {
     this.eventsHandler = eventsHandler;
     View.EnsureCreated();
 }
Exemplo n.º 26
0
 void IView.SetPresenter(IViewEvents presenter)
 {
     this.presenter = presenter;
 }
 void IView.SetViewEvents(IViewEvents viewEvents)
 {
     this.viewEvents = viewEvents;
 }
Exemplo n.º 28
0
 void IView.SetEventsHandler(IViewEvents eventsHandler)
 {
     this.viewEvents = eventsHandler;
 }
 void IView.SetPresenter(IViewEvents presenter)
 {
     this.eventsHandler = presenter;
 }
Exemplo n.º 30
0
        public static HitTestResult HitTest(
            Point pt,
            ViewMetrics viewMetrics,
            IViewEvents eventsHandler,
            bool isCaptionsView,
            Func <LJD.Graphics> graphicsFactory
            )
        {
            HitTestResult ret = new HitTestResult();

            double viewWidth = viewMetrics.ActivitiesViewWidth;

            ret.RelativeX     = (double)pt.X / viewWidth;
            ret.ActivityIndex = GetActivityByPoint(pt, viewMetrics);

            if (isCaptionsView)
            {
                ret.Area = HitTestResult.AreaCode.CaptionsPanel;
                return(ret);
            }

            using (var g = graphicsFactory())
            {
                foreach (var bmk in GetBookmarksMetrics(g, viewMetrics, eventsHandler))
                {
                    if (bmk.IsOverLink(pt))
                    {
                        ret.Area    = HitTestResult.AreaCode.BookmarkTrigger;
                        ret.Trigger = bmk.Bookmark.Trigger;
                        return(ret);
                    }
                }
                foreach (var evt in GetEventMetrics(g, eventsHandler, viewMetrics).Reverse())
                {
                    if (evt.IsOverLink(pt))
                    {
                        ret.Area    = HitTestResult.AreaCode.EventTrigger;
                        ret.Trigger = evt.Event.Trigger;
                        return(ret);
                    }
                }
            }

            if (pt.Y < viewMetrics.RulersPanelHeight)
            {
                ret.Area = HitTestResult.AreaCode.RulersPanel;
                return(ret);
            }

            foreach (var a in GetActivitiesMetrics(viewMetrics, eventsHandler))
            {
                foreach (var ms in a.Milestones)
                {
                    if (ms.Bounds.HasValue && ms.Bounds.Value.Contains(pt))
                    {
                        ret.Area    = HitTestResult.AreaCode.ActivityTrigger;
                        ret.Trigger = ms.Trigger;
                        return(ret);
                    }
                }
                if (a.BeginTriggerLinkRect.HasValue && a.BeginTriggerLinkRect.Value.Contains(pt))
                {
                    ret.Area    = HitTestResult.AreaCode.ActivityTrigger;
                    ret.Trigger = a.Activity.BeginTrigger;
                    return(ret);
                }
                if (a.EndTriggerLinkRect.HasValue && a.EndTriggerLinkRect.Value.Contains(pt))
                {
                    ret.Area    = HitTestResult.AreaCode.ActivityTrigger;
                    ret.Trigger = a.Activity.EndTrigger;
                    return(ret);
                }
            }

            ret.Area = HitTestResult.AreaCode.ActivitiesPanel;
            return(ret);
        }
Exemplo n.º 31
0
        public static IEnumerable <BookmarkMetrics> GetBookmarksMetrics(LJD.Graphics g, ViewMetrics viewMetrics, IViewEvents eventsHandler)
        {
            double availableWidth = viewMetrics.ActivitiesViewWidth;

            foreach (var bmk in eventsHandler.OnDrawBookmarks(DrawScope.VisibleRange))
            {
                if (bmk.X < 0 || bmk.X > 1)
                {
                    continue;
                }

                BookmarkMetrics m = new BookmarkMetrics()
                {
                    Bookmark = bmk
                };

                int x          = SafeGetScreenX(bmk.X, availableWidth);
                int bmkLineTop = viewMetrics.RulersPanelHeight - 7;
                m.VertLineA = new Point(x, bmkLineTop);
                m.VertLineB = new Point(x, viewMetrics.ActivitiesViewHeight);

                m.Icon = viewMetrics.BookmarkIcon;
                var sz = m.Icon.GetSize(height: 5.1f).Scale(viewMetrics.DPIScale);
                m.IconRect = new RectangleF(
                    x - sz.Width / 2, bmkLineTop - sz.Height, sz.Width, sz.Height);

                yield return(m);
            }
        }