Exemple #1
0
 protected HexQuickInfoPresenterBase(HexQuickInfoSession session)
 {
     this.session = session ?? throw new ArgumentNullException(nameof(session));
     control      = new HexQuickInfoPresenterControl {
         DataContext = this
     };
     session.Dismissed += Session_Dismissed;
 }
Exemple #2
0
        void QuickInfoSession_Dismissed(object sender, EventArgs e)
        {
            var qiSession = (HexQuickInfoSession)sender;

            qiSession.Dismissed -= QuickInfoSession_Dismissed;
            Debug.Assert(qiSession == quickInfoSession);
            if (qiSession == quickInfoSession)
            {
                quickInfoSession = null;
            }
        }
Exemple #3
0
 public HexQuickInfoPresenter(HexQuickInfoSession session)
     : base(session)
 {
     wpfHexView = session.HexView as WpfHexView;
     Debug.Assert(wpfHexView != null);
     popup = new Popup {
         PlacementTarget     = wpfHexView?.VisualElement,
         Placement           = PlacementMode.Relative,
         Visibility          = Visibility.Collapsed,
         IsOpen              = false,
         AllowsTransparency  = true,
         UseLayoutRounding   = true,
         SnapsToDevicePixels = true,
     };
 }
Exemple #4
0
 void TriggerQuickInfo()
 {
     if (quickInfoSession != null)
     {
         quickInfoSession.Dismissed -= QuickInfoSession_Dismissed;
         quickInfoSession.Dismiss();
         quickInfoSession = null;
     }
     quickInfoSession = quickInfoBroker.TriggerQuickInfo(hexView, hexView.Caret.Position.Position.ActivePosition, false);
     if (quickInfoSession?.IsDismissed == false)
     {
         quickInfoSession.Dismissed += QuickInfoSession_Dismissed;
     }
     else
     {
         quickInfoSession = null;
     }
 }
Exemple #5
0
        public override void AugmentQuickInfoSession(HexQuickInfoSession session, IList <object> quickInfoContent, out HexBufferSpanSelection applicableToSpan)
        {
            applicableToSpan = default(HexBufferSpanSelection);

            RemoveToolTipInfo();

            toolTipInfoCollection = hexToolTipService.GetToolTipInfo(session.TriggerPoint.BufferPosition);
            if (toolTipInfoCollection == null)
            {
                return;
            }

            applicableToSpan = new HexBufferSpanSelection(toolTipInfoCollection.BufferSpan, HexSpanSelectionFlags.Selection);
            hexToolTipService.SetActiveToolTip(toolTipInfoCollection);
            session.Dismissed += Session_Dismissed;
            foreach (var info in toolTipInfoCollection)
            {
                if (info.ToolTip != null)
                {
                    quickInfoContent.Add(info.ToolTip);
                }
            }
        }
        public HexQuickInfoPresenter(HexQuickInfoSession session)
            : base(session)
        {
            wpfHexView = session.HexView as WpfHexView;
            Debug.Assert(wpfHexView != null);
            popup = new Popup {
                PlacementTarget     = wpfHexView?.VisualElement,
                Placement           = PlacementMode.Relative,
                Visibility          = Visibility.Collapsed,
                IsOpen              = false,
                AllowsTransparency  = true,
                UseLayoutRounding   = true,
                SnapsToDevicePixels = true,
            };

            // It's possible that quick info gets triggered inside the space between two values but
            // the full span doesn't include that space. In that case, dismiss the session.
            var mousePos = GetMousePoint(Mouse.PrimaryDevice);

            if (mousePos == null || !IsMouseWithinSpan(mousePos.Value))
            {
                session.Dismiss();
            }
        }
Exemple #7
0
 public HexSpaceReservationQuickInfoPresenter(HexQuickInfoSession session)
     : base(session)
 {
     SetPresentationSpan(session.ApplicableToSpan);
     session.ApplicableToSpanChanged += Session_ApplicableToSpanChanged;
 }