123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- using System;
- using JetBrains.Annotations;
- using Unity.Cloud.Collaborate.Assets;
- using Unity.Cloud.Collaborate.Components;
- using Unity.Cloud.Collaborate.Presenters;
- using Unity.Cloud.Collaborate.UserInterface;
- using UnityEditor;
- using UnityEngine.UIElements;
- namespace Unity.Cloud.Collaborate.Views
- {
- internal class StartPageView : PageComponent, IStartView
- {
- public const string UssClassName = "start-page-view";
- public const string UssTitleClassName = UssClassName + "__title";
- public const string UssButtonClassName = UssClassName + "__button";
- static readonly string k_LayoutPath = $"{CollaborateWindow.LayoutPath}/{nameof(StartPageView)}.uxml";
- static readonly string k_StylePath = $"{CollaborateWindow.StylePath}/{nameof(StartPageView)}.uss";
- IStartPresenter m_Presenter;
- readonly Label m_Text;
- readonly Button m_Button;
- public StartPageView()
- {
- AddToClassList(UssClassName);
- AssetDatabase.LoadAssetAtPath<VisualTreeAsset>(k_LayoutPath).CloneTree(this);
- styleSheets.Add(AssetDatabase.LoadAssetAtPath<StyleSheet>(k_StylePath));
- m_Text = this.Q<Label>(className: UssTitleClassName);
- m_Button = this.Q<Button>(className: UssButtonClassName);
- }
- /// <inheritdoc />
- public IStartPresenter Presenter
- {
- set
- {
- m_Presenter = value;
- SetupEvents();
- // If page active before presenter has been added, call start once we have it.
- if (Active)
- {
- m_Presenter.Start();
- }
- }
- }
- /// <inheritdoc />
- protected override void SetActive()
- {
- m_Presenter?.Start();
- }
- /// <inheritdoc />
- protected override void SetInactive()
- {
- m_Presenter?.Stop();
- }
- void SetupEvents()
- {
- m_Button.clickable.clicked += m_Presenter.RequestStart;
- }
- /// <inheritdoc />
- public string Text
- {
- set => m_Text.text = value;
- }
- /// <inheritdoc />
- public string ButtonText
- {
- set => m_Button.text = value;
- }
- /// <inheritdoc />
- public void SetButtonVisible(bool isVisible)
- {
- if (isVisible)
- {
- m_Button.RemoveFromClassList(UiConstants.ussHidden);
- }
- else
- {
- m_Button.AddToClassList(UiConstants.ussHidden);
- }
- }
- [UsedImplicitly]
- public new class UxmlFactory : UxmlFactory<StartPageView> { }
- }
- }
|