Browse Source

I changed some of the CSharp namespace names; there are no bug fixes in this upload

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@460 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Mathias Simmack 21 years ago
parent
commit
4cfa438cc1
  1. 2
      src/AddIns/Misc/HtmlHelp2/Project/Configuration/AssemblyInfo.cs
  2. 21
      src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.addin
  3. 19
      src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.csproj
  4. 171
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/DynamicHelpPad.cs
  5. 85
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/FavoritesPad.cs
  6. 66
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/IndexPad.cs
  7. 26
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/IndexResultsPad.cs
  8. 79
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchPad.cs
  9. 28
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchResultsPad.cs
  10. 126
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/TocPad.cs
  11. 12
      src/AddIns/Misc/HtmlHelp2/Project/src/BrowserControl/HelpBrowserCommands.cs
  12. 12
      src/AddIns/Misc/HtmlHelp2/Project/src/BrowserControl/ShowHelpBrowser.cs
  13. 18
      src/AddIns/Misc/HtmlHelp2/Project/src/BrowserScheme.cs
  14. 16
      src/AddIns/Misc/HtmlHelp2/Project/src/MsHelpProvider.cs
  15. 18
      src/AddIns/Misc/HtmlHelp2/Project/src/Service/Help2ControlsValidation.cs
  16. 60
      src/AddIns/Misc/HtmlHelp2/Project/src/Service/Help2RegistryWalker.cs
  17. 28
      src/AddIns/Misc/HtmlHelp2/Project/src/Service/HtmlHelp2Dialog.cs
  18. 38
      src/AddIns/Misc/HtmlHelp2/Project/src/Service/HtmlHelp2Options.cs
  19. 133
      src/AddIns/Misc/HtmlHelp2/Project/src/Service/HtmlHelp2Service.cs
  20. 2
      src/AddIns/Misc/HtmlHelp2/Project/src/Service/ResourcesHelper.cs

2
src/AddIns/Misc/HtmlHelp2/Project/Configuration/AssemblyInfo.cs

@ -31,7 +31,7 @@ using System.Runtime.CompilerServices;
// You can specify all values by your own or you can build default build and revision // You can specify all values by your own or you can build default build and revision
// numbers with the '*' character (the default): // numbers with the '*' character (the default):
[assembly: AssemblyVersion("2.0.0.1")] [assembly: AssemblyVersion("2.0.0.3")]
// The following attributes specify the key for the sign of your assembly. See the // The following attributes specify the key for the sign of your assembly. See the
// .NET Framework documentation for more information about signing. // .NET Framework documentation for more information about signing.

21
src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.addin

@ -3,7 +3,7 @@
copyright = "Copyright (c) 2005" copyright = "Copyright (c) 2005"
url = "unknown" url = "unknown"
description = "integrates Microsoft's Help 2.0 Environment" description = "integrates Microsoft's Help 2.0 Environment"
version = "2.0.0.2"> version = "2.0.0.3">
<Runtime> <Runtime>
<Import assembly="HtmlHelp2.dll"/> <Import assembly="HtmlHelp2.dll"/>
@ -18,6 +18,11 @@
</Path> </Path>
<Path name = "/SharpDevelop/Workbench/Pads"> <Path name = "/SharpDevelop/Workbench/Pads">
<!--<Pad id = "DynamicHelpPad"
category = "Help2"
title = "${res:AddIns.HtmlHelp2.DynamicHelp}"
icon = "HtmlHelp2.16x16.DynamicHelp"
class = "HtmlHelp2.HtmlHelp2DynamicHelpPad"/>-->
<Pad id = "TocPad" <Pad id = "TocPad"
category = "Help2" category = "Help2"
title = "${res:AddIns.HtmlHelp2.Contents}" title = "${res:AddIns.HtmlHelp2.Contents}"
@ -48,16 +53,16 @@
<Path name = "/SharpDevelop/Dialogs/OptionsDialog/ToolsOptions"> <Path name = "/SharpDevelop/Dialogs/OptionsDialog/ToolsOptions">
<DialogPanel id = "HtmlHelp2Options" <DialogPanel id = "HtmlHelp2Options"
label = "${res:AddIns.HtmlHelp2.Environment}" label = "${res:AddIns.HtmlHelp2.Environment}"
class = "HtmlHelp2Service.HtmlHelp2OptionsPanel"/> class = "HtmlHelp2.OptionsPanel.HtmlHelp2OptionsPanel"/>
</Path> </Path>
<Path name = "/SharpDevelop/Workbench/MainMenu/Help"> <Path name = "/SharpDevelop/Workbench/MainMenu/Help">
<!-- <MenuItem id = "DynamicHelpPadCommand" <!--<MenuItem id = "DynamicHelpPadCommand"
insertafter = "DynamicHelp" insertafter = "Separator1"
label = "${res:AddIns.HtmlHelp2.DynamicHelp}" label = "${res:AddIns.HtmlHelp2.DynamicHelp}"
icon = "HtmlHelp2.16x16.DynamicHelp" icon = "HtmlHelp2.16x16.DynamicHelp"
shortcut = "Control|F1" shortcut = "Control|F1"
class = "HtmlHelp2.ShowDynamicHelpMenuCommand"/> --> class = "HtmlHelp2.ShowDynamicHelpMenuCommand"/> -->
<MenuItem id = "TocPadCommand" <MenuItem id = "TocPadCommand"
insertafter = "Separator1" insertafter = "Separator1"
label = "${res:AddIns.HtmlHelp2.Contents}" label = "${res:AddIns.HtmlHelp2.Contents}"

19
src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.csproj

@ -35,13 +35,18 @@
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
</Reference> </Reference>
<Reference Include="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <Reference Include="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<Reference Include="ICSharpCode.TextEditor">
<HintPath>..\..\..\..\..\bin\ICSharpCode.TextEditor.dll</HintPath>
<SpecificVersion>False</SpecificVersion>
<Private>False</Private>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="src\BaseControls\TocPad.cs"> <Compile Include="src\BaseControls\TocPad.cs">
<SubType>UserControl</SubType> <SubType>UserControl</SubType>
</Compile> </Compile>
<None Include="src\BaseControls\DynamicHelpPad.cs" /> <None Include="src\BaseControls\DynamicHelpPad.cs" />
<Compile Include="src\BaseControls\FavoritesPad.cs" /> <None Include="src\BaseControls\FavoritesPad.cs" />
<Compile Include="src\BaseControls\IndexPad.cs"> <Compile Include="src\BaseControls\IndexPad.cs">
<SubType>UserControl</SubType> <SubType>UserControl</SubType>
</Compile> </Compile>
@ -79,6 +84,18 @@
<Compile Include="src\BrowserScheme.cs" /> <Compile Include="src\BrowserScheme.cs" />
<EmbeddedResource Include="Resources\HtmlHelp2.16x16.Print.bmp" /> <EmbeddedResource Include="Resources\HtmlHelp2.16x16.Print.bmp" />
<Compile Include="src\MsHelpProvider.cs" /> <Compile Include="src\MsHelpProvider.cs" />
<EmbeddedResource Include="Resources\HtmlHelp2.16x16.Search.png" />
<EmbeddedResource Include="Resources\HtmlHelp2.16x16.Toc.png" />
<EmbeddedResource Include="Resources\HtmlHelp2.16x16.Index.png" />
<None Include="Resources\OpenBook.png">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</None>
<None Include="Resources\ClosedBook.png">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</None>
<None Include="Resources\context.html">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</None>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj"> <ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj">

171
src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/DynamicHelpPad.cs

