Code/XGUI/TitleBar.razor
@using System;
@using System.Collections.Generic;
@using Sandbox;
@using Sandbox.UI;
@using Sandbox.Razor;
@namespace XGUI
@inherits Panel
<root class="TitleBar">
<div class="TitleElements">
<div class="TitleIcon" @ref=TitleIcon></div>
<div class="TitleLabel" @ref=Label>@ParentWindow.Title</div>
<div class="TitleSpacer" @ref=TitleSpacer @onmousedown=@DragBarDown @onmouseup=@DragBarUp @onmousemove=@Drag></div>
@if (ParentWindow.HasMinimise)
{
<button class="Control MinimiseButton" @onclick=@Minimise>0</button>
}
@if (ParentWindow.HasMaximise)
{
<button class="Control MaximiseButton" @onclick=@Maximise>1</button>
}
@if (ParentWindow.HasClose)
{
<button class="Control CloseButton" @onclick=@Close>r</button>
}
</div>
<div class="TitleBackground">
</div>
</root>
@code {
public Window ParentWindow { get; set; }
public Label Label { get; set; }
public Panel TitleIcon { get; set; }
public Panel TitleSpacer { get; set; }
public void DragBarDown()
{
ParentWindow.DragBarDown();
}
public void DragBarUp()
{
ParentWindow.DragBarUp();
}
public void Drag()
{
ParentWindow.Drag();
}
public void Minimise()
{
ParentWindow.Minimise();
}
public void Maximise()
{
ParentWindow.Maximise();
}
public void Close()
{
ParentWindow.Close();
}
protected override int BuildHash()
{
return HashCode.Combine(ParentWindow.Title, ParentWindow.HasMinimise, ParentWindow.HasMaximise, ParentWindow.HasClose);
}
}