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

75 lines
2.2 KiB
C#

using Unity.CodeEditor;
using Codice.CM.Client.Differences.Graphic;
using UnityEngine.UIElements;
using XDiffGui;
namespace Unity.PlasticSCM.Editor.Diff.Text
{
internal class ActionBarsHandler
{
internal LeftActionBar LeftActionBar { get { return mLeftActionBar; } }
internal RightActionBar RightActionBar { get { return mRightActionBar; } }
internal ActionBarsHandler(IActionBarClickListener actionBarClickListener)
{
mActionBarClickListener = actionBarClickListener;
}
internal ActionBar BuildLeftActionBar(TextEditor textEditor)
{
mLeftActionBar = new LeftActionBar(textEditor, mActionBarClickListener);
return mLeftActionBar;
}
internal ActionBar BuildRightActionBar(TextEditor textEditor)
{
mRightActionBar = new RightActionBar(textEditor, mActionBarClickListener);
return mRightActionBar;
}
internal void SetDrawingInfo(DiffRegions diffRegions)
{
DiffActions actions = DiffActionCalculator.CalculateDiffActions(diffRegions);
mLeftActionBar.DiffActions = actions.LeftDiffs;
mRightActionBar.DiffActions = actions.RightDiffs;
}
internal void SetActionBarsVisibility(bool visible)
{
if (visible)
{
ShowActionBars();
return;
}
HideActionBars();
}
internal void ShowActionBars()
{
mLeftActionBar.style.display = DisplayStyle.Flex;
mRightActionBar.style.display = DisplayStyle.Flex;
}
internal void HideActionBars()
{
mLeftActionBar.style.display = DisplayStyle.None;
mRightActionBar.style.display = DisplayStyle.None;
}
internal void Dispose()
{
if (mLeftActionBar != null)
mLeftActionBar.Dispose();
if (mRightActionBar != null)
mRightActionBar.Dispose();
}
LeftActionBar mLeftActionBar;
RightActionBar mRightActionBar;
IActionBarClickListener mActionBarClickListener;
}
}