75 lines
2.2 KiB
C#
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;
|
|
}
|
|
}
|