#pragma warning restore 0169 public HexToolTipProviderImpl(WpfHexView wpfHexView) { if (wpfHexView == null) { throw new ArgumentNullException(nameof(wpfHexView)); } this.wpfHexView = wpfHexView; spaceReservationManager = wpfHexView.GetSpaceReservationManager(PredefinedHexSpaceReservationManagerNames.ToolTip); }
void PresenterUpdated(HexIntellisenseSession session) { var sessionState = GetSessionState(session); if (sessionState.SpaceReservationAgent != null) { sessionState.SpaceReservationManager.RemoveAgent(sessionState.SpaceReservationAgent); } Debug.Assert(sessionState.SpaceReservationAgent == null); var presenter = session.Presenter; var popupPresenter = presenter as IHexPopupIntellisensePresenter; if (popupPresenter != null) { if (sessionState.SpaceReservationManager == null) { sessionState.SetSpaceReservationManager(wpfHexView.GetSpaceReservationManager(popupPresenter.SpaceReservationManagerName)); sessionState.SpaceReservationManager.AgentChanged += SpaceReservationManager_AgentChanged; } UnregisterPopupIntellisensePresenterEvents(sessionState.PopupIntellisensePresenter); sessionState.PopupIntellisensePresenter = popupPresenter; RegisterPopupIntellisensePresenterEvents(sessionState.PopupIntellisensePresenter); var presentationSpan = popupPresenter.PresentationSpan; var surfaceElement = popupPresenter.SurfaceElement; if (!presentationSpan.IsDefault && surfaceElement != null) { sessionState.SpaceReservationAgent = sessionState.SpaceReservationManager.CreatePopupAgent(presentationSpan, popupPresenter.PopupStyles, surfaceElement); sessionState.SpaceReservationManager.AddAgent(sessionState.SpaceReservationAgent); } } else { var customPresenter = presenter as IHexCustomIntellisensePresenter; if (customPresenter != null) { customPresenter.Render(); } else { Debug.Assert(presenter == null, $"Unsupported presenter: {presenter?.GetType()}"); } } }