示例#1
0
 public static int RegisterViewer(ICustomHelpViewer newViewer, out IHelpManager Manager)
 {
     try
     {
         HelpSystem.AddViewer(newViewer);
     }
     catch
     {
         Manager = null;
         return(0);
     }
     Manager = HelpSystem;
     return(1);
 }
示例#2
0
            public void ShowHelp(string HelpKeyword, string HelpFileName)
            {
                List <ICustomHelpViewer> providesHelp = new List <ICustomHelpViewer>();

                foreach (var viewer in helpViewers)
                {
                    int topics = viewer.UnderstandsKeyword(HelpKeyword);
                    if (topics > 0)
                    {
                        providesHelp.Add(viewer);
                    }
                }

                if (providesHelp.Count == 0)
                {
                    return;
                }

                if (helpSelector == null || providesHelp.Count == 1)
                {
                    providesHelp[0].ShowHelp(HelpKeyword);
                }
                else
                {
                    TStringList keywords = new TStringList();
                    keywords.Duplicates = TDuplicates.dupIgnore;
                    foreach (var viewer in providesHelp)
                    {
                        TStringList temp  = new TStringList(viewer.GetHelpStrings(HelpKeyword));
                        int         count = temp.Count;
                        for (int i = 0; i < count; i++)
                        {
                            temp.Objects[i] = viewer;
                        }
                        keywords.AddStrings(temp);
                    }
                    int index = helpSelector.SelectKeyword(keywords);
                    if (index < 0)
                    {
                        return;
                    }
                    string            helpstring     = keywords[index];
                    ICustomHelpViewer selectedViewer = (ICustomHelpViewer)keywords.Objects[index];
                    selectedViewer.ShowHelp(helpstring);
                }
            }
示例#3
0
            public void ShowTableOfContents()
            {
                List <ICustomHelpViewer> providesHelp = new List <ICustomHelpViewer>();

                foreach (var viewer in helpViewers)
                {
                    if (viewer.CanShowTableOfContents())
                    {
                        providesHelp.Add(viewer);
                    }
                }

                if (providesHelp.Count == 0)
                {
                    return;
                }

                if (helpSelector == null || providesHelp.Count == 1)
                {
                    providesHelp[0].ShowTableOfContents();
                }
                else
                {
                    TStringList viewerNames = new TStringList();
                    viewerNames.Duplicates = TDuplicates.dupIgnore;
                    foreach (var viewer in providesHelp)
                    {
                        viewerNames.AddObject(viewer.GetViewerName(), viewer);
                    }
                    int index = helpSelector.TableOfContents(viewerNames);
                    if (index < 0)
                    {
                        return;
                    }
                    ICustomHelpViewer selectedViewer = (ICustomHelpViewer)viewerNames.Objects[index];
                    selectedViewer.ShowTableOfContents();
                }
            }
示例#4
0
 internal void AddViewer(ICustomHelpViewer newViewer)
 {
     helpViewers.Add(newViewer);
     newViewer.NotifyID(helpViewers.Count);
 }