Ejemplo n.º 1
0
        internal static bool IsLinkMetaChar(
            FormattedHelpLink formattedLink,
            int charIndex)
        {
            int prefixEndIndex =
                formattedLink.Position +
                Segment.LINK_PREFIX.Length - 1;

            if (formattedLink.Position <= charIndex &&
                charIndex <= prefixEndIndex)
            {
                return(true);
            }

            int suffixStartIndex =
                formattedLink.Position +
                formattedLink.Length - Segment.LINK_SUFFIX.Length;

            if (suffixStartIndex <= charIndex &&
                charIndex <= (formattedLink.Position + formattedLink.Length - 1))
            {
                return(true);
            }

            return(false);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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);
        }