public static int RegisterViewer(ICustomHelpViewer newViewer, out IHelpManager Manager) { try { HelpSystem.AddViewer(newViewer); } catch { Manager = null; return(0); } Manager = HelpSystem; return(1); }
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); } }
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(); } }
internal void AddViewer(ICustomHelpViewer newViewer) { helpViewers.Add(newViewer); newViewer.NotifyID(helpViewers.Count); }