Files
2026-11-01 23:39:55 +02:00

66 lines
1.9 KiB
C#

using MergetoolGui;
using Unity.PlasticSCM.Editor.UI;
using Unity.PlasticSCM.Editor.UI.UIElements;
using UnityEngine.UIElements;
using XDiffGui;
namespace Unity.PlasticSCM.Editor.Diff.Text
{
internal class SaveChangesPanel : VisualElement
{
internal SaveChangesPanel(ISaveChangesListener listener)
{
mListener = listener;
BuildComponents();
style.display = DisplayStyle.None;
}
internal void Dispose()
{
mSaveButton.clicked -= OnSaveButtonClicked;
mDiscardButton.clicked -= OnDiscardButtonClicked;
}
void OnSaveButtonClicked()
{
mListener.OnSaveChanges();
}
void OnDiscardButtonClicked()
{
mListener.OnDiscardChanges();
}
void BuildComponents()
{
style.flexDirection = FlexDirection.Row;
style.alignItems = Align.Center;
mSaveButton = ControlBuilder.Toolbar.CreateButtonLeft(
MergetoolLocalization.GetString(
MergetoolLocalization.Name.SaveButton),
OnSaveButtonClicked);
mSaveButton.tooltip = MergetoolLocalization.GetString(
MergetoolLocalization.Name.SaveButtonTooltipWithCustomShortcut,
GetPlasticShortcut.DisplayString(GetPlasticShortcut.ForSave()));
mDiscardButton = ControlBuilder.Toolbar.CreateButtonLeft(
MergetoolLocalization.GetString(
MergetoolLocalization.Name.DiscardButton),
OnDiscardButtonClicked);
mDiscardButton.tooltip = MergetoolLocalization.GetString(
MergetoolLocalization.Name.DiscardButtonTooltip);
Add(mSaveButton);
Add(mDiscardButton);
}
Button mSaveButton;
Button mDiscardButton;
readonly ISaveChangesListener mListener;
}
}