123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- 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;
- }
- }
|