qamp/Qrakhen.TilingFrames/Models/HostFrame.cs

45 lines
1.5 KiB
C#

namespace Qrakhen.TilingFrames.Models;
/// <summary>
/// Base data class for content that is displayed for a <see cref="TilingHost"/>'s tabs or stand-alone pop-out windows.<br/>
/// Anything that you can physically see from the root <see cref="TilingPanel"/> is a <see cref="HostFrame"/>.<br/>
/// Serving a header text, pin state and button configuration properties.
/// </summary>
public abstract class HostFrame : ObservableObject
{
/// <inheritdoc cref="HeaderText"/>
private string _headerText = string.Empty;
/// <summary>
/// The title of the tab that will be displayed inside the tab button.
/// </summary>
public string HeaderText {
get => _headerText;
set => SetField(ref _headerText, value);
}
/// <inheritdoc cref="FrameButtons"/>
private FrameButtons _frameButtons = FrameButtons.Default;
/// <summary>
/// The buttons to be displayed next to the header.
/// </summary>
public FrameButtons FrameButtons {
get => _frameButtons;
set => SetField(ref _frameButtons, value);
}
/// <inheritdoc cref="IsPinned"/>
private bool _isPinned = false;
/// <summary>
/// The title of the tab that will be displayed inside the tab button.
/// </summary>
public bool IsPinned {
get => _isPinned;
set => SetField(ref _isPinned, value);
}
public virtual object? GetOptions() => null;
public virtual void SetOptions(object? options) { }
public virtual object? GetHelp() => null;
}