# Interface IMarkSelection

All Superinterfaces:
  `ISelection`

All Known Implementing Classes:
  `MarkSelection`

public interface IMarkSelection extends ISelection
A mark selection can be sent out by text viewers. By checking the type of the selection selection listeners can determine whether a selection event is about a mark or a normal text selection.

This interface is not intended to be implemented by clients other than `ITextViewer` implementers.

Since:
  2.0

## Method Summary

Modifier and Type
Method
Description
`IDocument`
`getDocument()`
Returns the marked document.
`int`
`getLength()`
Returns the length of the mark selection.
`int`
`getOffset()`
Returns the mark position.

### Methods inherited from interface ISelection

`isEmpty`

## Method Details

### getDocument

IDocument getDocument()
Returns the marked document.

Returns:
  the marked document

### getOffset

int getOffset()
Returns the mark position. The offset may be `-1` if there's no marked region.

Returns:
  the mark position or `-1` if there is no marked region

### getLength

int getLength()
Returns the length of the mark selection. The length may be negative, if the caret is before the mark position. The length has no meaning if `getOffset()` returns `-1`.

Returns:
  the length of the mark selection. Result is undefined for `getOffset == -1`