test
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
using Unity.PlasticSCM.Editor.UI;
|
||||
|
||||
namespace Unity.PlasticSCM.Editor.Help
|
||||
{
|
||||
internal class HelpPanel
|
||||
{
|
||||
internal Vector2 TextScroll;
|
||||
|
||||
internal bool Visible { get; private set; }
|
||||
|
||||
internal HelpData Data
|
||||
{
|
||||
get { return mHelpData; }
|
||||
}
|
||||
|
||||
internal GUIContent GUIContent
|
||||
{
|
||||
get { return mHelpGUIContent; }
|
||||
}
|
||||
|
||||
internal HelpPanel(EditorWindow window)
|
||||
{
|
||||
mWindow = window;
|
||||
}
|
||||
|
||||
internal void Show(HelpData helpData)
|
||||
{
|
||||
ClearData();
|
||||
|
||||
UpdateData(helpData);
|
||||
|
||||
Visible = true;
|
||||
|
||||
mWindow.Repaint();
|
||||
}
|
||||
|
||||
internal void Hide()
|
||||
{
|
||||
ClearData();
|
||||
|
||||
Visible = false;
|
||||
|
||||
mWindow.Repaint();
|
||||
}
|
||||
|
||||
internal bool TryGetLinkAtChar(
|
||||
int charIndex,
|
||||
out HelpLink link)
|
||||
{
|
||||
link = null;
|
||||
|
||||
FormattedHelpLink formattedLink = GetFormattedLinkAtChar(
|
||||
mFormattedLinks, charIndex);
|
||||
|
||||
if (formattedLink == null)
|
||||
return false;
|
||||
|
||||
link = formattedLink.Source;
|
||||
|
||||
return !BuildFormattedHelp.IsLinkMetaChar(formattedLink, charIndex);
|
||||
}
|
||||
|
||||
void ClearData()
|
||||
{
|
||||
mHelpData = null;
|
||||
mHelpGUIContent = null;
|
||||
mFormattedLinks = null;
|
||||
}
|
||||
|
||||
void UpdateData(HelpData helpData)
|
||||
{
|
||||
mHelpData = helpData;
|
||||
|
||||
string formattedHelpText;
|
||||
BuildFormattedHelp.ForData(
|
||||
mHelpData.CleanText,
|
||||
mHelpData.FormattedBlocks.ToArray(),
|
||||
mHelpData.Links.ToArray(),
|
||||
out formattedHelpText,
|
||||
out mFormattedLinks);
|
||||
|
||||
mHelpGUIContent = new GUIContent(formattedHelpText);
|
||||
}
|
||||
|
||||
static FormattedHelpLink GetFormattedLinkAtChar(
|
||||
List<FormattedHelpLink> formattedLinks, int charIndex)
|
||||
{
|
||||
for(int i = 0; i < formattedLinks.Count; i++)
|
||||
{
|
||||
FormattedHelpLink link = formattedLinks[i];
|
||||
|
||||
if (link.Position <= charIndex &&
|
||||
charIndex < link.Position + link.Length)
|
||||
return link;
|
||||
|
||||
if (charIndex <= link.Position + link.Length)
|
||||
return null;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
HelpData mHelpData;
|
||||
|
||||
GUIContent mHelpGUIContent;
|
||||
List<FormattedHelpLink> mFormattedLinks;
|
||||
|
||||
EditorWindow mWindow;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user