Initial Commit
This commit is contained in:
parent
53eb92e9af
commit
270ab7d11f
15341 changed files with 700234 additions and 0 deletions
|
@ -0,0 +1,93 @@
|
|||
using System;
|
||||
using JetBrains.Annotations;
|
||||
using Unity.Cloud.Collaborate.Assets;
|
||||
using Unity.Cloud.Collaborate.Components.Menus;
|
||||
using Unity.Cloud.Collaborate.UserInterface;
|
||||
using Unity.Cloud.Collaborate.Utilities;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace Unity.Cloud.Collaborate.Components
|
||||
{
|
||||
[UsedImplicitly]
|
||||
internal class TopBar : VisualElement
|
||||
{
|
||||
public const string UssClassName = "top-bar";
|
||||
public const string IconUssClassName = UssClassName + "__icon";
|
||||
public const string BranchInfoUssClassName = UssClassName + "__branch-info";
|
||||
public const string OverflowMenuUssClassName = UssClassName + "__overflow-button";
|
||||
public const string BackUssClassName = UssClassName + "__back";
|
||||
public const string BackButtonUssClassName = UssClassName + "__back-button";
|
||||
public const string BackTextUssClassName = UssClassName + "__back-text";
|
||||
|
||||
static readonly string k_LayoutPath = $"{CollaborateWindow.LayoutPath}/{nameof(TopBar)}.uxml";
|
||||
static readonly string k_StylePath = $"{CollaborateWindow.StylePath}/{nameof(TopBar)}.uss";
|
||||
|
||||
public event Action BackButtonClicked;
|
||||
|
||||
readonly VisualElement m_Icon;
|
||||
readonly TextElement m_BranchInfo;
|
||||
readonly IconButton m_OverflowMenu;
|
||||
readonly VisualElement m_BackContainer;
|
||||
readonly IconButton m_BackButton;
|
||||
readonly TextElement m_BackText;
|
||||
|
||||
[CanBeNull]
|
||||
string m_BranchName;
|
||||
|
||||
public TopBar()
|
||||
{
|
||||
// Get the layout
|
||||
AddToClassList(UssClassName);
|
||||
AssetDatabase.LoadAssetAtPath<VisualTreeAsset>(k_LayoutPath).CloneTree(this);
|
||||
styleSheets.Add(AssetDatabase.LoadAssetAtPath<StyleSheet>(k_StylePath));
|
||||
|
||||
// Initialise fields
|
||||
m_Icon = this.Q<VisualElement>(className: IconUssClassName);
|
||||
m_BranchInfo = this.Q<TextElement>(className: BranchInfoUssClassName);
|
||||
m_OverflowMenu = this.Q<IconButton>(className: OverflowMenuUssClassName);
|
||||
m_BackContainer = this.Q<VisualElement>(className: BackUssClassName);
|
||||
m_BackButton = this.Q<IconButton>(className: BackButtonUssClassName);
|
||||
m_BackText = this.Q<TextElement>(className: BackTextUssClassName);
|
||||
|
||||
m_OverflowMenu.Clicked += ClickableOnClicked;
|
||||
m_BackButton.Clicked += () => BackButtonClicked?.Invoke();
|
||||
|
||||
HideBackNavigation();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Hide the current back navigation.
|
||||
/// </summary>
|
||||
public void HideBackNavigation()
|
||||
{
|
||||
m_BackContainer.AddToClassList(UiConstants.ussHidden);
|
||||
m_BackButton.SetEnabled(false);
|
||||
m_BackText.text = string.Empty;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Register back navigation to be made available to the user to navigate backwards in the UI.
|
||||
/// </summary>
|
||||
/// <param name="text">Destination of the back navigation</param>
|
||||
public void DisplayBackNavigation([NotNull] string text)
|
||||
{
|
||||
m_BackText.text = text;
|
||||
m_BackButton.SetEnabled(true);
|
||||
m_BackContainer.RemoveFromClassList(UiConstants.ussHidden);
|
||||
}
|
||||
|
||||
void ClickableOnClicked()
|
||||
{
|
||||
var (x, y) = MenuUtilities.GetMenuPosition(m_OverflowMenu, MenuUtilities.AnchorPoint.BottomRight);
|
||||
new FloatingMenu()
|
||||
.AddEntry("Invite Teammate", OpenLinksUtility.OpenMembersLink, true)
|
||||
.SetOpenDirection(MenuUtilities.OpenDirection.DownLeft)
|
||||
.Open(x, y);
|
||||
}
|
||||
|
||||
[UsedImplicitly]
|
||||
public new class UxmlFactory : UxmlFactory<TopBar> { }
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue