IMultiSelectionBroker Interface
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Manages all the caret and selecting behavior for an ITextView. Handles multiple selections, and box selection. Throughout this namespace carets are considered to be part of Selections, and are represented by InsertionPoint.
public interface class IMultiSelectionBroker
public interface IMultiSelectionBroker
type IMultiSelectionBroker = interface
Public Interface IMultiSelectionBroker
Properties
ActivationTracksFocus |
Determines whether AreSelectionsActive should track when the ITextView gains and
loses aggregate focus. The default is |
AllSelections |
Gets a list of all selections associated with TextView. They will be sorted in the order of appearence in the underlying snapshot. This property is intended for edit operations and may be computationally expensive. If not all selections are required, use GetSelectionsIntersectingSpan(SnapshotSpan) instead. This returns a selection as an Selection. |
AreSelectionsActive |
Whether or not selections are active within TextView. |
BoxSelection |
If IsBoxSelection is If IsBoxSelection is |
CurrentSnapshot |
Gets the current ITextSnapshot that is associated with anchor, active, and insertion points for everything managed by this broker. This snapshot will always be based in the EditBuffer for the associated ITextView. |
HasMultipleSelections |
Gets whether there are multiple selections in AllSelections. |
IsBoxSelection |
Returns |
PrimarySelection |
Gets the primary selection which should remain after invoking ClearSecondarySelections(). |
SelectedSpans |
Gets the list of spans within CurrentSnapshot that are selected. While two selections cannot overlap, they may inhabit virtual space, and selections may be adjacent. This will merge those spans and return the minimum set of spans that could be used to describe the selection. This can be a costly operation and should only be run when needed. |
SelectionExtent |
Gets the span containing all selections, complete with virtual space. |
TextView |
Gets the view for which this broker manages selections. |
VirtualSelectedSpans |
Gives the set of spans selected. There is exactly one span per selection, but it may be empty. They will be sorted in the order of appearence in the document. |
Methods
AddSelection(Selection) |
Adds a selection to AllSelections. |
AddSelectionRange(IEnumerable<Selection>) |
Adds a list of selections to AllSelections. |
BeginBatchOperation() |
Temporarily disables MultiSelectionSessionChanged, but instead queues up all actions to be included in the resultant MultiSelectionSessionChanged once the operation is completed. Selection merges will also be deferred until the end of batch operations. |
BreakBoxSelection() |
Clears BoxSelection, but retains the current state of selections. This is a useful utility when performing gestures like End and Home where each selection moves, but the result is not necessarily a box. |
ClearSecondarySelections() |
Removes all but the PrimarySelection from the session. |
GetSelectionsIntersectingSpan(SnapshotSpan) |
Gets a list of all the selections that intersect the given span. Virtual whitespace is ignored for this method. |
GetSelectionsIntersectingSpans(NormalizedSnapshotSpanCollection) |
Gets a list of all the selections that intersect the given span collection. Virtual whitespace is ignored for this method. |
PerformActionOnAllSelections(Action<ISelectionTransformer>) |
Performs a custom action on all Selections contained by TextView. |
PerformActionOnAllSelections(PredefinedSelectionTransformations) |
Performs a predefined manipulation on all Selections contained by TextView. |
SetBoxSelection(Selection) |
Adds a box of selections with the given points as its corners. |
SetSelection(Selection) |
Clears the current selections and adds one as the new value. This also becomes the PrimarySelection. |
SetSelectionRange(IEnumerable<Selection>, Selection) |
Clears the current selections, adds the provided range, and sets the primary selection. |
TransformSelection(Selection, PredefinedSelectionTransformations) |
Performs the given transformation on the given Selection without updating AllSelections. The behavior of Preferred X and Y coordinates for selections that are already in the broker is undefined. |
TryEnsureVisible(Selection, EnsureSpanVisibleOptions) |
Attempts to make the given Selection visible in the view. |
TryGetSelectionPresentationProperties(Selection, AbstractSelectionPresentationProperties) |
Trys to get the UI properties associated with the given Selection. |
TryPerformActionOnSelection(Selection, Action<ISelectionTransformer>, Selection) |
Attempts to perform a custom action on a single Selection. |
TryPerformActionOnSelection(Selection, PredefinedSelectionTransformations, Selection) |
Attempts to perform a predefined action on a single Selection. |
TryRemoveSelection(Selection) |
Removes a selection from the view. |
TrySetAsPrimarySelection(Selection) |
Attempts to set the provided selection to be the new PrimarySelection. |
Events
MultiSelectionSessionChanged |
Occurs when selections are added/removed/updated. Also when the primary selection is changed, and when box selection mode is entered/exited. |