initial commit
This commit is contained in:
parent
6715289efe
commit
788c3389af
37645 changed files with 2526849 additions and 80 deletions
|
@ -0,0 +1,166 @@
|
|||
using PlasticGui;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Unity.PlasticSCM.Editor.UI;
|
||||
using Unity.PlasticSCM.Editor.UI.UIElements;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace Unity.PlasticSCM.Editor
|
||||
{
|
||||
internal class PlasticSCMWindow : EditorWindow
|
||||
{
|
||||
internal static void ShowWindow()
|
||||
{
|
||||
PlasticSCMWindow window = GetWindow<PlasticSCMWindow>();
|
||||
window.titleContent = new GUIContent(
|
||||
UnityConstants.PLASTIC_WINDOW_TITLE,
|
||||
Images.GetPlasticViewIcon());
|
||||
|
||||
window.minSize= new Vector2(750, 260);
|
||||
|
||||
window.Show();
|
||||
}
|
||||
|
||||
void OnEnable()
|
||||
{
|
||||
BuildComponents();
|
||||
}
|
||||
|
||||
void OnDestroy()
|
||||
{
|
||||
Dispose();
|
||||
}
|
||||
|
||||
void Dispose()
|
||||
{
|
||||
mRefreshButton.clicked -= RefreshButton_Clicked;
|
||||
mSettingsButton.clicked -= SettingsButton_Clicked;
|
||||
}
|
||||
|
||||
void BuildComponents()
|
||||
{
|
||||
VisualElement root = rootVisualElement;
|
||||
root.Clear();
|
||||
root.LoadStyle("PlasticWindow/PlasticWindow");
|
||||
|
||||
BuildTabview(root);
|
||||
BuildStatusBar(root);
|
||||
}
|
||||
|
||||
/*** Tabview ***/
|
||||
void BuildTabview(VisualElement root)
|
||||
{
|
||||
mTabView = new TabView();
|
||||
mTabView.LoadStyle("PlasticWindow/PlasticWindow");
|
||||
|
||||
mTabView.AddTab(
|
||||
PlasticLocalization.GetString(PlasticLocalization.Name.PendingChangesViewTitle),
|
||||
new VisualElement()).clicked += () =>
|
||||
{
|
||||
// TODO: Add view switch to Pending Changes here
|
||||
};
|
||||
mTabView.AddTab(
|
||||
PlasticLocalization.GetString(PlasticLocalization.Name.ChangesetsViewTitle),
|
||||
new VisualElement()).clicked += () =>
|
||||
{
|
||||
// TODO: Add view switch to Changesets here
|
||||
};
|
||||
mTabView.AddTab(
|
||||
PlasticLocalization.GetString(PlasticLocalization.Name.IncomingChangesViewTitle),
|
||||
new VisualElement()).clicked += () =>
|
||||
{
|
||||
// TODO: Add view switch to Incoming Changes here
|
||||
};
|
||||
|
||||
VisualElement controlsContainer = new VisualElement() { name = "ControlsContainer" };
|
||||
controlsContainer.AddToClassList("row");
|
||||
|
||||
mRefreshButton = new Button() { name = "RefreshButton" };
|
||||
mRefreshButton.Add(new Image() { image = Images.GetRefreshIcon() });
|
||||
mRefreshButton.clicked += RefreshButton_Clicked;
|
||||
controlsContainer.Add(mRefreshButton);
|
||||
|
||||
mSettingsButton = new Button() { name = "SettingsButton" };
|
||||
mSettingsButton.Add(new Image() { image = EditorGUIUtility.IconContent("settings").image });
|
||||
mSettingsButton.clicked += SettingsButton_Clicked;
|
||||
controlsContainer.Add(mSettingsButton);
|
||||
|
||||
var tabArea = mTabView.Q<VisualElement>("TabArea");
|
||||
tabArea.Add(controlsContainer);
|
||||
|
||||
root.Add(mTabView);
|
||||
}
|
||||
|
||||
void RefreshButton_Clicked()
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
void SettingsButton_Clicked()
|
||||
{
|
||||
GenericMenu menu = new GenericMenu();
|
||||
menu.AddItem(new GUIContent("Invite Members to Workspace"),
|
||||
false,
|
||||
InviteMemberButton_clicked,
|
||||
null);
|
||||
menu.ShowAsContext();
|
||||
}
|
||||
|
||||
static void InviteMemberButton_clicked(object obj)
|
||||
{
|
||||
Application.OpenURL("https://www.plasticscm.com/dashboard/cloud/unity_cloud/users-and-groups");
|
||||
}
|
||||
|
||||
/*** Update Bar ***/
|
||||
void BuildStatusBar(VisualElement root)
|
||||
{
|
||||
VisualElement StatusBar = new VisualElement() { name = "StatusBar" };
|
||||
StatusBar.AddToClassList("row");
|
||||
StatusBar.LoadLayout("PlasticWindow/StatusBar");
|
||||
|
||||
mUpdateNotification = StatusBar.Q<VisualElement>("UpdateNotificationContainer");
|
||||
|
||||
mUpdateNotificaionImage = StatusBar.Q<Image>("UpdateNotificationImage");
|
||||
mUpdateNotificationLabel = StatusBar.Q<Label>("UpdateNotificationLabel");
|
||||
|
||||
mUpdateButton = StatusBar.Q<Button>("UpdateButton");
|
||||
mUpdateButton.text = PlasticLocalization.GetString(PlasticLocalization.Name.UpdateButton);
|
||||
|
||||
mBranchLabel = StatusBar.Q<Label>("BranchLabel");
|
||||
mBranchLabel.text = "Branch main @ codice @ codice@cloud";
|
||||
|
||||
ShowUpdateNotification(false);
|
||||
|
||||
root.Add(StatusBar);
|
||||
}
|
||||
|
||||
// For the icon string, the name of unity icons can be found at
|
||||
// https://unitylist.com/p/5c3/Unity-editor-icons
|
||||
internal void ShowUpdateNotification(bool show, string icon = "", string notification = "")
|
||||
{
|
||||
if (!string.IsNullOrEmpty(icon))
|
||||
mUpdateNotificaionImage.image = EditorGUIUtility.IconContent(icon).image;
|
||||
if (!string.IsNullOrEmpty(notification))
|
||||
mUpdateNotificationLabel.text = notification;
|
||||
|
||||
if (show)
|
||||
mUpdateNotification.RemoveFromClassList("display-none");
|
||||
else
|
||||
mUpdateNotification.AddToClassList("display-none");
|
||||
}
|
||||
|
||||
// Tabview variables
|
||||
internal TabView mTabView;
|
||||
Button mRefreshButton;
|
||||
Button mSettingsButton;
|
||||
|
||||
// Update bar variables
|
||||
VisualElement mUpdateNotification;
|
||||
Image mUpdateNotificaionImage;
|
||||
Label mUpdateNotificationLabel;
|
||||
Button mUpdateButton;
|
||||
Label mBranchLabel;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 628e4c47dd424c74989295a030817084
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Loading…
Add table
Add a link
Reference in a new issue