62 lines
1.4 KiB
C#
62 lines
1.4 KiB
C#
namespace CursorLang.Core.Models;
|
|
|
|
/// <summary>
|
|
/// How the place for the popup is chosen.
|
|
/// </summary>
|
|
public enum PopupPlacementMode
|
|
{
|
|
/// <summary>Next to the mouse cursor.</summary>
|
|
AtCursor,
|
|
|
|
/// <summary>
|
|
/// Next to the caret in the active input field. When the application does not
|
|
/// report its position, the popup is shown at the mouse cursor.
|
|
/// </summary>
|
|
AtCaret,
|
|
|
|
/// <summary>At a fixed point of the monitor holding the active window.</summary>
|
|
FixedPoint,
|
|
}
|
|
|
|
/// <summary>
|
|
/// Which side of the cursor to show the popup on.
|
|
/// </summary>
|
|
public enum AnchorSide
|
|
{
|
|
TopLeft,
|
|
TopRight,
|
|
Left,
|
|
Right,
|
|
BottomLeft,
|
|
BottomRight,
|
|
}
|
|
|
|
/// <summary>
|
|
/// Which side of the caret to show the popup on.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Only the two sides, unlike <see cref="AnchorSide"/>. The caret stands in a line of
|
|
/// text being written, and above or below it is exactly where the next line is: the
|
|
/// popup would cover what is being read. To the side it covers nothing, and the line
|
|
/// it lines up with is the one the caret is in.
|
|
/// </remarks>
|
|
public enum CaretSide
|
|
{
|
|
Left,
|
|
Right,
|
|
}
|
|
|
|
/// <summary>
|
|
/// The place on the monitor for the <see cref="PopupPlacementMode.FixedPoint"/> mode.
|
|
/// </summary>
|
|
public enum ScreenPosition
|
|
{
|
|
TopLeft,
|
|
Top,
|
|
TopRight,
|
|
Center,
|
|
BottomLeft,
|
|
Bottom,
|
|
BottomRight,
|
|
}
|