diff options
Diffstat (limited to 'src/Editor/Language/Def/Intellisense/IPopupIntellisensePresenter.cs')
-rw-r--r-- | src/Editor/Language/Def/Intellisense/IPopupIntellisensePresenter.cs | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src/Editor/Language/Def/Intellisense/IPopupIntellisensePresenter.cs b/src/Editor/Language/Def/Intellisense/IPopupIntellisensePresenter.cs new file mode 100644 index 0000000..8b00604 --- /dev/null +++ b/src/Editor/Language/Def/Intellisense/IPopupIntellisensePresenter.cs @@ -0,0 +1,75 @@ +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Copyright (c) Microsoft Corporation. All rights reserved. +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +using System; +using System.Windows; +using Microsoft.VisualStudio.Text; +using Microsoft.VisualStudio.Text.Adornments; + +namespace Microsoft.VisualStudio.Language.Intellisense +{ + /// <summary> + /// Defines an IntelliSense presenter that is rendered as a popup within an + /// <see cref="Microsoft.VisualStudio.Text.Editor.ITextView"/>. + /// </summary> + public interface IPopupIntellisensePresenter : IIntellisensePresenter + { + /// <summary> + /// Gets the WPF <see cref="UIElement"/> that the presenter wants to be displayed inside a + /// <see cref="Microsoft.VisualStudio.Text.Editor.ITextView"/> popup. + /// </summary> + object SurfaceElement { get; } + + /// <summary> + /// Occurs when the WPF SurfaceElement is changed. + /// </summary> + event EventHandler SurfaceElementChanged; + + /// <summary> + /// Gets the <see cref="ITrackingSpan"/> to which this presenter is related. + /// </summary> + /// <remarks> + /// This property is used to determine where to + /// place the <see cref="Microsoft.VisualStudio.Text.Editor.ITextView"/> popup inside of which the presenter's + /// SurfaceElement is hosted. + /// </remarks> + ITrackingSpan PresentationSpan { get; } + + /// <summary> + /// Occurs when the PresentationSpan property changes. + /// </summary> + /// <remarks> + /// This is the way popup presenters signal that they should be moved. + /// </remarks> + event EventHandler PresentationSpanChanged; + + /// <summary> + /// Gets a set of flags that determine the popup style. + /// </summary> + PopupStyles PopupStyles { get; } + + /// <summary> + /// Occurs when the PopupStyles property changes. + /// </summary> + event EventHandler<ValueChangedEventArgs<PopupStyles>> PopupStylesChanged; + + /// <summary> + /// Gets the name of the space reservation manager that should be used to create popups for this presenter. + /// </summary> + /// <remarks> + /// Space reservation + /// managers can be ordered, thus ensuring predictable popup placement. + /// </remarks> + string SpaceReservationManagerName { get; } + + /// <summary> + /// Gets or sets the opacity of this popup presenter. + /// </summary> + /// <remarks> + /// The presenter should use this property to set the + /// opacity of its surface element and of any other text-obscuring UI elements it has provided. + /// </remarks> + double Opacity { get; set; } + } +} |