@ -12,15 +12,14 @@ namespace HtmlHelp2
using System.Windows.Forms; using System.Windows.Forms;
using System.Reflection; using System.Reflection;
using System.IO; using System.IO;
using System.Xml;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.BrowserDisplayBinding;
using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor; using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor;
using ICSharpCode.SharpDevelop.Dom; using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.TextEditor; using ICSharpCode.TextEditor;
using HtmlHelp2Service; using HtmlHelp2.Environment;
using HtmlHelp2.ResourcesHelperClass;
using MSHelpServices; using MSHelpServices;
@ -41,18 +40,16 @@ namespace HtmlHelp2
public override Control Control public override Control Control
{ {
get { get { return dynamicHelpBrowser; }
return dynamicHelpBrowser;
}
} }
public override void Dispose() public override void Dispose()
{ {
try { try
{
dynamicHelpBrowser.Dispose(); dynamicHelpBrowser.Dispose();
} }
catch { catch {}
}
} }
public override void RedrawContent() public override void RedrawContent()
@ -75,18 +72,22 @@ namespace HtmlHelp2
if(String.Compare(dynamicHelpString, this.lastDynamicHelpWord) == 0) return; if(String.Compare(dynamicHelpString, this.lastDynamicHelpWord) == 0) return;
try { try
{
this.RemoveAllChildren(); this.RemoveAllChildren();
Cursor.Current = Cursors.WaitCursor; Cursor.Current = Cursors.WaitCursor;
IHxTopicList topics = HtmlHelp2Environment.GetMatchingTopicsForDynamicHelp(dynamicHelpString); IHxTopicList topics = HtmlHelp2Environment.GetMatchingTopicsForDynamicHelp(dynamicHelpString);
Cursor.Current = Cursors.Default; Cursor.Current = Cursors.Default;
if(topics.Count > 0) { if(topics.Count > 0)
for(int i = 1; i <= topics.Count; i++) { {
for(int i = 1; i <= topics.Count; i++)
{
IHxTopic topic = topics.ItemAt(i); IHxTopic topic = topics.ItemAt(i);
if(expectedLanguage == null || expectedLanguage == "" || topic.HasAttribute("DevLang", expectedLanguage)) { if(expectedLanguage == null || expectedLanguage == "" || topic.HasAttribute("DevLang", expectedLanguage))
{
this.BuildNewChild(topic.Location, this.BuildNewChild(topic.Location,
topic.get_Title(HxTopicGetTitleType.HxTopicGetRLTitle,HxTopicGetTitleDefVal.HxTopicGetTitleFileName), topic.get_Title(HxTopicGetTitleType.HxTopicGetRLTitle,HxTopicGetTitleDefVal.HxTopicGetTitleFileName),
topic.URL); topic.URL);
@ -96,29 +97,29 @@ namespace HtmlHelp2
this.lastDynamicHelpWord = dynamicHelpString; this.lastDynamicHelpWord = dynamicHelpString;
} }
catch { catch {}
}
} }
private void RemoveAllChildren() private void RemoveAllChildren()
{ {
try { this.internalIndex = 0;
dynamicHelpBrowser.Document.Body.InnerHtml = ""; dynamicHelpBrowser.RemoveAllChildren();
this.internalIndex = 0;
}
catch {
}
} }
private void BuildNewChild(string sectionName, string topicName, string topicUrl) private void BuildNewChild(string sectionName, string topicName, string topicUrl)
{ {
try { try
{
HtmlElementCollection children = dynamicHelpBrowser.Document.Body.GetElementsByTagName("span"); HtmlElementCollection children = dynamicHelpBrowser.Document.Body.GetElementsByTagName("span");
if(children.Count > 0) { if(children.Count > 0)
foreach(HtmlElement elem in children) { {
if(elem.GetAttribute("className") == "section") { foreach(HtmlElement elem in children)
try { {
if(elem.GetAttribute("className") == "section")
{
try
{
HtmlElement sectionBlock = elem.FirstChild.NextSibling; HtmlElement sectionBlock = elem.FirstChild.NextSibling;
HtmlElement contentSpan = sectionBlock.NextSibling.NextSibling; HtmlElement contentSpan = sectionBlock.NextSibling.NextSibling;
@ -131,8 +132,7 @@ namespace HtmlHelp2
return; return;
} }
} }
catch { catch {}
}
} }
} }
@ -148,26 +148,29 @@ namespace HtmlHelp2
this.internalIndex++; this.internalIndex++;
} }
catch { catch {}
}
} }
private HtmlElement CreateNewSection(string sectionName, out HtmlElement linkNode) private HtmlElement CreateNewSection(string sectionName, out HtmlElement linkNode)
{ {
HtmlElement span = null; HtmlElement span = null;
linkNode = null; linkNode = null;
try { try
span = dynamicHelpBrowser.Document.CreateElement("span"); {
span = dynamicHelpBrowser.CreateHtmlElement("span");
// span = dynamicHelpBrowser.Document.CreateElement("span");
span.SetAttribute("className", "section"); span.SetAttribute("className", "section");
HtmlElement img = dynamicHelpBrowser.Document.CreateElement("img"); HtmlElement img = dynamicHelpBrowser.CreateHtmlElement("img");
// HtmlElement img = dynamicHelpBrowser.Document.CreateElement("img");
img.Style = "width:16px;height:16px;margin-right:5px"; img.Style = "width:16px;height:16px;margin-right:5px";
img.Id = String.Format("image_{0}", this.internalIndex.ToString()); img.Id = String.Format("image_{0}", this.internalIndex.ToString());
img.SetAttribute("src", "OpenBook.png"); img.SetAttribute("src", "OpenBook.png");
span.AppendChild(img); span.AppendChild(img);
HtmlElement b = dynamicHelpBrowser.Document.CreateElement("b"); HtmlElement b = dynamicHelpBrowser.CreateHtmlElement("b");
// HtmlElement b = dynamicHelpBrowser.Document.CreateElement("b");
b.InnerText = sectionName; b.InnerText = sectionName;
b.Style = "cursor:pointer"; b.Style = "cursor:pointer";
b.SetAttribute("title", this.internalIndex.ToString()); b.SetAttribute("title", this.internalIndex.ToString());
@ -176,15 +179,15 @@ namespace HtmlHelp2
span.AppendChild(this.CreateABreak()); span.AppendChild(this.CreateABreak());
HtmlElement content = dynamicHelpBrowser.Document.CreateElement("span"); HtmlElement content = dynamicHelpBrowser.CreateHtmlElement("span");
// HtmlElement content = dynamicHelpBrowser.Document.CreateElement("span");
content.Id = String.Format("content_{0}", this.internalIndex.ToString()); content.Id = String.Format("content_{0}", this.internalIndex.ToString());
content.SetAttribute("className", "content"); content.SetAttribute("className", "content");
span.AppendChild(content); span.AppendChild(content);
linkNode = content; linkNode = content;
}
catch {
} }
catch {}
return span; return span;
} }
@ -193,8 +196,10 @@ namespace HtmlHelp2
{ {
HtmlElement span = null; HtmlElement span = null;
try { try
span = dynamicHelpBrowser.Document.CreateElement("span"); {
span = dynamicHelpBrowser.CreateHtmlElement("span");
// span = dynamicHelpBrowser.Document.CreateElement("span");
span.InnerText = topicName; span.InnerText = topicName;
span.SetAttribute("className", "link"); span.SetAttribute("className", "link");
span.SetAttribute("title", topicUrl); span.SetAttribute("title", topicUrl);
@ -202,26 +207,33 @@ namespace HtmlHelp2
span.MouseLeave += new HtmlElementEventHandler(OnMouseOut); span.MouseLeave += new HtmlElementEventHandler(OnMouseOut);
span.Click += new HtmlElementEventHandler(OnLinkClick); span.Click += new HtmlElementEventHandler(OnLinkClick);
} }
catch { catch {}
}
return span; return span;
} }
private HtmlElement CreateABreak() private HtmlElement CreateABreak()
{ {
HtmlElement br = dynamicHelpBrowser.Document.CreateElement("br"); HtmlElement br = null;
try
{
br = dynamicHelpBrowser.CreateHtmlElement("br");
// br = dynamicHelpBrowser.Document.CreateElement("br");
}
catch {}
return br; return br;
} }
#endregion #endregion
private void OnMouseOver(object sender, HtmlElementEventArgs e) private void OnMouseOver(object sender, HtmlElementEventArgs e)
{ {
try { try
{
StatusBarService.SetMessage(((HtmlElement)sender).GetAttribute("title")); StatusBarService.SetMessage(((HtmlElement)sender).GetAttribute("title"));
} }
catch { catch {}
}
} }
private void OnMouseOut(object sender, HtmlElementEventArgs e) private void OnMouseOut(object sender, HtmlElementEventArgs e)
@ -231,24 +243,24 @@ namespace HtmlHelp2
private void OnSectionClick(object sender, HtmlElementEventArgs e) private void OnSectionClick(object sender, HtmlElementEventArgs e)
{ {
try { try
{
string sectionId = ((HtmlElement)sender).GetAttribute("title"); string sectionId = ((HtmlElement)sender).GetAttribute("title");
object[] objArray = new object[1]; object[] objArray = new object[1];
objArray[0] = (object)sectionId; objArray[0] = (object)sectionId;
dynamicHelpBrowser.Document.InvokeScript("ExpandCollapse", objArray); dynamicHelpBrowser.Document.InvokeScript("ExpandCollapse", objArray);
} }
catch { catch {}
}
} }
private void OnLinkClick(object sender, HtmlElementEventArgs e) private void OnLinkClick(object sender, HtmlElementEventArgs e)
{ {
try { try
{
string url = ((HtmlElement)sender).GetAttribute("title"); string url = ((HtmlElement)sender).GetAttribute("title");
if(url != null && url != String.Empty) ShowHelpBrowser.OpenHelpView(url); if(url != null && url != String.Empty) ShowHelpBrowser.OpenHelpView(url);
} }
catch { catch {}
}
} }
#region Taken from DefinitionView.cs #region Taken from DefinitionView.cs
@ -256,7 +268,8 @@ namespace HtmlHelp2
{ {
// if (!this.IsVisible) return; // if (!this.IsVisible) return;
try { try
{
ResolveResult res = ResolveAtCaret(e); ResolveResult res = ResolveAtCaret(e);
if (res == null || res.ResolvedType == null) return; if (res == null || res.ResolvedType == null) return;
WorkbenchSingleton.SafeThreadAsyncCall(this, WorkbenchSingleton.SafeThreadAsyncCall(this,
@ -265,8 +278,7 @@ namespace HtmlHelp2
""); "");
// thanks again to Daniel and Robert // thanks again to Daniel and Robert
} }
catch { catch {}
}
} }
private ResolveResult ResolveAtCaret(ParserUpdateStepEventArgs e) private ResolveResult ResolveAtCaret(ParserUpdateStepEventArgs e)
@ -290,14 +302,13 @@ namespace HtmlHelp2
return ParserService.Resolve(expr, caret.Line, caret.Column, fileName, content); return ParserService.Resolve(expr, caret.Line, caret.Column, fileName, content);
} }
#endregion #endregion
} }
public class HtmlHelp2DynamicHelpBrowserControl : UserControl public class HtmlHelp2DynamicHelpBrowserControl : UserControl
{ {
ExtendedWebBrowser axWebBrowser = new ExtendedWebBrowser(); WebBrowser axWebBrowser = new WebBrowser();
ToolStrip dynamicHelpToolbar = new ToolStrip(); ToolStrip dynamicHelpToolbar = new ToolStrip();
string[] toolbarButtons = new string[] { string[] toolbarButtons = new string[] {
"${res:AddIns.HtmlHelp2.Contents}", "${res:AddIns.HtmlHelp2.Contents}",
"${res:AddIns.HtmlHelp2.Index}", "${res:AddIns.HtmlHelp2.Index}",
"${res:AddIns.HtmlHelp2.Search}" "${res:AddIns.HtmlHelp2.Search}"
@ -305,14 +316,36 @@ namespace HtmlHelp2
public HtmlDocument Document public HtmlDocument Document
{ {
get { get { return axWebBrowser.Document; }
return axWebBrowser.Document; }
public void RemoveAllChildren()
{
try
{
axWebBrowser.Document.Body.InnerHtml = "";
}
catch {}
}
public HtmlElement CreateHtmlElement(string elementName)
{
try
{
HtmlElement newElement = axWebBrowser.Document.CreateElement(elementName);
return newElement;
}
catch
{
return null;
} }
} }
public void RedrawContent() public void RedrawContent()
{ {
for(int i = 0; i < toolbarButtons.Length; i++) { for(int i = 0; i < toolbarButtons.Length; i++)
{
dynamicHelpToolbar.Items[i].ToolTipText = StringParser.Parse(toolbarButtons[i]); dynamicHelpToolbar.Items[i].ToolTipText = StringParser.Parse(toolbarButtons[i]);
} }
} }
@ -337,7 +370,8 @@ namespace HtmlHelp2
Controls.Add(dynamicHelpToolbar); Controls.Add(dynamicHelpToolbar);
dynamicHelpToolbar.Dock = DockStyle.Top; dynamicHelpToolbar.Dock = DockStyle.Top;
dynamicHelpToolbar.AllowItemReorder = false; dynamicHelpToolbar.AllowItemReorder = false;
for(int i = 0; i < toolbarButtons.Length; i++) { for(int i = 0; i < toolbarButtons.Length; i++)
{
ToolStripButton button = new ToolStripButton(); ToolStripButton button = new ToolStripButton();
button.ToolTipText = StringParser.Parse(toolbarButtons[i]); button.ToolTipText = StringParser.Parse(toolbarButtons[i]);
button.ImageIndex = i; button.ImageIndex = i;
@ -360,15 +394,15 @@ namespace HtmlHelp2
private void LoadDynamicHelpPage() private void LoadDynamicHelpPage()
{ {
try { try
{
string url = String.Format("{0}\\context.html", string url = String.Format("{0}\\context.html",
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)); Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
if(!File.Exists(url)) url = "about:blank"; if(!File.Exists(url)) url = "about:blank";
axWebBrowser.Navigate(url); axWebBrowser.Navigate(url);
} }
catch { catch {}
}
} }
private void ToolStripButtonClicked(object sender, EventArgs e) private void ToolStripButtonClicked(object sender, EventArgs e)
@ -376,7 +410,8 @@ namespace HtmlHelp2
ToolStripItem item = (ToolStripItem)sender; ToolStripItem item = (ToolStripItem)sender;
PadDescriptor pad = null; PadDescriptor pad = null;
switch(item.ImageIndex) { switch(item.ImageIndex)
{
case 0: case 0:
pad = WorkbenchSingleton.Workbench.GetPad(typeof(HtmlHelp2TocPad)); pad = WorkbenchSingleton.Workbench.GetPad(typeof(HtmlHelp2TocPad));
break; break;

85
src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/FavoritesPad.cs

@ -16,9 +16,9 @@ namespace HtmlHelp2
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using HtmlHelp2Service; using HtmlHelp2.Environment;
public class ShowFavoritesMenuCommand : AbstractMenuCommand public class ShowFavoritesMenuCommand : AbstractMenuCommand
{ {
public override void Run() public override void Run()
@ -27,8 +27,7 @@ namespace HtmlHelp2
if(favorites != null) favorites.BringPadToFront(); if(favorites != null) favorites.BringPadToFront();
} }
} }
public class HtmlHelp2FavoritesPad : AbstractPadContent public class HtmlHelp2FavoritesPad : AbstractPadContent
{ {
const string help2FavoritesFile = "help2favorites.xml"; const string help2FavoritesFile = "help2favorites.xml";
@ -46,14 +45,13 @@ namespace HtmlHelp2
public override Control Control public override Control Control
{ {
get { get { return mainPanel; }
return mainPanel;
}
} }
public override void RedrawContent() public override void RedrawContent()
{ {
for(int i = 0; i < toolbarButtons.Length; i++) { for(int i = 0; i < toolbarButtons.Length; i++)
{
toolStrip.Items[i].ToolTipText = StringParser.Parse(toolbarButtons[i]); toolStrip.Items[i].ToolTipText = StringParser.Parse(toolbarButtons[i]);
} }
} }
@ -84,7 +82,8 @@ namespace HtmlHelp2
toolStrip.Dock = DockStyle.Top; toolStrip.Dock = DockStyle.Top;
toolStrip.Enabled = Help2EnvIsReady; toolStrip.Enabled = Help2EnvIsReady;
toolStrip.AllowItemReorder = false; toolStrip.AllowItemReorder = false;
for(int i = 0; i < toolbarButtons.Length; i++) { for(int i = 0; i < toolbarButtons.Length; i++)
{
ToolStripButton button = new ToolStripButton(); ToolStripButton button = new ToolStripButton();
button.ToolTipText = StringParser.Parse(toolbarButtons[i]); button.ToolTipText = StringParser.Parse(toolbarButtons[i]);
button.ImageIndex = i; button.ImageIndex = i;
@ -123,8 +122,10 @@ namespace HtmlHelp2
private void AfterLabelEdit(object Sender, NodeLabelEditEventArgs e) private void AfterLabelEdit(object Sender, NodeLabelEditEventArgs e)
{ {
if(e.Label != null && e.Label.Length > 0) { if(e.Label != null && e.Label.Length > 0)
if(e.Node.Tag != null && e.Node.Tag is string && (string)e.Node.Tag != "") { {
if(e.Node.Tag != null && e.Node.Tag is string && (string)e.Node.Tag != "")
{
this.PatchFavoriteName(e.Label.ToString(), (string)e.Node.Tag); this.PatchFavoriteName(e.Label.ToString(), (string)e.Node.Tag);
} }
} }
@ -132,8 +133,10 @@ namespace HtmlHelp2
private void TreeViewKeyDown(object sender, KeyEventArgs e) private void TreeViewKeyDown(object sender, KeyEventArgs e)
{ {
if(tv.SelectedNode != null) { if(tv.SelectedNode != null)
switch(e.KeyCode) { {
switch(e.KeyCode)
{
case Keys.F2: case Keys.F2:
tv.SelectedNode.BeginEdit(); tv.SelectedNode.BeginEdit();
break; break;
@ -149,7 +152,8 @@ namespace HtmlHelp2
{ {
TreeNode tn = tv.SelectedNode; TreeNode tn = tv.SelectedNode;
if(tn != null && tn.Tag != null && tn.Tag is string && (string)tn.Tag != "") { if(tn != null && tn.Tag != null && tn.Tag is string && (string)tn.Tag != "")
{
ShowHelpBrowser.OpenHelpView((string)tn.Tag); ShowHelpBrowser.OpenHelpView((string)tn.Tag);
} }
} }
@ -163,7 +167,8 @@ namespace HtmlHelp2
ToolStripItem item = (ToolStripItem)sender; ToolStripItem item = (ToolStripItem)sender;
TreeNode tempNode = null; TreeNode tempNode = null;
switch(item.ImageIndex) { switch(item.ImageIndex)
{
case 0: case 0:
tempNode = (TreeNode)tv.SelectedNode.Clone(); tempNode = (TreeNode)tv.SelectedNode.Clone();
tv.Nodes.Insert(tv.SelectedNode.PrevNode.Index, tempNode); tv.Nodes.Insert(tv.SelectedNode.PrevNode.Index, tempNode);
@ -190,7 +195,8 @@ namespace HtmlHelp2
MessageBoxButtons.YesNo, MessageBoxButtons.YesNo,
MessageBoxIcon.Question, MessageBoxIcon.Question,
MessageBoxDefaultButton.Button2); MessageBoxDefaultButton.Button2);
if(result == DialogResult.Yes) { if(result == DialogResult.Yes)
{
tv.Nodes.Remove(tv.SelectedNode); tv.Nodes.Remove(tv.SelectedNode);
this.SaveFavorites(); this.SaveFavorites();
} }
@ -207,16 +213,19 @@ namespace HtmlHelp2
tv.Nodes.Clear(); tv.Nodes.Clear();
tv.BeginUpdate(); tv.BeginUpdate();
try { try
{
XmlDocument xmldoc = new XmlDocument(); XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(PropertyService.ConfigDirectory + help2FavoritesFile); xmldoc.Load(PropertyService.ConfigDirectory + help2FavoritesFile);
XmlNodeList nl = xmldoc.SelectNodes("favorites/favorite"); XmlNodeList nl = xmldoc.SelectNodes("favorites/favorite");
for(int i = 0; i < nl.Count; i++) { for(int i = 0; i < nl.Count; i++)
{
XmlNode title = nl.Item(i).SelectSingleNode("title"); XmlNode title = nl.Item(i).SelectSingleNode("title");
XmlNode url = nl.Item(i).SelectSingleNode("url"); XmlNode url = nl.Item(i).SelectSingleNode("url");
if(title != null && url != null && title.InnerText != "" && url.InnerText != "") { if(title != null && url != null && title.InnerText != "" && url.InnerText != "")
{
TreeNode node = new TreeNode(); TreeNode node = new TreeNode();
node.Text = title.InnerText; node.Text = title.InnerText;
node.Tag = url.InnerText; node.Tag = url.InnerText;
@ -224,20 +233,22 @@ namespace HtmlHelp2
} }
} }
} }
catch { catch {}
}
tv.EndUpdate(); tv.EndUpdate();
} }
private void SaveFavorites() private void SaveFavorites()
{ {
try { try
{
XmlDocument xmldoc = new XmlDocument(); XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><favorites/>"); xmldoc.LoadXml("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><favorites/>");
foreach(TreeNode node in tv.Nodes) { foreach(TreeNode node in tv.Nodes)
if(node.Text != "" && node.Tag != null && node.Tag is string && (string)node.Tag != "") { {
if(node.Text != "" && node.Tag != null && node.Tag is string && (string)node.Tag != "")
{
XmlNode favorite = xmldoc.CreateElement("favorite"); XmlNode favorite = xmldoc.CreateElement("favorite");
XmlNode title = xmldoc.CreateElement("title"); XmlNode title = xmldoc.CreateElement("title");
@ -254,40 +265,44 @@ namespace HtmlHelp2
xmldoc.Save(PropertyService.ConfigDirectory + help2FavoritesFile); xmldoc.Save(PropertyService.ConfigDirectory + help2FavoritesFile);
} }
catch { catch {}
}
} }
private void PatchFavoriteName(string newName, string topicUrl) private void PatchFavoriteName(string newName, string topicUrl)
{ {
try { try
{
XmlDocument xmldoc = new XmlDocument(); XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(PropertyService.ConfigDirectory + help2FavoritesFile); xmldoc.Load(PropertyService.ConfigDirectory + help2FavoritesFile);
XmlNode node = xmldoc.SelectSingleNode(String.Format("/favorites/favorite[url=\"{0}\"]/title", topicUrl)); XmlNode node = xmldoc.SelectSingleNode(String.Format("/favorites/favorite[url=\"{0}\"]/title", topicUrl));
if(node != null) { if(node != null)
{
node.InnerText = newName; node.InnerText = newName;
xmldoc.Save(PropertyService.ConfigDirectory + help2FavoritesFile); xmldoc.Save(PropertyService.ConfigDirectory + help2FavoritesFile);
} }
} }
catch { catch {}
}
} }
public void AddToFavorites(string topicName, string topicUrl) public void AddToFavorites(string topicName, string topicUrl)
{ {
if(Help2EnvIsReady && topicName != "" && topicUrl != "") { if(Help2EnvIsReady && topicName != "" && topicUrl != "")
{
bool urlFound = false; bool urlFound = false;
foreach(TreeNode node in tv.Nodes) { foreach(TreeNode node in tv.Nodes)
if(node.Tag != null && node.Tag is string && String.Compare(topicUrl, (string)node.Tag) == 0) { {
if(node.Tag != null && node.Tag is string && String.Compare(topicUrl, (string)node.Tag) == 0)
{
urlFound = true; urlFound = true;
break; break;
} }
} }
if(!urlFound) { if(!urlFound)
{
TreeNode node = new TreeNode(); TreeNode node = new TreeNode();
node.Text = topicName; node.Text = topicName;
node.Tag = topicUrl; node.Tag = topicUrl;

66
src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/IndexPad.cs

@ -16,7 +16,8 @@ namespace HtmlHelp2
using AxMSHelpControls; using AxMSHelpControls;
using MSHelpControls; using MSHelpControls;
using MSHelpServices; using MSHelpServices;
using HtmlHelp2Service; using HtmlHelp2.Environment;
using HtmlHelp2.ControlsValidation;
public class ShowIndexMenuCommand : AbstractMenuCommand public class ShowIndexMenuCommand : AbstractMenuCommand
@ -28,16 +29,13 @@ namespace HtmlHelp2
} }
} }
public class HtmlHelp2IndexPad : AbstractPadContent public class HtmlHelp2IndexPad : AbstractPadContent
{ {
protected MsHelp2IndexControl help2IndexControl; protected MsHelp2IndexControl help2IndexControl;
public override Control Control public override Control Control
{ {
get { get { return help2IndexControl; }
return help2IndexControl;
}
} }
public override void Dispose() public override void Dispose()
@ -57,7 +55,6 @@ namespace HtmlHelp2
} }
} }
public class MsHelp2IndexControl : UserControl public class MsHelp2IndexControl : UserControl
{ {
AxHxIndexCtrl indexControl = null; AxHxIndexCtrl indexControl = null;
@ -71,7 +68,8 @@ namespace HtmlHelp2
{ {
base.Dispose(disposing); base.Dispose(disposing);
if(disposing && indexControl != null) { if(disposing && indexControl != null)
{
indexControl.Dispose(); indexControl.Dispose();
} }
} }
@ -84,10 +82,13 @@ namespace HtmlHelp2
public MsHelp2IndexControl() public MsHelp2IndexControl()
{ {
bool Help2EnvIsReady = (HtmlHelp2Environment.IsReady && Help2ControlsValidation.IsIndexControlRegistered); bool Help2EnvIsReady = (HtmlHelp2Environment.IsReady &&
Help2ControlsValidation.IsIndexControlRegistered);
if(Help2EnvIsReady) { if(Help2EnvIsReady)
try { {
try
{
indexControl = new AxHxIndexCtrl(); indexControl = new AxHxIndexCtrl();
indexControl.BeginInit(); indexControl.BeginInit();
indexControl.Dock = DockStyle.Fill; indexControl.Dock = DockStyle.Fill;
@ -101,7 +102,8 @@ namespace HtmlHelp2
HtmlHelp2Environment.FilterQueryChanged += new EventHandler(FilterQueryChanged); HtmlHelp2Environment.FilterQueryChanged += new EventHandler(FilterQueryChanged);
HtmlHelp2Environment.NamespaceReloaded += new EventHandler(NamespaceReloaded); HtmlHelp2Environment.NamespaceReloaded += new EventHandler(NamespaceReloaded);
} }
catch { catch
{
this.FakeHelpControl(); this.FakeHelpControl();
} }
} }
@ -161,7 +163,8 @@ namespace HtmlHelp2
public void LoadIndex() public void LoadIndex()
{ {
try { try
{
searchTerm.Text = ""; searchTerm.Text = "";
searchTerm.Items.Clear(); searchTerm.Items.Clear();
@ -170,22 +173,22 @@ namespace HtmlHelp2
HtmlHelp2Environment.BuildFilterList(filterCombobox); HtmlHelp2Environment.BuildFilterList(filterCombobox);
filterCombobox.SelectedIndexChanged += new EventHandler(FilterChanged); filterCombobox.SelectedIndexChanged += new EventHandler(FilterChanged);
} }
catch { catch {}
}
} }
private void FilterChanged(object sender, EventArgs e) private void FilterChanged(object sender, EventArgs e)
{ {
string selectedString = filterCombobox.SelectedItem.ToString(); string selectedString = filterCombobox.SelectedItem.ToString();
if(selectedString != "") { if(selectedString != "")
try { {
try
{
Cursor.Current = Cursors.WaitCursor; Cursor.Current = Cursors.WaitCursor;
indexControl.IndexData = HtmlHelp2Environment.GetIndex(HtmlHelp2Environment.FindFilterQuery(selectedString)); indexControl.IndexData = HtmlHelp2Environment.GetIndex(HtmlHelp2Environment.FindFilterQuery(selectedString));
Cursor.Current = Cursors.Default; Cursor.Current = Cursors.Default;
} }
catch { catch {}
}
} }
} }
@ -195,7 +198,8 @@ namespace HtmlHelp2
indexControl.Refresh(); indexControl.Refresh();
string currentFilterName = filterCombobox.SelectedItem.ToString(); string currentFilterName = filterCombobox.SelectedItem.ToString();
if(String.Compare(currentFilterName, HtmlHelp2Environment.CurrentFilterName) != 0) { if(String.Compare(currentFilterName, HtmlHelp2Environment.CurrentFilterName) != 0)
{
filterCombobox.SelectedIndexChanged -= new EventHandler(FilterChanged); filterCombobox.SelectedIndexChanged -= new EventHandler(FilterChanged);
filterCombobox.SelectedIndex = filterCombobox.Items.IndexOf(HtmlHelp2Environment.CurrentFilterName); filterCombobox.SelectedIndex = filterCombobox.Items.IndexOf(HtmlHelp2Environment.CurrentFilterName);
indexControl.IndexData = HtmlHelp2Environment.GetIndex(HtmlHelp2Environment.CurrentFilterQuery); indexControl.IndexData = HtmlHelp2Environment.GetIndex(HtmlHelp2Environment.CurrentFilterQuery);
@ -211,14 +215,16 @@ namespace HtmlHelp2
private void SearchTextChanged(object sender, EventArgs e) private void SearchTextChanged(object sender, EventArgs e)
{ {
if(!itemClicked && searchTerm.Text != "") { if(!itemClicked && searchTerm.Text != "")
{
indexControl.Selection = indexControl.IndexData.GetSlotFromString(searchTerm.Text); indexControl.Selection = indexControl.IndexData.GetSlotFromString(searchTerm.Text);
} }
} }
private void KeyPressed(object sender, KeyPressEventArgs e) private void KeyPressed(object sender, KeyPressEventArgs e)
{ {
if(e.KeyChar == (char)13) { if(e.KeyChar == (char)13)
{
int indexSlot = indexControl.IndexData.GetSlotFromString(searchTerm.Text); int indexSlot = indexControl.IndexData.GetSlotFromString(searchTerm.Text);
string indexTerm = indexControl.IndexData.GetFullStringFromSlot(indexSlot, ","); string indexTerm = indexControl.IndexData.GetFullStringFromSlot(indexSlot, ",");
@ -246,18 +252,19 @@ namespace HtmlHelp2
private void ShowSelectedItemEntry(string indexTerm, int indexSlot) private void ShowSelectedItemEntry(string indexTerm, int indexSlot)
{ {
PadDescriptor indexResults = WorkbenchSingleton.Workbench.GetPad(typeof(HtmlHelp2IndexResultsPad)); PadDescriptor indexResults = WorkbenchSingleton.Workbench.GetPad(typeof(HtmlHelp2IndexResultsPad));
if(indexResults == null) { if(indexResults == null)
return; return;
}
try { try {
IHxTopicList matchingTopics = indexControl.IndexData.GetTopicsFromSlot(indexSlot); IHxTopicList matchingTopics = indexControl.IndexData.GetTopicsFromSlot(indexSlot);
try { try
{
((HtmlHelp2IndexResultsPad)indexResults.PadContent).CleanUp(); ((HtmlHelp2IndexResultsPad)indexResults.PadContent).CleanUp();
((HtmlHelp2IndexResultsPad)indexResults.PadContent).IndexResultsListView.BeginUpdate(); ((HtmlHelp2IndexResultsPad)indexResults.PadContent).IndexResultsListView.BeginUpdate();
for(int i = 1; i <= matchingTopics.Count; i++) { for(int i = 1; i <= matchingTopics.Count; i++)
{
IHxTopic topic = matchingTopics.ItemAt(i); IHxTopic topic = matchingTopics.ItemAt(i);
if(topic != null) { if(topic != null) {
@ -270,13 +277,15 @@ namespace HtmlHelp2
} }
} }
} }
finally { finally
{
((HtmlHelp2IndexResultsPad)indexResults.PadContent).IndexResultsListView.EndUpdate(); ((HtmlHelp2IndexResultsPad)indexResults.PadContent).IndexResultsListView.EndUpdate();
((HtmlHelp2IndexResultsPad)indexResults.PadContent).SortLV(0); ((HtmlHelp2IndexResultsPad)indexResults.PadContent).SortLV(0);
((HtmlHelp2IndexResultsPad)indexResults.PadContent).SetStatusMessage(indexTerm); ((HtmlHelp2IndexResultsPad)indexResults.PadContent).SetStatusMessage(indexTerm);
} }
switch(matchingTopics.Count) { switch(matchingTopics.Count)
{
case 0: case 0:
break; break;
case 1: case 1:
@ -288,8 +297,7 @@ namespace HtmlHelp2
break; break;
} }
} }
catch { catch {}
}
} }
} }
} }

26
src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/IndexResultsPad.cs

@ -14,7 +14,7 @@ namespace HtmlHelp2
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using MSHelpServices; using MSHelpServices;
using HtmlHelp2Service; using HtmlHelp2.Environment;
public class ShowIndexResultsMenuCommand : AbstractMenuCommand public class ShowIndexResultsMenuCommand : AbstractMenuCommand
@ -26,7 +26,6 @@ namespace HtmlHelp2
} }
} }
public class HtmlHelp2IndexResultsPad : AbstractPadContent public class HtmlHelp2IndexResultsPad : AbstractPadContent
{ {
ListView listView = new ListView(); ListView listView = new ListView();
@ -35,9 +34,7 @@ namespace HtmlHelp2
public override Control Control public override Control Control
{ {
get { get { return listView; }
return listView;
}
} }
public override void RedrawContent() public override void RedrawContent()
@ -47,9 +44,7 @@ namespace HtmlHelp2
public ListView IndexResultsListView public ListView IndexResultsListView
{ {
get { get { return listView; }
return listView;
}
} }
public HtmlHelp2IndexResultsPad() public HtmlHelp2IndexResultsPad()
@ -95,7 +90,8 @@ namespace HtmlHelp2
private void ListViewDoubleClick(object sender, EventArgs e) private void ListViewDoubleClick(object sender, EventArgs e)
{ {
ListViewItem lvi = listView.SelectedItems[0]; ListViewItem lvi = listView.SelectedItems[0];
if(lvi != null && lvi.Tag != null && lvi.Tag is IHxTopic) { if(lvi != null && lvi.Tag != null && lvi.Tag is IHxTopic)
{
ShowHelpBrowser.OpenHelpView((IHxTopic)lvi.Tag); ShowHelpBrowser.OpenHelpView((IHxTopic)lvi.Tag);
} }
} }
@ -107,7 +103,8 @@ namespace HtmlHelp2
public void CleanUp() public void CleanUp()
{ {
foreach(ListViewItem lvi in listView.Items) { foreach(ListViewItem lvi in listView.Items)
{
if(lvi.Tag != null) { lvi.Tag = null; } if(lvi.Tag != null) { lvi.Tag = null; }
} }
@ -122,7 +119,8 @@ namespace HtmlHelp2
* better if I could write what was searched and how many topics are * better if I could write what was searched and how many topics are
* matching. * matching.
*/ */
if(listView.Items.Count > 1) { if(listView.Items.Count > 1)
{
string text = StringParser.Parse("${res:AddIns.HtmlHelp2.ResultsOfIndexResults}", string text = StringParser.Parse("${res:AddIns.HtmlHelp2.ResultsOfIndexResults}",
new string[,] new string[,]
{{"0", indexTerm}, {{"0", indexTerm},
@ -139,11 +137,13 @@ namespace HtmlHelp2
{ {
private int col; private int col;
public ListViewItemComparer(int column) { public ListViewItemComparer(int column)
{
col = column; col = column;
} }
public int Compare(object x, object y) { public int Compare(object x, object y)
{
return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text); return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
} }
} }

79
src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchPad.cs

@ -13,8 +13,8 @@ namespace HtmlHelp2
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using HtmlHelp2Service; using HtmlHelp2.Environment;
using HtmlHelp2HelperDialog; using HtmlHelp2.HelperDialog;
using MSHelpServices; using MSHelpServices;
@ -23,14 +23,14 @@ namespace HtmlHelp2
public override void Run() public override void Run()
{ {
PadDescriptor search = WorkbenchSingleton.Workbench.GetPad(typeof(HtmlHelp2SearchPad)); PadDescriptor search = WorkbenchSingleton.Workbench.GetPad(typeof(HtmlHelp2SearchPad));
if (search != null) { if (search != null)
{
search.BringPadToFront(); search.BringPadToFront();
((HtmlHelp2SearchPad)search.PadContent).FocusSearchTextBox(); ((HtmlHelp2SearchPad)search.PadContent).FocusSearchTextBox();
} }
} }
} }
public class HtmlHelp2SearchPad : AbstractPadContent public class HtmlHelp2SearchPad : AbstractPadContent
{ {
Panel mainPanel = new Panel(); Panel mainPanel = new Panel();
@ -48,9 +48,7 @@ namespace HtmlHelp2
public override Control Control public override Control Control
{ {
get { get { return mainPanel; }
return mainPanel;
}
} }
public void FocusSearchTextBox() public void FocusSearchTextBox()
@ -71,9 +69,7 @@ namespace HtmlHelp2
public bool HiliteEnabled public bool HiliteEnabled
{ {
get { get { return hiliteTopics.Checked; }
return hiliteTopics.Checked;
}
} }
public HtmlHelp2SearchPad() public HtmlHelp2SearchPad()
@ -137,7 +133,8 @@ namespace HtmlHelp2
filterCombobox.Enabled = HtmlHelp2Environment.IsReady; filterCombobox.Enabled = HtmlHelp2Environment.IsReady;
filterCombobox.SelectedIndexChanged += new EventHandler(FilterChanged); filterCombobox.SelectedIndexChanged += new EventHandler(FilterChanged);
if(HtmlHelp2Environment.IsReady) { if(HtmlHelp2Environment.IsReady)
{
HtmlHelp2Environment.BuildFilterList(filterCombobox); HtmlHelp2Environment.BuildFilterList(filterCombobox);
HtmlHelp2Environment.FilterQueryChanged += new EventHandler(FilterQueryChanged); HtmlHelp2Environment.FilterQueryChanged += new EventHandler(FilterQueryChanged);
HtmlHelp2Environment.NamespaceReloaded += new EventHandler(NamespaceReloaded); HtmlHelp2Environment.NamespaceReloaded += new EventHandler(NamespaceReloaded);
@ -171,12 +168,13 @@ namespace HtmlHelp2
private void FilterChanged(object sender, EventArgs e) private void FilterChanged(object sender, EventArgs e)
{ {
object selectedItem = filterCombobox.SelectedItem; object selectedItem = filterCombobox.SelectedItem;
if(selectedItem != null) { if(selectedItem != null)
try { {
try
{
selectedQuery = HtmlHelp2Environment.FindFilterQuery(selectedItem.ToString()); selectedQuery = HtmlHelp2Environment.FindFilterQuery(selectedItem.ToString());
} }
catch { catch {}
}
} }
} }
@ -186,7 +184,8 @@ namespace HtmlHelp2
mainPanel.Refresh(); mainPanel.Refresh();
string currentFilterName = filterCombobox.SelectedItem.ToString(); string currentFilterName = filterCombobox.SelectedItem.ToString();
if(String.Compare(currentFilterName, HtmlHelp2Environment.CurrentFilterName) != 0) { if(String.Compare(currentFilterName, HtmlHelp2Environment.CurrentFilterName) != 0)
{
filterCombobox.SelectedIndexChanged -= new EventHandler(FilterChanged); filterCombobox.SelectedIndexChanged -= new EventHandler(FilterChanged);
filterCombobox.SelectedIndex = filterCombobox.Items.IndexOf(HtmlHelp2Environment.CurrentFilterName); filterCombobox.SelectedIndex = filterCombobox.Items.IndexOf(HtmlHelp2Environment.CurrentFilterName);
selectedQuery = HtmlHelp2Environment.CurrentFilterQuery; selectedQuery = HtmlHelp2Environment.CurrentFilterQuery;
@ -196,7 +195,8 @@ namespace HtmlHelp2
private void NamespaceReloaded(object sender, EventArgs e) private void NamespaceReloaded(object sender, EventArgs e)
{ {
try { try
{
searchTerm.Text = ""; searchTerm.Text = "";
searchTerm.Items.Clear(); searchTerm.Items.Clear();
@ -204,14 +204,14 @@ namespace HtmlHelp2
HtmlHelp2Environment.BuildFilterList(filterCombobox); HtmlHelp2Environment.BuildFilterList(filterCombobox);
filterCombobox.SelectedIndexChanged += new EventHandler(FilterChanged); filterCombobox.SelectedIndexChanged += new EventHandler(FilterChanged);
} }
catch { catch {}
}
} }
#endregion #endregion
private void SearchButtonClick(object sender, EventArgs e) private void SearchButtonClick(object sender, EventArgs e)
{ {
if(searchTerm.Text != "") { if(searchTerm.Text != "")
{
this.AddTermToList(searchTerm.Text); this.AddTermToList(searchTerm.Text);
this.PerformFTS(searchTerm.Text); this.PerformFTS(searchTerm.Text);
} }
@ -224,7 +224,8 @@ namespace HtmlHelp2
private void KeyPressed(object sender, KeyPressEventArgs e) private void KeyPressed(object sender, KeyPressEventArgs e)
{ {
if(e.KeyChar == (char)13 && searchTerm.Text != null) { if(e.KeyChar == (char)13 && searchTerm.Text != null)
{
e.Handled = true; e.Handled = true;
this.AddTermToList(searchTerm.Text); this.AddTermToList(searchTerm.Text);
this.PerformFTS(searchTerm.Text); this.PerformFTS(searchTerm.Text);
@ -233,7 +234,8 @@ namespace HtmlHelp2
private void AddTermToList(string searchText) private void AddTermToList(string searchText)
{ {
if(searchTerm.Items.IndexOf(searchText) == -1) { if(searchTerm.Items.IndexOf(searchText) == -1)
{
searchTerm.Items.Insert(0, searchText); searchTerm.Items.Insert(0, searchText);
if(searchTerm.Items.Count > 10) searchTerm.Items.RemoveAt(10); if(searchTerm.Items.Count > 10) searchTerm.Items.RemoveAt(10);
searchTerm.SelectedIndex = 0; searchTerm.SelectedIndex = 0;
@ -248,13 +250,13 @@ namespace HtmlHelp2
private void PerformFTS(string searchWord, bool useDynamicHelp) private void PerformFTS(string searchWord, bool useDynamicHelp)
{ {
if(!HtmlHelp2Environment.IsReady || searchIsBusy) { if(!HtmlHelp2Environment.IsReady || searchIsBusy)
return; return;
}
HtmlHelp2SearchResultsView searchResults = HtmlHelp2SearchResultsView.Instance; HtmlHelp2SearchResultsView searchResults = HtmlHelp2SearchResultsView.Instance;
try { try
{
searchIsBusy = true; searchIsBusy = true;
IHxTopicList matchingTopics = null; IHxTopicList matchingTopics = null;
@ -273,10 +275,12 @@ namespace HtmlHelp2
Cursor.Current = Cursors.WaitCursor; Cursor.Current = Cursors.WaitCursor;
if(useDynamicHelp) { if(useDynamicHelp)
{
matchingTopics = HtmlHelp2Environment.GetMatchingTopicsForDynamicHelp(searchWord); matchingTopics = HtmlHelp2Environment.GetMatchingTopicsForDynamicHelp(searchWord);
} }
else { else
{
matchingTopics = HtmlHelp2Environment.FTS.Query(searchWord, searchFlags); matchingTopics = HtmlHelp2Environment.FTS.Query(searchWord, searchFlags);
} }
@ -284,16 +288,20 @@ namespace HtmlHelp2
searchDialog.Dispose(); searchDialog.Dispose();
try { try
{
searchResults.CleanUp(); searchResults.CleanUp();
searchResults.SearchResultsListView.BeginUpdate(); searchResults.SearchResultsListView.BeginUpdate();
for(int i = 1; i <= matchingTopics.Count; i++) { for(int i = 1; i <= matchingTopics.Count; i++)
{
IHxTopic topic = matchingTopics.ItemAt(i); IHxTopic topic = matchingTopics.ItemAt(i);
if(topic != null) { if(topic != null)
{
ListViewItem lvi = new ListViewItem(); ListViewItem lvi = new ListViewItem();
lvi.Text = topic.get_Title(HxTopicGetTitleType.HxTopicGetRLTitle,HxTopicGetTitleDefVal.HxTopicGetTitleFileName); lvi.Text = topic.get_Title(HxTopicGetTitleType.HxTopicGetRLTitle,
HxTopicGetTitleDefVal.HxTopicGetTitleFileName);
lvi.SubItems.Add(topic.Location); lvi.SubItems.Add(topic.Location);
lvi.SubItems.Add(topic.Rank.ToString()); lvi.SubItems.Add(topic.Rank.ToString());
lvi.Tag = topic; lvi.Tag = topic;
@ -304,15 +312,15 @@ namespace HtmlHelp2
reuseMatches.Enabled = true; reuseMatches.Enabled = true;
} }
finally { finally
{
searchResults.SearchResultsListView.EndUpdate(); searchResults.SearchResultsListView.EndUpdate();
searchResults.SetStatusMessage(searchTerm.Text); searchResults.SetStatusMessage(searchTerm.Text);
searchResults.BringPadToFront(); searchResults.BringPadToFront();
searchIsBusy = false; searchIsBusy = false;
} }
} }
catch { catch {}
}
} }
public bool PerformF1FTS(string keyword) public bool PerformF1FTS(string keyword)
@ -322,9 +330,8 @@ namespace HtmlHelp2
public bool PerformF1FTS(string keyword, bool useDynamicHelp) public bool PerformF1FTS(string keyword, bool useDynamicHelp)
{ {
if(!HtmlHelp2Environment.IsReady || searchIsBusy) { if(!HtmlHelp2Environment.IsReady || searchIsBusy)
return false; return false;
}
this.PerformFTS(keyword, useDynamicHelp); this.PerformFTS(keyword, useDynamicHelp);

28
src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchResultsPad.cs

@ -14,7 +14,8 @@ namespace HtmlHelp2
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using MSHelpServices; using MSHelpServices;
using HtmlHelp2Service; using HtmlHelp2.Environment;
public class HtmlHelp2SearchResultsView : UserControl public class HtmlHelp2SearchResultsView : UserControl
{ {
@ -25,8 +26,10 @@ namespace HtmlHelp2
static HtmlHelp2SearchResultsView instance; static HtmlHelp2SearchResultsView instance;
public static HtmlHelp2SearchResultsView Instance { public static HtmlHelp2SearchResultsView Instance
get { {
get
{
if (instance == null) if (instance == null)
instance = new HtmlHelp2SearchResultsView(); instance = new HtmlHelp2SearchResultsView();
return instance; return instance;
@ -49,9 +52,7 @@ namespace HtmlHelp2
public ListView SearchResultsListView public ListView SearchResultsListView
{ {
get { get { return listView; }
return listView;
}
} }
public HtmlHelp2SearchResultsView() public HtmlHelp2SearchResultsView()
@ -96,7 +97,8 @@ namespace HtmlHelp2
bool hiliteMatches = (search != null && ((HtmlHelp2SearchPad)search.PadContent).HiliteEnabled); bool hiliteMatches = (search != null && ((HtmlHelp2SearchPad)search.PadContent).HiliteEnabled);
ListViewItem lvi = listView.SelectedItems[0]; ListViewItem lvi = listView.SelectedItems[0];
if(lvi != null && lvi.Tag != null && lvi.Tag is IHxTopic) { if(lvi != null && lvi.Tag != null && lvi.Tag is IHxTopic)
{
ShowHelpBrowser.OpenHelpView((IHxTopic)lvi.Tag, hiliteMatches); ShowHelpBrowser.OpenHelpView((IHxTopic)lvi.Tag, hiliteMatches);
} }
} }
@ -109,7 +111,8 @@ namespace HtmlHelp2
public void CleanUp() public void CleanUp()
{ {
foreach(ListViewItem lvi in listView.Items) { foreach(ListViewItem lvi in listView.Items)
{
if(lvi.Tag != null) { lvi.Tag = null; } if(lvi.Tag != null) { lvi.Tag = null; }
} }
@ -139,12 +142,15 @@ namespace HtmlHelp2
{ {
private int col; private int col;
public ListViewItemComparer(int column) { public ListViewItemComparer(int column)
{
col = column; col = column;
} }
public int Compare(object x, object y) { public int Compare(object x, object y)
switch(col) { {
switch(col)
{
case 2: case 2:
int a = Int32.Parse(((ListViewItem)x).SubItems[col].Text); int a = Int32.Parse(((ListViewItem)x).SubItems[col].Text);
int b = Int32.Parse(((ListViewItem)y).SubItems[col].Text); int b = Int32.Parse(((ListViewItem)y).SubItems[col].Text);

126
src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/TocPad.cs

@ -19,7 +19,9 @@ namespace HtmlHelp2
using AxMSHelpControls; using AxMSHelpControls;
using MSHelpControls; using MSHelpControls;
using MSHelpServices; using MSHelpServices;
using HtmlHelp2Service; using HtmlHelp2.Environment;
using HtmlHelp2.ControlsValidation;
using HtmlHelp2.ResourcesHelperClass;
public class ShowTocMenuCommand : AbstractMenuCommand public class ShowTocMenuCommand : AbstractMenuCommand
@ -31,25 +33,22 @@ namespace HtmlHelp2
} }
} }
public class HtmlHelp2TocPad : AbstractPadContent public class HtmlHelp2TocPad : AbstractPadContent
{ {
protected MsHelp2TocControl help2TocControl; protected MsHelp2TocControl help2TocControl;
public override Control Control public override Control Control
{ {
get { get { return help2TocControl; }
return help2TocControl;
}
} }
public override void Dispose() public override void Dispose()
{ {
try { try
{
help2TocControl.Dispose(); help2TocControl.Dispose();
} }
catch { catch {}
}
} }
public override void RedrawContent() public override void RedrawContent()
@ -65,47 +64,42 @@ namespace HtmlHelp2
public void SyncToc(string topicUrl) public void SyncToc(string topicUrl)
{ {
try { try
{
help2TocControl.SynToc(topicUrl); help2TocControl.SynToc(topicUrl);
} }
catch { catch {}
}
} }
public void GetPrevFromNode() public void GetPrevFromNode()
{ {
try { try
{
help2TocControl.GetPrevFromNode(); help2TocControl.GetPrevFromNode();
} }
catch { catch {}
}
} }
public void GetNextFromNode() public void GetNextFromNode()
{ {
try { try
{
help2TocControl.GetNextFromNode(); help2TocControl.GetNextFromNode();
} }
catch { catch {}
}
} }
public bool IsNotFirstNode public bool IsNotFirstNode
{ {
get { get { return help2TocControl.IsNotFirstNode; }
return help2TocControl.IsNotFirstNode;
}
} }
public bool IsNotLastNode public bool IsNotLastNode
{ {
get { get { return help2TocControl.IsNotLastNode; }
return help2TocControl.IsNotLastNode;
}
} }
} }
public class MsHelp2TocControl : UserControl public class MsHelp2TocControl : UserControl
{ {
AxHxTocCtrl tocControl = null; AxHxTocCtrl tocControl = null;
@ -119,7 +113,8 @@ namespace HtmlHelp2
{ {
base.Dispose(disposing); base.Dispose(disposing);
if(disposing && tocControl != null) { if(disposing && tocControl != null)
{
tocControl.Dispose(); tocControl.Dispose();
} }
} }
@ -133,8 +128,10 @@ namespace HtmlHelp2
{ {
bool Help2EnvIsReady = (HtmlHelp2Environment.IsReady && Help2ControlsValidation.IsTocControlRegistered); bool Help2EnvIsReady = (HtmlHelp2Environment.IsReady && Help2ControlsValidation.IsTocControlRegistered);
if(Help2EnvIsReady) { if(Help2EnvIsReady)
try { {
try
{
tocControl = new AxHxTocCtrl(); tocControl = new AxHxTocCtrl();
tocControl.BeginInit(); tocControl.BeginInit();
tocControl.Dock = DockStyle.Fill; tocControl.Dock = DockStyle.Fill;
@ -158,11 +155,13 @@ namespace HtmlHelp2
printPopup.Items.Add(printChildTopics); printPopup.Items.Add(printChildTopics);
printChildTopics.Click += new EventHandler(this.PrintTopicAndSubtopics); printChildTopics.Click += new EventHandler(this.PrintTopicAndSubtopics);
} }
catch { catch
{
this.FakeHelpControl(); this.FakeHelpControl();
} }
} }
else { else
{
this.FakeHelpControl(); this.FakeHelpControl();
} }
@ -185,7 +184,8 @@ namespace HtmlHelp2
label1.TextAlign = ContentAlignment.MiddleLeft; label1.TextAlign = ContentAlignment.MiddleLeft;
label1.Enabled = Help2EnvIsReady; label1.Enabled = Help2EnvIsReady;
if(Help2EnvIsReady) { if(Help2EnvIsReady)
{
HtmlHelp2Environment.FilterQueryChanged += new EventHandler(this.FilterQueryChanged); HtmlHelp2Environment.FilterQueryChanged += new EventHandler(this.FilterQueryChanged);
HtmlHelp2Environment.NamespaceReloaded += new EventHandler(this.NamespaceReloaded); HtmlHelp2Environment.NamespaceReloaded += new EventHandler(this.NamespaceReloaded);
} }
@ -203,28 +203,29 @@ namespace HtmlHelp2
public void LoadToc() public void LoadToc()
{ {
try { try
{
tocControl.Hierarchy = HtmlHelp2Environment.GetTocHierarchy(HtmlHelp2Environment.CurrentFilterQuery); tocControl.Hierarchy = HtmlHelp2Environment.GetTocHierarchy(HtmlHelp2Environment.CurrentFilterQuery);
filterCombobox.SelectedIndexChanged -= new EventHandler(this.FilterChanged); filterCombobox.SelectedIndexChanged -= new EventHandler(this.FilterChanged);
HtmlHelp2Environment.BuildFilterList(filterCombobox); HtmlHelp2Environment.BuildFilterList(filterCombobox);
filterCombobox.SelectedIndexChanged += new EventHandler(this.FilterChanged); filterCombobox.SelectedIndexChanged += new EventHandler(this.FilterChanged);
} }
catch { catch {}
}
} }
private void FilterChanged(object sender, EventArgs e) private void FilterChanged(object sender, EventArgs e)
{ {
string selectedString = filterCombobox.SelectedItem.ToString(); string selectedString = filterCombobox.SelectedItem.ToString();
if(selectedString != null && selectedString != "") { if(selectedString != null && selectedString != "")
try { {
try
{
Cursor.Current = Cursors.WaitCursor; Cursor.Current = Cursors.WaitCursor;
tocControl.Hierarchy = HtmlHelp2Environment.GetTocHierarchy(HtmlHelp2Environment.FindFilterQuery(selectedString)); tocControl.Hierarchy = HtmlHelp2Environment.GetTocHierarchy(HtmlHelp2Environment.FindFilterQuery(selectedString));
Cursor.Current = Cursors.Default; Cursor.Current = Cursors.Default;
} }
catch { catch {}
}
} }
} }
@ -234,7 +235,8 @@ namespace HtmlHelp2
tocControl.Refresh(); tocControl.Refresh();
string currentFilterName = filterCombobox.SelectedItem.ToString(); string currentFilterName = filterCombobox.SelectedItem.ToString();
if(String.Compare(currentFilterName, HtmlHelp2Environment.CurrentFilterName) != 0) { if(String.Compare(currentFilterName, HtmlHelp2Environment.CurrentFilterName) != 0)
{
filterCombobox.SelectedIndexChanged -= new EventHandler(this.FilterChanged); filterCombobox.SelectedIndexChanged -= new EventHandler(this.FilterChanged);
filterCombobox.SelectedIndex = filterCombobox.Items.IndexOf(HtmlHelp2Environment.CurrentFilterName); filterCombobox.SelectedIndex = filterCombobox.Items.IndexOf(HtmlHelp2Environment.CurrentFilterName);
tocControl.Hierarchy = HtmlHelp2Environment.GetTocHierarchy(HtmlHelp2Environment.CurrentFilterQuery); tocControl.Hierarchy = HtmlHelp2Environment.GetTocHierarchy(HtmlHelp2Environment.CurrentFilterQuery);
@ -250,7 +252,8 @@ namespace HtmlHelp2
private void CallHelp(string topicUrl, bool syncToc) private void CallHelp(string topicUrl, bool syncToc)
{ {
if(topicUrl != null && topicUrl != "") { if(topicUrl != null && topicUrl != "")
{
if(syncToc) this.SynToc(topicUrl); if(syncToc) this.SynToc(topicUrl);
ShowHelpBrowser.OpenHelpView(topicUrl); ShowHelpBrowser.OpenHelpView(topicUrl);
} }
@ -265,7 +268,8 @@ namespace HtmlHelp2
#region Printing #region Printing
private void TocNodeRightClicked(object sender, IHxTreeViewEvents_NodeRightClickEvent e) private void TocNodeRightClicked(object sender, IHxTreeViewEvents_NodeRightClickEvent e)
{ {
if(e.hNode != 0) { if(e.hNode != 0)
{
printTopic.Enabled = tocControl.Hierarchy.GetURL(e.hNode) != ""; printTopic.Enabled = tocControl.Hierarchy.GetURL(e.hNode) != "";
printChildTopics.Enabled = tocControl.Hierarchy.GetFirstChild(e.hNode) != 0; printChildTopics.Enabled = tocControl.Hierarchy.GetFirstChild(e.hNode) != 0;
printChildTopics.Text = StringParser.Parse((tocControl.Hierarchy.GetFirstChild(e.hNode) == 0 || tocControl.Hierarchy.GetURL(e.hNode) == "")? printChildTopics.Text = StringParser.Parse((tocControl.Hierarchy.GetFirstChild(e.hNode) == 0 || tocControl.Hierarchy.GetURL(e.hNode) == "")?
@ -280,7 +284,8 @@ namespace HtmlHelp2
private void PrintTopic(object sender, EventArgs e) private void PrintTopic(object sender, EventArgs e)
{ {
if(tocControl.Selection != 0) { if(tocControl.Selection != 0)
{
tocControl.Hierarchy.PrintNode(0, tocControl.Hierarchy.PrintNode(0,
tocControl.Selection, tocControl.Selection,
HxHierarchy_PrintNode_Options.HxHierarchy_PrintNode_Option_Node); HxHierarchy_PrintNode_Options.HxHierarchy_PrintNode_Option_Node);
@ -289,7 +294,8 @@ namespace HtmlHelp2
private void PrintTopicAndSubtopics(object sender, EventArgs e) private void PrintTopicAndSubtopics(object sender, EventArgs e)
{ {
if(tocControl.Selection != 0) { if(tocControl.Selection != 0)
{
tocControl.Hierarchy.PrintNode(0, tocControl.Hierarchy.PrintNode(0,
tocControl.Selection, tocControl.Selection,
HxHierarchy_PrintNode_Options.HxHierarchy_PrintNode_Option_Children); HxHierarchy_PrintNode_Options.HxHierarchy_PrintNode_Option_Children);
@ -300,43 +306,46 @@ namespace HtmlHelp2
#region published Help2 TOC Commands #region published Help2 TOC Commands
public void SynToc(string topicUrl) public void SynToc(string topicUrl)
{ {
try { try
{
tocControl.Synchronize(topicUrl); tocControl.Synchronize(topicUrl);
} }
catch { catch {}
}
} }
public void GetNextFromNode() public void GetNextFromNode()
{ {
try { try
{
int currentNode = tocControl.Hierarchy.GetNextFromNode(tocControl.Selection); int currentNode = tocControl.Hierarchy.GetNextFromNode(tocControl.Selection);
string TopicUrl = tocControl.Hierarchy.GetURL(currentNode); string TopicUrl = tocControl.Hierarchy.GetURL(currentNode);
this.CallHelp(TopicUrl,true); this.CallHelp(TopicUrl,true);
} }
catch { catch {}
}
} }
public void GetPrevFromNode() public void GetPrevFromNode()
{ {
try { try
{
int currentNode = tocControl.Hierarchy.GetPrevFromNode(tocControl.Selection); int currentNode = tocControl.Hierarchy.GetPrevFromNode(tocControl.Selection);
string TopicUrl = tocControl.Hierarchy.GetURL(currentNode); string TopicUrl = tocControl.Hierarchy.GetURL(currentNode);
this.CallHelp(TopicUrl,true); this.CallHelp(TopicUrl,true);
} }
catch { catch {}
}
} }
public bool IsNotFirstNode public bool IsNotFirstNode
{ {
get { get
try { {
try
{
int currentNode = tocControl.Hierarchy.GetPrevFromNode(tocControl.Selection); int currentNode = tocControl.Hierarchy.GetPrevFromNode(tocControl.Selection);
return currentNode != 0; return currentNode != 0;
} }
catch { catch
{
return true; return true;
} }
} }
@ -344,12 +353,15 @@ namespace HtmlHelp2
public bool IsNotLastNode public bool IsNotLastNode
{ {
get { get
try { {
try
{
int currentNode = tocControl.Hierarchy.GetNextFromNode(tocControl.Selection); int currentNode = tocControl.Hierarchy.GetNextFromNode(tocControl.Selection);
return currentNode != 0; return currentNode != 0;
} }
catch { catch
{
return true; return true;
} }
} }

12
src/AddIns/Misc/HtmlHelp2/Project/src/BrowserControl/HelpBrowserCommands.cs

@ -19,14 +19,18 @@ namespace HtmlHelp2
{ {
public abstract class HelpToolbarCommand : AbstractCommand public abstract class HelpToolbarCommand : AbstractCommand
{ {
public HtmlHelp2TocPad TocPad { public HtmlHelp2TocPad TocPad
get { {
get
{
return (HtmlHelp2TocPad)WorkbenchSingleton.Workbench.GetPad(typeof(HtmlHelp2TocPad)).PadContent; return (HtmlHelp2TocPad)WorkbenchSingleton.Workbench.GetPad(typeof(HtmlHelp2TocPad)).PadContent;
} }
} }
public WebBrowser Browser { public WebBrowser Browser
get { {
get
{
return ((HtmlViewPane)Owner).WebBrowser; return ((HtmlViewPane)Owner).WebBrowser;
} }
} }

12
src/AddIns/Misc/HtmlHelp2/Project/src/BrowserControl/ShowHelpBrowser.cs

@ -40,7 +40,8 @@ namespace HtmlHelp2
lastTopic = topic; lastTopic = topic;
BrowserPane help2Browser = GetActiveHelp2BrowserView(); BrowserPane help2Browser = GetActiveHelp2BrowserView();
if(help2Browser != null) { if(help2Browser != null)
{
help2Browser.Load(topicUrl); help2Browser.Load(topicUrl);
help2Browser.WorkbenchWindow.SelectWindow(); help2Browser.WorkbenchWindow.SelectWindow();
} }
@ -49,13 +50,15 @@ namespace HtmlHelp2
public static BrowserPane GetActiveHelp2BrowserView() public static BrowserPane GetActiveHelp2BrowserView()
{ {
IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow; IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow;
if(window != null) { if(window != null)
{
BrowserPane browserPane = window.ActiveViewContent as BrowserPane; BrowserPane browserPane = window.ActiveViewContent as BrowserPane;
if (browserPane != null && browserPane.Url.Scheme == "ms-help") if (browserPane != null && browserPane.Url.Scheme == "ms-help")
return browserPane; return browserPane;
} }
foreach(IViewContent view in WorkbenchSingleton.Workbench.ViewContentCollection) { foreach(IViewContent view in WorkbenchSingleton.Workbench.ViewContentCollection)
{
BrowserPane browserPane = view as BrowserPane; BrowserPane browserPane = view as BrowserPane;
if (browserPane != null && browserPane.Url.Scheme == "ms-help") if (browserPane != null && browserPane.Url.Scheme == "ms-help")
return browserPane; return browserPane;
@ -72,7 +75,8 @@ namespace HtmlHelp2
public static void HighlightDocument(HtmlViewPane htmlViewPane) public static void HighlightDocument(HtmlViewPane htmlViewPane)
{ {
if (hiliteMatches && lastTopic != null) { if (hiliteMatches && lastTopic != null)
{
lastTopic.HighlightDocument(htmlViewPane.WebBrowser.Document.DomDocument); lastTopic.HighlightDocument(htmlViewPane.WebBrowser.Document.DomDocument);
} }
} }

18
src/AddIns/Misc/HtmlHelp2/Project/src/BrowserScheme.cs

@ -4,26 +4,26 @@
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/> // <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
// <version>$Revision$</version> // <version>$Revision$</version>
// </file> // </file>
using System;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.BrowserDisplayBinding;
namespace HtmlHelp2 namespace HtmlHelp2
{ {
using System;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.BrowserDisplayBinding;
using HtmlHelp2.Environment;
public class BrowserScheme : DefaultSchemeExtension public class BrowserScheme : DefaultSchemeExtension
{ {
public override void GoHome(HtmlViewPane pane) public override void GoHome(HtmlViewPane pane)
{ {
pane.Navigate(HtmlHelp2Service.HtmlHelp2Environment.DefaultPage); pane.Navigate(HtmlHelp2Environment.DefaultPage);
} }
public override void GoSearch(HtmlViewPane pane) public override void GoSearch(HtmlViewPane pane)
{ {
// new ShowSearchMenuCommand().Run(); // new ShowSearchMenuCommand().Run();
pane.Navigate(HtmlHelp2Service.HtmlHelp2Environment.SearchPage); pane.Navigate(HtmlHelp2Environment.SearchPage);
} }
public override void DocumentCompleted(HtmlViewPane pane, WebBrowserDocumentCompletedEventArgs e) public override void DocumentCompleted(HtmlViewPane pane, WebBrowserDocumentCompletedEventArgs e)

16
src/AddIns/Misc/HtmlHelp2/Project/src/MsHelpProvider.cs

@ -4,20 +4,16 @@
// <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/> // <owner name="Daniel Grunwald" email="daniel@danielgrunwald.de"/>
// <version>$Revision$</version> // <version>$Revision$</version>
// </file> // </file>
using System;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Dom;
namespace HtmlHelp2 namespace HtmlHelp2
{ {
using System;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Dom;
public class MsHelpProvider : HelpProvider public class MsHelpProvider : HelpProvider
{ {
// TODO: Implement MsHelpProvider
public override bool TryShowHelp(string fullTypeName) public override bool TryShowHelp(string fullTypeName)
{ {
LoggingService.Info("MsHelpProvider.TryShowHelp"); LoggingService.Info("MsHelpProvider.TryShowHelp");

18
src/AddIns/Misc/HtmlHelp2/Project/src/Service/Help2ControlsValidation.cs

@ -5,38 +5,42 @@
* Copyright (c) 2005, Mathias Simmack. All rights reserved. * Copyright (c) 2005, Mathias Simmack. All rights reserved.
* *
* ********************************************************* */ * ********************************************************* */
namespace HtmlHelp2Service namespace HtmlHelp2.ControlsValidation
{ {
using System; using System;
using System.IO; using System.IO;
using Microsoft.Win32; using Microsoft.Win32;
public sealed class Help2ControlsValidation public sealed class Help2ControlsValidation
{ {
public static bool IsTocControlRegistered public static bool IsTocControlRegistered
{ {
get { get
{
return IsClassRegistered("{314111b8-a502-11d2-bbca-00c04f8ec294}"); return IsClassRegistered("{314111b8-a502-11d2-bbca-00c04f8ec294}");
} }
} }
public static bool IsIndexControlRegistered public static bool IsIndexControlRegistered
{ {
get { get
{
return IsClassRegistered("{314111c6-a502-11d2-bbca-00c04f8ec294}"); return IsClassRegistered("{314111c6-a502-11d2-bbca-00c04f8ec294}");
} }
} }
private static bool IsClassRegistered(string classId) private static bool IsClassRegistered(string classId)
{ {
try { try
using (RegistryKey tempRegKey = Registry.ClassesRoot.OpenSubKey(String.Format("CLSID\\{0}\\InprocServer32", classId))) { {
using (RegistryKey tempRegKey = Registry.ClassesRoot.OpenSubKey(String.Format("CLSID\\{0}\\InprocServer32", classId)))
{
string help2Dll = (string)tempRegKey.GetValue(""); string help2Dll = (string)tempRegKey.GetValue("");
return (help2Dll != null && help2Dll != "" && File.Exists(help2Dll)); return (help2Dll != null && help2Dll != "" && File.Exists(help2Dll));
} }
} }
catch { catch
{
return false; return false;
} }
} }

60
src/AddIns/Misc/HtmlHelp2/Project/src/Service/Help2RegistryWalker.cs

@ -5,35 +5,36 @@
* Copyright (c) 2005, Mathias Simmack. All rights reserved. * Copyright (c) 2005, Mathias Simmack. All rights reserved.
* *
* ********************************************************* */ * ********************************************************* */
namespace HtmlHelp2Service namespace HtmlHelp2.RegistryWalker
{ {
using System; using System;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Windows.Forms; using System.Windows.Forms;
using MSHelpServices; using MSHelpServices;
public sealed class Help2RegistryWalker public sealed class Help2RegistryWalker
{ {
public static void BuildNamespacesList(ComboBox help2Collections, string selectedHelp2Collection) public static void BuildNamespacesList(ComboBox help2Collections, string selectedHelp2Collection)
{ {
if(help2Collections == null) { if(help2Collections == null)
return; return;
}
help2Collections.Items.Clear(); help2Collections.Items.Clear();
help2Collections.BeginUpdate(); help2Collections.BeginUpdate();
try { try
{
string currentDescription = ""; string currentDescription = "";
HxRegistryWalker regWalker = new HxRegistryWalker(); HxRegistryWalker regWalker = new HxRegistryWalker();
IHxRegNamespaceList namespaces = regWalker.get_RegisteredNamespaceList(""); IHxRegNamespaceList namespaces = regWalker.get_RegisteredNamespaceList("");
foreach(IHxRegNamespace currentNamespace in namespaces) { foreach(IHxRegNamespace currentNamespace in namespaces)
{
help2Collections.Items.Add((string)currentNamespace.GetProperty(HxRegNamespacePropId.HxRegNamespaceDescription)); help2Collections.Items.Add((string)currentNamespace.GetProperty(HxRegNamespacePropId.HxRegNamespaceDescription));
if(selectedHelp2Collection != "" && String.Compare(selectedHelp2Collection, currentNamespace.Name) == 0) { if(selectedHelp2Collection != "" && String.Compare(selectedHelp2Collection, currentNamespace.Name) == 0)
{
currentDescription = (string)currentNamespace.GetProperty(HxRegNamespacePropId.HxRegNamespaceDescription); currentDescription = (string)currentNamespace.GetProperty(HxRegNamespacePropId.HxRegNamespaceDescription);
} }
} }
@ -41,65 +42,76 @@ namespace HtmlHelp2Service
if(currentDescription != "") help2Collections.SelectedIndex = help2Collections.Items.IndexOf(currentDescription); if(currentDescription != "") help2Collections.SelectedIndex = help2Collections.Items.IndexOf(currentDescription);
else help2Collections.SelectedIndex = 0; else help2Collections.SelectedIndex = 0;
} }
catch { catch {}
}
help2Collections.EndUpdate(); help2Collections.EndUpdate();
} }
public static string GetNamespaceName(string namespaceDescription) public static string GetNamespaceName(string namespaceDescription)
{ {
try { try
{
HxRegistryWalker regWalker = new HxRegistryWalker(); HxRegistryWalker regWalker = new HxRegistryWalker();
IHxRegNamespaceList namespaces = regWalker.get_RegisteredNamespaceList(""); IHxRegNamespaceList namespaces = regWalker.get_RegisteredNamespaceList("");
foreach(IHxRegNamespace currentNamespace in namespaces) {
if(String.Compare(namespaceDescription, (string)currentNamespace.GetProperty(HxRegNamespacePropId.HxRegNamespaceDescription)) == 0) { foreach(IHxRegNamespace currentNamespace in namespaces)
{
if(String.Compare(namespaceDescription, (string)currentNamespace.GetProperty(HxRegNamespacePropId.HxRegNamespaceDescription)) == 0)
{
return currentNamespace.Name; return currentNamespace.Name;
} }
} }
return ""; return "";
} }
catch { catch
{
return ""; return "";
} }
} }
public static string GetFirstNamespace(string namespaceName) public static string GetFirstNamespace(string namespaceName)
{ {
try { try
{
HxRegistryWalker regWalker = new HxRegistryWalker(); HxRegistryWalker regWalker = new HxRegistryWalker();
IHxRegNamespaceList namespaces = regWalker.get_RegisteredNamespaceList(""); IHxRegNamespaceList namespaces = regWalker.get_RegisteredNamespaceList("");
foreach(IHxRegNamespace currentNamespace in namespaces) {
if(String.Compare(namespaceName, currentNamespace.Name) == 0) { foreach(IHxRegNamespace currentNamespace in namespaces)
{
if(String.Compare(namespaceName, currentNamespace.Name) == 0)
{
return namespaceName; return namespaceName;
} }
} }
return namespaces.ItemAt(1).Name; return namespaces.ItemAt(1).Name;
} }
catch { catch
{
return ""; return "";
} }
} }
public static string GetFirstMatchingNamespaceName(string matchingNamespaceName) public static string GetFirstMatchingNamespaceName(string matchingNamespaceName)
{ {
if(matchingNamespaceName == "") { if(matchingNamespaceName == "")
return ""; return "";
}
try { try
{
HxRegistryWalker regWalker = new HxRegistryWalker(); HxRegistryWalker regWalker = new HxRegistryWalker();
IHxRegNamespaceList nl = regWalker.get_RegisteredNamespaceList(""); IHxRegNamespaceList nl = regWalker.get_RegisteredNamespaceList("");
foreach(IHxRegNamespace currentNamespace in nl) {
if(PathMatchSpec(currentNamespace.Name, matchingNamespaceName)) { foreach(IHxRegNamespace currentNamespace in nl)
{
if(PathMatchSpec(currentNamespace.Name, matchingNamespaceName))
{
return currentNamespace.Name; return currentNamespace.Name;
} }
} }
} }
catch { catch {}
}
return ""; return "";
} }

28
src/AddIns/Misc/HtmlHelp2/Project/src/Service/HtmlHelp2Dialog.cs

@ -5,22 +5,22 @@
* Copyright (c) 2005, Mathias Simmack. All rights reserved. * Copyright (c) 2005, Mathias Simmack. All rights reserved.
* *
* ********************************************************* */ * ********************************************************* */
namespace HtmlHelp2HelperDialog namespace HtmlHelp2.HelperDialog
{ {
using System; using System;
using System.Drawing; using System.Drawing;
using System.Windows.Forms; using System.Windows.Forms;
public class IconPictureBox : PictureBox public class IconPictureBox : PictureBox
{ {
private Icon icon = null; private Icon icon = null;
public Icon Icon public Icon Icon
{ {
get { get { return this.icon; }
return this.icon;
} set
set { {
this.icon = value; this.icon = value;
base.Image = this.icon.ToBitmap(); base.Image = this.icon.ToBitmap();
} }
@ -39,22 +39,14 @@ namespace HtmlHelp2HelperDialog
public string ActionLabel public string ActionLabel
{ {
get { get { return actionLabel.Text; }
return actionLabel.Text; set { actionLabel.Text = value; }
}
set {
actionLabel.Text = value;
}
} }
public Icon ActionIcon public Icon ActionIcon
{ {
get { get { return pictureBox1.Icon; }
return pictureBox1.Icon; set { pictureBox1.Icon = value; }
}
set {
pictureBox1.Icon = value;
}
} }
public HtmlHelp2Dialog() public HtmlHelp2Dialog()

38
src/AddIns/Misc/HtmlHelp2/Project/src/Service/HtmlHelp2Options.cs

@ -5,7 +5,7 @@
* Copyright (c) 2005, Mathias Simmack. All rights reserved. * Copyright (c) 2005, Mathias Simmack. All rights reserved.
* *
* ********************************************************* */ * ********************************************************* */
namespace HtmlHelp2Service namespace HtmlHelp2.OptionsPanel
{ {
using System; using System;
using System.Drawing; using System.Drawing;
@ -17,6 +17,8 @@ namespace HtmlHelp2Service
using System.Xml; using System.Xml;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using HtmlHelp2.Environment;
using HtmlHelp2.RegistryWalker;
using MSHelpServices; using MSHelpServices;
public class HtmlHelp2OptionsPanel : AbstractOptionPanel public class HtmlHelp2OptionsPanel : AbstractOptionPanel
@ -45,7 +47,8 @@ namespace HtmlHelp2Service
{ {
Help2EnvIsReady = HtmlHelp2Environment.IsReady; Help2EnvIsReady = HtmlHelp2Environment.IsReady;
try { try
{
help2Collections = (ComboBox)ControlDictionary["help2Collections"]; help2Collections = (ComboBox)ControlDictionary["help2Collections"];
help2Collections.Enabled = Help2EnvIsReady; help2Collections.Enabled = Help2EnvIsReady;
help2Collections.SelectedIndexChanged += new EventHandler(this.NamespaceNameChanged); help2Collections.SelectedIndexChanged += new EventHandler(this.NamespaceNameChanged);
@ -53,24 +56,25 @@ namespace HtmlHelp2Service
Help2RegistryWalker.BuildNamespacesList(help2Collections, selectedHelp2Collection); Help2RegistryWalker.BuildNamespacesList(help2Collections, selectedHelp2Collection);
} }
catch { catch {}
}
} }
private void NamespaceNameChanged(object sender, EventArgs e) private void NamespaceNameChanged(object sender, EventArgs e)
{ {
if(help2Collections.SelectedItem != null) { if(help2Collections.SelectedItem != null)
try { {
try
{
selectedHelp2Collection = Help2RegistryWalker.GetNamespaceName(help2Collections.SelectedItem.ToString()); selectedHelp2Collection = Help2RegistryWalker.GetNamespaceName(help2Collections.SelectedItem.ToString());
} }
catch { catch {}
}
} }
} }
private void SaveHelp2Config() private void SaveHelp2Config()
{ {
try { try
{
XmlDocument xmldoc = new XmlDocument(); XmlDocument xmldoc = new XmlDocument();
XmlNode node = null; XmlNode node = null;
XmlCDataSection cdata = null; XmlCDataSection cdata = null;
@ -83,26 +87,30 @@ namespace HtmlHelp2Service
xmldoc.Save(PropertyService.ConfigDirectory + help2EnvironmentFile); xmldoc.Save(PropertyService.ConfigDirectory + help2EnvironmentFile);
} }
catch { catch {}
}
} }
#region ReRegister
void ReregisterButtonClick(object sender, EventArgs e) void ReregisterButtonClick(object sender, EventArgs e)
{ {
new MethodInvoker(DoReregister).BeginInvoke(null, null); new MethodInvoker(DoReregister).BeginInvoke(null, null);
} }
void DoReregister() void DoReregister()
{ {
try { try
{
ProcessStartInfo info = new ProcessStartInfo("cmd", "/c call echo Unregistering... & unregister.bat & echo. & echo Registering... & call register.bat & pause"); ProcessStartInfo info = new ProcessStartInfo("cmd", "/c call echo Unregistering... & unregister.bat & echo. & echo Registering... & call register.bat & pause");
info.WorkingDirectory = Path.Combine(FileUtility.SharpDevelopRootPath, "bin\\setup\\help"); info.WorkingDirectory = Path.Combine(FileUtility.SharpDevelopRootPath, "bin\\setup\\help");
Process p = Process.Start(info); Process p = Process.Start(info);
p.WaitForExit(45000); p.WaitForExit(45000);
WorkbenchSingleton.SafeThreadAsyncCall(typeof(HtmlHelp2Environment), "ReloadNamespace"); WorkbenchSingleton.SafeThreadAsyncCall(typeof(HtmlHelp2Environment), "ReloadNamespace");
} catch (Exception ex) { }
catch (Exception ex)
{
MessageService.ShowError(ex); MessageService.ShowError(ex);
} }
} }
#endregion
} }
} }

133
src/AddIns/Misc/HtmlHelp2/Project/src/Service/HtmlHelp2Service.cs

@ -5,15 +5,15 @@
* Copyright (c) 2005, Mathias Simmack. All rights reserved. * Copyright (c) 2005, Mathias Simmack. All rights reserved.
* *
* ********************************************************* */ * ********************************************************* */
namespace HtmlHelp2Service namespace HtmlHelp2.Environment
{ {
using System; using System;
using System.Windows.Forms; using System.Windows.Forms;
using System.Xml; using System.Xml;
using ICSharpCode.Core; using ICSharpCode.Core;
using MSHelpServices; using MSHelpServices;
using HtmlHelp2HelperDialog; using HtmlHelp2.RegistryWalker;
using HtmlHelp2.HelperDialog;
public sealed class HtmlHelp2Environment public sealed class HtmlHelp2Environment
{ {
@ -43,73 +43,57 @@ namespace HtmlHelp2Service
#region Properties #region Properties
public static bool IsReady public static bool IsReady
{ {
get { get { return session != null; }
return session != null;
}
} }
public static string CurrentSelectedNamespace public static string CurrentSelectedNamespace
{ {
get { get { return DefaultNamespaceName; }
return DefaultNamespaceName;
}
} }
public static string CurrentFilterQuery public static string CurrentFilterQuery
{ {
get { get { return currentSelectedFilterQuery; }
return currentSelectedFilterQuery;
}
} }
public static string CurrentFilterName public static string CurrentFilterName
{ {
get { get { return currentSelectedFilterName; }
return currentSelectedFilterName;
}
} }
public static string DefaultPage public static string DefaultPage
{ {
get { get { return defaultPage; }
return defaultPage;
}
} }
public static string SearchPage public static string SearchPage
{ {
get { get { return searchPage; }
return searchPage;
}
} }
public static IHxQuery FTS public static IHxQuery FTS
{ {
get { get { return fulltextSearch; }
return fulltextSearch;
}
} }
public static bool DynamicHelpIsBusy public static bool DynamicHelpIsBusy
{ {
get { get { return dynamicHelpIsBusy; }
return dynamicHelpIsBusy;
}
} }
#endregion #endregion
#region Namespace Functions #region Namespace Functions
private static void LoadHelp2Config() private static void LoadHelp2Config()
{ {
try { try
{
XmlDocument xmldoc = new XmlDocument(); XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(PropertyService.ConfigDirectory + help2EnvironmentFile); xmldoc.Load(PropertyService.ConfigDirectory + help2EnvironmentFile);
XmlNode node = xmldoc.SelectSingleNode("/help2environment/collection"); XmlNode node = xmldoc.SelectSingleNode("/help2environment/collection");
if(node != null) DefaultNamespaceName = node.InnerText; if(node != null) DefaultNamespaceName = node.InnerText;
} }
catch { catch {}
}
} }
public static void ReloadNamespace() public static void ReloadNamespace()
@ -122,13 +106,13 @@ namespace HtmlHelp2Service
private static void InitializeNamespace(string namespaceName) private static void InitializeNamespace(string namespaceName)
{ {
if(namespaceName == null || namespaceName == "") { if(namespaceName == null || namespaceName == "")
return; return;
}
if(session != null) session = null; if(session != null) session = null;
try { try
{
currentSelectedFilterQuery = ""; currentSelectedFilterQuery = "";
currentSelectedFilterName = ""; currentSelectedFilterName = "";
@ -148,27 +132,32 @@ namespace HtmlHelp2Service
initDialog.Dispose(); initDialog.Dispose();
} }
catch { catch
{
session = null; session = null;
} }
} }
private static void ReloadFTSSystem() private static void ReloadFTSSystem()
{ {
try { try
{
fulltextSearch = (IHxQuery)session.GetNavigationInterface("!DefaultFullTextSearch", currentSelectedFilterQuery, ref QueryGuid); fulltextSearch = (IHxQuery)session.GetNavigationInterface("!DefaultFullTextSearch", currentSelectedFilterQuery, ref QueryGuid);
} }
catch { catch
{
fulltextSearch = null; fulltextSearch = null;
} }
} }
private static void ReloadDynamicHelpSystem() private static void ReloadDynamicHelpSystem()
{ {
try { try
{
dynamicHelp = (IHxQuery)session.GetNavigationInterface("!DefaultContextWindowIndex", currentSelectedFilterQuery, ref QueryGuid); dynamicHelp = (IHxQuery)session.GetNavigationInterface("!DefaultContextWindowIndex", currentSelectedFilterQuery, ref QueryGuid);
} }
catch { catch
{
dynamicHelp = null; dynamicHelp = null;
} }
} }
@ -183,46 +172,54 @@ namespace HtmlHelp2Service
{ {
string resultString = ""; string resultString = "";
try { try
{
IHxIndex namedUrlIndex = (IHxIndex)session.GetNavigationInterface("!DefaultNamedUrlIndex", "", ref IndexGuid); IHxIndex namedUrlIndex = (IHxIndex)session.GetNavigationInterface("!DefaultNamedUrlIndex", "", ref IndexGuid);
IHxTopicList topics = null; IHxTopicList topics = null;
topics = namedUrlIndex.GetTopicsFromString(pageName, 0); topics = namedUrlIndex.GetTopicsFromString(pageName, 0);
if(topics.Count == 0 && (alternatePageName != null && alternatePageName != "")) { if(topics.Count == 0 && (alternatePageName != null && alternatePageName != ""))
{
topics = namedUrlIndex.GetTopicsFromString(alternatePageName, 0); topics = namedUrlIndex.GetTopicsFromString(alternatePageName, 0);
} }
if(topics.Count > 0) if(topics.Count > 0)
resultString = topics.ItemAt(1).URL; resultString = topics.ItemAt(1).URL;
if (resultString == null || resultString.Length == 0) if (resultString == null || resultString.Length == 0)
resultString = defaultValue; resultString = defaultValue;
return resultString; return resultString;
} }
catch { catch
{
return defaultValue; return defaultValue;
} }
} }
public static IHxHierarchy GetTocHierarchy(string filterQuery) public static IHxHierarchy GetTocHierarchy(string filterQuery)
{ {
try { try
{
IHxHierarchy defaultToc = (IHxHierarchy)session.GetNavigationInterface("!DefaultTOC", filterQuery, ref TocGuid); IHxHierarchy defaultToc = (IHxHierarchy)session.GetNavigationInterface("!DefaultTOC", filterQuery, ref TocGuid);
return defaultToc; return defaultToc;
} }
catch { catch
{
return null; return null;
} }
} }
public static IHxIndex GetIndex(string filterQuery) public static IHxIndex GetIndex(string filterQuery)
{ {
try { try
{
IHxIndex defaultIndex = (IHxIndex)session.GetNavigationInterface("!DefaultKeywordIndex", filterQuery, ref IndexGuid); IHxIndex defaultIndex = (IHxIndex)session.GetNavigationInterface("!DefaultKeywordIndex", filterQuery, ref IndexGuid);
return defaultIndex; return defaultIndex;
} }
catch { catch
{
return null; return null;
} }
} }
@ -232,36 +229,40 @@ namespace HtmlHelp2Service
filterCombobox.Items.Clear(); filterCombobox.Items.Clear();
filterCombobox.BeginUpdate(); filterCombobox.BeginUpdate();
try { try
for(int i = 1; i <= namespaceFilters.Count; i++) { {
for(int i = 1; i <= namespaceFilters.Count; i++)
{
IHxRegFilter filter = namespaceFilters.ItemAt(i); IHxRegFilter filter = namespaceFilters.ItemAt(i);
string filterName = (string)filter.GetProperty(HxRegFilterPropId.HxRegFilterName); string filterName = (string)filter.GetProperty(HxRegFilterPropId.HxRegFilterName);
filterCombobox.Items.Add(filterName); filterCombobox.Items.Add(filterName);
if(currentSelectedFilterName == "" && i == 1) { if(currentSelectedFilterName == "" && i == 1)
{
currentSelectedFilterName = filterName; currentSelectedFilterName = filterName;
} }
} }
if(namespaceFilters.Count == 0) filterCombobox.Items.Add(StringParser.Parse("${res:AddIns.HtmlHelp2.DefaultEmptyFilter}")); if(namespaceFilters.Count == 0)
filterCombobox.Items.Add(StringParser.Parse("${res:AddIns.HtmlHelp2.DefaultEmptyFilter}"));
if(currentSelectedFilterName == "") filterCombobox.SelectedIndex = 0; if(currentSelectedFilterName == "") filterCombobox.SelectedIndex = 0;
else filterCombobox.SelectedIndex = filterCombobox.Items.IndexOf(currentSelectedFilterName); else filterCombobox.SelectedIndex = filterCombobox.Items.IndexOf(currentSelectedFilterName);
}
catch {
} }
catch {}
filterCombobox.EndUpdate(); filterCombobox.EndUpdate();
} }
public static string FindFilterQuery(string filterName) public static string FindFilterQuery(string filterName)
{ {
if(String.Compare(filterName, currentSelectedFilterName) == 0) { if(String.Compare(filterName, currentSelectedFilterName) == 0)
return currentSelectedFilterQuery; return currentSelectedFilterQuery;
}
try { try
{
IHxRegFilter filter = namespaceFilters.FindFilter(filterName); IHxRegFilter filter = namespaceFilters.FindFilter(filterName);
currentSelectedFilterQuery = (string)filter.GetProperty(HxRegFilterPropId.HxRegFilterQuery); currentSelectedFilterQuery = (string)filter.GetProperty(HxRegFilterPropId.HxRegFilterQuery);
currentSelectedFilterName = filterName; currentSelectedFilterName = filterName;
OnFilterQueryChanged(EventArgs.Empty); OnFilterQueryChanged(EventArgs.Empty);
@ -271,23 +272,25 @@ namespace HtmlHelp2Service
ReloadDefaultPages(); ReloadDefaultPages();
return currentSelectedFilterQuery; return currentSelectedFilterQuery;
} }
catch { catch
{
return ""; return "";
} }
} }
public static IHxTopicList GetMatchingTopicsForDynamicHelp(string searchTerm) public static IHxTopicList GetMatchingTopicsForDynamicHelp(string searchTerm)
{ {
if(dynamicHelpIsBusy) { if(dynamicHelpIsBusy)
return null; return null;
}
try { try
{
dynamicHelpIsBusy = true; dynamicHelpIsBusy = true;
IHxTopicList topics = ((IHxIndex)dynamicHelp).GetTopicsFromString(searchTerm, 0); IHxTopicList topics = ((IHxIndex)dynamicHelp).GetTopicsFromString(searchTerm, 0);
return topics; return topics;
} }
finally { finally
{
dynamicHelpIsBusy = false; dynamicHelpIsBusy = false;
} }
} }
@ -299,14 +302,16 @@ namespace HtmlHelp2Service
private static void OnFilterQueryChanged(EventArgs e) private static void OnFilterQueryChanged(EventArgs e)
{ {
if(FilterQueryChanged != null) { if(FilterQueryChanged != null)
{
FilterQueryChanged(null, e); FilterQueryChanged(null, e);
} }
} }
private static void OnNamespaceReloaded(EventArgs e) private static void OnNamespaceReloaded(EventArgs e)
{ {
if(NamespaceReloaded != null) { if(NamespaceReloaded != null)
{
NamespaceReloaded(null, e); NamespaceReloaded(null, e);
} }
} }

2
src/AddIns/Misc/HtmlHelp2/Project/src/Service/ResourcesHelper.cs

@ -5,7 +5,7 @@
* Copyright (c) 2005, Mathias Simmack. All rights reserved. * Copyright (c) 2005, Mathias Simmack. All rights reserved.
* *
* ********************************************************* */ * ********************************************************* */
namespace HtmlHelp2Service namespace HtmlHelp2.ResourcesHelperClass
{ {
using System; using System;
using System.Drawing; using System.Drawing;

Loading…
Cancel
Save