Files
Terminal.Gui/Terminal.Gui/View/ViewEventArgs.cs
2024-02-20 20:19:52 -07:00

59 lines
2.4 KiB
C#

namespace Terminal.Gui;
/// <summary>Args for events that relate to specific <see cref="View"/></summary>
public class ViewEventArgs : EventArgs
{
/// <summary>Creates a new instance of the <see cref="Terminal.Gui.View"/> class.</summary>
/// <param name="view"></param>
public ViewEventArgs (View view) { View = view; }
/// <summary>The view that the event is about.</summary>
/// <remarks>
/// Can be different from the sender of the <see cref="EventHandler"/> for example if event describes the adding a
/// child then sender may be the parent while <see cref="View"/> is the child being added.
/// </remarks>
public View View { get; }
}
/// <summary>Event arguments for the <see cref="View.LayoutComplete"/> event.</summary>
public class LayoutEventArgs : EventArgs
{
/// <summary>The view-relative bounds of the <see cref="View"/> before it was laid out.</summary>
public Rectangle OldBounds { get; set; }
}
/// <summary>Event args for draw events</summary>
public class DrawEventArgs : EventArgs
{
/// <summary>Creates a new instance of the <see cref="DrawEventArgs"/> class.</summary>
/// <param name="rect">
/// Gets the view-relative rectangle describing the currently visible viewport into the
/// <see cref="View"/>.
/// </param>
public DrawEventArgs (Rectangle rect) { Rectangle = rect; }
/// <summary>If set to true, the draw operation will be canceled, if applicable.</summary>
public bool Cancel { get; set; }
/// <summary>Gets the view-relative rectangle describing the currently visible viewport into the <see cref="View"/>.</summary>
public Rectangle Rectangle { get; }
}
/// <summary>Defines the event arguments for <see cref="View.SetFocus()"/></summary>
public class FocusEventArgs : EventArgs
{
/// <summary>Constructs.</summary>
/// <param name="view">The view that gets or loses focus.</param>
public FocusEventArgs (View view) { View = view; }
/// <summary>
/// Indicates if the current focus event has already been processed and the driver should stop notifying any other
/// event subscriber. Its important to set this value to true specially when updating any View's layout from inside the
/// subscriber method.
/// </summary>
public bool Handled { get; set; }
/// <summary>Indicates the current view that gets or loses focus.</summary>
public View View { get; set; }
}